UML复习题完整版.docx
- 文档编号:6347313
- 上传时间:2023-01-05
- 格式:DOCX
- 页数:29
- 大小:154.63KB
UML复习题完整版.docx
《UML复习题完整版.docx》由会员分享,可在线阅读,更多相关《UML复习题完整版.docx(29页珍藏版)》请在冰豆网上搜索。
UML复习题完整版
不定项选择题:
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.当我们想创建一个具体的对象而又不希望指定具体的类时,可以使用(AbstractFactory|抽象工厂)模式。
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类
•类是具有相同数据结构和相同操作的一组相似对象的抽象,即表示某些对象在属性和操作方面的共同特征。
•类是在对象之上的抽象,有了类以后,对象则是类的具体化,是类的实例。
把一组对象的共同特性加以抽象并存贮在一个类中的能力,是面向对象技术最重要的一点!
6属性
•属性是类中对象所具有的数据值,是对客观世界实体所具有性质的抽象。
•不同对象的同一属性可以具有相同或不同的属性值。
7方法
方法就是对象所能执行的操作(Operation)。
它描述了对象执行操作的算法,响应消息的方法。
8通常,一个消息由接受消息的对象、消息标识符、0或多个变元/消息参数组成。
9谈谈你对面向对象方法中消息的理解
•如何要求对象完成一定的处理动作对象间如何进行联系所有这一切都只能通过消息传递来实现。
•传递消息的对象称为发送者,接受消息的对象称为接收者。
•消息中只包含传递者的要求,它告诉接收者需要哪些处理,但并不指示接收者应该怎样完成这些处理。
•消息完全由接收者解释,接收者独立决定采用什么方式完成所需的处理,发送者对接收者不起任何控制作用。
•一个对象能够接收不同形式、不同内容的多个消息;相同形式的消息可以送往不同的对象,
不同的对象对于形式不同的消息可以有不同的解释,能够做出不同的反映。
•一个对象可以同时往多个对象传递信息,两个对象也可以同时向某个对象传递消息。
•接受者响应消息的过程
10消息接受者响应消息的过程:
1、选择符合消息要求的操作2、执行该操作3、将控制权返回调用者
11继承
•广义地说,继承是指能够直接获得已有的性质和特征,而不必重复定义它们。
•在面向对象技术中,继承是子类自动地共享基类中定义的数据和方法的机制。
12继承机制在面向对象方法中的重要性
13多态
多态即在类的等级的不同层次中可以共享(公用)一个方法的名称,然而不同层次中的每个
类却各自按照需要来实现这个行为。
当对象接收发送给他的消息时,根据该对象所隶属的类
动态选用在该类中定义的实现算法。
UML概述
1UML是UnifiedModelingLanguage的缩写,即统一建模语言
2UML综合符号、文本语法、图形机制三种机制来表达应用问题在需求、设计和实现级的模型。
3UML的视图机制的内容
UML中提供了静态视图、用例视图、实现视图、配置视图、状态机视图、活动视图、交互视图、模型管理视图。
4主题域在视图的更高层次,UML中把视图划分为结构性主题域、动态主题域、模型管理主题域3个主题域。
用例视图
1用例视图从外部用户的角度捕获系统、子系统或类的行为。
它将系统功能划分为对活动者
具有意义的事务,这些功能片称为用例。
2活动者
每个活动者参与一个或多个用例,活动者的内部实现与用例无关,活动者被一些列定义状态
的属性来描述。
3建立用例图的步骤
1、获取Actor2、获取用例3、标示关系
-Actor和用例的关系–Actor和Actor的关系–用例和用例的关系
4用例文档
用例文档是在理解用户需求基础上产生的,它是用例图中用例实现的文字描述。
用例文档包
含用例名称、用例描述、用例的前置条件、后置条件以及过程描述等内容。
静态视图
1静态视图的作用
静态视图是UML的基础。
静态视图中个概念是应用中具有意义的概念—与软件相关的所有
概念。
静态视图捕获对象结构,将面向对象系统的数据结构和行为统一成单个的对象结构。
它将行为实体描述为离散的模型元素,不包含任何动态行为的细节。
2类的属性/操作的可见性
•描述了类在软件系统中代表的事物(即对象)所具备的特性。
•类可以有任意数目的属性,也可以没有属性。
•在UML中,类属性的语法为:
[可见性]属性名[:
类型][初值][{属性字符串}]
包括公共的、私有的、保护的和包内可见性,分别采用+、-、#、~标示
3为类的属性设置初值的目的
1、保护系统的完整性,防止漏掉取值或被非法的值破坏系统的完整性。
2、为用户提供易用性。
4类和类之间的关联关系
关联表示两个类之间存在的某种语义上的联系。
5举例说明普通关联的定义细节
普通关联是最常见的关联关系,只要在类和类之间存在着联接关系就可以用普通关联表示。
–普通关联的图示符号是联接两个类之间的直线;
–通常关联是双向的,可以在一个方向上为关联命名,而在另一方向上给予另一不同的名称(或不予以命名)。
为避免混淆,可以在各名称前添加一个表示方向的符号。
–在表示关联的直线两端,可以标示管理的重数。
重数
表示该类有多少个对象与对方的一个对象连接。
重数
表是方法有:
1一个对象;*表示多个对象;0..1表示0个或一个对象;
0..*表示0个或多个对象;1+或1..*表示1到多个对象
例:
普通关联具体实例如图所示:
上图所示,一个作家可以使用1到多台计算机;一
台计算机可为0至多个作家使用。
(静态视图)
6举例说明关联类的定义过程
有时为了说明关联性质可能需要一些附加信息。
可以引入关联类记录这些关联信息。
关联种每个联接和关联类的一个对象相关联。
关联类的符号表示如下图所示:
例:
从图中可以看出,一个电梯控制器控制着多台电梯,它们之间的联接对应一个队列,而每个队列存储着来自电梯控制器和点提按钮的请求服务信息。
电梯控制器选择一个合适的电梯为乘客服务。
(静态视图)
5类的组合关系和聚合关系的区别和联系
•有时两个具有关联的类具有着“整体/部分”的关系,其中一类描述了较大的事物(“整体”),它有较小的事物(部分)组成—这种关系成为聚合。
•聚合关系描述“hasa”关系,意味着整体对象拥有
部分对象,其图形表示如下:
(静态视图)
•组合是聚合的变体,相对聚合它添加了很多语义信息。
它表示的是更强的拥有关系,而且整体与部分的生命周期是一致的。
•这就意味着在组合中,一个对象在一个事件内只能是一个组合的一部分,如在窗口系统中,一个Frame只能隶属于一个Window,其图形表示如下:
(静态视图)
6对象图
对象图是某个时间点系统的映像,通常作为系统的一个实例使用。
对象图描述了可能发生的实例,它是系统的一个快照。
7对象图绘制的步骤,并举例说明
交互视图
1协作
协作是对上下文中交互实现某种行为对象群体的描述,它描述了许多对象合作实现特定目标的行为。
协作具有结构和行为两个方面:
结构方面包含了目标行为的上下文信息,如有关的角色、关系等;行为方面—由绑定于角色对象间的一些列交换消息描述。
2交互
交互是由协作中分类角色、关联角色进行交换的一系列消息。
3顺序图的交互表达机制
顺序图以二维表来显示交互。
–纵向是时间轴,时间自上而下;
–横向显示了协作中单个对象的分类角色。
每个分类角色表现为垂直列,即时间线。
–消息表示为从一个对象生命线到另一个对象生命线的箭头。
箭头自上而下按照时间顺序安排。
4协作图中的对象类别
协作图把对象分成四组:
在整个协作中存在的对象;交互中创建的对象(约束{destoryed});
交互中被销毁的对象(约束{new});交互中被创建和销毁的对象(约束{transient})。
5请比较顺序图和协作图,并讨论它们的应用场景。
顺序图和协作图都显示了交互,但是它们的侧重点不同:
顺序图显示了时间次序,但没有显式指明对象之间的关系;
协作图清晰的显示了对象间的关系,但实践次序必须从顺序号中读取。
鉴于此,顺序图常常用于场景的表示,协作图则在展示过程细节时更适用。
状态机视图
1状态机视图通过对每个对象的生命周期进行建模,描述了对象时间上的动态行为。
2状态机
•状态机是展示状态与状态转换的图。
•状态机是一个类的对象所有可能的生命历程的模型。
•状态机是一个对象的局部视图,一个将对象与其外部世界分离开来,独立的监测它的行为。
•状态机是对象局部化的视图,是一种很好的精确描述指明行为的方法。
3事件可以划分为信号事件、调用事件、变更/改变事件、时间事件四种类别。
4状态描述了一个对象生命期中的一个时间段。
5触发器事件
触发器事件是引起转换的事件。
事件可以有参数,以供转换的动作使用。
6谈谈你对状态图中事件的理解
•事件是发生在时间和空间上值得注意的事情。
它在一时间点上发生,没有持续时间。
如果某一事情的发生造成了影响,那么在状态机模型中它是一个事件。
•当我们使用事件这个词时,通常是指一个事件的描述符号。
事件可能有参数来辨别每个实例,就像类用属性来辨别每个对象一样。
•事件可以划分为各种类别—信号事件、调用事件、变更/改变事件、时间事件。
7某建筑有一部电梯,该电梯初始安装在一层。
当电梯空闲时间超时时,无论电梯当前在那
一楼层,都将移向一层(即底层),到达一层后即停留,以等待用户服务请求得到达。
请采
用状态图对电梯系统建模。
活动视图
1通常,活动图用来建模操作/计算流和工作流。
2活动图从本质上是一个流程图,显示了从活动到活动的控制流。
3活动
•一个活动是一个状态机中进行的非原子执行单元。
•活动最终导致一些动作,这些动作由可执行的原子计算组成。
•动作包括调用一个操作,发送一个信号,创建/撤销某对象等。
4动作状态
•动作状态代表了可执行的原子计算,每一个原子计算都代表了一个动作的执行。
•动作状态不能再分解,即动作状态可以发生,但动作状态的工作不能中断。
•在UML中动作状态的工作所占用的时间一般可以忽略。
5动作状态和活动状态的区别
•活动状态、动作状态仅仅是状态机中状态的特殊种类。
–当进入一个动作或活动状态时你是简单的执行动作/活动状态;
–当结束一个动作/活动状态时控制权就传送给下一个动作/活动。
•一个活动状态在语义上等价于在适当地方展开的活动图,直到该活动图紧紧看到动作为止。
6使用活动图建模工作流的原则
•为工作流建立一个焦点,即观测的视角;
•选择对工作流中的具有高层职责的业务对象建模,并为每个主要的对象建立泳道;
•识别工作流的初始状态的前置条件和停止状态的后置条件,这样有助于识别工作流的边界;
•从工作流的初始状态开始,按照时间顺序表示并连接活动状态/动作状态;
•将复杂的动作或多次出现的动作集合进行合并,形成一个活动状态,必要时在一个活动图中展开;
•找出连接活动/动作状态的转换,考虑顺序流、并发流等情况;
•如果工作流中涉及重要的对象,则把他们加入到活动图中;
•如果对表达对象流的意图是必要的,则显示其变化的值和状态;
7活动视图和交互视图的区别
•交互视图强调从对象到对象的控制流,而活动图强调从活动到活动的控制流。
•交互视图观测的是传送消息的对象,活动图观测的是对象间传送的操作。
物理视图
1构件是定义了良好接口的物理实现单元,它是系统中可替换的部分。
每个构件体现了系统设计中特定类的实现;
2构件包含代码特征和身份特征两方面的特征。
3构件和类的区别和联系
•相同点
1、都可以是实现一组接口;2、都可以参与依赖、泛化、关联关系;
3、都可以嵌套;4、都可以具有实例;5、都可以参与交互;
•不同点
–类表示逻辑抽象,而构件表示存在于Byte世界的物理抽象,即构件可以存在于节点之上;[这一项差异指明了建模时候是采用构建还是类的决策基础]
–构件表示的是物理模块而不是逻辑模块,而类处于不同的抽象级别;[可以看出类和构件的关系,构件是类等逻辑元素的物理实现,可以采用显式展示类和构件的依赖关系]
–类可以拥有属性和操作,而构件拥有得只能够是通过其接口访问的操作;[特别指出接口是类和构件的桥梁,它连接了系统的逻辑模型和物理模型]
4、构件实现的接口称为示出接口exportinterface,即构件提供给其他构件的服务接口;
构件使用的接口称作引入接口importinterface,即应用它的构件必须遵循这个接口并以此为基础构造。
5构件的种类有实施构件、执行构件、工作产品构件三种类型。
6构件的特点
•构件是系统中的一个物理实现片断,它是实现域中的元素;
•一个构件基本独立于其他构件,但很少独立存在。
通常为了完成某项功能,构件需要一个结构化的语境;
•构件是系统中可以替换的部分,是系统设计和组建的基石;
•构件完成明确的功能,在逻辑和物理上具有粘聚性,它代表了一个更大系统中的一段有意义的结构/
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- UML 复习题 完整版