对象约束语言
UML选择、填空
一、填空题1、软件对象可以这样定义:所谓的软件对象,是一种将状态和行为有机结合起来形成的软件构造模型,它可以用来描述现实世界中的一个对象。
2、类是具有相同属性和操作的一组对象的组合,即抽象模型中的“类”描述了一组相似对象的共同特征,为属于该类的全部对象提供了统一的抽象描述。
3、面向对象程序的基本特征是抽象、封装、继承和多态。
4、在UML中主要包括的视图为静态视图、用例视图、交互视图、状态机视图、活动视图、物理视图和模型管理视图。
5、UML图包括:用例图、类图、状态图、序列图、活动图、构件图和部署图。
6、用例图描述了系统的参与者与系统进行交互的功能,是参与者所能观察和使用到的系统功能的模型图。
一个用例是系统的一个功能单元,是参与者与系统之间进行的一次交互作用。
7、状态机视图是通过对象的各种状态建立模型来描述对象随时间变化的动态行为,并且它是以独立的对象为中心进行描述的。
8、用例图的主要目的是帮助开发团队以一种可视化的方式理解系统的功能需求,包括基于基本流程的“角色”关系,以及系统内用例之间的关系。
9、在UML中定义了4种基本的面向对象的事物,分别是结构事物、行为事物、分组事物和注释事物等。
10、使用Rational Rose建立的Rose模型中包括4种视图,分别是用例视图、逻辑视图、构件视图和部署视图。
11、在用例视图中包括了系统中的所有参与者、用例和用例图,必要时还可以在用例视图中添加顺序图、协作图、活动图和类图等。
12、逻辑视图关注系统如何实现用例中所描述的功能,主要是对系统功能性需求提供支持,即系统应该提供的功能。
13、构件视图用来描述系统中的各个实现模块以及它们之间的依赖关系,包含模型代码库、执行文件、运行库和其他构件等信息。
14、部署视图显示的是系统的实际部署情况,它是为了便于理解系统如何在一组处理节点上的物理分布,而在分析和设计中使用的构架视图。
15、Rational统一过程以一种能够被大多数项目和开发组织适应的形式建立起来,其所包含的6项最佳实践为:迭代式软件开发、需求管理、基于构件的架构应用、建立可视化的软件模型、软件质量验证、软件变更控制。
uml试题解答
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)逻辑视图:关注系统如何实现用例中提出的功能,提供系统的详细图形,描述组件之间如何关联。
软件工程-构件级设计建模
软件工程
8.1 什么是构件(续)
• 针对不同的系统设计体系,构件所指的对 象不一样。
软件工程
8.1.1 面向对象观点
• 在面向对象的设计中,构件指一个协作类的集合。 • 一般来讲,构件的规模比类大,但有时一个构件
也可以对应一个类。 • 在构件级设计时,应设计出类的所有属性以及和
其它类之间的相关操作,通信接口必须明确定义。
软件工程
软件工程
• (2) 为每个构件确定适当的接口
– UML接口是“一组外部课件的(即公共的)操 作,接口不包含内部结构、没有属性,没有关 联……”
– 为设计类定义的接口可以归结为一个或者更多 的抽象类
– 抽象类中的每个操作接口应该是内聚的
内聚性差!
软件工程
建立工作单 检查任务的优先级
将任务传递给生产线
–某些情况下,部署图 在这个时候被细化为 实例形式
7. 反省和检查现有的设计
软件工程
8.4 对象约束语言
• 对象约束语言(Object Constraint Language, OCL),一种形式化语言
• 四个组成部分:
–语境—定义了哪些情况语句是正确的 –特征—描述语境的一些特征 –操作—用来操纵和限制一个特性 –关键字—用于说明条件表达式
个数据类型时
软件工程
8.2.4 耦合性(续)
• 包含或导入耦合—当构件A引入或者包含一个 构件B的包或者内容时
• 外部耦合—当一个构件通信和协作时发生
构件的UML表示
软件工程
图 带接口的构件 构件具有它们支持的接口和需要从其他构件得到的接口
构件图表示了构件之间的依赖关系。
软件工程
每个构件实现(支持)一些接口,并使用另一些接
PowerDesigner业务处理模型(BPM)说明
一.BPM 简介业务处理模型(Business Process Model:BPM)是从业务人员的角度对业务逻辑和规则进行详细描述的概念模型,并使用流程图表示从一个或多个起点到终点间的处理过程、流程、消息和协作协议。
通过BPM可以描述系统的行为和需求,可以使用图形表示对象的概念组织结构,然后生成所需要的文档。
作为一个概念层次的模块,BPM适用于应用系统的系统分析阶段,完成系统需求分析和逻辑设计。
BPM与PowerDesigner其它模块之间的关系如图:1.1 PowerDesigner BPM包括3种流图:1)处理层次流图(Process hierarchydiagram):以层次化的方式来识别系统的功能。
2)业务处理流图(Business process diagram):用于分析一个/组流程的具体实现机制。
3)处理服务流图(Process service diagram):以业务服务的方式来表述业务流程图。
1.2 创建BPM对象(1)创建包(2)创建业务规则(3)创建起点(4)创建处理过程(5)创建组织单元/组织单元泳道图(6)创建流程(7)定义消息格式(8)创建资源(9)创建资源流程(10)创建终点二.示例2.1 创建BPMFile-->; New Model注意这里的Precess Language选择,默认为Analysis,其在Palette 对应的为组织单元为:Organization unit Swimlane。
下文会有详细说明。
2.2 设置BPM 配置选项Tools→Model Option,或者在流程图窗口中右键菜单,选择Model Option命令。
2.3 修改BPM 属性三种方法:(1)Model→Model Properties(2)工作区中右键菜单Properties命令(3)左侧列表中右键Properties命令BPM的属性列表属性名说明长度Name模型名称254字符Code模型代码254字符Comment模型注释-Filename模型文件存储路径。
UML课后习题答案
用户登录邮寄商品查看商品详情
输入支付信息:太小
邮件商品:系统功能之外
查看商品详情:太小
6.为了满足物业中介行业的信息化要求,甲公司基于详尽的需求调研与分析,准备研发一套符合市场需要的、实用的信息管理系统。主要将实现客户资料信息管理、客户委托(出租、出售、租赁、购买)信息管理、业务线索生成与管理、房源状态自动更新、权限管理、到期用户管理、房源组合查询等功能。该公司小王,通过多次的与潜在客户的交流与沟通,完成了最初的用例模型的开发,图6-14是一个用例模型的局部:
扩展关系,是关系构造块。
5.可以包含其它事物构造块的构造块是什么?它属于什么类型的事物构造块?
可以包含其它事物构造块的构造块是包,它属于分组事物构造块。
6.在UML中定义了哪几种可见性规则?其中package的含义是什么?
定义了public、private、protected、package,package是指只有声明在同一个包中的元素才能够看到该元素。
2)修改方法:将“打开房源信息页面”、“录入房源信息”、“确认提交信息”合并为“新增房源信息”。
(2)在上图中构造型“《include》”表示的是什么意思,它与“《extend》”之间的区别是什么?
在用例模型中,构造型“《include》”是用来表示包含关系。它通常用来表示被包含用例是被多包含用例使用的一个可复用模块,而《extend》且通常用来表示对用例的扩展。
用户故事:由客户参与编写,说明他们需要系统为他们做什么,一般用客户的术语编写,其长度约为三句话左右
特性:就是一个小的,具有客户价值的功能
2.在用例图中参与者是什么,它属于系统范围之内吗?
参与者是为了完成一个事件而与系统交互的实体,它不属于系统范围之内。
第二十一章 形式化建模与验证
1
21.1 净室策略
净室方法使用第2章所介绍的增量过程模型的专 业版。一个“软件增量的流水线”[Lin94b]由若干小 的、独立的软件团队开发。每当一个软件增量通过认 证,它就被集成到整体系统中。因此,系统的功能随 时间增加。
增量1 RG
BSS
FD
CV
TP
CG
CI
SUT
C
增量2 SE RG BSS FD CV TP BSS FD CV TP 净室过程模型
清晰盒包含了对状态盒的过程设计。
2014年12月11日星期四
Data Mining: Concepts and Techniques
6
CB1.1.1.1 BB1.1.1 SB1.1.1 CB1.1.1.2
BB1.1 BB1
BB1.2
BB1.1.2 BB1.1.3
CB1.1.1.3
BB1.n
盒结构求精
2014年12月11日星期四 Data Mining: Concepts and Techniques 14
Cont:[y2≤x]
y=y+1
21.4 净室测试
传统的测试方法导出一组测试用例,以发现设计和编码
错误;净室测试的目的是通过证明用例的统计样本的成 功运行来确认软件需求。
2014年12月11日星期四
得多,这种严格需要更多的工作量,单从一致性和完整性 的提高方面得到的好处在很多类型的应用中得到证明。
2014年12月11日星期四
Data Mining: Concepts and Techniques
24
21.7
形式化规格说明语言
形式化规格说明语言通常由3个主要成分构成:
第11章UML扩展机制
(2) Set
是不包括重复元素的对象组,Set中的元素是
无序的。
(3) Bag
可以包含重复元素的对象组
(4) Sequence
可以包含重复元素,且Sequence中的元素是
有序的。
5 OCL中的关键字
与程序设计语言一样,OCL也定义了一些 关键字。 OCL中的关键字见表11.4。
对象约束语言简称OCL(Object Constraint Language),它是一种用于施加在指定的模型 元素上约束的语言。 OCL表达式以附加在模型元素上的条件和限制来 表现对该对象的约束,其中包括附加在模型元素 上的不变量或约束的表达式、附加在操作和方法 上的前置条件和后置条件等。 约束表示建模元素上的附加语义信息。在大多数 情况下,它们的内容不直接影响代码生成。
OCL的特点
① OCL是一种精确的、无二义性的语言,易于使 用和掌握。 ② OCL是一种规范说明性语言,所有有关实现的 问题都不能用OCL来表达。 ③ OCL是一种纯表达式语言,它是具有没有任何 副作用的声明性语言。对OCL表达式的计算将 返回一个值,计算不会改变系统的状态。 ④ OCL是一种类型化语言,即OCL中的每个表达 式都是具有类型的。 ⑤ OCL不是一种程序设计语言,不能用OCL编写 程序逻辑和控制流程。
1. OCL表达式的语法
① ② ③ ④ OCL表达式的语法用扩展的巴斯科范式 (EBNF)定义,在EBNF中: “|”表示选择 “?”表示可选项 “*”表示零次或多次 “+”表示一次或多次
1. OCL表达式的语法
OCL基本表达式的语法用EBNF定义如下:
PrimaryExpression:=literalCollection | literal | pathName time Expression ? FeatureCallparameters? | “(“ expression ”)” | ifExpression Literal:=<string> | <number> | “#” <name> timeExpression:=”@”<name> featrueCallParameters:=”(”(declarator)?(actualParameterList)?”)” ifExpression :=”if” expression “then” expression “else” expression “endif”
ocl语法
OCL(Object Constraint Language)是一种用于对对象进行约束描述的规则语言,它是UML(Unified Modeling Language)的一部分,用于对类、对象、关联关系等进行约束描述。
OCL规则通常由一个条件和一个约束组成,其中条件部分描述了规则的前提条件,约束部分描述了规则的执行结果。
OCL规则通过使用关系运算符、逻辑运算符、集合运算符等进行表达。
OCL语法包括以下部分:1. 类型和语法:OCL是强类型的语言,任何表达式的值都是属于一个类型的。
这个类型可以是预定义的标准类型例如Boolean或者Integer,也可以是UML图中的元素例如对象。
因为OCL是宣言式语言,所以UML中的表达式被提升到了纯建模的领域,而不必理会实现的细节和实现的语言。
OCL起源于1997年BIM公司为响应OMG 的"面向对象分析和设计标准"征求稿所提交的"对象时间限制提议",OCL是该提议的部分内容。
用OCL可以描述四类约束,分别是不变量、前置条件、后置条件和监护条件。
2. OCL规则的应用:OCL规则在软件开发中有多种应用,包括数据验证、业务逻辑验证、数据推导和约束生成等。
例如,在银行系统中,可以使用OCL规则对用户输入的金额进行验证,确保金额大于等于零且小于用户账户余额;在电商系统中,可以使用OCL规则对订单状态进行验证,确保订单在不同状态下的合法操作;在学生管理系统中,可以使用OCL规则根据学生的成绩和出勤情况推导出学生的绩点;在航空订票系统中,可以使用OCL规则生成乘客姓名的约束条件,确保乘客姓名只包含字母和空格。
以上信息仅供参考,如需了解更多信息,请查阅相关书籍或咨询专业人士。
oclp使用方法
oclp使用方法OCLP使用方法OCLP(Object Constraint Language Profile)是一种用于描述对象约束的语言,可以帮助开发人员在软件开发过程中定义和验证系统中的对象之间的约束关系。
本文将介绍OCLP的使用方法,帮助读者更好地理解和应用OCLP。
一、OCLP简介OCLP是一种类似于自然语言的表达方式,用于描述对象之间的约束关系。
它基于UML(统一建模语言)的基础上发展而来,主要用于软件系统的规约和验证。
OCLP可以帮助开发人员明确系统中各个对象的行为和约束,从而提高软件的稳定性和可靠性。
二、OCLP的基本语法1. 变量定义:使用关键字“context”定义一个对象的上下文,然后使用关键字“inv”定义对象的约束条件。
例如:context Person inv: self.age > 182. 属性访问:使用点号“.”来访问对象的属性。
例如:3. 关系操作:使用关键字“allInstances”来获取对象的集合。
例如:Person.allInstances()4. 逻辑操作:支持常见的逻辑操作符,如与(and)、或(or)、非(not)等。
例如:self.age > 18 and self.gender = 'male'5. 数学操作:支持常见的数学操作符,如加(+)、减(-)、乘(*)、除(/)等。
例如:self.salary * 0.1三、OCLP的使用步骤1. 定义需要验证的对象:首先,确定需要验证的对象和其属性。
例如,我们需要验证一个人的年龄是否大于18岁,那么我们就需要定义一个Person对象和其age属性。
2. 定义约束条件:在对象的上下文中,使用“inv”关键字来定义约束条件。
例如,我们可以定义一个约束条件,要求Person对象的age属性大于18岁。
3. 编写OCLP表达式:根据约束条件,使用OCLP的语法编写相应的表达式。
(完整word版)UML基础与Rose建模复习资料
UML 基础与 Rose 建模复习资料1-4 章一、主要内容1、对象与类的定义对象:是面向对象系统的基本构造块,是一些相关的变量和方法的软件集。
(对象经常用于建立对现实世界中的一些基本构造块)注:客观世界里的任何实体都可以被称为对象。
对象可以是具体的、有形的物,也可以是无形的事物或概念。
对象是问题域或实现域中某些事物的一个抽象。
对象是一个封装数据属性和操作行为的实体。
类:是具有相同属性和操作的一组对象的组合。
也就是说,抽象模型中的“类”描述了一组相似对象的共同特征,为属于该类的全部对象提供了统一的抽象描述。
2、面向对象的基本特征:1)抽象:抽象忽略了事件中与当前目标无关的非本质特征,强调与当前事物相关的特征,并将事物正确的归类,得出事物的抽象模型,并且为对象的重用提供了保障2)封装:就是把对象的状态和行为绑到一起的机制,使对象形成一个独立的整体,并且尽可能地隐藏对象的内部细节。
3)继承:是指特殊类的对象拥有其一般类的属性和行为。
4)多态性:同一操作作用于不同的对象,可以有不同的解释,产生不同的执行结果。
3、 UML 包含的视图以及这些视图都对应的图UML 中主要视图有:静态视图、用例视图、交互视图、状态机视图、活动视图、物理视图、模型管理视图对应的图如下图所示4、 UML 包含的图以及图的作用在下面的各章节中都分别有总结,这里就不总结5、 UML 中模型元素的主要关系UML 中主要包含 4 种关系:依赖、关联、泛化、实现依赖:指的是两个事物之间的语义,当其中一个事物(独立的事物)发生变化就会影响另外一个事物(依赖事物)的语义。
关联:是一种事物之间的结构关系,用它来描述一组链,链是对象之间的连接。
泛化:事物之间的一种特殊 / 一般关系,特殊原子(子元素)的对象,也就是我们在面向对象学中常常提起的继承。
实现:实现关系也是 UML 元素之间的一种语义关系,它描述了一组操作的规约和一组对操作的具体实现之间的语义关系。
基于面向对象UML模型分析
基于面向对象UML模型分析作者:张海飞来源:《武汉科技报·科教论坛》2013年第11期【摘要】面向对象的方法一般都是经过对对象的分析、抽象,建立对象之间的关系,只是每一种方法都有其应用背景和侧重点。
UML语言是一个复杂、庞大的系统建模语言。
其目标是希望能够解决整个面向对象软件开发过程中的可视化建模。
在软件工程具体实践中,不论是在系统需求阶段,还是在对象的分析与设计、软件的实现与测试阶段,都需要有一种能提供清晰的表达方法和完善的工具,便于建立起相应的软件模型。
UML具备这种特性。
【关键词】面向对象;UML;元模型面向对象技术(OO)是一种非常实用的软件开发技术,是为了增强软件系统的稳定性、可重用性和可修改性开发出来的一款软件工具,具有方法的连续性、唯一性的特性,并把面向对象分析和设计、编程集成到软件存活周期的对应阶段。
UML是元模型层的表述语言,它的实例包括模型层,也能够直接对应OO语言中的类、类型、消息、继承、聚集和接口。
模型限制了对象的属性、操作和聚集。
采用表示法系统对其所表达的层次叫模型层。
一个系统常常是多个模型的聚集、相互结合和通信的组合。
需要一种手段组成各个模型,因此把属性、结合、操作、通信进一步抽象为行为元素和结构元素来表达模型,并且提供表达系统的机制,这一层称为元(Meta)模型层。
UML表示法的最上层是元-元模型层。
为了和OMG组的元对象设施(MOF)提供的元-元模型一致,UML的元模型体系结构直接从MOF的元模型生成。
用户通过UML提供的表示法构造自己系统的元模型,尤其是以图形表示模型元素时,但其语法解释不准确。
因此UML提供形式化语言OCL(对象约束语言)以一阶谓词逻辑模型描述各种约束。
事实上,UML是软件工程中形式化规格说明语言研究的派生。
因为,只有形式规格说明描述的软件体系结构在其各开发阶段中才能保证语义的一致性。
UML在给出自身的语义说明时对于每个包都给出三个层次的说明,即抽象的语法、良构的规则和语义。
计算机辅助软件工程(CASE)复习资料
计算机辅助软件工程(CASE)复习资料选择题1. 下面哪个UML视图是描述一个对象的生命周期的A. 类图B. 状态图C. 协作图D. 组件图2.类的定义不包含以下的要素A.类的属性B.类所要执行的操作C.类的编号D.属性的类型3.对反应型对象建模一般使用A.状态图B.序列图C.活动图D.类图4.下列关于接口关系的说法不正确的是A.接口是一种特殊的类B.所有接口都是有构造型<<interface>>的类C.一个类可以通过实现接口从而支持接口所指定的行为D.程序运行时,其他对象不仅需要依赖于此接口,还要知道该类对接口实现的其他信息5.下列关于系统的模型组织结构的说法不正确的是A.将系统的模型组织分层或分组能够将一个大系统进行分解,降低系统的复杂度B.将系统的模型组织分层或分组使单块模型没有适用于其他情况的可重用的单元C.将系统的模型组织分层或分组能够允许多个项目开发小组同时使用某个模型而不发生过多的相互牵扯D.将系统的模型组织分层或分组使一个小的、独立的单元所进行的修改所造成的后果可以跟踪确定6. UML体系包括三个部分:UML基本构造块,UML公共机制和A.UML规则B.UML命名C.UML模型D.UML约束7.下列对用例的泛化关系描述不正确的是A.用例的泛化关系中,所有的子用例都有相似的目的和结构。
注意它们是整体上的相似B.用例的泛化关系中,基础用例在目的上可以完全不同,但是它们都有一段相似的行为,它们的相似是部分的相似不是整体的相似C.用例的泛化关系类似面向对象中的继承,它把多个子用例中的共性抽象成一个父用例。
子用例在继承父用例的基础上可以进行修改D.用例的泛化指的是一个父用例可以被特化形成多个子用例,而父用例和子用例之间的关系就是泛化关系8.关于协作图的描述,下列哪个不正确A.协作图作为一种交互图,强调的是参加交互的对象的组织B.协作图是序列图的一种特例C.协作图中有消息流的顺序号D.在ROSE工具中,协作图可在序列图的基础上按“F5”键自动生成9.下面不是状态图组成要素的是A.状态B.转换C.初始状态D.链10.在软件测试中,“高产”的测试是指A.用适量的测试用例运行程序,证明被测程序正确无误B.用适量的测试用例运行程序,证明被测程序符合相应的要求C.用少量的测试用例运行程序,发现被测程序尽可能多的错误D.用少量的测试用例运行程序,纠正被测程序尽可能多的错误11.在UML中,接口有几种表达方式A. 2B. 4C. 6D. 812.下面不是活动图组成要素的是A.生命线B.动作状态C.泳道D.活动状态13.模块内所有成分形成一个整体,完成单个功能,则称其为A.过程性内聚B.时间性内聚C.功能性内聚D.偶然性内聚14.为了提高软件集成测试的效果,承担软件集成测试工作的人员最好是A.该软件的设计人员B.该软件开发组的负责人C、该软件的编程人员D.不属于该软件开发组的软件设计人员15.组成UML有三种基本的建筑块是:关系,图和A.事物B.类C.用例D.实体16.下列四个选项中,哪个不会出现在协作图中A.对象B.控制焦点C.消息D.对象间的连接17.下列关于对象约束语言的特性,说法不正确的是A.对象约束语言不仅是一种查询语言,同时还是一种约束语言B.对象约束语言是一种弱类型的语言C.对象约束语言是基于数学的,但是却没有使用相关数学符号的内容D.对象约束语言也是一种声明式语言18.缺乏灵活性,特别是无法解决软件需求不明确或不准确的问题的软件需求模型是A.瀑布模型B.原型模型C.增量模型D.螺旋模型19.程序的三种基本控制结构是A.过程,子程序,分程序B.顺序,条件,循环C.递归,堆栈,队列D.调用,返回,转移20.部署图的组成不包括A.处理器B.设备 C.构件 D.链接21.组成UML有三种基本的建筑块是事物、图和A. 关系B. 类C. 用例D. 实体22. UML体系包括三个部分:UML基本构造块,UML公共机制和A. UML规则B. UML命名C. UML模型D. UML约束23. 在类图中,“+”表示的可见性是A. PublicB. ProtectedC. PrivateD. Package24. 下面哪个视图属于UML语言的交互图A. 行为图B. 状态图C. 实现图D. 顺序图25. 下面哪个不是UML中的静态视图A. 用例图B. 状态图C. 对象图D. 类图26. 在类图中,哪种关系表达总体与局部的关系A. 泛化B. 实现C. 聚合D. 依赖27. 顺序图包含类角色,生命线,激活期和A.关系 B.消息C.用例D.实体28. 在ATM自动取款机的工作模型中(用户通过输入正确的用户资料,从银行取钱的过程),下面不是“Actor”的是A. 用户B. ATM取款机C. ATM取款机管理员D. 取款29. 可以认为对象不是A.某种可被人感知的事物B.思维、感觉或动作所能作用的物质C.思维、感觉或动作所能作用的精神体D.不能被思维、感觉或动作作用的精神体30.类的定义不包含以下的要素A.类的属性B.类所要执行的操作C.类的编号D.属性的类型31.下列关于交互视图说法正确的是A.交互视图描述了执行系统功能的各个角色之间相互传递消息的顺序关系,是描绘系统中各个角色或功能交互的模型B.交互视图包含类图和序列图C.交互视图的主要目的是帮助开发团队以一种可视化的方式理解系统的功能需求D.交互视图是参与者所能观察和使用到的系统功能的模型图32.两个模块间通过参数交换信息,而传递的信息中含有控制信息,则称其为A.数据耦合B.控制耦合C.外部耦合D.公共耦合33.模块内所有成分形成一个整体,完成单个功能,则称其为A.过程性内聚B.时间性内聚C.功能性内聚D.偶然性内聚34.缺乏灵活性,特别是无法解决软件需求不明确或不准确的问题的软件需求模型是A.瀑布模型B.原型模型C.增量模型D.螺旋模型35.程序的三种基本控制结构是A.过程,子程序,分程序B.顺序,条件,循环C.递归,堆栈,队列D.调用,返回,转移36.结构化程序设计的一种基本方法是A.筛选法B.递归法C.归纳法D.逐步求精法37.动作状态A.是非原子性的动作或操作的执行状态B.不是原子性的动作或操作的执行状态,它能被外部事件的转换中断C.通常用于对工作流执行过程中的步骤进行建模D.从理论上讲,所占用的处理时间极长38.UML的全称是A. Unify Modeling LanguageB. Unified Modeling LanguageC. Unified Modem LanguageD. Unified Making Language39.在软件测试中,“高产”的测试是指A.用适量的测试用例运行程序,证明被测程序正确无误B.用适量的测试用例运行程序,证明被测程序符合相应的要求C.用少量的测试用例运行程序,发现被测程序尽可能多的错误D.用少量的测试用例运行程序,纠正被测程序尽可能多的错误40.下列各项中不属于测试过程中的输入的是A.软件配置 B.测试配置 C.测试工具 D.测试用例41. 面向对象设计的基本特性除了封装和多态之外,还包括A. 一致性B. 完整性C. 继承性D. 可移植性42. UML的概念模型不包括A. 应用领域B. 规则C. 基本构造块D. 公共机制43. 如果对银行ATM的常用功能进行建模,包括取款、存款、转账、查询等,可以用来表示该系统的功能需求的是A. 序列图B. 用例图C. 活动图D. 对象图44.一个用例中加入一些新的动作后则构成了另一个用例,这两个用例之间的关系是A. 聚集B. 泛化C. 扩展D. 包含45. 通常把一组具有相同数据结构和相同操作的对象的集合定义为A. 类B. 属性C. 对象D. 消息46. 多对象是UML哪个视图中的概念A. 类图B. 状态图C. 协作图D. 组件图47. UML中关联的多重性是指A. 一个类由多少个方法被另一个类调用B. 一个类的实例能够与另一个类的多少个实例相关联C. 一个类的某个方法被另一个类调用的次数D. 两个类所具有的相同的方法和属性48. 在结构建模中,关系建模具有重要地位,下面关系中不属于基本关系的是A. 泛化B. 依赖C. 交互D. 关联49下面哪一个不是包的内聚性有三原则A. 重用发布等价原则B. 共同重用原则C. 共同封闭原则D. 共同继承原则50.UML体系包括三个部分:UML基本构造块,UML公共机制和A.UML规则B.UML命名C.UML模型D.UML约束51.下面哪个视图属于UML语言的交互图A. 行为图B. 顺序图C. 状态图D. 实现图52.顺序图是强调消息随时间顺序变化的交互图,描述顺序图的组成部分不包括A. 角色B. 转换C. 生命线D. 消息53.下面哪个UML视图是描述一个对象的生命周期的A. 类图B. 状态图C. 协作图D. 顺序图54.将活动图中的活动状态进行分组,每一组表示一个特定的类、人或部门,他们负责完成组内的活动。
UML 2.0(软考)
UML 2.0 特性的亮点UML 2.0的新改进可分为以下五个主要方面,按重要性顺序列出:•在语言定义方面精确程度有了相当的提高: 这就是支持自动化高标准需要的结果,此标准是MDD 所必须的。
自动化意味着模型(以及后来的模型语言)的不明确和不精密的消除,所以计算机程序能转换并熟练地操纵模型。
•一个改良的语言组织: 其特性是由模块化决定的,模块化的特点在于它不仅使得语言更加容易的被新用户所采用,而且促进了工具之间的相互作用。
•重点改进大规模的软件系统模型性能: 一些流行的应用软件表现出将现有的独立应用程序集成到更加复杂的系统中去。
这是一种趋势,它将可能会继续导致更加复杂的系统。
为了支持这种趋势,将更加灵活和新的分等级的性能添加到语言中去,用以支持软件模型在任意复杂的级别中使用。
•对特定领域的改进的支持: 使用UML 的实践经验证明了其所谓的“扩展”机制的价值。
这些机制被统一化,精炼化后,使得基础语言更加简化,更加准确精炼。
•全面的合并,合理化,清晰化各种不同的模型概念: 从而导致一种单一化,更加统一化语言的产生。
它包含了合并和――在一些案例中――消除多余的概念,精练各种各样的定义,添加文字性的解释和例子。
现在我们来更详细地研究一下上述的每个方面。
精确程度大多数的早期软件建模语言被非正式地定义,并很少注重它的精确性。
时常,建模概念被解释成使用不严密的自然语言。
由于大多数的建模语言在文件中或在Martin Fowler所提及的设计草图[Fowler04]中所使用,在那个时期,此模型概念得到了充分信任。
这种思想传达了一种设计的本质特性,而把细节留给实现阶段去处理。
然而,由于模型在这种语言中很可能――并且通常是――被不同的商家解释成不同的含义,因此经常导致概念混淆。
此外,除非模型解释的问题事先已被明确地讨论过,否则像这样的分歧还不能被人所发觉,而只是在发展的较后阶段才能被发现(即当问题的结果已明显显现时候)。
第4章 uml语言纵览-郭
聚合关系描述元素之间部分和整体的关系,即一 个模型元素可能由几个表示部分的模型元素聚合 而成。
组合关系是一种强聚合关系,用实心菱形表示,部分 依赖于整体的存在而存在。
4.4 通用机制
1. 2. 3.
4.
5.
通用机制使得UML更简单和易于使用,通用 机制可以为模型元素添加注释、信息或语义, 还可以对UML进行扩展。这些通用机制中包 括: 修饰 注释 规格说明 通用划分 扩展机制
注意箭头的方向
3.泛化关系 (generalization)
泛化是一种特殊/一般的关系,表明一个元素是 另一个元素的特例。 也可以看作是常说的继承关系
注意箭头的方向
4.实现关系(realization)
实现关系表示一个元素实现另一个元素。
例如:类实现接口, 协作实现用例
注意箭头的方向
5.聚合关系
※
协作图的一个用途是表示一个类操作的实现。
6.活动图
活动图描述执行算法的工作流程中涉及的活动
或一个过程的流程或操作的工作步骤,描述了 一组顺序的或并发的活动。
描述对象的动态特性。
活动图描述对象之间控制流的转换和同步机制。
7.状态图
状态图是对类描述的补充,用于显示类的对象可能具备的 所有状态和连接这些状态的转换组成 ,以及引起状态改 变的事件。 描述对象的动态特性。 仅对那些具有多个明确状态并且这些状态会影响和改变其 行为的类才绘制状态图。 注意:状态图是描述一个对象的状态,而活动图可以描绘 多个对象的状态。
Use Case Use Case Diagram Diagram 时序图
State State Diagram Diagram 类图 State State Diagram Diagram 对象图
UML面向对象建模基础答案(徐峰、陈暄-中国水利水电出版社)
UML不是方法论。它仅仅是一种描述模型的标准语言,虽然渗透了许多方法论的基础概念,但是却没有在标准中给出完整的方法指南。
7. 请简要说明UML和面向软件开发之间的关系。
UML和面向对象软件开发之间有很强的关联关系,甚至可以说是面向对象软件开发催生了UML。但是由于在UML的标准化和发展过程,有机地吸纳了业务建模、工作流建模、数据库建模等领域的标准规范,形成了一个适用性很强的标准。
4. 请说明蓝图和草图的区别,并简单描述其适用的场景。
蓝图一般是指采用CASE工具绘制的、正式的、规范的UML模型;而草图则通常是指手工绘制的、规范度较低的在纸张的UML模型。
对于局部的、重要性不高的、共享范围较小的UML模型,直接将草图扫描到电脑存档即可;对于全局的、重要性高的、高度共享的,在草图的基础上用CASE工具绘制成为正式的蓝图,并将其纳入统一的模型管理中
8. 标记值的作用是什么?它的表示法和约束的表示法有什么异同?在UML模型中如何区分它们?
标记值是用来为事物添加新特性的。约束的表示法和标记值法类似,都是使用花括号括起来的串来表示,不过它是不能够放在元素中的,而是放在相关的元素附近。
9. 构造型的作用是什么?如果我们采用一个自定义的图标来表示它,那么可能遇到的主要问题是什么?
UML面向对象建模基础(徐峰、陈暄)
第1章 UML概述
1. 请指出UML的三个主要的特性。
1)UML是一种语言
2)UML是用来建模的
3)UML是统一的标准
2. 请指出三种以上现实生活中的常用模型,并说明它们分别在各自的领域中发挥了什么样的作用。
1)电路图:电子产品设计、生产、维修
第4章 初识UML
4.4 UML中的扩展机制
4.4.3 标记值
4.4.3.2 自定义标记值
► 标记值是有关模型和模型元素的附加信息,在最终
的系统中是不可见的。 ► 自定义标记值时的具体步骤分成以下的几步: 1. 确定要定义标记值的目的。 2. 定义需要标记值的元素。 3. 为标记进行命名。 4. 定义值类型。 5. 根据使用标记值对象的不同,适当定义标记值。 6. 在文档中给出一个以上使用该标记值的例子。
4.4 UML中的扩展机制
4.4.2 构造型
► 构造型可以基于所有种类的模型元素:类、节点、
组件、注释、关联、泛化和依赖等都可以用来作为 构造型的基类。 ► 要表示一个构造型,可以将构造型名称用一对尖括 号括起来,然后放置在构造型模型元素名字的邻近, 例如<<use>>、<<extends>>等,<<use>>和 <<extends>>构造型的名字就是由UML预定义的。 ► 使用这些预定义的构造型用于调整一个已存在的模 型元素,而不是在UML工具中添加一个新的模型元 素。 ► UML中已经预定义了多种标准构造型,我们可以在 这些标准构造型的基础上自己定义构造型。
4.4 UML中的扩展机制
4.4.1 UML的体系结构
4.4.1.1 四层元模型体系结构
►
UML具有一个四层的体系结构,每个层次是根据该层 中元素的一般性程度划分的。从一般到具体,这四层 分别为元元模型层、元模型层、模型层、用户模型层, 如下图所示。
4.4 UML中的扩展机制
4.4.1 UML的体系结构
图、状态图、活动图、构件图和部署图。
4.1 UML的构成
4.1.2 图
ocl语句
ocl语句OCL语句简介什么是OCL语句?OCL(Object Constraint Language)是一种用于描述和约束面向对象模型的语言。
它能够通过简洁明了的语法来对对象模型中的元素进行约束和查询操作,是软件开发过程中的重要工具之一。
OCL语句的特点•灵活可扩展 OCL语句可以根据需求进行灵活的扩展,满足不同业务领域的需求。
它提供了丰富的操作符和表达式,可以清晰地描述对象模型的约束条件。
•表达性强 OCL语句采用自然语言的形式,易于理解和编写。
通过声明式的语法,可以直观地表达对对象模型中数据的约束和查询。
•与UML紧密集成 OCL语句与UML紧密集成,可以对UML类图、对象图等进行约束和查询操作。
它为软件开发提供了一个统一的模型描述和分析工具。
OCL语句的应用场景•软件验证 OCL语句可以用于对软件模型进行约束验证。
通过定义合适的OCL语句,可以对模型中的元素进行静态分析,检测潜在的错误和问题。
•软件开发 OCL语句可以用于指导软件开发过程中的代码实现。
通过定义OCL语句,可以明确对象模型中元素之间的关系,从而更好地组织代码逻辑。
•软件测试 OCL语句可以用于生成测试用例和进行测试。
通过定义适当的OCL语句,可以生成各种测试场景,覆盖不同的业务逻辑。
•软件维护 OCL语句可以用于软件维护和重构。
通过定义OCL语句,可以对现有的代码进行静态分析,识别代码中的潜在问题,从而进行优化和改进。
OCL语句的实例以下是一些OCL语句的实例,用于展示OCL语句的应用能力:•查询满足条件的对象context Personinv: > 18 and = 'Male'•约束关联关系context Studentinv: = 'Beijing'•约束集合属性context Libraryinv: >select(book | = 'borrowed')->isEmpty()•约束操作的前提条件context Orderpre: = 'Confirmed'总结OCL语句是一种强大的面向对象模型描述和约束工具,它具有灵活可扩展、表达性强等特点,并在软件开发的各个阶段和领域具有重要的应用价值。
对象约束语言简称OCL
对象约束语言简称OCL(Object Constraint Language),它是一种用于施加在指定的模型元素上约束的语言。
OCL表达式以附加在模型元素上的条件和限制来表现对该对象的约束,其中包括附加在模型元素上的不变量或约束的表达式,附加在操作和方法上的前置条件和后置条件等。
对象约束语言概述对象约束语言是一种形式化语言,它主要用于表示UML模型中施加于模型上的约束。
OCL具有如下特点:1、OCL是一种精确的,无二义性的语言2、OCL是一种规范说明性语言,所有有关实现的问题都不能用OCL来表达3、OCL是一种纯表达式语言,它是具有没有任何副作用的申明性语言。
4、OCL是一种类型化语言,即OCL中的每一个表达式都是具有类型的。
5、OCL不是一种程序设计语言,不能用OCL编写程序逻辑和控制流程。
标准OCL类型OCL预定义的标准类型定义了一组基本类型和集合类型。
OCL的基本类型有"Boolean"、"Integer"、"Real"、"String"等。
集合类型包括"Collection"、"Set"、"Bag"、"Sequence"等。
这些标准型是OCL表达式的组成部分。
OCL标准型的层次结构如下:OCL表达式OCL表达式对于一个OCL类型求值。
OCL表达式有以下特点:1、OCL表达式可以附加在模型元素上,模型元素的所有实例都应该满足表达式的条件。
2、OCL表达式可以附加在操作上。
3、OCL表达式可以指定附加在模型元素上的监护条件。
4、OCL表达式的计算顺序是从左到右。
5、OCL表达式既可以使用基本类型又可以使用集合类型。
用OCL表达对象性质约束OCL表达式可以附加在模型元素或模型元素的属性和操作上表达一个约束条件。
精确域模型的需求让我们拿系谱树形结构作为一个范例,从图 1 之中的图表开始。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
3
13.2 OCL结构
• OCL在两个层次上共同定义对象 约束语言,一个是抽象语法(元模型 ),另一个是具体语法。元模型定义 OCL概念和应用该概念的规则,具体 语法则真正用于在UML模型中指定约 束和进行查询。
4
13.2.1 抽象语法
• 抽象语法指的是OCL语言定义的概念层,在该层中 抽象语法解释了类、操作等内容的元模型。例如, 类被定义为“具有相同的特征、约束和语义说明的 一组对象”,并在该层将类解释为可与任何数目的 特性(或属性)、操作、关系甚至嵌入类相关联。 抽象语法只是定义了相类似的元模型,并没有创建 一个具体的模型或对象。 • OCL要求清楚地区分OCL抽象语法和其他自抽象语 法派生的所有具体语法。抽象语法还支持其他约束 语言的发展。正如基于MOF(Meta Object Facility ,元对象设施标准)的UML基础结构元模型支持各 种专业领域的建模,例如软件建模的UML语言,数 据仓库领域建模的CWM语言等。
1
本章学习要点:
• • • • • • • • • 了解OCL的概念 理解OCL的结构 掌握OCL语法 掌握三种固化类型 掌握OCL数据类型和运算符 掌握let和def的功能和作用 理解集合类型 掌握并应用对集合操作 熟悉OCL标准库
2
13.1 OCL概述
UML图(例如类图)通常不够精细,无法提供与规范有 关的所有相关部分。这其中就缺少描述模型中关于对象的附 加约束。这些约束常常用自然语言描述。而实践表明,这样 做经常造成歧义。为了写出无歧义的约束,已经开发出几种 所谓的“形式语言”。传统上的形式语言,缺点是仅适合于 有相当数学背景的人员,而普通商务或系统建模者则难以使 用。 • OCL的出现解决了这一问题,它是一种保留了易读易写 特点的形式语言。OCL不仅用来写约束,还能够用来对UML 图中的任何元素写表达式。每个OCL表达式都能指出系统中 的一个值或者对象。OCL表达式能够求出一个系统中的任何 值或者值的集合,因此它具有了和SQL同样的能力,由此也 可得知OCL既是约束语言,同时也是查询语言。
9
13.3.2 数据类型、运算符和操作
• 对象约束语言是类型化语言,具有四种数据类型分别是: • 整数(Integer) 可以是任何不带小数部分的值,如0,-1 ,1等。 • 实数(Real) 可以是任何数字,可以带有小数。如,3.0 ,7.5,-3.0等。 • 字符串(String) 可以包含任何数量的字符或文本。 • 布尔(Boolean) 布尔型值只有两个True和False
的方法为表定义主键。
• •
•
6
13.3 OCL表达式
• OCL表达式用于一个OCL类型的求值,它的语法用扩展的巴 斯科范式(EBNF)定义。在EBNF中,“|”表示选择,“? ”表示可选项,“*”表示零次或多次,“+”表示一次或多 次。OCL基本表达式的语法用EBNF定义如下: • PrimaryExpression:=literalCollection | literal • | pathName time Expression ? FeatureCallparameters? • |"("expression")" | ifExpression • Literal:=<string>|<number>|"#"<name> • timeExpression:="@"<name> • featureCallparameters:="("(declarator)?(actualParameterLi st)?")" • ifExpression:="if" expression "then" expression "else" expression "endif"
5
13.2.2 具体语法
• 与面向规则的语法相反,具体语法(即模型层语法)描述代表现实 世界中一些实体的类,它应用抽象语法的规则来创建可以在运行时 段计算的表达式。OCL表达式与类元相关联,应用于该类元自身或 者某个属性、操作或参数。不论哪种情况,约束都是根据其位移( replacement)、上下文类元(contextual classifier)和OCL表达式 的自身实例(self instance)来定义。 位移 表示UML模型中使用OCL表达式所处的位置,即作为依附于某 个类元的不变式、依附于某个操作的前置条件或依附于某个参数的 默认值。 上下文类元 定义在其中计算表达式的名字空间。如,前置条件的上 下文类元是在其中定义该前置条件的操作所归属的那个类。也就是 说该类中所有模型元素(属性、关联和操作)都可以在OCL表达式 中被引用。 自身实例 自身实例是对计算该表达式对象的引用,它总是上下文类 元的一个实例。也就是说,OCL表达式对该上下文类元每个实例的 计算结果可能不同。因此,OCL可以用于计算测试数据。使用如下所示
7பைடு நூலகம்
13.4 OCL语法
OCL指定了每一个约束都必须有 一个上下文。上下文(context)指定了 哪一个项目被约束。OCL是一个类型化 的语言,因此数据类型扮演了重要角色 ,如高级语言C++、Java一样,也有多 种数据类型。
8
13.3.1 固化类型
• 一个约束就是对一个(或部分)面向对象 模型或者系统的一个或者一些值的限制。 UML类图中的所有值都可以使用OCL来约 束。约束的应用类似于表达式,在OCL中 编写的约束上下文可以是一个类或一个操 作。其中需要指定约束的固化类型,而约 束的固化类型可以由以下三项组成: • invariant • pre-condition • post-condition
第13章 对象约束语言
对象约束语言(Object Constraint Language ),简称OCL,是一种指示用户建模系统中的限制 方式。它是UML可选的附加内容,可以用来更好地 定义对象的行为,并为任何类元指定约束。 在对象约束语言中,对象代表了系统的组件, 它定义了完善的项目,约束代表限制,而语言并非 是指一种正式的计算机语言。OCL是一种形式语言 ,可以应用于任何实现方式的非正规语言。对象约 束语言对UML中图形或其他组件都没有控制权,它 只是在使用时返回值。OCL并不能修改对象的状态 ,而是用来指示对状态的修改何时发生。