架构复习题目.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。
【说明】
某服装销售公司拟开发一套服装采购管理系统,以便对服装采购和库存进行管理。
【需求分析】
(1)采购系统需要维护服装信息及服装在仓库中的存放情况.服装信息主要包括:
服装编码、服装描述、服装类型、销售价格、尺码和面料,其中,服装类型为销售分类,服装按销售分类编码.仓库信息包括:
仓库编码、仓库位置、仓库容量和库管员。
系统记录库管员的库管员编码、姓名和级别。
一个库管员可以管理多个仓库,每个仓库有一名库管员。
一个仓库中可以存放多类服装,一类服装可能存放在多个仓库中.
(2)当库管员发现有一类或者多类服装缺货时,需要生成采购订单。
一个采购订单可以包含多类服装。
每类服装可由多个不同的供应商供应,但具有相
同的服装编码.采购订单主要记录订单编码、订货日期和应到货日期,并详细记录所采购的每类服装的数量、采购价格和对应的多个供应商。
(3)系统需记录每类服装的各个供应商信息和供应情况.供应商信息包括:
供应商编码、供应商名称、地址、企业法人和联系电话。
供应情况记录供应商所供应服装的服装类型和服装质量等级。
一个供应商可以供应多类服装,一类服装可由多个供应商供应.库管员根据入库时的服装质量情况,设定或修改每个供应商所供应的每类服装的服装质量等级,作为后续采购服装时,选择供应商的参考标准。
【概念模型设计】
根据需求阶段收集的信息,设计的实体联系图(不完整)如图2-1所示.
图2—1实体联系图
【逻辑结构设计】
根据概念模型设计阶段完成的实体联系图,得出如下关系模式(不完整):
库管员(库管员编码,姓名,级别)
仓库信息(
(1),仓库位置,仓库容量)
服装(服装编码,服装描述,服装类型,尺码,面料,销售价格)
供应商(供应商编码,供应商名称,地址,联系电话,企业法人)
供应情况(
(2),服装质量等级)
采购订单((3))
采购订单明细((4))
【问题1】
根据需求分析的描述,补充图2—1中的联系和联系的类型。
答:
【问题2】
根据补充完整的图2—1,将逻辑结构设计阶段生成的关系模式中的空
(1)〜(4)补充完整,并给出其主键(用下划线指出)。
答:
(1)仓库编码,库管员
(2)供应商编码、服装编码,服装类型
(3)订单编码,订货日期,应到货日期
(4)供应商编码、服装编码、订单编码,数量,采购价格
【问题3】
如果库管员定期需要轮流对所有仓库中的服装质量进行抽査,对每个仓库中的每一类被抽査服装需要记录一条抽查结果,并且需要记录抽查的时间和负责抽查的库管员。
请根据该要求,对图2—1进行修改,画出修改后的实体间联系和联系的类型。
答:
4.阅读下列说明和图,回答问题1至问题3。
【说明】
一个简单的图形编辑器提供给用户的基本操作包括:
创建图形,创建元素,选择元素以及删除图形。
图形编辑器的组成及其基本功能描述如下:
(1)图形有文本元素和图元元素构成,图元元素包括线条,矩形和椭圆。
(2)图形显示在工作空间中,一次只能显示一张图形(即当前图形,current)
(3)编辑器提供两种操作图形的工具:
选择工具和创建工具。
对图形进行操作时,一次只能使用一种工具(即当前活动工具,active)。
①创建工具用于创建文本元素和图元元素。
②对于显示在工作空间中的图形,使用选择工具能够选定其中所包含的元素,可以选择一个元素,也可以同时选择多个元素。
被选择的元素称为当前选中的元素(selected)。
③每种元素都具有对应的控制点。
拖拽选定元素的控制点,可以移动元素或者调整元素大小。
现在采用面向对象方法开发该图形编辑器,使用UML进行建模。
构建出的用例图和类图分别如图3-1和3—2所示。
图3—1用例图
图3-2类图
【问题1】
根据说明中的描述,给出图3—1中U1和U2所对应的用例,以及
(1)和
(2)处所对应的关系.
答:
U1:
移动元素U2:
调整元素的大小
(1)〈〈extend〉〉
(2)〈>
【问题2】
根据说明中的描述,给出图3-2中缺少的C1〜C8所对应的类名以及(3)〜(6)处所对应的多重度。
答:
C1:
创建工具C2:
选择工具C3:
线条工具C4:
矩形工具
C5:
椭圆工具C6:
线条C7:
矩形C8:
椭圆
(3)0。
.1(4)1(5)1(6)1.。
*或*
【问题3】
图3-2中的类图设计采用了桥接(Bridge)设计模式,请说明该模式的内涵。
答:
Bridge模式将对象的抽象和其实现分离,从而可以独立地改变它们。
作业0
1。
请从软件组成的角度说明“架构"的概念,并指明“组成派”和“决策派”架构概念的特点分别是什么?
2.“五视图”架构法是什么?
请分别做具体介绍。
作业1
1。
什么是系统边界?
什么是参与者?
系统边界指一个软件系统能够处理的整个问题空间的范围。
参与者指的是存在于系统之外,透过系统边界与系统进行有意义交互的任何事物.
2。
识别参与者应遵循怎样的步骤?
从交互识别:
(1)谁使用系统的主要功能?
(2)谁改变系统的数据?
(3)谁从系统获得信息?
(4)谁需要系统的支持以完成日常工作任务?
(5)谁(或什么)对系统运行产生的结果感兴趣?
从维护、管理识别:
(6)谁负责维护、管理并保持系统正常运行?
从设备或外部条件识别:
(7)系统需要应付(处理)哪些硬件设备?
(8)系统需要和哪些外部系统交互?
(9)时间、气温等条件是否对系统产生影响?
3。
在线售票订位系统中,客户(一般客户/企业客户)可以建立在线订位销售事件、事件确认、执行在线信用卡付费、个人或团体账户修改和管理;系统操作者可以建立在线销售定位事件、查询目前销售订位状况;系统设计维护者可以建立在线售票定位事件、查询目前销售定位情况、在线系统维护功能和系统环境设置。
根据以上描述,请分析出该系统的参与者和用例,并利用RationalRose工具绘制出需求用例模型。
4。
根据下面图3.35所示的结账系统用例图,描述出其中涉及到的参与者、用例以及相互关系。
答:
参与者:
收款员
用例:
结账、扫描商品信息、累计消费积分、现金结账、信用卡结账
关系:
现金结账和信用卡结账这两个用例与结账之间是泛化关系;
累计消费积分与结账之间是扩展关系;
扫描商品信息与结帐之间是包含关系;
收款员与结帐之间是关联关系。
作业2
1.请为下面这段Java代码补充类图.
publicclassStudent{
privateStringname;
publicvoidsetName(Stringname){
this。
name=name;
}
publicStringgetName(){
returnthis.name;
}
}
2。
请根据以下描述,给出系统的UML类设计方案.
系统名称:
农夫果园游戏系统
人物角色:
农夫(Farmer)、市场调查员(Inquirer)、农场主(Boss)
系统实物:
各种果树(Fruit)、果园(Garden)
功能需求:
(1)农夫可以根据市场行情种植各种水果;
(2)市场调查员可以了解市场行情;
(3)农场主可以向农夫、市场调查员发布命令;
(4)各种果树都具有种植(plant)、成长(grow)、收获(harvest)行为;
(5)果园是人物和实物进行交易的经营场所。
3.根据下面的陈述绘制类图。
(1)学生包括本科生、研究生两种。
(2)研究生可以利用课余时间担任助教。
(3)教师包括讲师和教授两种.
(4)一名助教可以为一位讲师或一位教授助课,一位讲师只能有一名助教,一位教授可以有5名助教。
作业3
1.时序图的构成要素有哪些?
协作图由哪些部分组成?
时序图包括如下四种构成元素:
对象(Object)、生命线(Lifeline)、消息(Message)、激活期(Activation).
一般来讲,协作图包括如下三种构成元素:
对象(Object)、链(Link)和消息(Message).
2.根据如下文字描述,绘制出“ATM取款"最理想场景(无需考虑特殊情况)的时序图:
(1)开始用户“Jack"将银行卡插入到读卡器,读卡器读取卡号,打开“Jack”的账目对象,并初始化屏幕,屏幕提示输入PIN密码,“Jack”输入密码,然后系统验证密码与账户对象,发出相符的信息。
(2)ATM屏幕向“Jack”提供操作选项,“Jack”选择取款,然后屏幕提示“Jack"输入取款金额,他选择了2000元RMB,系统启动账目对象进行核实,之后从账户中取钱.
(3)系统启动账目对象进行核实的过程如下:
首先,验证“Jack”的账目至少有2000元RMB;然后从中扣除2000元RMB,再让吐钞机提供2000元RMB现金;另外还需要让票据打印机提供取款凭据;最后让读卡器退卡。
3。
建立“教务管理系统”中“学位评审"的协作图,其中学生学位评审流程描述如下:
(1)教务人员将需评审的学生的学号输入学位初评模块。
(2)学位初评模块会查询相应学生的成绩和奖惩记录,来作为学位评定的依据。
(3)学位初评模块将初评结果打印.
(4)学位初评打印稿被提交给教务人员。
作业4
1。
根据如下描述,绘制电梯状态图。
(1)电梯开始处于空闲(Idle)状态,当有人按下按钮要求使用电梯时(isrequired事件发生),电梯进入运行(Run)状态;
(2)如果电梯的当前楼层比想要的楼层高时([currentFloor>desiredFloor]监护条件成立),电梯进入下降(MovingDown)状态;
(3)反之,如果电梯的当前楼层比想要的楼层低时([currentFloor〈desiredFloor]监护条件成立),电梯进入上升(MovingUp)状态;
(4)如果电梯的当前楼层与想要的楼层相同时([else]监护条件成立),电梯门打开(DoorOpen);
(5)在电梯上升或下降期间,每经过一个楼层就判断[currentFloor=desiredFloor]监护条件是否成立,若不成立,继续移动,若成立,就进入停止(Stop)状态,15秒后,电梯门自动打开(DoorOpen),2分钟后,电梯门自动关上(DoorClose),如果有更多的电梯使用请求,进入运行(Run)状态,反之,则进入空闲(Idle)状态。
2。
根据如下描述,绘制出“创建文档”的活动图。
(1)打开Word字处理软件包;
(2)新建一个文件;
(3)命名该文档并为该文档指定一个存放目录;
(4)键入文档的内容;
(5)如果文档中需要图形,则打开图形软件包,创建图形,将图粘贴到文档中;
(6)如果文档中需要电子表格,再打开电子表格软件包,建立电子表格,将电子表格粘贴到文档中;
(7)保存该文件;
(8)打印一份该文档的硬拷贝;
(9)退出Office软件包。
作业5
1、组件图中的组件是什么?
有哪些类型?
请举例说明。
组件也称构件,是系统中可替换的物理部件,是定义了良好接口的物理实现模块。
换言之,组件是遵从一组接口且提供其实现的、物理的、可替换的部分。
如程序源代码、子系统、动态链接库、ActiveX控件、JSP页面等都可以被认为是组件。
通常存在三种类型的组件:
配置组件(DeploymentComponent)、工作产品组件(WorkProductComponent)、执行组件(ExecutionComponent)。
(1)配置组件:
也称二进制组件,这些组件构成了一个可执行的系统,如DLL文件、EXE文件、COM+对象、CORBA对象、EJB、动态Web页、数据库表等.
(2)工作产品组件:
也称源组件,这些组件属于开发过程产物,这些组件不直接参与可执行系统,而是开发中的工