UML试题解析.docx
《UML试题解析.docx》由会员分享,可在线阅读,更多相关《UML试题解析.docx(56页珍藏版)》请在冰豆网上搜索。
UML试题解析
《实验报告一定要交》
《考试时间:
17周周2(12月24日)上午9:
00-11:
00,教三203,请班长费心通知》
《复习》
《论述》基于UML的软件开发的一般过程
答:
UML是按OO思想进行系统建模时使用的一组表示法,它并不对采用何种OO分析、设计以及开发过程模型构成限制。
基于UML的软件开发通常是以体系结构为中心,用例驱动的迭代
和增量式开发,并结合职责分配模式进行具体设计。
开发过程可以包括计划和细化、迭代的构造和实施3大阶段。
在经过一个初步的计划和细化阶段后,进入若干迭代构造开发周
期,每个周期都包含分析、设计、构造和测试步骤。
(1)计划和细化:
通过各种传统的需求获取手段(调查、访谈、原型等)得出系统目标、系统功能和系统属性,撰写系统规格说明。
基于参与者和外部事件(动宾词组)构建用例,以增进对领域过程和功能需求的理解《做什么》。
按照风险、业务主线及对体系结构的影响程度(系统属性)划分用例的优先级,并据此决定用例的时间调度。
对高优先用例采用
扩展格式细化。
同时建立概念模型草案、系统体系结构草案。
(2)分析阶段:
根据当前周期的用例描述,采用概念目录列表、非正式分析或事务模式,识别出相关概念,建立初始概念模型,根据通用关联列表和信息存储的需要,为概念模型添加关联和属性。
将用例分解为系统事件,并对应系统操作,建立系统顺序图;分析系统操作被调用后系统状态(概念)的变化,为系统操作建立契约,进一步理解系统行为《做的效果》。
(3)设计阶段:
设计一个合理的体系结构,建立真实用例。
针对每个系统操作,使用操作契约和契约的后置条件以及用例描述文档作为起点,按照职责分配模式或BCE模式为对象(来自概念模型)分配职责,通过协作图体现对象间的交互《怎么做》。
同时参照概念模型和协作图中的消息,建立设计类图,并根据可见性要求设计关联
(4)构造和测试阶段:
从设计类图创建类的定义(属性和方法原型),根据协作图创建方法实现。
用OOPL实现设计制品到代码的映射,对系统进行相关的测试。
进入下一个迭代周期,在制品同步以后,识别更多的需求,选取所需开发的用例,更新用例
图,扩展概念模型,并运用泛化、包和聚合等技术概括日益增多新概念,拓展系统顺序图和系统操作契约;运用更多的职责分配模式进行设计(并根据需要设计与外部系统、其他子系
统、持久化设施的交互机制);进一步构造并测试。
《论述》:
请谈一谈对OOD中“一个中心”:
开闭原则(OCP),“两个基本点”:
高内聚,低耦合,“四项基本原则”:
Liskov替换原则(LSP),依赖倒置原则(DIP),接口分离原则(ISP),单一职责原则(SRP)的理解
开闭原则(OCP)
OO中最重要的设计原则,指一个模块在扩展性方面应该是开放的,而在更改性方面应该是封闭的低耦合度:
是在设计过程要记住的一个原则,它是一个时刻需要注意的隐含设计目标。
是一个检验标准。
高聚合度:
确保将复杂性保持在可控制的范围内,也是一个检验标准。
Liskov替换原则
子类可以替换父类出现在父类能出现的任何地方.软件实体如果使用的是一个基类,那么一定适用于其子类,而且它根本不能察觉出基类对象和子类对象的区别。
依赖倒置原则–依赖关系应该是尽量依赖接口(或抽象)类,而不是依赖于具体类.即针对接口编程,不
要针对实现编程。
接口分离原则一个类对另外一个类的依赖是建立在最小的接口上。
设计时采用多个与特定客户类(Client)有关的接口比采用一个通用接口更好.
单一职责原则:
就一个类而言,应该有且仅有一个引起它变化的原因。
《论述》前5个常用GRASP职责分配模式的名称、要点或意图专家(expert):
将职责分配给信息专家——掌握为了履行职责所必需的信息的类(谁懂的多就让谁干)
创建者(creator):
大的对象有责任创建小的对象,这是OOD/P中最常见的任务。
高聚合度或高内聚(highcohesion):
是一个检验标准,用于判断一个类中的各个职责之间相
关程度和集中程度(可重用性的内因)。
低耦合度或低耦合(lowcoupling):
是一个检验标准,用于判断类间依赖程度是否较小(可重用性的外在表现)。
控制者(controller):
谁来统一协调处理一个用例的各个系统事件,以使状态信息保持一致?
《论述》后4个常用GRASP职责分配模式的名称、要点或意图
•多态:
当相关的可选择的方法或行为随着类型变化时,将行为的职责——使用多态(Polymorphism)的操作——
分配给那些行为变化的类型
•纯虚构:
给一个人造类分配一组高度内聚的职责。
人造类不代表问题领域的任何事物——它只是纯虚构的,为了支持高度的内聚性、低耦合和重用。
这个虚构物的设计是非常干净的或纯的——因此这是一个纯虚构。
如持久存储代理。
•中介者:
将职责分配给一个中间对象以便在其他构件或服务之间进行仲裁,这样这些构件或服务没有被直接耦合。
这个中间对象(intermediary)在其他构件或服务间创建一个中介者(Indirection)。
如适配器、、观察者模式。
•“不要和陌生人讲话”:
分配职责给一个客户端的直接对象以使它与一个间接对象进行协作,这样客户端就无需知道这个间接对象。
目的是为了避免将一个客户端同间接对象发生信息耦合和避免直接对象的内部描述。
第1章系统建模与分析设计技术的演变**************
一、选择题ACDB
1.封装是指把对象的(A)结合在一起,组成一个独立的对象。
A.属性和操作B.信息流C.消息和事件D.数据的集合
2.封装是一种(C)技术,目的是使对象的生产者和使用者分离,使对象的定义和实现分开。
A.工程化B.系统维护C.信息隐蔽D.产生对象
3.面向对象方法中的(D)机制使子类可以自动地拥有(复制)父类全部属性和操作。
A.约束B.对象映射C.信息隐蔽D.继承
4.使得在多个类中能够定义同一个操作或属性名,并在每一个类中有不同的实现的一种方法是(B)。
A.继承B.多态性C.约束D.接口二、填空题
6.软件生存周期由(软件定义)、(软件开发)和(软件使用与维护)三部分组成。
8.面向对象技术采用以类为中心的(封装)、(继承)、(多态)等不仅支持软件复用,而且使软件维护工作可靠有效,可实现软件系统的柔性制造。
《简答》软件过程模型的含义
软件过程(SoftwareEngineeringProcess)是为了获得高质量软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤。
《套路》通常使用生命周期模型简洁地描述软件过程。
生命周期模型规定了把生命周期划分成哪些阶段
及各个阶段的执行顺序,因此,也称为过程模型。
请指出三种以上现实生活中的常用模型,并说明它们分别在各自的领域中发挥了什么样的作用。
1)电路图:
电子产品设计、生产、维修
2)园区沙盘:
直观、立体化地展示园区的景观、布局
3)地图:
导航、指路等
请简要说明建模的意义和建模的原则。
建议能够帮助我们按照实际情况或按我们需要的样式对系统进行可视化;提供一种详细说明系统的结构或行为的方法;给出一个指导系统构造的模板;对我们所做出的决策进行文档化在建模时应遵循以下原则:
选择要创建什么模型对如何动手解决问题和如何形成解决方案有着意义深远的影响;每一种模型可以在不同的精度级别上表示;最好的模型是与现实相联系的;单个模型是不充分的。
对每个重要的系统最好用一组几乎独立的模型去处理
第2章统一建模语言UML*******************
一、选择题ABCDB
1.UML的软件以(A)为中心,以系统体系结构为主线,采用循环、迭代、渐增的方式进行开发。
A.用例B.对象C.类D.程序
2.UML的(B)模型图由类图、对象图、包图、构件图和配置图组成。
A.用例B.静态C.动态D.系统
3.UML的(C)模型图由活动图、顺序图、状态图和合作图组成。
A.用例B.静态C.动态D.系统
4.UML的最终产物就是最后提交的可执行的软件系统和(D)。
A.用户手册B.类图C.动态图D.相应的软件文档资料
5.在UML的需求分析建模中,(B)模型图必须与用户反复交流并加以确认。
A.配置B.用例C.包D.动态
二、填空题
6.UML分析和设计模型由三类模型图表示。
三类模型图是:
(用例)模型图、(静态)模型图和(动态)模型图。
8.UML开发过程是一种二维结构软件开发过程,软件项目开发过程流包括的核心工作内容是:
(分析)、(设计)、(实现)、
(测试)和(配置)。
9.UML中的五个不同的视图可以完整地描述出所建造的系统,这五种视图是(用例)视图、(逻辑)视图、(构件)视图、(进程)视图和(配置)视图
10.UML中有10种基本图可以完整地描述出所建造的系统,这10种图是(用例图;;;类图、对象图、包图、构件图、配置图;;;;活动图、顺序图、状态图,合作图)
四、综合(22、24、33)
《简答》22.UML软件开发过程的特征是什么?
UML软件开发的基本特征是:
以用例驱动开发过程,以系统体系结构为中心,以质量控制和风险管理为目标,采用反复(迭代、循环)、渐增式的螺旋上升式开发过程。
《简答》24.UML中的类图建模的目的与意义是什么?
《名正言顺》《事物是普遍联系的》类图是用类和它们之间的关系描述系统的一种图示,展示了系统中类的静态结构和类与类之间的相互联系,表示一个系统的逻辑结构。
类图是构件其他图的基础,没有类图,也就没有状态图、合作图等其他图,也就无法表示系统的其他各个方面。
《简答》33.UML中的顺序图建模目的与意义是什么?
顺序图用来描述对象之间动态的交互关系,着重体现对象间消息传递的时间顺序。
作为动态模型制品之一,顺序图可以描述系统的动态行为和控制结构。
通过描述对象间动态合作关系,显示对象之间的交互过程以及交互顺序,同时描述了为满足用例要求所进行的活动以及活动间的约束关系。
《简答》请说明蓝图和草图的区别,并简单描述其适用的场景。
蓝图一般是指采用CASE工具绘制的、正式的、规范的UML模型;而草图则通常是指手工绘制的、规范度较低的在纸张的UML模型。
对于局部的、重要性不高的、共享范围较小的UML模型,直接将草图扫描到电脑存档即可;对于全局的、重要性高的、高度共享的,在草图的基础上用CASE工具绘制成为正式的蓝图,并将其纳入统一的模型管理中
第3章需求分析与用例建模************
一、选择BACDDAA
1.可行性研究分析包括经济可行性分析、技术可行性分析和(B)。
A.风险可行性分析B.法律可行性分析
C.资源可行性分析D.效益可行性分析
2.UML的客户需求分析模型包括(A)模型、类图、对象图和活动图组成。
A.用例B.静态C.动态D.系统
3.UML客户需求分析使用的CRC卡上“责任”一栏的内容主要描述类的(C)和操作。
A.对象成员B.关联对象C.属性D.私有成员
4.UML客户需求分析产生的用例模型描述了系统的(D)。
A.状态B.体系结构C.静态模型D.功能要求
5.在UML的需求分析建模中,用例模型必须与(D)反复交流并加以确认。
A.软件生产商B.用户C.软件开发人员D.问题领域专家
6.在UML的需求分析建模中,对用例模型中的用例进行细化说明应使用(A)。
《图->-文字>图》
A.活动图B.状态图C.配置图D.构件图
7.活动图中的分劈和同步接合图符是用来描述(A)。
A.多进程的并发处理行为B.对象的时序C.类的关系D.系统体系结构框架二、填空题
10.软件项目的可行性研究分析中,技术可行性研究包括(风险分析)、(资源分析)、(技术分析)3部分组成。
11.在UML软件开发过程的需求分析阶段,建立用例模型的步骤分为(确定系统范围、参与者和用例)、(描述用例)、
(用例分类、确定用例之间的关联)、(建立用例图)和(定义用例图的层次结构)及审核用例模型。
12.用例图中以实线方框表示系统的范围和边界,在系统边界内描述的是(用例或系统内部元素),在边界外描述的是(参与者)。
13.用例模型中的执行者可以是(人)也可以是(外部系统)。
14.用例模型中的用例之间的关联有(继承)关联、(扩展)关联、(包含)关联和(使用)关联。
在RUP的“4+1”视图中,这个1表示的是什么,它有什么作用。
这个1是用例视图。
它是最基本的需求分析模型,是可被最终用户看到的系统行为的用例组成。
常用的模型包括用例图、交互图、状态图、活动图等
《简答》用例、用例模型用例:
是一个叙述型文档,用来描述一个参与者(一个外部的主动者)使用系统完成某个过程时的事件发生顺序。
(用例是对领域过程的描述,尽管它不是真正面向对象的,但采用用例可以增进对需求的理解,因此仍然OO方法学中非常重要和广泛采用的需求分析制品。
)
用例模型:
是一种使用用例来描述系统功能需求的模型,包括高层用例、基本用例、(扩展用例、真实用例)以及描述用例、参与者之间关系的用例图。
《分析》根据要求画用例图。
(10分)
在图书管理系统中,读者可以通过管理员进行借书、还书、预约借书和取消预约等操作。
其中借书必须先进行图书查询工作;还书时,如果读者所借书籍超期,还要进行超期罚款。
(1)请画出描述该业务的用例图(5分)
(2)说明用例“借书”与“图书查询”之间,“还书”与“超期罚款”之间关系的含义。
(1)
借书
图书查询
管理员
还书<>
读者查询
超期罚款
预约书籍
读者取消预约
(2)include意味着must,表示大用例的流程必须包含小用例的流程;extend意味着option,表示大用例的流程可选地被小用例的流程扩展。
《分析》。
一个人事管理信息系统的需求如下:
所有用户需登录系统;一般用户可以查看一般报表,导出一般报表和打印一般
报表;录入员可以新增数据、查看数据和修改数据;领导可以查看高级报表。
(1)请使用用例间的关系精化用例图,
使系统具有最好的用户体验。
(2)说明所用用例之间关系的含义。
(1)
(2)include意味着must,表示大用例的流程必须包含小用例的流程;extend意味着option,表示大用例的流程可选地被小用例的流程扩展。
对于一个电子商务网站而言,以下哪些不是合适的用例,指出并说明理由。
输入支付信息将商品放入购物车结账预订商品用户登录邮寄商品查看商品详情
输入支付信息:
太小邮寄商品:
系统功能之外查看商品详情:
太小
《分析》2.一个餐馆预约系统的需求如下:
预约接待员可以“记录预约”,“取消预约”;侍者领班可以“记录到达”,“调换餐桌”,也可为未预约客户即时安排就餐。
所有过程都需要“查看预约”。
(1)为提高用例的可重用性,请使用
用例间的关系精化用例图。
并用文字说明理由。
(6分)
(2)说明包含关系、扩展关系的本质含义是什么。
(4分)
答:
(1)其他用例都会执行“查看预约”,并且将来还可能有其他员工的工作也要参考预约信息,所以抽象出“员工”类与“查看预约”用例交互,其他用例包含此用例;“记录未预约客户到达”用例只是在“记录到达”用例的某些情况下(查不到预约记录)执行,所以是对前者的扩展。
(2)include意味着must,表示大用例的流程必须包含小用例的流程;extend意味着option,表示大用例的流程可选地被小用例的流程扩展。
第4章系统分析与对象类建模《即概念建模》***************
一、选择题
1.UML的系统分析进一步要确立的三个系统模型是(B)、对象动态模型和系统功能模型。
A.数据模型B.对象静态模型C.对象关系模型D.体系结构模型
2.UML的客户需求分析、系统分析和系统设计阶段产生的模型,其描述图符(A)。
A.完全相同B.完全不同C.不可以通用D.稍有差异
3.类和对象都有属性,它们的差别是:
类描述了属性的类型,而对象的属性必须有(C)。
A.正负号B.动作C.具体值D.私有成员
4.UML系统分析阶段产生的包图描述了系统的(B)。
A.状态B.系统体系层次结构C.静态模型D.功能要求
5.设计模式在面向对象系统设计中是(B)的一种形式。
A.软件调用B.设计方法C.子系统D.软件复用
6."对象容器"设计模式对有限的对象进行管理,它不能(C)。
A.查找对象B.修改对象C.创建对象D.删除对象
二、填空题
7.在UML软件开发过程系统分析阶段产生的对象模型有三种模型。
它们是:
对象的模型、对象的模型和对象的模型。
8.在UML的对象类图中,类之间的关系有_关联_、聚集、继承、依赖和细化5种。
9.共享聚集的“部分”对象可以是任意“整体”对象的一部分,表示事物的整体/部分关系较弱的情况,“整体”端
的重数应该是_非1_。
10.在UML软件开发过程的需求分析和系统分析阶段,建立对象类模型的步骤分为(寻找确定对象类)、(定义类的接口)、(定义类间关系)、(建立对象类图)和(建立系统包图)。
11.组合聚集是指“整体”拥有它的“部分”,它具有强的物主身份,表示事物的整体/部分关系较强的情况。
“部分”生存在“整体”中,不可分离,它们与“整体”一起存在或消亡。
“整体”的重数必须是_1。
12.系统分析是在客户需求分析规格说明的基础之上对其进行的(类和对象建模)_。
13.类有实例,它的实例是一个对象。
在UML中,包用来表示一个(子系统),包没有实例。
三、解释名词
《简答》概念模型
概念模型(conceptualmodel):
是问题域中概念的描述。
它展示出问题域中有意义的概念,它是面向对象分析中最重要的制品。
概念模型是真实世界中各个事物的代表,而不是软件中各构件的代表。
通过将问题分解成多个单独的概念或
者对象,我们就可以识别出问题域中重要的概念、属性和关联,进而得出一组刻画问题域的图形。
《简答》在绘制类图时,第一步就是发现类,最常用的方法是什么?
请简要说明它的使用方法。
发现类的方法有很多种,其中最广泛应用的莫过于“名词动词法”,其主要规则是从名词与名词短语中提取对象与属性;从动词与动词短语中提取操作与关联;而所有格短短语通常表明名词应该是属性而不是对象。
《分析》如果打算给一个正规的大公司开发一个人事管理系统,请改进以下局部概念模型,并说明理由。
(1)
(2)组合:
正规的大公司一般不允许员工受雇多家公司;应设计关联类存储薪金、职位、合同期
《分析》请根据下列文字画出概念模型,并说明文字与图形各自的优缺点:
一辆车身是红色金属漆的小轿车,装备四个普利斯通牌的轮胎,它是一辆四门车,车门是加厚的,并且前后门玻璃上贴黑色的膜。
前后挡风玻璃里都装有电热丝,后视镜是电动可调的。
(注意:
许多隐含信息被省略了,例如车身和轮胎是安装在汽车上的,车门是安装在车身上的等等)
答:
文字有利于分析员与客户间无障碍交流,因为无需经过培训,客户就可以看懂文字描述。
缺点是无歧义的文字往往冗长乏味。
图形更易于表达隐含的信息和文字中隐晦的含义,尤其是元素之间的关系一目了然。
《分析》请按PeterCoad的事务模式(人、地、物、事务、后续事务等)快速勾勒出“酒店联合订房系统”的概念模型。
《分析》请按PeterCoad的事务模式(人、地、物、事务、后续事务等)快速勾勒出“住院管理系统”的概念模型。
第5章系统设计与对象动态交互模型*************《VS动态状态模型》
一、选择题
2.顺序图和合作图主要用于对用例图中(B)的建模,用它们来描述用例图的行为。
A.数据流B.控制流C.消息流D.数据字典
3.顺序图的模型元素有(A)、消息、链接等,这些模型元素表示某个用例中的若干个对象和对象之间所传递的消息,来对系统的行为建模。
A.对象B.箭线C.活动D.状态
4.顺序图描述(D)对象之间消息的传递顺序。
A.某个B.单个C.一个类产生的D.一组
5.顺序图和合作图建立了UML面向对象开发过程中的对象动态(A)模型。
A.交互B.状态C.体系结构D.软件复用
二、填空题
7.(顺序)图和(合作)图用来表达对象之间的交互,是描述一组对象如何合作完成某个行为的模型化工具。
9。
线程是(进程内)的一个动作流,能够与其他线程并发执行。
10.(主动对象)是一个拥有进程或线程的对象,能初始化控制活动,可以独立并发运行。
11.(被动对象)是一个必须由其他对象发来的消息进行触发才执行动作的对象。
三、解释名词
《已标为论述》5个常用GRASP职责分配模式的名称、要点或意图专家(expert):
将职责分配给信息专家——掌握为了履行职责所必需的信息的类(谁懂的多就让谁干)创建者(creator):
大的对象有责任创建小的对象,这是OOD/P中最常见的任务。
高聚合度或高内聚(highcohesion):
是一个检验标准,用于判断一个类中的各个职责之间相关程度和集中程度(可重用性的内因)。
低耦合度或低耦合(lowcoupling):
是一个检验标准,用于判断类间依赖程度是否较小(可重用性的外在表现)。
控制者(controller):
谁来统一协调处理一个用例的各个系统事件,以使状态信息保持一致?
四、综合题
22.系统动态建模包括哪些模型?
动态交互模型和动态状态模型
23.描述对象交互行为有哪几种图?
顺序图、合作图、状态图、活动图
《简答》UML中的交互图有两种,分别是顺序图和协作图,请分析一下两者之间的主要差别和各自的优缺点。
掌握利用两种图进行的设计的方法。
答:
协作图可视化地表示了对象之间随时间发生的交互,它除了展示对象之间的关联,还显示出对象之间的消息传递。
与顺序图一样,协作图也展示对象之间的交互关系。
顺序图强调的是交互的时间顺序,而协作图强调的是交互
的语境和参与交互的对象的整体组织。
顺序图按照时间顺序布图,而协作图按照空间组织布图。
顺序图可以清晰地表示消息之间的顺序和时间关系,但需要较多的水平方向的空间。
协作图在增加对象时比较容易,而且分支也比较少,但如果消息比较多时难以表示消息之间的顺序。
《分析》请根据以下用例描述,结合IvarJacobson的BCE模式,画出顺序图。
《分析》将给出的协作图转化为等价的顺序图。
(10分)《同时要求能将顺序图转协作图》
《分析》以下是库存控制系统的局部概念模型,涉及“定单”,“定单行”和零件的“目录条目”概念。
当要创