2008-2009第2学期《UML与面向对象方法学》复习题二、单选题1. ( A )不是UML体系的组成部分A.应用领域 B.规则 C.基本构造块 D.公共机制2. 在UML中,有四种事物,下面哪个不是( B )A.结构事物 B.静态事物 C.分组事物 D.注释事物3. 以下(C )不是RUP中的优秀方法A.迭代的开发软件 B.不断的验证软件质量C.配置管理与变更管理 D.支持正向与逆向工程4. 下面( D)属于UML中的动态视图A.类图 B.用例图 C.对象图 D.状态图5. 在UML中,( )把活动图中的活动划分为若干组,并将划分的组指定给对象,这些对象必须履行该组所包括的活动,它能够明确地表示哪些活动是由哪些对象完成的AA.泳道 B.同步条 C.活动 D.组合活动6. 用例之间有几种不同的关系,下列哪个不是他们之间可能的关系( )BA.include B.connect C.generalization D.extend7. event表示对一个在时间和空间上占据一定位置的有意义的事情的规格说明,下面哪个不是事件的类型( )。
CA.信号 B.调用事件 C.源事件 D.时间事件8. 通常对象有很多属性,但对于外部对象来说某些属性应该不能被直接访问,下面哪个不是UML中的类成员访问限定性( )DA.public B.protected C.private D.friendly9. 在UML中,类之间的关系有一种关系称为关联,其中多重性用来描述类之间的对应关系,下面哪个不是其中之一( )AA. *….* B.0….* C.1….* D.0….110. 关于包的描述,不正确的是( )BA.和其他建模元素一样,每个包必须有一个区别于其他包的名字B.export使一个包中的元素可以单向访问另一个包中的元素C.包的可见性分为public、protected、privateD.包中可以包含其他元素,比如类、接口、组件、用例等等11. Use Case用来描述系统在事件做出响应时所采取的行动用例之间是具有相关性的在一个“订单输入子系统”中,创建新订单和更新订单都需要检查用户帐号是否正确那么,用例“创建新订单”、“更新订单”与用例“检查用户帐号”之间是( )关系CA.aggregation B.extend C.include D.classification12. UML中,用例图展示了外部Actor与系统所提供的用例之间的连接,UML中的外部Actor是指( )。
DA.人员 B.单位 C.人员和单位 D.人员或外部系统13. 在UML中,用例可以使用( )来描述AA.活动图 B.类图 C.状态图 D.协作图14. 下列关于UML叙述正确的是( )BA.UML是一种语言,语言的使用者不能对其进行扩展B.UML是独立于软件开发过程的C.UML仅是一组图形的集合D.UML仅适用于系统的分析与设计阶段15. UML中,对象行为是通过交互来实现的,是对象间为完成某一目的而进行的一系列消息交换消息序列可用两种类来表示,分别是( )CA.状态图和时序图 B.活动图和协作图C.时序图和协作图 D.状态图和活动图16. 为了使构件系统更切合实际、更有效地被复用,构件应当具备( ),以提高其通用性DA.可继承性 B.可变性 C.可封装性 D.可伸缩性17. 当( )时,用例是捕获系统需求最好的选择AA.系统有很多参与者 B.系统具有很少的接口C.系统算法复杂,功能单一 D.系统具有很少的用户18. 下列关于面向对象的分析与设计的描述,正确的是( )BA.面向对象设计描述软件要做什么B.面向对象分析不需要考虑技术和实现层面的细节C.面向对象分析的输入是面向对象设计的结果D.面向对象设计的结果是简单的分析模型19. 下面( )不是UML的关系。
CA.依赖关系 B.关联关系 C.继承关系 D.泛化关系20. 构件图用于对系统的静态实现视图建模,这种视图主要支持系统构件的配置管理,通常可以分为四种方式来完成,下面哪种不是其中之一( )DA.对源代码建模 B.对可执行体的发布建模C.对物理数据库建模 D.对事物建模21. 封装是把对象的( )结合在一起,组成一个独立的对象AA.属性和操作 B.信息流 C.消息和事件 D.数据的集合22. 封装是一种( )技术,目的是使对象的生产者和使用者分离,使对象的定义和实现分开CA.工程化 B.系统维护 C.信息隐蔽 D.产生对象23. 面向对象方法中的( )机制使子类可以自动拥有(复制)父类的全部属性和操作DA.约束 B.对象映射 C.信息隐蔽 D.继承24. 使得在多个类中能够定义同一个操作或属性名,并在每一个类中有不同的实现的一种方法是( )DA.继承 B.多态性 C.约束 D.接口25. UML的软件以( )为中心,以系统体系结构为主线,采用循环、迭代、渐增的方式进行开发AA.用例 B.对象 C.类 D.程序26. UML的( )模型图由类图、对象图、包图、构件图和配置图组成。
BA.用例 B.静态 C.动态 D.系统27. UML的( )模型图由活动图、顺序图、状态图和合作图组成CA.用例 B.静态 C.动态 D.系统28. UML的最终产物就是最后提交的可执行的软件系统和( )DA.用户手册 B.类图 C.动态图 D.相应的软件文档资料29. 在UML的需求分析建模中,( )模型图必须与用户反复交流并加以确认BA.配置 B.用例 C.包 D.动态30. 可行性研究分析报告包括经济可行性分析、技术可行性分析和( )可行性分析BA.风险 B.法律 C.资源 D.效益31. UML的客户需求分析模型包括( )模型、类图、对象图和活动图组成AA.用例 B.静态 C.动态 D.系统32. UML客户需求分析使用的CRC卡片上“责任”一栏的内容主要描述类的( )和操作CA.对象成员 B.关联对象 C.属性 D.私有成员33. UML客户需求分析产生的用例模型描述了系统的( )DA.状态 B.体系结构 C.静态模型 D.功能要求34. 在UML的需求分析建模中,用例模型必须与( )反复交流并加以确认。
BA.软件生产商 B.用户 C.软件开发人员 D.问题领域专家35. 在UML的需求分析模型中,对用例模型中的用例进行细化说明应使用( )AA.活动图 B.状态图 C.配置图 D.构件图36. 活动图中的分劈和同步接合图符是用来描述( )AA.并发处理行为 B.对象的时序C.类的关系 D.系统体系结构框架37. UML的系统分析进一步要确立的三个系统模型是( )、对象动态模型和系统功能模型BA.数据模型 B.对象静态模型 C.对象关系模型 D.体系结构模型38. UML的客户需求分析、系统分析和系统设计阶段产生的模型,其描述图符( )AA.完全相同 B.完全不同 C.不可以通用 D.稍有差异39. 类和对象都有属性,它们的差别是:类描述了属性的类型,而对象的属性必须有( )CA.正负号 B.动作 C.具体值 D.私有成员40. UML系统需求分析阶段产生的包图描述了系统的( )BA.状态 B.系统体系层次结构 C.静态模型 D.功能要求41. 设计模式在面向对象系统设计中是( )的一种形式。
DA.软件调用 B.设计方法 C.子系统 D.软件复用42. “对象容器”设计模式对有限的对象进行管理,它不能( )对象CA.查找 B.修改 C.创建 D.删除43. UML系统设计的一般步骤包括系统对象设计、系统体系结构设计和系统设计的( )和审查CA.建模 B.完善 C.优化 D.迭代44. 顺序图和合作图主要用于用例图中( )的建模,用它们来描述用例图的行为BA.数据流 B.控制流 C.消息流 D.数据字典45. 顺序图的模型元素有( )、消息、链接等,这些模型元素表示某个用例中的若干个对象和对象之间所传递的消息,来对系统的行为建模AA.对象 B.箭头线 C.活动 D.状态46. 顺序图描述( )对象之间消息的传递顺序DA.某个 B.单个 C.一个类产生的 D.一组47. 顺序图和合作图建立了UML面向对象开发过程中的对象动态( )模型AA.交互 B.状态 C.体系结构 D.软件复用48. 状态图可以表现( )在生存期的行为、所经历的状态序列、引起状态转移的事件以及因状态转移而引起的动作。
BA.一组对象 B.一个对象 C.多个执行者 D.几个子系统49. 状态图描述一个对象在不同( )的驱动下发生的状态迁移AA.事件 B.对象 C.执行者 D.数据50. 一个( )迁移图符可以有多个源状态或目标状态,它们可以把一个控制分解为并行运行的并发状态,或将多个并发线程接合成单个线程DA.状态 B.对象 C.活动 D.同步并发51. 活动图中动作状态之间的迁移不是靠( )触发的,当活动(动作)状态中的活动完成时迁移就被触发BA.对象 B.事件 C.执行者 D.系统52. 状态图和活动图建立了UML面向对象开发过程中的对象动态( )模型BA.交互 B.状态 C.体系结构 D.软件复用53. 系统体系结构是用来描述系统各部分的结构、接口以及它们用于通信的( )AA.一种机制 B.形式 C.原理 D.结构54. UML可以图描述硬件之间的互联关系,也能描述硬件单元上的( )系统的分布BA.对象 B.软件 C.系统体系结构 D.数据55. ( )是对系统的用例、类、对象、接口以及相互间的交互和协作进行描述。
BA.系统体系结构 B.软件(逻辑)系统体系结构C.硬件(物理)系统体系结构 D.系统框架56. ( )要对系统的构件、节点的配置进行描述DA.软件(逻辑)系统体系结构 B.系统体系结构C.系统架构 D.硬件(物理)系统体系结构57. ( )是软件(逻辑)系统体系结构(类、对象、它们之间的关系和协作)中定义的概念和功能在物理体系结构中的实现AA.构件 B.节点 C.软件 D.模块58. ( )由节点和节点之间的联系组成,描述了处理器、设备和软件构件运行时的体系结构DA.构件图 B.状态图 C.顺序图 D.配置图59. ( )的基本元素有节点、构件、对象、连接、依赖等CA.构件图 B.状态图 C.配置图 D.顺序图三、问答题1. 试描述软件生存周期各个阶段的基本任务答:(1)问题定义阶段必须回答要解决的问题是什么2)可行性研究阶段要回答对于上一个阶段所确定的问题有行得通的解决办法吗3)需求分析阶段要准确地确定为解决此问题,目标系统必须做什么4)总体设计阶段必须回答应如何解决此问题5)详细设计阶段回答该怎样具体地实现这个系统。
6)编码和单元测试阶段是写出正确的、易理解、易维护的程序模块7)综合测试阶段是通过各种类型的测试/调试使软件达到预定要求8)软件维护阶段对软件进行改正性、适应性、完善性和预防性维护活动2. 试写出模块化的完整定义和模块化的实现原则答:(A)模块化的完整定义包括:(1)模块可分解性;(2)模块可结合性;(3)模块可理解性;(4)模块连贯性;(5)模块保护性B)模块化的实现原则包括:(1)语言化的模块单元;(2)少量接口;(3)小的接口耦合性;(4)显式的接口;(5)信息的隐藏化3. 面向对象方法有哪些主要特点?答:(1)使人们更好地认识客观世界2)能很好地适应需求变化3)容易实现软件复用4)系统易于维护和修改4. OOA主要遵循哪些原则?答:(1)构造和分解相结合的原则2)抽象化和具体化相结合的原则3)封装的原则4)相关的原则5)行为约束的原则5. 简要介绍一下OOD体系结构的各个部分及其内容答:(1)设计问题论域部分:设计构造为底层应用建立模型的类和对象,细化分析结果2)设计人机交互部分:设计有关类接口视图的用户模型的类和对象,设计用户界面3)设计任务管理部分:确定系统资源的分配,设计用于系统中类行为控制的对象或类。
4)设计数据管理部分:确定持久对象的存储,将对象转换成数据库记录或表格6. 作为一个优良的OOD,应该具备哪些基本条件?答:(1)类和类的继承必须具有高度凝集性2)类与类之间的耦合应该很松散,子类与父类除外3)某个类的数据实现细节对于别的类来说应该是隐藏的4)设计应该具有最优的可重用性5)尽量使类、对象和方法的定义具有简单性6)对所设计的类和类族,应注意保持其协议或接口的稳定性7)类的层次结构设计规模要适度,不应太深或太浅8)系统整体规模要最小化7. 写出OOP的一般步骤答:(1)构造一个解题模型2)标识对象3)标识对象间的关系4)建立对象的型构5)实现各对象8. 什么是UML?使用UML进行建模有哪些目的?答:UML是一种标准的图形化建模语言,它是面向对象分析与设计的一种标准表示使用UML进行建模的目的有:(1)使用模型可以更好地理解问题2)加强人员之间的沟通3)更早地发现错误或疏漏的地方4)获取设计结果5)为最后的代码生成提供依据9. UML软件开发过程的基本特征有哪些?答:(1)用例驱动的系统2)以体系结构为中心3)螺旋上升式的开发过程4)以质量控制和风险管理为目标10. UML有哪些目标?答:(1)易用,表达能力强,能进行可视化建模。
2)与具体的实现无关3)与具体的过程无关4)简单且可扩展,具有扩展和专有化机制,无需对核心概念进行修改5)为面向对象的设计与开发中涌现出的高级概念提供支持,强调重用6)与最好的软件工程实践经验集成7)可升级,具有广阔的适用性和可用性8)有利于面向对象工具的市场增长11. 请根据UML的图在不同架构视图中的应用将把它们分类答:(1)用户模型视图:用例图2)结构模型视图:类图、对象图3)行为模型视图:时序图、协作图、状态图、活动图4)实现模型视图:构件图5)环境模型视图:部署图12. 需求分析的目的是什么?需求分析中的典型活动有哪些?答:需求分析的目的是获取需求,得到描述系统所需的用例、业务流程或清晰的正文需求分析中的典型活动有:(1)获取领域知识2)定义系统功能3)寻找合适的类4)建立类的静态模型5)描述对象的动态行为6)验证7)给出基本的用户界面原型13. 用例建模的主要目标有哪些?答:(1)将需求规约变为可视化模型,并得到客户确认2)给出清晰、一致的关于系统“做什么”的描述,确定系统的功能要求3)提供从功能需求到系统分析、设计、实现各阶段的度量标准4)为最终系统测试提供给制,据此验证系统是否达到功能要求。
5)为项目目标进度管理和风险管理提供依据14. 用例建模的步骤包括哪些工作?答:(1)确定系统的范围、边界、用例、执行者2)描述用例3)用例分类、确定用例之间的关联4)建立用例图5)定义用例图的层次结构6)审核用例模型15. 消息传递和函数调用有哪些区别?答:(1)消息传递必须指明接收方,函数调用由参数决定2)消息传递的接收方是实体,可以保持状态,函数调用无此要求3)消息传递属于异步调用,并发性好,函数调用则属于串行16. MVC有哪些优点?答:(1)各施其职,互不干涉2)有利于开发中的分工3)有利于组件的重用17. 什么是顺序图?顺序图有哪些用途?答:顺序图是一种详细表示对象之间及对象与参与者之间动态联系的图形文档顺序图的用途有:(1)帮助分析员对照检查每个用况中描述的用户需求是否已落实到对象上,提醒分析员去补充遗漏的对象类或服务2)帮助分析员发现主动对象3)通过对一个特定的对象群体的动态方面建模,深刻理解对象间的交互4)表示用例的行为顺序,描述对象之间以及对象与Actor之间的消息发送关系5)发现类并依据其职责构建类的属性和方法18. 顺序图的建立有哪些步骤?答:(1)确定交互过程的上下文。
2)识别参与交互过程的对象并设置生命线3)从引发该交互过程的初始消息开始,在生命线之间自顶向下依次画出随后的各个消息4)若需要表示消息的嵌套或消息发生时的时间点,则采用控制焦点5)若需说明时间约束,则在消息旁加上约束说明6)如果需要,可为每个消息附上前置条件和后置条件19. 如何在顺序图中表示消息的条件发送?答:(1)在消息上加警戒条件2)在消息名字前加条件子句3)使用文字说明4)分成多个顺序图20. 请写出顺序图中对象排列的原则答:(1)对象横向排列在顺序图的顶部2)最重要的对象放在最左边3)交互密切的对象尽可能相邻4)交互中创建的对象,应垂直地放置在其创建的时间点上5)每个对象有一个下垂的生命线21. 写出协作图的建立顺序答:(1)设置交互的语境2)通过识别对象在交互中扮演的角色,把它们作为图的顶点放在协作图中,将较重要的对象放在图的中央,再放置邻近的对象3)如果对象的类之间有关联,可能就要在对象间建立链,以说明这些对象有联系4)从引起这个交互的消息开始,将随后的每个消息附到适当的链上,并设置顺序号5)如果需要对时间或空间进行说明,则用适当的时间或空间约束修饰每个消息22. 试比较协作图和时序图。
答:(1)二者同属交互图,都用于描述系统中对象之间的动态关系2)两者在语义上是等价的,但两者并不能完全相互代替3)两者可相互转换,但两者强调重点不同4)协作图强调的是参与交互的对象的组织,时序图则强调的是消息的时序23. 活动图有哪些用途?答:(1)描述一个操作执行过程中所完成的工作2)描述对象内部的工作3)显示如何执行一组相关的动作以及这些动作如何影响它们周围的对象4)显示用例的实例是如何执行动作以及如何改变对象状态5)说明一次活动中的角色、工作流、组织和对象是如何工作的24. 试比较状态图和活动图答:(1)二者都是对系统的动态行为建模,都可以描述一个系统或对象在生存期间的状态或行为2)二者都可以描述一个系统或对象在多进程操作中的同步与异步操作的并发行为3)二者在UML中的描述图符基本一样4)二者都可以用分支图符描述一个系统或对象的行为控制流5)二者触发一个系统或对象的状态(或活动)发生迁移的机制不同6)二者描述多个对象共同完成一个操作的机制不同25. 建造对象动态结构模型的步骤包括哪些工作?答:(1)建造对象状态模型2)建造对象之间交互行为模型3)复审对象动态结构模型,以验证其准确性、一致性。
4)编制相应的文档资料26. 试比较共享聚集和组合聚集答:(1)二者都表示“整体-部分”的组成关系2)共享聚集表示较弱的拥有关系,组合聚集表示较强的拥有关系3)在UML中共享聚集用空心菱形表示,组合聚集用实心黑色菱形表示4)共享聚集的多重性是*,组合聚集的“整体”端的重数必须是15)二者都具有传递性27. 接口有哪些主要特点?答:(1)接口是一个类,定义了一组提供给外界的操作2)接口是一个特殊的抽象类,没有属性,只有抽象操作3)一个类在使用接口时必须实现接口的全部抽象操作4)在UML中,接口实施的图形标记与继承相似,只是用虚线代替了实线5)接口常用于定义或限制软件构件的对外运算28. 通过发送消息可以触发的动作有哪些?答:(1)创建一个对象或释放一个对象2)调用另一个对象的操作3)调用本对象的操作4)发送信息给另一个对象5)返回值给调用者29. 动作与活动有哪些区别?答:(1)动作具有迁移性2)动作具有原子性3)动作具有连续性4)活动具有有限性5)活动具有非原子性30. 试比较对象之间的同步与异步操作答:(1)同步消息的发送者把进程控制传递给消息的接收者,然后暂停活动,等待消息的接收者放弃或返回控制。
2)同步消息的接收者执行所请求的操作,如果需要,可以把控制传递给另一个对象角色,请求做某个操作,并且当该操作完成后把控制返回给原来的同步消息的发送者3)同步消息的接收者也可以直接返回或发送信息给原来的消息发送者4)异步消息的发送者通过发送消息把信号传递给消息的接收者,然后继续自己的活动,不等待消息的接收者返回信息或控制5)异步消息的接收者执行所请求的操作,操作完成后可以向异步消息的发送者返回信息6)异步消息的发送者和接收者采用并发工作方式。