软件体系结构复习题

news2024/11/19 14:36:49

2020

论述题

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
统一软件过程RUP:用例驱动、以架构为中心的迭代增量开发
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
一个用例可能需要多个功能来实现,一个功能也可能被用于多个用例
在这里插入图片描述
边界类、控制类、实体类
在这里插入图片描述
在这里插入图片描述

顺序图、通信图、定时图、交互概述图
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
扩展关系《extend》、包含关系《include》、泛化关系
在这里插入图片描述
在这里插入图片描述

2022

1、简答题

在这里插入图片描述
部署的包要和部署环境相匹配、将包分割成若干子包、把子包部署到不同的节点上,完成各自工作
在这里插入图片描述

边界类:参与者与用例之间(箭头)
控制类:用例
实体类:根据业务逻辑进行定义
在这里插入图片描述
:代表0个或多个(可以使用n表示)
0…
:代表0个或多个
0…1:代表0或1
1…
:代表1个或多个
在这里插入图片描述
注意还有类Student和类Account之间的聚合关系。不能回答Account类

2、综合分析题

在这里插入图片描述
类Master继承类ClassA:

public class Master extends ClassA{
	private int M_No;
	public Course Select;
	public Study()
	{
	}
}
public ClassA{
	private int AID;
}

public class Course{
	private String No;
}

在这里插入图片描述
包和包的嵌套。一个大包包含3个子包
在这里插入图片描述
这里用的是聚合关系,这里聚合关系的图像没有箭头
在这里插入图片描述
在这里插入图片描述
安全性则增加一个登录用例。所有参与者都要连向登录用例
浏览商品上扩展一个比较性价比用例(语句中说了“可与”,这里使用扩展–《extends》)
三种支付方式,任何一种都可以:使用扩展–《extends》
注意还有一个时间参与者(系统定期)
在这里插入图片描述
注意系统构件图的画法、接口的画法
实现要使用实现、依赖要使用虚线加箭头
在这里插入图片描述
订票时必须“填写预定信息”,这里“必须”要使用包含关系–《include》
必须“填写预定信息”,这里“必须”使用包含关系–《include》
其中“收款”工作可以采用“微信支付”、“现金支付”和“支付宝支付”,这里“可以采用”使用扩展关系–《extend》
**注意:**要注意《include》和《extend》的指向,它们是不一样的。其中《include》是向外指向;《extend》是向内指向
在这里插入图片描述
在这里插入图片描述
这里包括用例“通知发货单位”、参与者“发货单位”

在这里插入图片描述
在这里插入图片描述
注意活动图的画法,其中的开始、结束、状态节点(活动节点)、控制节点(菱形)、块节点
注意中间的这根实线也要画
在这里插入图片描述
多对多:外键建立中间表
1对多:外键放在多的
1对1:外键放哪都可以
这里中间表示“库存”

在这里插入图片描述
这里是用泛化关系(三角形加横线)
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
激活条或控制焦点符号不能画成长条形状

3、论述题

在这里插入图片描述
建筑工业的“模块化、标准化、工厂化、流水组装”是一种高效、规范的生产模式,也是软件产业值得学习借鉴的地方。软件产业可以将常用的功能模块进行模块化和标准化,以提高软件产品的开发效率和质量***,同时可以采用工厂化的生产管理方式*,形成成熟的软件工程和流水化的开发流程,提高软件产品的生产效率和可靠性。
在这里插入图片描述
对模型进行建模的目的是为了更好的理解和管理复杂性
在这里插入图片描述
在这里插入图片描述
用例不只是捕获需求的工具,还能驱动整个开发过程。
储户对象的用例有:存款、取款、转账、查询余额、打印账单、修改密码

2023

答案来源:

在这里插入图片描述

1、简答题、综合分析与设计题

T1

在这里插入图片描述
在这里插入图片描述
不可分割表明是组合关系

T2

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
系统维护者的功能包括了系统操作者里面的功能,这里使用泛化关系

T3

在这里插入图片描述
在这里插入图片描述
派生出的具体类:表示的是泛化关系
这两个具体类又是另一个类Driver的一部分:表示的是聚合关系

T4

在这里插入图片描述
在这里插入图片描述

T5

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

T6

在这里插入图片描述

public class Master extends ClassA{
	private int M_No;
	public Course Select;
	public Study()
	{
	}
}
public ClassA{
	private int AID;
}

public class Course{
	private String No;
}

T7

在这里插入图片描述
在这里插入图片描述

T8

在这里插入图片描述
在这里插入图片描述
多对多:外键建立中间表
1对多:外键放在多的
1对1:外键放哪都可以
外键放在多的那个,而且外键始终指向主键

T9

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

T10

在这里插入图片描述
在这里插入图片描述

T11

在这里插入图片描述
在这里插入图片描述

T12

在这里插入图片描述
(1)顾客、管理员、工作人员、发货单位(或网站仓库、或其他供应商)
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

T13

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

T14

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

T15

在这里插入图片描述
类“ToolBooks”从类“Books”中继承了Name属性、Price属性和getname()方法,以及类Catalog和类Books的聚合关系

T16

在这里插入图片描述
在这里插入图片描述
注意区分这两题不同
在这里插入图片描述
在这里插入图片描述

T17

在这里插入图片描述
在这里插入图片描述

T18

在这里插入图片描述
潜在会员、会员、货管员、经理、系统管理员、供应商系统、财务系统
在这里插入图片描述
注:这个用例模型的箭头指向有待确认

T19

在这里插入图片描述
在这里插入图片描述

T20

在这里插入图片描述
普通聚集:部分和整体具有相同的生命周期–整体消失则部分也消失
共享聚集:整体拥有部分。整体消失则部分未消失
在这里插入图片描述

T21

在这里插入图片描述

接口和构建之间的关系:

实现关系:接口和构件之间用实线连接
依赖关系:接口和构建之间用虚线表示
在这里插入图片描述
注:朋友说上面的销售管理系统去掉,目前有待确认

T22

在这里插入图片描述
构件:结账系统,商品资料库,购物车,商品导览系统
有依赖关系和实现关系,
结账系统和商品导览系统

T23

在这里插入图片描述
IncomeOrder与OrderItem之间不该为继承关系,应改为聚合关系
在这里插入图片描述

T24

在这里插入图片描述
在这里插入图片描述

T25

在这里插入图片描述
在这里插入图片描述
:代表0个或多个
0…
:代表0个或多个

T26

在这里插入图片描述
在这里插入图片描述

T27

在这里插入图片描述
在这里插入图片描述

T28

在这里插入图片描述
在这里插入图片描述

T29

在这里插入图片描述
在这里插入图片描述
注:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

T30

在这里插入图片描述
在这里插入图片描述

T31

在这里插入图片描述
在这里插入图片描述

T32

在这里插入图片描述
未写

T33

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

T34

在这里插入图片描述
在这里插入图片描述
双向关联关系,用例可以把内部消息通知给参与者,参与者可以把外部消息变更通知给用例
单向关联关系,箭头指向被拥有者,参与者可以把外部消息变更通知给用例
单向关联关系,系统可以把内部消息通知给参与者

T35

在这里插入图片描述
在这里插入图片描述

T36

在这里插入图片描述
在这里插入图片描述

T37

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

public class ClassA{
	public ClassB theClassB;
	public ClassA(){
	}
}
public class ClassB{
	public ClassB(){
	}
}

T38

在这里插入图片描述

在这里插入图片描述

T39

在这里插入图片描述
在这里插入图片描述

T40

在这里插入图片描述

T41

在这里插入图片描述
在这里插入图片描述

T42

在这里插入图片描述
在这里插入图片描述

T43

在这里插入图片描述
在这里插入图片描述
这里去掉3种支付方式

T44

在这里插入图片描述
在这里插入图片描述

T45

在这里插入图片描述
在这里插入图片描述

T46

在这里插入图片描述
在这里插入图片描述

T47

在这里插入图片描述
在这里插入图片描述

T48

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

T49

在这里插入图片描述
在这里插入图片描述
答案待确认

T50

在这里插入图片描述

答案还未写

在这里插入图片描述
这个题是上面T50的第(3)问

T51

在这里插入图片描述
在这里插入图片描述

T52

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
注意:这个T52题和T7题不一样,老师把题给改了

T53

加粗样式
答案未写
在这里插入图片描述
在这里插入图片描述

T54

在这里插入图片描述

T55

在这里插入图片描述
答案未写

T56

在这里插入图片描述
答案未写

T57

在这里插入图片描述
求职者和招聘者都是“用户”参与者,这里存在泛化关系
在这里插入图片描述

T58

在这里插入图片描述
答案未写

T59

在这里插入图片描述
答案未写

T60

在这里插入图片描述
答案未写

T61

在这里插入图片描述
答案未写

2、论述题

T1

在这里插入图片描述
在这里插入图片描述
**
先构建部分再构建整体
多次开发
软件规模庞大、软件的需求是模糊的、随时间而变化
后期的维护工作量巨大、维护代价也非常高
简化了软件的开发和维护
提高了软件的可重用性
**

T2

在这里插入图片描述
在这里插入图片描述
**
在后期引入变动比在早期引入所需要的代价高2~3个数量级
维护要花费大量的代价
目的是要尽早发现错误
**

T3

在这里插入图片描述
在这里插入图片描述
**
软件是程序、数据及其相关文档的完整集合
软件文档使无形的脑力劳动显示化,规范不同人员的表达方式,减少不必要的信息沟通,提高交流的效率
软件文档分为研发规范文档和项目文档
**

T4

在这里插入图片描述
在这里插入图片描述
**
高质量的设计将是软件系统长期稳定运行的根本保障,是软件走向成功的关键。
为了获得高质量软件,必须遵循开发规范,采用恰当的设计方法,正确的开发方法。
**

T5

在这里插入图片描述
在这里插入图片描述
提高分析、设计、开发效率

T6

在这里插入图片描述
在这里插入图片描述
认识问题:以用户的身份站在用户的角度认识问题获取需求,采用用例建模技术。客户提出其可接受的、系统必须满足的条件或具备的能力
分析问题:以开发者的身份站在用户的角度分析问题分析需求,采用用例分析技术。满足客户定义的需求
解决问题:以开发者的身份站在开发团队的角度分析问题解决需求,采用面向对象设计。面向对象的设计原则是构造高质量软件的出发点

T7

在这里插入图片描述
在这里插入图片描述
顺序图:表示交互作用中的时间顺序,但没有表示对象间的关系。用于表示方案。
通信图:表示对象间的关系,但时间顺序必须从顺序图获得。用于过程的详细设计

T8

在这里插入图片描述
在这里插入图片描述
都是以图的形式呈现,便于理解

软件结构图:系统中组件之间相互关系和约束的体系结构设计图
用例模型:系统既定功能的模型,它可作为客户和开发人员之间的契约

T9

在这里插入图片描述
在这里插入图片描述
采用大量的接口来解耦子系统和外部的耦合,才可以保证子系统的独立性和可替代性,从而提高系统的稳定性

T10

在这里插入图片描述
在这里插入图片描述
用例图中的用例和参与者,表明了哪个参与者参与了哪个用例的执行。
用例图是被成为参与者的外部用户所能观察到的系统功能的模型图,主要用于需求捕获,能够对系统提供的服务进行描述

T11

在这里插入图片描述
在这里插入图片描述
软件设计是将问题分解并模块化,使得解决问题变得容易。软件设计是后续开发步骤及软件维护工作的基础。

如果没有软件设计,只能建立一个不稳定的软件体系结构。应该尽量在软件设计与开发的早期去修改完善发现的错误,否则随着时间的推移,软件也定型了,想要再改错就要付出不可想象的维护代价。

T12

在这里插入图片描述
在这里插入图片描述
需要制定合理的迭代计划,通过早期的迭代明确用户需求,建立并证明系统核心架构,后期迭代以此架构为基础全面展开。

T13

在这里插入图片描述
在这里插入图片描述
软件构架设计是降低成本、改进质量、按时按需支付产品的关键因素
架构设计能够满足系统的性能、可维护性等品质;能够使得不同的利益相关人达成一致的目标,能够有效地管理复杂性

T14

在这里插入图片描述
在这里插入图片描述
业务模型、用例模型、分析模型、设计模型、进程模型、部署模型、组件模型、测试模型

T15

在这里插入图片描述
在这里插入图片描述
模块化:按模块划分系统,使得各模块间有良好的的接口
标准化:软件开发过程中的统一化,包括文档格式的一致、工作流程的一致
工厂化:用新技术替代传统的技术
流水组装:软件开发过程中,每个程序员负责自己各自模块的开发,最后对模块进行组装得到整个系统

T16

在这里插入图片描述
在这里插入图片描述
软件工程中最重要的两个点为技术设计理论
技术是软件工程师需要掌握的技术,如:数据库、数据结构等计算机方面的知识
设计理论是:开发软件的目标,如:为什么设计此软件、应解决哪些实际问题等等
有了明确的设计理念才能顺利开展后期的编程开发工作

T17

在这里插入图片描述
MDA,即模型驱动架构 (Model-Driven Architecture),是一种基于模型的软件开发方法论
在这里插入图片描述
模型是对系统的一种抽象。
建模的目的是为了更好地理解和管理系统复杂性支持系统需求、分析、设计、验证和确认等活动

T18

在这里插入图片描述
在这里插入图片描述
重用软件架构有助于改善软件质量,还可以提高软件的灵活性和标准化程度

T19

在这里插入图片描述
在这里插入图片描述
部署图包括节点、模式以及连接它们的中间件。
主要帮助安装和部署人员掌握系统的硬件物理拓扑结构。
与其他UML图相比,部署图有助于设计组件系统的硬件拓扑,所以它是系统网络拓扑结构的最终描述

T20

在这里插入图片描述
在这里插入图片描述
抽象:对事物进行简化、抓住事物本质的过程

分类:对事物进行归纳

分解:为了实现项目的目标,把项目要完成的工作,分解成一个个可控的小任务

复用:是将已有的软件成分用于构造新的软件系统。目的是为了缩减软件开发和维护的花费,是提高软件生产力和质量的一种重要技术

T21

在这里插入图片描述
在这里插入图片描述
(1)从用户角度描述执行用例的具体步骤,关注系统“做什么”而不是“怎么做”
(2)需要分析系统如何响应用户请求,可以对用例文档中系统的处理流程进一步细化

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/541464.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

python将图片批量排版插入Word文档

今天分享一个将图片批量插入word文档的小脚本,本脚本可以实现 jpg\png图片,可以混合在一起! 首先 我们需要设置每页word文档的排版需求,如:每页6张图片,一共是3行2列 pics_per_page 6,这是每页…

解说天下之操作系统

解说天下之操作系统 本文由桌案drawon (https://www.drawon.cn),云晶(https://www.yunjingxz.com)创始人根据多年从业经验, 从操作系统的起源,应用分类, 设计分类,以及资源使用角度对操作系统进…

leetcode 数据库题 175~185

leetcode 数据库题 175. 组合两个表176. 第二高的薪水177. 第N高的薪水178. 分数排名180. 连续出现的数字181. 超过经理收入的员工182. 查找重复的电子邮箱183. 从不订购的客户184. 部门工资最高的员工185. 部门工资前三高的所有员工小结 嗯。。。数据库题目就不贴原题内容了&…

00后是真卷不过,工作没两年,跳槽到我们公司起薪20K都快接近我了

在程序员职场上,什么样的人最让人反感呢? 是技术不好的人吗?并不是。技术不好的同事,我们可以帮他。 是技术太强的人吗?也不是。技术很强的同事,可遇不可求,向他学习还来不及呢。 真正让人反感的,是技术平平&…

cocosCreator自动化打包工具

前言: 使用nodeJs脚本化Cocos Creator自动化构建、编译。 版本:cocosCreator2.4.5。 简述:使用自动化构建-编译工具前提,你终端上配置了相关的环境,比如JDK、NDK、SDK(对于原生平台)&#xff0c…

Express实战个人订阅号实现网站登录

今天我们来实现一个使用个人订阅号实现网站的功能,后端使用的是 express 。其它框架原理基本一致,只是定义路由或返回响应数据部分代码跟 express 有所出入。先来一波效果图: 1. 前言 20 年 3 月在掘金写过一篇文章,介绍了使用 e…

使用cmake 构建构建新项目的时候,编译提示库找不到怎么办?

昨天帮其他部门同事解决Linux下Qt编译找不到Qt 依赖库 core的问题。过程很有特征性,可以推广到Linux下使用cmake构建项目时找不到库文件的广泛性问题。 先上图,结合事情经过讲述: 事情经过: 这里给大家介绍第一个重点&#xff1…

秘塔写作猫

秘塔写作猫是集AI智能写作、多人协作、改写润色、文本校对等功能为一体的AI原生创作平台,可以帮助不同群体大幅提升写作效率和生产力。 接下来小编就带大家了解一下该软件具体的一些功能,不论你是学生、上班族还是自媒体从业者等,该工具绝对可…

箭头函数与普通的函数有什么区别-M

箭头函数与普通的函数有什么区别 1、写法不同 在 js 中,像命名式函数、函数表达式都称为普通函数。对于普通函数,需要用function关键字来声明。而箭头函数则不需要使用function关键字,在箭头前面的括号里面写参数,后面的大括号里…

Linux 安装MySQL-5.7.30

1.官网下载MySQL 进入官网https://www.mysql.com/ 从下载页面下载社区版本其中社区版本免费,免费的午餐不提供技术支持. 页面中MySQL Enterprise Edition是企业版,企业版收费但是会提供技术支持, 点击图中红框下载社区版本 选择Download Arc…

AC,AP以及三阶段项目

特点:access:连接终端设备 只能通过1个vlan trunk:交换机与交换机相连 可以通过多个vlan 共同特点:交换机的端口收发数据的规则: 收:如果收到的数据,没有携带任何标签,则使用该端口…

01SpringCloudRibbon负载均衡

Ribbon负载均衡 Ribbon Eureka帮我们集成了负载均衡组件:Ribbon,简单修改代码即可使用。 什么是Ribbon:客户端负载均衡组件 开启负载均衡 1、Eureka中已经集成了Ribbon,所以我们无需引入新的依赖,直接修改代码。 2、…

Redis的主从集群搭建与配置

文章目录 Redis主从集群模式搭建过程分级管理容灾冷处理 Redis主从集群模式 Redis的集群模式 主从复制模式:利用主从复制原理,一主多从架构。读写分离,主节点可读可写,从节点只能提供读服务。哨兵模式:哨兵实现了自动化…

Vue 3 + Element Plus 简单用法

Element Plus: A Desktop UI toolkit for Vue.js 即 Vue 桌面 UI 工具包 基于 Vue 2 的组件库和基于 Vue 3 的组件库安装方法不同,基于 Vue 3 的组件库叫做 Element Plus。 MDBootstrap 与 Element UI 区别: MD Bootstrap vs ElementUI: W…

如何在金融企业推进故障演练?中国人寿分阶段实践总结

一分钟精华速览 越来越多企业正在通过故障注入和演练的方式提升系统可靠性,这其中金融行业的应用较为特殊。一方面其可靠性要求比非涉账类系统更高;另一方面金融行业有更加严格的监管要求,如客户、账目等信息都有严格约束。加之金融系统较其…

ActiveMQ基础学习简单记录

ActiveMQ基础学习简单记录 JMS是什么JMS消息模型JMS Message Type Activemq安装概念强化JMS的跨平台性JMS通用接口JMS希望达到的目标是什么 Activemq发送消息的三种模式至少一次至多一次精确一次可重复确认模式小结 Activemq支持众多协议Activemq支持的定时消息,延迟消息,优先级…

【C++技能树】类和对象的使用 --初始化列表,static,友元,内部类,匿名对象的理解与使用

Halo,这里是Ppeua。平时主要更新C语言,C,数据结构算法…感兴趣就关注我bua! 类和对象的使用 0. 初始化列表explicit关键字 1.Static静态成员变量2.友元2.1.友元函数2.2.友元类 3.内部类4.匿名对象4.匿名对象至此初始化列表,static…

【Linux】2. Shell运行原理与Linux权限操作

专栏导读 🍁作者简介:余悸,在读本科生一枚,致力于 C方向学习。 🍁收录于 C 专栏,本专栏主要内容为 C 初阶、 C 进阶、 STL 详解等,持续更新中! 🍁相关专栏推荐&#xff1…

Cloud Studio 有“新”分享

GitHub仓库推荐 Awesome Open Source Applications - 收集了各种开源应用程序,包括 Web 应用、桌面应用、移动应用等。Cloud Studio 一键运行 Free for Dev - 收集了各种免费的开源应用程序和工具,包括 Web 应用、桌面应用、移动应用等。Cloud Studio 一…

kaggle经典赛 | IEEE欺诈检测竞赛金牌方案分享

https://www.kaggle.com/competitions/ieee-fraud-detection 赛题背景 想象一下,站在杂货店的收银台,身后排着长队,收银员不那么安静地宣布你的卡被拒绝了。在这一刻,你可能没有考虑决定你命运的数据科学。 尴尬,并…