UML复习题完整版
- 格式:doc
- 大小:264.50 KB
- 文档页数:17
uml期末考试复习题UML期末考试复习题一、选择题1. 在UML中,用于表示类和类之间关系的符号是:A. 菱形B. 圆形C. 矩形D. 三角形2. 以下哪个不是UML用例图中的元素?A. 参与者B. 用例C. 类D. 关系3. 在UML中,状态图(Statechart)用于描述:A. 对象的生命周期B. 系统的动态行为C. 系统的静态结构D. 系统的并发行为4. 以下哪个UML图用于展示系统的动态行为?A. 类图B. 序列图C. 组件图D. 部署图5. 在UML中,一个对象的表示方法是:A. 矩形B. 椭圆形C. 圆形D. 三角形二、简答题1. 解释UML中类图的基本组成元素及其含义。
2. 描述UML用例图的用途和主要元素。
3. 什么是UML的组件图?它在软件开发中扮演什么角色?4. 解释UML中包(Package)的概念及其作用。
5. 描述UML中活动图(Activity Diagram)的特点和用途。
三、应用题1. 假设你正在设计一个图书馆管理系统,请绘制一个类图,展示至少5个类,并说明它们之间的关系。
2. 为图书馆管理系统中的“借书”功能绘制一个用例图,并简述参与者和用例之间的关系。
3. 为图书馆管理系统中的“查询书籍”功能绘制一个活动图,展示从开始到结束的完整流程。
4. 设计一个简单的状态图,描述一个“电梯”系统在不同状态下的转换。
5. 绘制一个序列图,展示图书馆管理系统中“借书”功能的用户交互过程。
四、论述题1. 论述UML在软件开发过程中的重要性,并举例说明UML如何帮助团队成员理解系统设计。
2. 描述UML中不同类型的关系(如关联、聚合、组合、继承等)及其在实际应用中的意义。
3. 讨论UML部署图在系统部署和硬件规划中的作用。
结束语以上复习题覆盖了UML的基本概念、图示类型及其应用,希望能够帮助同学们在期末考试中取得好成绩。
请同学们认真复习,理解每一种UML图的特点和应用场景,以便在实际开发中能够灵活运用。
(一)一、选择题1、软件开发过程中,最困难的一个环节是()A、程序语言的学习B、详细设计C、需求分析D、编码设2、若将活动状态比作方法,那么动作状态即()A、方法名B、方法返回值C、方法体中的每一条语句D、方法的可见性3、UML提供了一系列的图支持面向对象的分析与设计,其中()给出系统的静态设计视图;()对系统的行为进行组织和建模是非常重要的;()和()都是描述系统动态视图的交互图,其中()描述了以时间顺序组织的对象之间的交互活动,()强调收发消息的对象的组织结构。
A、状态图B、用例图C、顺序图D、部署图E、通信图F、类图G、时序图4、在一个订单输入子系统中,创建新订单和更新订单都需要检查用户帐号是否正确。
那么,用例“创建新订单”、“更新订单”与用例“检查用户帐号”之间是()关系A.包含(include)B.扩展(extend)C.分类(classification)D.聚集(aggregation)5、Innovation公司正在为Rose开发插入件,使得Rose可以把OOA、OOD模型以各种图形格式导出,如JPEG 格式、BMP格式、GIF格式等。
在导出时,会根据不同的算法来生成相应的图形文件,这些算法很复杂。
为了描述这些算法,如下图中,那个最适合()A. 活动图B. 状态图C. 类图D. 用例图二、简答题1、找出并说明下面类图中的错误。
Class C1{C2 c2 = new C2();public void f1(){ c2.f2(); }}Class C2{public void f2(){ f2(); }}4、请找出下面类图中存在的错误并画出正确的类图。
5、对于如下类图,请写出OCL约束:(1)、对于一个班级而言,只有注册人数大于25人方可开课并且由于教室大小的约束,人数又不能超过80人。
(2)每个学生必须经注册后方能听课6、请解释下面两个活动图(图1和图2)的执行流程,并讨论它们的区别。
uml参考题(带答案版)1、⾯向对象的核⼼要素:对象,封装,消息,类,抽象,继承,多态性(7个)2、封装把类构成那两个部分,⼜提供了哪两种保护两个部分:接⼝部分,和实现部分两种保护:1,对象内部的状态被保护起来,不会被与该对象沟通的对象直接篡改;2另⼀⽅⾯,对象内部特征的变化不会改变其他对象与该对象的沟通⽅式。
(另⼀种⽼师课件的答案:两种保护:1.⾸先保护对象,防⽌⽤户直接存取对象的内部细节;。
2.其次封装也保护了客户端,防⽌对象实现部分的变化可能产⽣的副作⽤,即实现部分的改变影响到客户端的改变。
)3、消息提供了服务的哪四个⽅⾯对象标识,服务(⽅法)标识,输⼊信息和回答信息等5、下⾯是⼀个⽤例描述的⽚断:Use Case: Withdraw Cash(提取现⾦)参与者:Customer主事件流:1. 储户插⼊ATM卡,并键⼊密码。
2. 储户按“Withdrawal”按钮,并键⼊取款数⽬。
3. 储户取⾛现⾦、ATM卡并拿⾛收据。
4. 储户离开。
上述描述中存在的问题:只描述了参与者的动作序列,没有描述系统的⾏为。
改进的描述:答:1. 通过读卡机,储户插⼊ATM卡。
2. ATM系统从卡上读取银⾏ID、帐号、加密密码、并⽤主银⾏系统验证银⾏ID和帐号。
3. 储户键⼊密码,ATM系统根据上⾯读出的卡上加密密码,对密码进⾏验证。
4. 储户按“FASTCASH”按钮,并键⼊取款数量,取款数量应该是5美元的倍数。
5. ATM系统通知主银⾏系统,传递储户帐号和取款数量,并接收返回的确认信息和储户帐户余额。
6. ATM系统输出现⾦,ATM卡和显⽰帐户余额的收据。
7. ATM系统记录事务到⽇志⽂件。
7、什么是场景,⼀个⽤例可以有多少个主要场景和次要场景?场景:是使⽤系统的⼀个特定情节或通过⽤例的⼀个特定执⾏路径。
每个⽤例有且只有⼀个主要场景可以有多个次要场景8、按照耦合度从⾼到低,说明类之间的关系有哪些?由强到弱:继承,组合,聚合,关联,依赖9、标准类图中成员四个可见性分别⽤什么表⽰?Public + Protected # Package ~Private -10、association aggregation generalization dependency 分别代表什么关系关联关系聚合关系泛化关系依赖关系11、给出下⾯带关联类类图的另⼀种普通类图表⽰。
计科院UML复习汇总+答案详解一、单项选择题1、组成UML构造块三大要素为:(B)A、事物、元素、关系B、事物、关系、图形C、事物、组件、图形D、事物、图形、结构UML中有三种基本构造块,分别是事物、关系和图。
事物分结构事物(包括类、接口、协作、用况、主动类、构件和节点)、行为事物(包括交互和状态机)、分组事物(包)和注释事物(注解)。
2、UML中的事物分为哪几类?(A)A、结构、行为、分组、备注等四类事物B、结构、图形、行为、分组等四类事物C、类、行为、分组、备注等四类事物D、分组、备注、结构、图形等四类事物3、UML中的关系分为哪几种?(C)A、依赖关系、类关系、一般化关系、合作关系B、依赖关系、泛化关系、实现关系、继承关系C、依赖关系、关联关系、泛化关系、实现关系D、依赖关系、关联关系、泛化关系、合作关系4、所谓的4+1视图是指(A)A、Design View、Interaction View、Implementation View、Deployment View、useCase ViewB、Interaction View、Implementation View、Deployment View、Customer View、useCase ViewC、Interaction View、Implementation View、Deployment View、Process View、useCase ViewD、Design View、Interaction View、Implementation View、Process View、useCase View5、在UML中属于静态视图的是(D)A、顺序图、协作图、包图、类图B、对象图、类图、构件图、包图C、顺序图、用例图、对象图、类图D、对象、类图、构件图、部署图6、下列关于UML叙述正确的是( D )A、UML是一种语言,语言的使用者不能对其进行扩展B、UML仅是一组图形的集合C、UML仅适用于系统的分析与设计阶段D、UML是独立于软件开发过程的7、下列描述中,哪个不是建模的基本原则( D )A、要仔细的选择模型B、每一种模型可以在不同的精度级别上表示所要开发的系统C、模型要与现实相联系D、对一个重要的系统用一个模型就可以充分描述8、下列描述中,哪个不是软件与硬件的区别(D )A.软件是被开发或设计的,而不是被制造的;B.软件不会“磨损”,但会“退化”;C.软件的开发至今尚未摆脱手工艺的开发方式;D.软件开发与硬件开发的流程一样。
UML建模期末考试题及答案一、单项选择题(每题2分,共20分)1. UML中用于表示系统的静态结构的图是:A. 活动图B. 用例图C. 类图D. 状态图答案:C2. 在UML中,一个类可以拥有的属性和方法的集合被称为:A. 接口B. 实现C. 封装D. 抽象答案:C3. 以下哪个不是UML中的关系?A. 关联B. 依赖C. 泛化D. 映射答案:D4. 以下哪个不是UML中的行为图?A. 活动图B. 序列图C. 状态图D. 部署图答案:D5. 在UML中,表示对象之间交互的图是:A. 用例图B. 类图C. 序列图D. 组件图答案:C6. 在UML中,一个对象的生命周期可以用以下哪个图来表示?A. 活动图B. 序列图C. 状态图D. 部署图答案:C7. 在UML中,表示系统的物理架构的图是:A. 用例图B. 部署图C. 组件图D. 包图答案:B8. 以下哪个是UML中的对象?A. 类B. 接口C. 实例D. 以上都是答案:C9. 在UML中,表示一个类可以实例化多少次的关系是:B. 泛化C. 聚合D. 组合答案:D10. 在UML中,表示对象之间交互的顺序的图是:A. 活动图B. 序列图C. 状态图D. 用例图答案:B二、多项选择题(每题3分,共15分)1. UML中,以下哪些图可以用来描述系统的动态行为?A. 活动图B. 序列图C. 状态图D. 用例图答案:A、B、C2. 在UML中,以下哪些元素可以表示类之间的关系?A. 关联B. 依赖C. 泛化D. 组合答案:A、B、C、D3. 以下哪些图可以用来描述系统的静态结构?A. 类图B. 对象图D. 部署图答案:A、B、C、D4. 在UML中,以下哪些图可以用来描述系统的交互?A. 序列图B. 通信图C. 用例图D. 活动图答案:A、B5. 在UML中,以下哪些元素可以表示对象之间的交互?A. 消息B. 信号C. 事件D. 操作答案:A、B、C三、简答题(每题10分,共30分)1. 请简述UML中用例图的作用。
uml建模期末复习题库一、选择题1. 在UML中,用于表示系统的动态行为的图是:A. 类图B. 对象图C. 状态图D. 活动图2. 以下哪个不是UML中的基本构件?A. 属性B. 操作C. 约束D. 接口3. 在UML中,哪个元素用于表示一个对象的特定状态?A. 状态B. 对象C. 消息D. 活动4. 以下哪个UML图最适合表示对象之间的交互?A. 用例图B. 类图C. 顺序图D. 活动图5. 在UML中,一个类可以有几种关系与其他类连接?A. 1种B. 2种C. 3种D. 4种及以上二、填空题6. 在UML中,______用于表示类之间的关系,如继承、关联和依赖。
7. ______图用于描述系统中对象之间的交互顺序。
8. ______图用于描述系统的静态结构,包括类、接口和它们的属性和操作。
9. 在UML中,______用于定义一个对象的生命周期,包括状态转换和触发事件。
10. ______图用于描述业务流程或工作流程。
三、简答题11. 解释UML中“封装”的概念。
12. 描述UML中“多态”是如何工作的。
13. 解释UML中“用例”和“用例图”的区别。
14. 什么是UML中的“包”?它的作用是什么?15. 描述UML中“活动图”和“状态图”的主要区别。
四、应用题16. 假设你正在设计一个图书馆管理系统,请绘制一个类图来表示书籍、读者和借阅记录之间的关系。
17. 描述如何使用UML活动图来表示一个简单的银行账户存款流程。
18. 假设你正在设计一个在线购物网站,请使用UML用例图来描述购物流程。
19. 绘制一个UML顺序图,展示一个客户通过网站下订单的过程。
20. 使用UML状态图来表示一个电梯的运行状态和转换。
五、论述题21. 论述UML在软件开发过程中的作用和重要性。
22. 讨论UML建模在需求分析阶段的应用。
23. 分析UML建模在系统设计阶段的优势和局限性。
24. 描述UML建模在团队协作中的作用。
1.用例的extend和include之间的区别是什么Extend指通过附件行为获取其他用例来扩展当前用例。
如果初始迭代实线的用例功能,在后续迭代有所改进,那么就存在用例扩展关系。
Include指一个用例功能包含在另一个用例功能之内。
当另一个用例要求一个用例的功能时,那么就存在用例包含关系。
2.关联中的组合和聚合之间的区别是什么聚合关系反映了一个对象是另一个对象的一部分,或者说表明了一个对象是由若干个其他对象组成的。
组合关系描述部分对象依赖于整体对象,这种依赖关系通过如下两种方式表现出来:首先,在任一给定时刻,一个部分对象只能属于一个组合对象;其次,当一个组合对象被撤销时,所有依赖于这个组合对象的部分对象都将同时被撤销。
3.抽象类和接口之间的区别是什么接口是您能实现多继承,因为类能够实线多个接口。
但是,抽象类不支持多继承。
一个类无法继承多个抽象类。
抽象类包含属性和方法,这些属性和方法可以是public、private或protected。
接口只包含方法。
抽象类可提供部分方法的定义,但是接口不提供任何定义。
抽象类用于同一包中,而接口则可以在多个包中实现。
4.静态建模和动态建模之间的区别是什么静态建模表示软件系统的静态或结构成分,也称为结构建模;它包含类和对象关系图;它有助于描绘系统成分之间的关系和依赖性。
动态建模表示软件系统静态成分的行为,也成为行为建模;它包含交互、活动和状态关系图;它有助于表达系统在一段时间内的行为并对其建模。
5.UML的主要包括的3种构造成分UML主要包括三个基本构造块:事物(Things)、关系(Relationships)和图(Diagrams)。
事物是是实体抽象化的最终结果,是模型中的基本成员,UML中包含结构事物、行为事物、分组事物和注释事物。
关系是将事物联系在一起的方式,UML中定义了四种关系:依赖、关联、泛化、实现。
图是事物集合的分类,UML中包含多种图:类图、对象图、包图、组件图、部署图、用例图、顺序图、协作图、状态图、活动图。
UML期末复习资料一、填空题:(16分)1. 软件开发是一套关于软件开发各个阶段的定义、任务和作用的,建立在理论上的一门工程学科.2。
经典的软件工程思想将软件的开发分为以下5个阶段:需求捕获、系统分析与设计、系统实现、测试和维护。
3。
UML(Unified Modeling Language,统一建模语言),是一种面向对象的建模语言。
它主要作用是帮助用户对软件系统进行面向对象的描述和建模,它可以描述这个软件开发过程从需求分析直到实现和测试的全过程.4。
UML由视图、图、模型元素和通用机制四个部分组成。
5. UML中的5种视图分别为:用例视图、逻辑视图、并发视图、组件视图和配置视图。
6. UML中的建模机制分为静态建模机制和动态建模机制。
二、问答题:(24分)1. 请您阐述UML的组成及其之间的包含关系。
答:UML由视图、图、模型元素和通用机制组成。
其中视图包含图,图包含模型元素,通用机制用于表示其它信息,比如注释、模型元素的语义。
2。
请您阐述各视图下的各种图的组成。
答: 用例视图有用例图;逻辑试图有类图和对象图;并发视图有时序图、协作图、状态图、和活动图;组件视图有组件图;配置视图有配置图;3. 您如何理解UML中模型元素和通用机制的概念。
答:模型元素(Model Element)代表面向对象中的类、对象、接口、消息和关系等概念。
UML中的模型元素包括事物和事物之间的联系通用机制(General Mechanism)用于表示其它信息,比如注释、模型元素的语义等。
4。
如何理解UML中的静态建模机制和动态建模机制。
答:静态建模机制所建立的图都是静态图,包括用例图、类图、对象图组件图和配置图;动态建模机制所建立的模型或者可以执行,或者表示执行时事物的时序状态或交互关系,包括有状态图、活动图、时序图和协作图。
5. 用例图中的〈〈extend〉〉和<<include〉>之间的区别。
答:扩展关系(extend):1)、一个用例也可以被定义为基础用例的增量扩展;2)、基础用例不必知道扩展用例的任何细节,它仅为其提供扩展点;3)、使用扩展关系时,基础用例没有扩展也是完整的。
UML 期末复习习题集一、选择题:1、对象模型的描述工具是( )。
A.状态图B.数据流图C.对象图D.结构图2、UML 中关联的多重度是指( )A 、一个类有多个方法被另一个类调用B 、一个类的实类能够与另一个类的多个实类相关联C 、一个类的某个方法被另一个类调用的次数D 、两个类所具有的相同的方法和属性3、为了描述和理解系统中的控制机制,如为了描述一个设备控制器(看成一个对象)在不同情况下的状态转变,下面几个图中哪个图最适合。
( )A 、交互图B 、活动图C 、状态图D 、类图4、UML 提供了一系列的图支持面向对象的分析与设计,其中 (1) 给出系统的静态设计视图; (2) 对系统的行为进行组织和建模是非常重要的; (3) 和__(4)__都是描述系统动态视图的交互图,其中__(5)__描述了以时间顺序组织的对象之间的交互活动,__(6)__强调收发消息的对象的组织结构。
A 、状态图B 、用例图C 、序列图D 、部署图E 、协作图F 、类图答题处(1)( )(2)( )(3)( )(4)( )(5)( )(6)( )5、面向对象的基本特征不包括 特性 ( )A 、封装B 、继承C 、多样性D 、抽象6、“一个研究生在软件学院做助教(teaching assistant),同时还在校园餐厅打工做收银员(cashier)。
也就是说这个研究生有3 种角色:学生、助教和收银员,但同一时刻只能有一种角色 。
”根据上面陈述,下面哪种设计是最合理的?( )7、在一个课程注册系统中,定义了类CourseSchedule 和类Course 。
并在类CourseSchedule 中定义了add(c:Course) 和remove(c:Course)方法,则类CourseSchedule 和类Course 之间的关系是: ( )A 、依赖关系B 、关联关系C 、类属关系D 、实现关系8、下列关于状态图的说法中,正确的是( )A 、状态图是UML 中对系统的静态方面进行建模的五种图之一。
uml期末试题及答案一、选择题(每题2分,共20分)1. 在UML中,用于表示对象之间关系的符号是:A. 菱形B. 圆形C. 矩形D. 箭头答案:D2. 以下哪个不是UML的视图?A. 用例视图B. 实现视图C. 逻辑视图D. 数据视图答案:B3. 在UML中,表示类的属性的关键字是:A. attributeB. propertyC. fieldD. variable答案:C4. 以下哪个不是UML的图?A. 用例图B. 序列图C. 流程图D. 状态图答案:C5. 在UML中,表示方法的关键字是:A. functionB. methodC. operationD. procedure答案:C6. 以下哪个不是UML的通用关系?A. 关联B. 依赖C. 泛化D. 聚合答案:D7. 在UML中,表示类的可见性可以使用以下哪个符号?A. +B. -C. #D. ~答案:A8. 以下哪个不是UML的约束?A. 唯一性B. 非空性C. 多重性D. 继承性答案:D9. 在UML中,表示一个对象的实例的符号是:A. 圆形B. 矩形C. 菱形D. 椭圆形答案:D10. 以下哪个是UML中表示交互的图?A. 类图B. 对象图C. 序列图D. 组件图答案:C二、填空题(每题2分,共20分)1. 在UML中,表示一个类可以创建的实例数量的属性是________。
答案:多重性2. 表示类之间共享属性和操作的机制被称为________。
答案:继承3. 在UML中,一个对象与另一个对象的交互是通过________来表示的。
答案:消息4. 表示类中操作的可见性为私有的符号是________。
答案:-5. 在UML中,表示一个对象的生命周期的图是________。
答案:状态图6. 表示类之间存在依赖关系的符号是________。
答案:虚线箭头7. 在UML中,表示一个类是另一个类的子类的符号是________。
答案:实线箭头8. 表示对象之间共享相同属性和方法的机制是________。
不定项选择题:1.一个软件产品是否成功,因素有(需求收集是否正确,体系结构的构建是否合理,测试是否完全,软件的管理)。
2.开发过程中最困难的一个环节是(人与人之间的交流)。
3.用例是从(用户)的观点对系统行为的一个描述。
4.顺序图所表达的是基于(时间顺序)的动态交互。
5.当需要在项目中定制自己的元素时,可使用(构造型来定制)。
6.表示一个操作中的参数和返回值的数据类型的称呼是(形构)7.多重性5,10表示(5或10)。
8.在找出了类的继承关系后,通常可以用(抽象类|接口)来表示最上层的基类。
9.UML中的实现是一种特殊类型的继承,因为它是指从一个(抽象类/接口)继承。
10.使用用例的难点在于(用例中各个场景的具体步骤)。
11.收集用例的方法是(与用户交谈)。
12.产生类图和得到用例这两个步骤,位于前面的是(没有固定顺序)。
13.面向对象理论中,对象之间发送信号,在UML状态图里就是(事件)。
14.顺序图中,动态创建对象表示法的特点是(是在时间线上的某一点创建,结束时尾部打X)。
15.当代软件工程的特点是(允许各个阶段进行迭代;各个阶段没有明显的分界线;允许后期得到的信息返回,使得早期的能够被修改)。
16.GRAPPLE中最重要的段是(需求收集)。
17.设计模式的基本要素有(名称,问题|目的,解决方案,实施后的效果|后果)。
18.当我们想创建一个具体的对象而又不希望指定具体的类时,可以使用(Abstract Factory|抽象工厂)模式。
19.当我们想将抽象部分和实现部分分离时,可以使用(Bridge|桥接)模式。
20.当我们想用不同的请求对客户进行参数化时,可以使用(Command|命令)模式。
21.当我们想封装不同算法并使它们可相互替换时,可以使用(Strategy|策略)模式。
22.面向对象系统中功能复用的两种最常用技术是(类继承和接口继承)。
对象组合,类继承-〉产生类爆炸23.面向对象系统中的“黑盒复用”是指(接口继承|对象组合)。
24.对象组合是通过获得(保存对方抽象类的指针)而在运行时刻动态定义的。
25.设计模式中应优先使用的复用技术是(接口继承|对象组合)。
26.在Lexi系统中,我们把所有文档元素都看作是图元,这样,它们就有了相同的(类型|接口)。
27.Lexi系统中,我们之所以能对文档采用Composite模式,是因为文档的元素之间有(递归层次|树型结构)关系。
填空题:1.软件体系结构是指一个系统的有目的的设计和规划,这个设计规划既不描述活动,也不描述如何开发产品,它只描述系统的组成元素及其相互的交互协作。
2.一个UML模型只描述了一个系统要做什么,它并没告诉我们系统是如何实施的(怎么做)。
3.接口是可以在整个模型中反复使用的一组行为,是一个没有属性而只有操作的类。
4.多重性指的是,某个类有多个对象可以和另一个类的一个对象关联。
5.当一个类的对象可以充当多种角色时,自身关联就可能发生。
6.在泛化关系中,子类可以替代父类。
也就是说,后者出现的地方,前者都可以出现。
但是反过来却不成立。
7.最通常的依赖关系是一个类操作的型构中用到了其他类的定义。
8.组成是强类型的聚集,因为聚集中的每个部分体只能属于一个整体。
9.实现的符号和继承的符号有相似之处,两者的唯一差别是实现关系用虚线表示,继承关系用实线表示。
10.UML背后的两个重量级概念是面向对象和用例。
11.状态图和类图、顺序图不同之处在于,后两种图能够对一个对象建立模型,而状态图只是对一个系统或者至少是一组类、对象或用例建立模型。
12.状态图中3个常用的动作是入口动作、出口动作和do动作,也就是对象处于这个状态是该做什么。
13.顺序图中,消息用水平箭头线表示;时间用垂直虚线表示。
14当逻辑发生分支时,在顺序图中用生命线发生的分支表示,在协作图中用嵌套的序号表示。
15.顺序图强调的是交互的时间顺序 ,协作图强调的是交互的空间关系和参与交互的对象的上下文环境。
16.GRAPPLE把开发过程分为5个,之中又由许多动作组成。
17.GRAPPLE过程中,得到初步类图是在需求收集段,细化类图是在需求分析段。
18.每一个设计模式都集中于一个特定的(面向对象设计问题|设计要点),描述了什么时候使用它|相互通信的对象或者类以及使用的效果|解决方案和如何取舍|解决效果。
19.面向对象系统中功能复用的两种最常用技术是类继承和接口继承|对象组合。
20.设计模式中应优先使用接口|对象组合而不是类继承。
简答题3.简述如何在实际工作中发现类。
答:在与客户的交谈中,要注意客户用来描述业务实体的名词术语。
这些名词可作为领域模型中的类。
还要注意你听到的动词,因为这些动词可能会构成这些类中的操作。
当得到一组类的核心列表后,应当向客户询问在业务过程中每个类的作用。
他们的回答将告诉你这些类的职责。
5.试使用UML的关系表示法,表示出大学计算机专业中如下这些课程的模型:C语言程序设计、C++语言程序设计、Windows程序设计、网络程序设计。
注意抽象类和依赖的使用。
6.画出图形用户界面GUI的状态图,要包括屏幕保护状态。
其中要表明相应的事件、动作。
8.画出自动饮料销售机中,理想场景和“钱数不正确”的场景合并在一起的顺序图。
13.简述实现继承和接口继承的区别?我们应该尽量使用哪一种?答:类继承根据一个对象的实现定义了另一个对象的实现。
简而言之,它是代码和表示的共享机制。
然而,接口继承描述了一个对象什么时候能被用来替代另一个对象。
类继承是派生中的类将继承父类的所有属性和方法,并且可以在派生类里添加自己的属性和方法,而接口继承则是在接口里只定义接口的方法,没有属性,并且方法不能实现,只有在派生他的类才实现该方法。
类继承是编译的时候新建对象,而接口实例是在运行时刻创建对象。
我们应该尽量使用接口继承,类继承会产生类爆炸现象18.Lexi系统的格式化问题中,我们引入了Compositor和Composition两个类来实现“策略”模式。
请画出这两个类各自的继承关系和它们之间的协作关系。
19.Lexi系统的支持多种窗口平台的问题中,我们使用了Window和WindowsImp类来实现桥接模式。
请画出这两个类各自的继承关系和它们之间的协作关系。
1 软件是计算机系统中与硬件相互依存的另一部分,它是程序、数据及相关文档的集合。
机器可执行的:程序及有关数据机器不可执行的:与开发、运行、维护、使用和培训有关的文档资料程序:由程序设计语言所描述的、能为计算机所识别、理解和处理的语句序列。
数据:使程序能正常处理信息的数据和数据结构。
文档:一种数据媒体和其上所记录的数据,即记录软件开发活动和阶段性成果、理解软件所必需的阐述性资料。
软件=程序+数据+文档程序=算法+数据结构软件的特点1) 软件是一种逻辑实体,而不是具体的物理实体。
因而它具有抽象性。
软件的抽象性特征使它与计算机硬件及其它工程实体有着根本区别。
2) 软件的生产与硬件不同,在它的开发过程中没有明显的制造过程,其生产主要是研制,可以零成本地大量复制软件产品。
3) 在软件的运行和使用期间,没有硬件那样的机械磨损、老化问题,有着无备件特征。
4) 软件系统复杂,成本昂贵,涉及社会因素。
2 按照软件服务的范围,可以把软件划分为项目软件和产品软件。
3 软件危机是指计算机软件开发和维护过程中所遇到的一系列严重的问题。
这些问题不仅仅是不能正常运行的软件才具有的,实际上几乎所有软件都不同程度的存在这些问题。
概括说,软件危机包含下述两方面的问题:如何开发软件,以满足对软件日益增长的需求;如何维护数量不断膨胀的已有软件。
软件危机的典型表现: 成本高、软件质量得不到保证、进度难以控制、软件维护困难4 软件工程是指导计算机软件开发和维护的一门工程学科。
它采用工程的概念、原理、技术和方法开发维护软件,把经过时间考验、被证明是正确的管理技术和当前能够得到最好的技术方法结合起来,以经济的开发出高质量的软件,并有效的维护它。
5 软件工程三要素及其辩证关系质量是软件工程的生命线,软件工程以质量保证为基础。
质量管理促进了过程的改进,创造了许多行之有效的软件开发方法和工具。
软件工程釆用层次化的方法,每个层次都包括过程、方法、工具三要素。
方法支撑过程和工具,过程和工具又促进方法学的研究。
从小到大:工具、方法、过程、软件质量6 软件工程中相关的人员通常担当用户、客户、项目管理人员、软件工程人员四种角色。
7 软件从定义开始,经过开发、使用和维护,直到最终退役的全过程称为软件生存周期。
8 软件过程指制作软件产品的一组活动及其结果。
9 软件过程模型是从一特定角度提出的软件过程的简化描述。
“模型的本质在于简化”软件过程模型就是对描述的实际过程的抽象,它包括构成软件过程的各种活动、软件产品及软件工程人员参与的不同角色。
10 瀑布模型的特点1) 阶段间具有顺序性和依赖性2) 推迟实现的观点3) 质量保证的观点11 螺旋模型的每一个周期都包括计划制定、风险分析、工程实现和项目评审4 个阶段。
12 喷泉模型是是以面向对象的软件开发方法为基础,以用户需求为动力,以对象来驱动的一种软件过程模型。
面向对象方法的基础1 面向对象软件工程方法由面向对象分析、面向对象设计和面向对象程序设计/实现三部分组成。
2 面向对象方法的基本思想尽可能模拟人类习惯的思维方式,使开发软件的方法与过程尽可能接近人类认识世界解决问题的方法与过程,也就是使描述问题的问题空间(即问题域)与实现解法的解空间(即求解域)在结构上尽可能一致。
3 对象在应用领域中有意义的、与所要解决的问题有关系的任何事物都可以作为对象,它既可以是具体的物理实体的抽象,也可以是人为的概念,或者是任何有明确边界和意义的东西。
例如,一名职工、一家公司、一个窗口、一座图书馆、一本图书、贷款和借款等,都可以作为一个对象。
总之,对象是对问题域中某个实体的抽象,设立某个对象就反映了软件系统保存有关它的信息,并具有与它进行交互的能力。
4 对象的特点1 以数据为中心:操作围绕对其数据所需要做的处理来设置,不设置与这些数据无关的操作,而且操作结果往往与当时所处的状态(数据的值)有关。
2 对象是主动的:它与传统的数据有本质的不同,不是被动地等待对它进行处理,相反,它是进行处理的主体。
3 实现了数据封装:对象好像是一只黑盒子,它的私有数据完全被封装在盒子内。
对私有数据的访问或处理只能通过公有的操作进行。
4 本质上具有并行性:不同对象各自独立地处理自身的数据,彼此通过发送消息传递信息完成通讯。
5 模块独立性好:对象是OO软件的基本模块。
5 类•类是具有相同数据结构和相同操作的一组相似对象的抽象,即表示某些对象在属性和操作方面的共同特征。