最新架构复习题目.docx
《最新架构复习题目.docx》由会员分享,可在线阅读,更多相关《最新架构复习题目.docx(23页珍藏版)》请在冰豆网上搜索。
最新架构复习题目
一、选择题
1.用例图是从谁的角度出发对如何使用系统进行描述的?
(A)
A.用户B.系统分析师C.系统设计师D.程序员
2.下列关系中哪个不是类图中可能存在的关系(C)
A.实现B.泛化C.包含D.关联
5.就UML而言,领域模型最常采用(B)来表示。
A.类图和序列图B.类图和状态图
C.活动图和状态图D.用例图和状态图
6.(C)决定架构。
A.用例B.质量属性C.关键需求D.特色需求
7.(A)将一个类的接口转换成客户希望的另外一个接口,使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。
A.Adapter(适配器)模式B.Command(命令)模式
C.Singleton(单例)模式D.Strategy(策略)模式
8.某服务器软件系统能够正确运行并得出计算结果,但存在“系统出错后不能在要求的时间内恢复到正常状态”和“对系统进行二次开发时总要超过半年的时间”两个问题,上述问题依次与质量属性中的(D)相关。
A.可用性和性能B.性能和可修改性
C.性能和可测试性D.可用性和可修改性
9.架构的质量属性不包括:
(B)
A.概念完整性B.功能丰富
C.正确性和完整性D.可构建性
10.在5视图架构中,与用户所关心的功能子系统密切相关的是(A)
A.逻辑架构B.开发架构C.数据架构D.物理架构
11.在四层架构“UI层+SI层+PD层+DM层”的设计中,一定存在的层是(C)
A.UI层B.SI层C.PD层D.DM层
15.高层架构成果的核心是(C)
A.领域模型B.关键需求C.概念架构D.架构原型
16.下列说法错误的一项的是(D)
A.逻辑视图主要支持系统的功能需求,即系统提供给最终用户的服务
B.开发视图也称模块视图,主要侧重于软件模块的组织和管理
C.进程视图侧重与系统的运行特性,主要关注一些功能性需求,例如系统的性能和可用性。
D.物理视图主要考虑如何把软件映射到硬件上,它不需要要考虑到系统性能、规模、可靠性等。
17.Kruchten在1995提出了“4+1”模型,从5个不同的视角来描述软件体系结构,其中“4”不包括的视图是(D)
A.逻辑视图B.开发视图C.物理视图D.场景视图
18.下列哪个选项是描述系统的静态结构(A)
A.逻辑视图和开发视图B.进程视图和物理视图
C.开发视图和物理视图D.开发视图和进程视图
19.在RUP中采用“4+1”视图模型来描述软件系统的体系结构。
在该模型中,系统工程师侧重于(D)。
A.开发视图B.运行视图C.逻辑视图D.物理视图
二、填空题
1.做好架构设计的3个必要条件:
看透需求、架构大方向正确、设计好架构的各个方面。
2.鲁棒图所包含的3种元素是:
边界对象、控制对象、实体对象。
3.概念架构设计的任务是:
划分顶级子系统、架构风格选型、开发技术选型、二次开发技术选型、集成技术选型。
5.在常见的四层架构设计模式中,所划分的四个层次分别是:
UI层(用户界面层)、SI层(系统交互层)、PD层(问题领域层)、DM层(数据管理层)。
7.组件可分为原子组件和复合组件两种。
9.领域建模是以提炼领域概念,建立领域模型为目的的活动。
10.需求分析的主线是:
从确定系统目标开始,后续凭借“范围+Feature+上下文图”三剑客研究高层需求,再后续建立开发人员较熟悉的用例模型。
11.破解“领域知识不足”死结的关键是:
理顺概念关系,搞清业务规则。
13.越过从质量需求到设计的鸿沟,需要搭桥,这个“桥”就是场景技术,其关键是使笼统的非功能目标明确化。
14.功能树的定义是否合理,我们应该从两个方面来评判:
一是面向使用,体现使用价值;二是覆盖全面,没有范围遗漏。
15.在常见的三层架构设计模式中,所划分的三个层次分别是:
展现层、业务层、数据层。
16.封装驱动设计方法的4个步骤分别是是:
研究需求、粗粒度分层、细粒度划分模块、用例驱动的模块划分结构评审优化。
17.真实的软件系统其实是由组件递归组合而成的。
18.架构视图的本质是分而治之,能帮助架构师从不同角度进行设计。
19.封装驱动设计方法的设计目的是细粒度模块划分。
三、判断题
4.需求捕获与需求分析是两个相互独立的阶段。
(×)
5.架构设计师对系统的质量属性应平等看待,在系统设计中应全部予以解决。
(×)
6.软件架构是不同涉众之间进行交流的手段。
(√)
7.系统思考就是以整体的观点对复杂系统构成部分之间的联系进行研究。
(√)
8.架构设计中,“功能树”与“功能模块结构图”是同一回事。
(×)
9.分层架构的设计思想是“封装内部协作”。
(×)
12.架构是一个完整的软件系统才具有的。
(×)
14.细化架构的设计只需依据概念架构设计进行即可。
(×)
四、简答题
1.请分别简述“组成派”与“决策派”软件架构概念的显著特点。
组成派:
1)关注架构实践中的客体——软件,以软件本身为描述对象;
2)分析了软件的组成,即软件由承担不同计算任务的组件组成,这些组件通过相互交互完成更高层次的计算。
决策派:
1)关注架构实践中的主体——人,以人的决策为描述对象;
2)归纳了架构决策的类型,指出架构决策不仅包括关于软件系统的组织、元素、子系统和架构风格等几类决策,还包括关于众多非功能需求的决策。
2.领域建模的目的是什么?
其实践精髓是什么?
领域建模的目的是:
透过问题领域的重重现象,捕捉其背后最为稳固的领域概念及这些概念之间的关系。
实践精髓:
是“业务决定功能,功能决定模型”,理解了这个理念,评审领域模型也变得再自然不过了。
3.请简述验证架构的具体步骤。
首先,必须将架构设计方案付诸实现,得到的架构原型可以是纯粹的垂直演进原型,也可以是基于架构框架的原型。
之后,分头进行运行期和开发期质量属性的测试或评审,分别得到运行期质量的测试结果和开发期质量的评审结果。
最后,判定架构设计是否合乎要求,如果不合格,应决定下一步需要对架构的哪些方面进行重新设计。
最终,通过验证的架构设计方案就可以作为大规模开发的基础了,这时投入大量资源是合适的,因为重大的技术风险已在架构设计中得到了解决和验证
4.请用表格的形式归纳出不同需求是如何以不同原理影响架构设计的。
5.请简述“功能树”与“功能模块结构图”的区别。
“功能树”是一种功能分解结构,“功能模块结构图”则是对系统进行结构分解;
“功能树”刻画问题领域,“功能模块结构图”刻画解决方案;
“功能树”属于需求,“功能模块结构图”属于设计;
“功能树”是架构师从上游(例如需求分析师那里)得到的,“功能模块结构图”则是架构师要亲自设计出来的。
6.请简述需求分析工作中所涉及到的“技能项”。
细化架构设计的“技能项”——15个设计任务
7.封装驱动设计方法(Encapsulation-DrivenDesign方法,EDD方法)的设计目的是什么?
包含哪些具体步骤?
封装驱动设计方法(Encapsulation-DrivenDesign方法,EDD方法)的目的是:
细粒度模块划分。
封装驱动设计方法包含4个步骤:
研究需求、分层、划分模块、评审优化
8.请简述验证架构的手段。
答:
对于软件项目而言,往往需要开发出架构原型,并对原型进行测试和评审来达到验证的目的;而对于软件产品而言,可以开发一个框架来贯彻架构设计方案,再通过在框架之上开发特定的垂直原型来验证特定的功能或质量属性。
9.三层架构设计模式中,层与层之间的关系是什么?
展现层会向业务层传递参数、发出服务请求、并获取业务层返回的信息显示在界面上。
业务层接收展现层的命令、解析传递过来的参数、判断各种合法性、并具体实现功能的各种“运算”要求、返回展现层所要的信息。
数据访问层不能被展现层直接调用,而必须由业务层来调用。
10.整个架构设计包括哪些步骤?
1.需求分析2.领域建模3.确定关键需求4.概念架构设计5.细化架构设计6.架构验证
11.如何评审物理架构设计,甄选出更合理的物理部署方案呢?
从思维要点层面,“开销”和“争用”是核心。
即,围绕物理节点、网络、软件单元、数据单元等物理架构设计的基本内容,通过如下4个方面的设计优化来“降低开销”和“避免争用”:
如何降低物理节点“内”的计算开销
如何降低物理节点“间”的通信开销
如何避免物理节点“内”CPU、内存、硬盘等资源的争用
如何避免物理节点“间”网络的带宽资源冲突
五、分析设计题
《作业汇总》中的题目+以下题目
1.请分析以下案例中所设计的模块划分结构,指出该设计的优缺点。
某公司要设计一个名为MailProxy的邮件代发系统。
众多公司的“客户服务系统”都需要批量地向客户发送邮件。
(“客户服务系统”管理着企业对客户的服务内容,包括客户投诉、故障处理、客户咨询、客户查询、客户回访、客户建议、客户关怀等服务信息以及服务指标信息等。
)而MailProxy作为一款软件产品,其核心功能就是:
邮件代发。
为此设计师为MailProxy系统设计了如下图所示的模块划分结构(粗粒度功能模块划分):
2.阅读下列说明和图,回答问题1至问题4。
【说明】
某医院欲开发病人监控系统。
该系统通过各种设备监控病人的生命体征,并在生命体征异常时向医生和护理人员报警。
该系统的主要功能如下:
(1)本地监控:
定期获取病人的生命体征,如体温、血压、心率等数据。
(2)格式化生命体征:
对病人的各项重要生命体征数据进行格式化,然后存入日志文件并检查生命体征。
(3)检査生命体征:
将格式化后的生命体征与生命体征范围文件中预设的正常范围进行比较。
如果超出了预设范围,系统就发送一条警告信息给医生和护理人员。
(4)维护生命体征范围:
医生在必要时(如,新的研宄结果出现时)添加或更新生命体征值的正常范围。
(5)提取报告:
在医生或护理人员请求病人生命体征报告时,从日志文件中获取病人生命体征生成体征报告,并返回给请求者。
(6)生成病历:
根据日志文件中的生命体征,医生对病人的病情进行描述,形成病历存入病历文件。
(7)查询病历:
根据医生的病历査询请求,査询病历文件,给医生返回病历报告。
(8)生成治疗意见:
根据日志文件中的生命体征和病历,医生给出治疗意见,如处方等,并存入治疗意见文件。
(9)查询治疗意见:
医生和护理人员査询治疗意见,据此对病人进行治疗。
现采用结构化方法对病人监控系统进行分析与设计,获得如图1-1所示的顶层数据流图和图1-2所示的0层数据流图。
图1-1顶层数据流图
图1-20层数据流图
【问题1】
使用说明中的词语,给出图1-1中的实体El〜E3的名称。
答:
E1:
病人E2:
护理人员E3:
医生
【问题2】
使用说明中的词语,给出图1-2中的数据存储D1〜D4的名称。
答:
D1:
生命体征范围文件D2:
日志文件
D3:
病历文件D4:
治疗意见文件
【问题3】
图1-2中缺失了4条数据流,使用说明、图1-1和图1-2中的术语,给出数据流的名称及其起点和终点。
答:
起点
数据流名称
终点
格式化生命体征
格式化后的生命体征
检査生命体征
生成病历
病历
病历文件
D2
病历
生成病历
本地监控
体温、血压、心率等数据
格式化生命体征
【问题4】
说明实体E1和E3之间可否有数据流,并解释其原因。
答:
不可有数据流,因为E1和E3之间没有加工。
3.阅读下列说明,回答问题1至问题3。
【说明】
某服装销售公司拟开发一套服装采购管理系统