uml试题解答
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1、软件工程的生命周期:需求分析阶段;系统分析与设计阶段;系统实现阶段;测试阶段;
维护阶段。
2、建模的目标是:
(1)便于开发人员展现系统;
(2)允许开发人员制定系统的结构或行为;
(3)提供指导开发人员构造系统的模板;
(4)记录开发人员的决策。
建模的实质是:对现实的简化;通过将问题分割成一系列可以解决的、较小的问题来解决复杂问题。
3、建模的四原则是:
(1)认真选择模型;
(2)每个模型可以有多种表达方式;
(3)最好的模型总是能够切合实际;
(4)孤立的模型是不完整的。
4、面向对象=对象+类+继承+通信。
继承是指子类可以自动拥有父类的全部属性与操作;使得父类和子类之间能够共享数据和方法。
继承简化了对现实世界的描述,定义子类时不必重复定义那些在父类中已经定义过的属性与操作。
而只需专注于自己特有的属性与操作。
有了继承机制,软件的可复用性得到提高。
多态是指同一操作作用于不同的对象,可以有不同的解释,产生不同的执行结果。
通常通过派生类重载基类中的同名函数来实现。
分为:编译时的多态性和运行时的多态性。
5、面向对象的程序设计语言有:基于Smalltalk的语言;基于C的语言;基于LISP的语言;
基于Pascal的语言。
6、面向对象分析的基本原则:抽象原则;分类原则;聚合原则;关联原则;消息通信原则。
7、面象对象分析的层次共有:主题层;类与对象层;结构层;属性层;服务层。
在设计期
间主要扩充4个组成部分:人机交互子系统部分、问题域子系统部分、任务管理子系统部分、数据管理子系统部分。
8、Rstional Rose的主界面由标题栏、菜单栏、工具栏、工作区和状态栏组成。
默认的工作
区由左侧的浏览器和文档区,右侧的编辑区和下方的日志记录组成。
9、Rational Rose中有4个视图:
(1)用例视图:只关注系统功能的高层形状,不关注系统的具体实现方法;
(2)逻辑视图:关注系统如何实现用例中提出的功能,提供系统的详细图形,描述组件之间如何关联。
(3)组件视图:显示代码模块之间的关系。
(4)配置视图:关注系统的实际配置,可能与系统的逻辑结构有所不同。
10、UML包括的图有“
(1)用例图:显示多个外部参与者以及他们与系统提供的用例之间的连接。
(2)类图:是对应用领域或应用解决方案中概念的描述。
(3)对象图:显示的是类的多个对象实例;用于显示系统执行时的一个可能的快照,即在某一点上系统可能呈现的样子。
(4)状态图:用于显示类的对象可能具备的所有状态,以及引起状态改变的事件。
(5)时序图:显示多个对象之间的动态协作,重点显示对象之间发送的消息的时间顺序。
(6)协作图:显示消息的交换,显示对象以及它们之间的关系。
(7)活动图:用来描述执行算法的工作流程中涉及的活动。
(8)组件图:用代码组件来显示代码物理结构,一个组件包含它所实现的一个或多个逻辑类的相关信息。
组件图用于实际的编程工作中。
(9)配置图:用于显示系统中的硬件和软件的物理结构。
可以显示实际的计算机和设备和它们之间的连接与连接类型。
11、UML中的模型元素包括事物和事物之间的联系;
事物有:结构事物;动作事物;分组事物;注释事物。
关系有:关联关系;依赖关系;泛化关系;实现关系;聚合关系。
12、UML中通用机制的组成:
(1)修饰:为途中的模型元素增加语义,通常将修饰写在相关元素的旁边。
(2)注释:为模型添加不能用建模语言来表示的信息,以自由文本的形式出现。
(3)规格说明
(4)通用划分
(5)扩展机制
13、UML建模的一般步骤:P74
14、用例图是由软件需求分析到最终实现的第一步,它描述人们希望如何使用一个系统,
用例图显示谁将是相关的用户,用户希望系统提供什么服务,以及用户需要为系统提供的服务。
用例图包含6个元素:参与者,用例,关联关系,包含关系,扩展关系,泛化关系。
15、参与者是系统外部的一个实体,它通过向系统输入或请求系统输入某些事件来触发
系统的执行。
有3大类参与者:系统用户,其他系统,一些可以运作的进程。
通过下列问题来确定参与者:
(1)谁将使用系统的主要功能
(2)谁将需要该系统的支持以完成工作
(3)谁将需要维护,管理该系统,以及保护该系统处于工作状态
(4)系统需要处理哪些硬件设备
(5)与该系统交互的是什么系统
(6)谁或什么系统对本系统产生的结果感兴趣
16、参与者间的关系一般用泛化关系来描述
17、用例间的关系有:关联关系,包含关系,扩展关系,泛化关系
18、类图包含7个元素:类,接口,协作,依赖关系,泛化关系,关联关系,实现关系。
19、类之间的关系有:依赖关系,泛化关系,关联关系,实现关系。
20、类建模一般步骤:P104
21、对象图是用来描述参与交互的各个对象在交互过程中某一时刻的状态,可以被看作
是类图在某一时刻的实例。
22、类图和对象图的区别:
23.包图是维护和控制系统总体结构的重要建模工具,包图由包和包之间的关系组成。
24
、包拥有的元素:可以是类,接口,组件,节点,协作,用例和图,甚至是其他包。
一个模型元素不能被一个以上的包所拥有。
26、包之间的关系有:引入和访问依赖,用于在一个包中引入另一个包输出的元素 泛化,用于说明包的家族
27、状态机:是展示状态与状态转换的图,UML 用状态机对软件系统的动态特征建模。
状态机由状态,转换,事件,活动和动作组成。
28、引发状态转换的事件主要有:入口事件,出口事件,动作事件,信号事件,调用事
件,修改事件,时间事件,延迟事件。
29、状态图建模步骤:
(1)找出适合用模型描述其行为的类 (2)确定对象可能存在的状态 (3)确定引起状态转换的事件
(4)确定转换进行时对象执行的相应动作 (5)对建模的结果进行相应的精化和细化
30、活动图是UML 用于对系统的动态行为建模的工具,描述活动的顺序,展现从一个活
动到另一个活动的控制流。
活动图是内部处理驱动的流程;状态图主要有外部事件的参与。
活动图与流程图的区别:
(1)流程图着重描述处理过程,各个处理过程之间有严格的顺序和时间关系;活动
图描述的是对象活动的顺序关系所遵循的规则,着重表现的是系统的行为 (2)活动图能够表示并发活动的情形,而流程图不能 (3)活动图是面向对象的,流程图是面向过程的
31、活动图的组成元素:动作状态,活动状态,动作流,分支与合并,分叉与汇合,泳
道,对象流。
32、泳道将活动图中的活动化为若干组,并把每一组指定给负责这组活动的业务组织。
泳道区分了负责活动的对象,明确表示了哪些活动由哪些对象进行的。
33、活动图建模一般步骤:
(1)识别要对工作流描述的类或对象
(2)确定工作流的初始状态和终止状态,明确工作流的边界
(3)对动作状态或活动状态建模
(4)多动作流建模
(5)对对象流建模
(6)对建立的模型进行简化和细化
34、时序图的组成有:对象:用矩形将对象包含起来,并且对象名称有下划线
生命线:垂直的虚线,每个对象的底部中心的位置都带有生命线
消息:P164
激活:将对象的生命线扩宽为矩形,矩形就称为激活条或控制期。
35、激活表示该对象被占用以完成某个任务。
36、对象的创建:P166
对象的撤销:只要在其生命线终止点位置放置一个“X”符号即可,该点通常是对删除或取消消息的回应。
37、协作图组成元素有:对象,链,消息
38、协作图与时序图的相同点:
(1)两种图都直观的规定了发送对象和接收对象的责任
(2)两种图都支持所有的消息类型
(3)两种图都是衡量耦合性的工具
协作图与时序图的区别:
(1)协作图的重点是将对象的交互映射到它们之间的链上,协作图以对象图的方式绘制各个参与对象,并且将消息和链平行放置而时序图却不把链表示出来。
(2)时序图可以描述对象的创建和撤销的情况,在协作图中,对象要么村子要么不存在,只能通过消息描述或约束来表示对象的创建或结束
(3)时序图可以表现对象的激活和去激活情况,协作图只能对消息进行解释,无法清晰表示对象的激活和去激活情况。
39、协作图通过时序图来表示消息的时间顺序,因为时序图描述了交互过程中的时间顺
序并且协作图和时序图的语义等价。
40、组件图的种类有:配置组件,工作产品组件,执行组件
41、Rational Rose中组件的表示:P186
42、接口是在没有给定出对象的实现和状态的情况下对对象行为的描述。
接口和组件的关系有:依赖关系,实现关系
接口的种类有:导入接口,导出接口
43、组件图的建模步骤:
(1)对系统中的组件建模
(2)对相应组件提供的接口建模
(3)对组件之间的依赖关系建模
(4)将逻辑设计映射成物理实现
(5)对建模的结果进行精化和细化
44、节点是运行时代表计算资源的物理元素,通常拥有一些内存,并具有处理能力。
节点种类:处理器,设备
45、节点之间的关联关系:P198
46、配置图建模步骤:
(1)对系统中的节点建模
(2)对节点之间的关联关系建模
(3)对驻留在节点上的配置建模
(4)对驻留在节点上的配置之间的依赖关系建模
(5)对建模结果进行精化和细化
47、UML四层元模型体系结构:元元建模层(M3层),元模型层(M2层),模型层(M1
层),运行时实例层(M0层)。
48、元元模型层的结构:元元模型层是UML的基础结构,由Infrastructure包表示。
基
础结构库包由核心包和外廓包组成,前者包括了建立元模型时所用的核心概念,后者定义了定制模型的机制。
49、构造型的定义及表示:P209 ~P210
50、Rose双向工程:P219
支持Rose双向工程的建模工具有:Sparx System 的Enterprise Architect 和IBM 的Rational Rose
51、Rational Rose 中Java代码的生成步骤:
(1)将Java类加入模型中的Java组件
(2)语法检查
(3)设置“Classpath”
(4)设置“Code Generation”参数
(5)备份文件
(6)生成Java代码
52、逆向工程中注意的问题:设置或检查CLASSPATH环境变量;创建和修改类图、组件
图。
53、软件过程是指实施于软件开发和维护中的阶段,方法,技术,实践和相关产物(设
计,文档,模型,代码,测试用例和手册)的集合。
54、当前流行的软件过程有:
(1)Rational Unified Process(RUP)
(2)OPEN Process
(3)Object-Oriented Software Process(OOSP)
(4)Extreme Programming(XP)
(5)Catalysis
(6)Dynamic System Developmnet Method(DSDM)
55、RUP的核心工作流:商业建模,需求分析,分析与设计,实现,测试,部署,配置
和变更关系,项目管理,环境
56、对象约束语言OCL:
(1)OCL是一种精确的,无二义性的语言,易于使用和掌握
(2)OCL是一种规范说明性语言
(3)OCL是一种纯表达式语言
(4)OCL是一种类型化语言
(5)OCL不是程序设计语言
57、标准OCL的类型有:oclType类型;oclAny类型;基本类型;集合类型(Collection
类型;Set类型;Bag类型;Sequence类型);OCL中的关键字。
58、OCL表达式是用于对一个OCL类型求值。
OCL表达式的特点:
(1)OCL表达式可以附加在模型元素上
(2)OCL表达式可以附加在操作上
(3)OCL表达式指定附加在模型元素上的监护条件
(4)OCL表达式的计算原则是从左到右
(5)既可以使用基本类型又可以使用集合类型。