第九章 对象约束语言
基于对象约束语言规格的变异分析
O 引 言
U ML语 言 作 为 一 种通 用 的可 视 化 建模 语 言 , 学 术 界 和 在 工 业 界得 到 了广 泛 应 用 。但 是 ,U ML图 形化 的 规 格 并 不 是 精 确 和 无歧 义 的 , 且 也不 能 描述 模 型 中 各个 对 象 之 间 的约 束 关 并 系 。因 此 , OMG推 出 了对 象 约 束语 言 ( C ) , 用 O L描述 o L… 使 C
状 态 ,同 时 系 统 中 最 多只 能 有 一 个 处 理 器 处 于 活 动 状 态 。 该 系统 的静 态模 型 如 图 1 示 。 所
系 统 中 对 象之 间 的约 束 关 系 , 除 U 消 ML规 格 的模 糊 性 。应 用
U /C MLO L建 立 的 模 型 是相 对 完 整 和 精确 的 , 持 规 格 正 确性 支
ZHAO o p n , ZH NG u — u , GE e g Gu — i g A Y nh a F n
பைடு நூலகம்
(hj n c ne n eh ooyU ie i ,Hagh u3 0 1,C i ) Z e ag i c dT cn l n rt i S e a g v sy n zo 10 8 ha n
关键词 : 象约束语 言:统一 建摸语 言;变异算 子;规格 变异 ;软件 测试 对 中 图法分 类号: P 1. T 31 2 5 文献标识 码: A 文章编号 :0 07 2 (0 8 0 —5 00 10—0 4 2 0) 306 —3
M u ai na ay i a e nOCL p cfc to tto n l ssb s do s e i ai n i
f r a g a eu e e c i ee p e s n n UM L mo esa d t eee n a yt e  ̄ o e i c t n b s d mu ai n a ay i r - o m l a u g s d t d s rb x r s i so l n o o d l n lme tr o h h f p cf a i ・ a e tt l ss ei - s i o - o n a n
第13章对象约束语言
7
13.4 OCL语法 语法
OCL指定了每一个约束都必须有 一个上下文.上下文(context)指定了 哪一个项目被约束.OCL是一个类型化 的语言,因此数据类型扮演了重要角色 ,如高级语言C++,Java一样,也有多 种数据类型.
8
13.3.1 固化类型
一个约束就是对一个(或部分)面向对象 模型或者系统的一个或者一些值的限制. UML类图中的所有值都可以使用OCL来约 束.约束的应用类似于表达式,在OCL中 编写的约束上下文可以是一个类或一个操 作.其中需要指定约束的固化类型,而约 束的固化类型可以由以下三项组成: invariant pre-condition post-condition
OclVoid类型是与所有其他类型相一致的一种类型,它只 有一个叫OclUndefined的实例,应用于未定义类型的任 何特性调用,除了oclIsUndefined()返回"真",其他都 会产生OclUndefined. colIsUndefined(): Boolean 如果对象与OclUndefined相 同,那么oclIsUndefined()的计算结果为"真". OclAny类型是一个UML模型里所有类型和OCL标准库的 父类,它包括了诸多子类例如Real,Boolean,Sring, OclState和Integer等,如图13-3所示.模型里所有的子 类都继承由OclAny定义的特性.下面是对所有OclAny中 操作的描述. =(object:OclAny):Boolean 如果self与object是同一对象 ,则返回值为"真". post:result = (self = object) <>(object:OclAny):Boolean 如果self是一个与object不 同的对象,则返回值为"真". pre:result = (self <> object)
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项最佳实践为:迭代式软件开发、需求管理、基于构件的架构应用、建立可视化的软件模型、软件质量验证、软件变更控制。
需求分析简单题
需求分析复习重点考试简答题重点:一、软件需求从层次上分哪三类?业务、用户、系统业务需求:抽象层次最高需求,是系统建立战略出发点,表现为高层次目标,描述了组织为什么要开发系统;用户需求:执行实际工作用户对系统所能完成具体任务期望,描述了系统能够帮助用户做些什么。
表达了用户对系统期望。
系统需求:用户对系统行为期望,一系列系统需求联系在一起可以帮助用户完成任务,达成用户需求,进而满足业务需求;可以直接映射为系统行为,定义了系统中需要实现功能,描述了开发人员需要实现什么。
业务需求一一目标(最高层次)用户需求一一具体任务系统需求一一系统行为联系:业务需求可以明确系统最终目标和努力方向,进而指导具体需求获取活动,发现用户需求;用户需求经过明确和细化处理,可以转化为系统需求。
二、软件需求分哪儿种活动?包括需求开发和需求管理需求开发4 (获取、分析、规格说明,需求验证)+1 (需求管理:版本管理,追踪,控制)需求JL程需求开发需求管理软件需求工程分为需求开发和需求管理两部分1、需求开发任务可进一步细分为4点>需求获取(是从人、文档或者环境当中获取需求过程)>分析(建模来整合各种信息)>规格说明(获取需求需要被编写成文档,在系统涉众之间交流需求信息)>验证(确保需求规格说明文档能正确、准确反映用户意图)2、需求管理保证需求作用在整个软件产品生命周期中连续、稳定和有效发挥需求管理子活动有以下3点:>建立和维护需求基线集A建立需求跟踪信息>进行变更控制三、需求获取有哪儿种方法?(要举例)传统方法、集体获取方法、认知方法、采样…1.传统方法问卷调查、面谈、硬数据分析、文档检查、需求剥离等2.集体获取方法头脑风暴(Brainstorming) 专题讨论会(Workshop) >JAD等3.认知方法任务分析(Task Analysis)、协议分析(Protocol Analysis)等4.采样随机采样、分层采样5.原型书面描绘、幻灯片演示、程序代码6.基于上下文方法观察、民族志(Ethnography)和话语分析(Conversation Analysis )四、分析建模有哪儿种常见手段,分别举例(ppt有)1、结构化需求分析建模>过程建模(过程建模以DFD为中心,结合使用微规格说明、数据字典、ERD、FDD、PDD等技术一起完成结构化分析建模任务)>数据建模(模型建立:ERD)2、面向对象需求分析建模:它以UML为基础,综合使用了多种不同分析技术,主要有:对象模型、用例模型、行为模型、状态机模型、对象约束语言。
第09章对象约束语言OCL
9.2 OCL的原则
● 声明性语言,不会改变模型中的内容。 ● 形式化语言语言。 ● 无二义规范语言。 ● 类型性语言,每一个表达式都有类型; ● 易学好用。
5
9.3 OCL的构成
OCL语言构成
OCL作为形式化语言,基本语言要素包括: 类型(基本类型,高级类型) 操作 表达式 语句
6
1、OCL的基本类型
求“订单”的“酬金”,如果订单和<100,酬金为
2,否则为订单和的百分之二。
19
● 导航 OCL可以从初始的上下文导航到与它有关系的
其它类。这些类与初始的类有关联或组合关系.
context 订单 inv 订单客户.age > 18 context 客户 inv 订单->size >= 1
20
4、OCL的高级数据类型
b1 and b2 逻辑与,布尔型( or, xor) not b1 逻辑非, 布尔型 b1 = b2 等于,布尔型 b1 <> b2 不等于,布尔型 b1 implies b2 蕴涵,布尔型
当b1和b2均为真,或b1为假时,表达式为真1 if b1 then <expr1> else <expr2> endif 分支判断
该例中定义了操作的前置条件和后置条件, 表明了操作前后必须满足的条件。
25
● 小结
第9章 OCL
9.1 为什么需要OCL 9.2 OCL的特点 9.3 OCL的构成 9.4 OCL的几个例子
26
OCL定义的高级数据类型有群,集合,袋和序列. 其中群是抽象数据类型,集合,袋和序列是群的子集.
集合(set):不包含重复元素; 袋(Bag):允许包含重复元素; 序列(Sequence):元素具有有序性的袋.
第十一篇对象约束语言(UML)
►11.1 对象约束语言概述 ►11.2 标准OCL类型 ►11.3 OCL表达式 ►11.4 用OCL表达对象性质约束
1
面 向 对
11.1 对象约束语言概述
象
技
UML
术
►UML中的图形符号有时候不能很好的表达所
教 程
要建模的对象一些细节。
►需要对模型中的元素增加一些约束
►约束条件可以采用形式化语言
教 程
型。
第 十 一 章
对 象 约 束 语 言
11
WUHAN UNIVERSITY OF SCIENCE AND 对
2. Set
象
技
UML
术
►Set是不包括重复元素的对象组,Set中的元
教 程
素是无序的。
第 十 一 章
对 象 约 束 语 言
12
WUHAN UNIVERSITY OF SCIENCE AND ENGINEERING
面
向 对
3. Bag
象
技
UML
术
►Bag也是对象组,Bag和Set不同之处在于Bag
教 程
中可以包含重复元素。
第 十 一 章
对 象 约 束 语 言
13
WUHAN UNIVERSITY OF SCIENCE AND ENGINEERING
面
向 对
4. Sequence
象
技
UML
术
►Sequence和Bag相似,也可以包含重复元素,
第 十 一 章
对 象 约 束 语 言
15
WUHAN UNIVERSITY OF SCIENCE AND ENGINEERING
(完整word版)UML基础与Rose建模复习资料
UML 基础与 Rose 建模复习资料1-4 章一、主要内容1、对象与类的定义对象:是面向对象系统的基本构造块,是一些相关的变量和方法的软件集。
(对象经常用于建立对现实世界中的一些基本构造块)注:客观世界里的任何实体都可以被称为对象。
对象可以是具体的、有形的物,也可以是无形的事物或概念。
对象是问题域或实现域中某些事物的一个抽象。
对象是一个封装数据属性和操作行为的实体。
类:是具有相同属性和操作的一组对象的组合。
也就是说,抽象模型中的“类”描述了一组相似对象的共同特征,为属于该类的全部对象提供了统一的抽象描述。
2、面向对象的基本特征:1)抽象:抽象忽略了事件中与当前目标无关的非本质特征,强调与当前事物相关的特征,并将事物正确的归类,得出事物的抽象模型,并且为对象的重用提供了保障2)封装:就是把对象的状态和行为绑到一起的机制,使对象形成一个独立的整体,并且尽可能地隐藏对象的内部细节。
3)继承:是指特殊类的对象拥有其一般类的属性和行为。
4)多态性:同一操作作用于不同的对象,可以有不同的解释,产生不同的执行结果。
3、 UML 包含的视图以及这些视图都对应的图UML 中主要视图有:静态视图、用例视图、交互视图、状态机视图、活动视图、物理视图、模型管理视图对应的图如下图所示4、 UML 包含的图以及图的作用在下面的各章节中都分别有总结,这里就不总结5、 UML 中模型元素的主要关系UML 中主要包含 4 种关系:依赖、关联、泛化、实现依赖:指的是两个事物之间的语义,当其中一个事物(独立的事物)发生变化就会影响另外一个事物(依赖事物)的语义。
关联:是一种事物之间的结构关系,用它来描述一组链,链是对象之间的连接。
泛化:事物之间的一种特殊 / 一般关系,特殊原子(子元素)的对象,也就是我们在面向对象学中常常提起的继承。
实现:实现关系也是 UML 元素之间的一种语义关系,它描述了一组操作的规约和一组对操作的具体实现之间的语义关系。
需求工程(习题集)
需求工程习题集一、选择题1、需求获取的成果(A)。
A、获取笔录、录音或摄像B、客户C、需求规格说明文档D、设计说明书2、项目前景与范围文档中,项目前景不应包括什么信息(B)。
A、前景概述B、详细的功能需求C、主要特性D、假设与依赖3、下列不属于需求开发的活动的是(B)。
A、需求获取B、需求管理C、需求验证D、需求分析4、面谈的类别不包括(C)。
A、结构化面谈B、半结构化面谈C、封闭式面谈D、非结构化面谈5、采用观察方法进行需求获取的原因(C)。
A、用户多B、客户变化D、事件的情景性D、存在默认知识6、确定需求优先级的常用的方法(A)。
A、累计投票B、协商C、需求细化D、需求建模7、需求评审是(B)中常用的一种方法。
A、需求获取B、需求验证C、需求分析D、需求管理8、需求跟踪是(D)中的一个活动。
A、需求获取B、需求验证C、需求分析D、需求管理9、针对客户需求文档进行文档审查的时候,采用的方法是(C)。
A、需求重用B、文档分析C、需求剥离D、民族志10、下列不是过程建模中使用的技术是(C)。
A、上下文图B、数据流图C、E-R图D、微规格说明11、针对相关产品的需求规格说明进行文档审查的时候,采用的方法是(C)。
A、需求剥离B、文档分析C、需求重用D、民族志12、下列不是用例模型的基本元素的是(A)。
A、用例B、参与者C、实体D、系统边界13、下列不属于需求验证的方法的是(B)。
A、需求评审B、需求分析C、利用跟踪关系D、开发测试用例15、需求分析的最终结果产生的是(C)。
A、项目开发计划B、可行性分析报告C、需求规格说明书D、设计说明书16、最常见的IEEE1998将需求分成5种类别,下列哪个不是5种类别的是(D)。
A、功能需求B、性能需求C、质量属性D、需求获取17、下列不属于面向对象建模中所使用的技术是(C)。
A、用例模型B、行为模型C、数据模型D、对象模型18、下列不属于获取信息的内容的是(D)。
需求分析复习提纲
第一章需求工程概述需求工程包含哪些基本活动。
第二章需求基础1、需求的定义。
(1)用户为了解决问题或达到某些目标所需要的条件或能力;⏹(2)系统或系统部件为了满足合同、标准、规范或其它正式文档所规定的要求而需要具备的条件或能力;⏹(3)对(1)或(2)中的一个条件或一种能力的一种文档化表述。
2、需求的分类。
⏹功能需求(Functional Requirement):❑和系统主要工作相关的需求,即在不考虑物理约束的情况下,用户希望系统所能够执行的活动,这些活动可以帮助用户完成任务。
功能需求主要表现为系统和环境之间的行为交互。
⏹性能需求(Performance Requirement):❑系统整体或系统组成部分应该拥有的性能特征,例如CPU使用率、内存使用率、系统的相应时间等。
⏹质量属性(Quality Attribute):❑系统完成工作的质量,即系统需要在一个“好的程度”上实现功能需求,例如可靠性程度、可维护性程度等。
⏹对外接口(External Interface):❑系统和环境中其他系统之间需要建立的接口,包括硬件接口、软件接口、数据库接口等等。
⏹约束❑进行系统构造时需要遵守的约束,例如编程语言、硬件设施等3、功能需求的层次性系统需求(1)业务需求●系统建立的战略出发点,表现为高层次的目标(Objective),它描述了组织为什么要开发系统●为了满足用户的业务需求,需求工程师需要描述系统高层次的解决方案,定义系统应该具备的特性(Feature)●参与各方必须要对高层次的解决方案达成一致,以建立一个共同的前景(Vision)●特性说明了系统为用户提供的各项功能,它限定了系统的范围(Scope)(2)用户需求●执行实际工作的用户对系统所能完成的具体任务的期望,描述了系统能够帮助用户做些什么●模糊性,不清晰(3)系统需求●用户对系统行为的期望,一系列的系统行为联系在一起可以帮助用户完成任务,满足业务需求●系统需求可以直接映射为系统行为,定义了系统中需要实现的功能,描述了开发人员需要实现什么●将用户需求转化为系统需求的过程是一个复杂的过程⏹首先需要分析问题领域及其特性,从中发现问题域和计算机系统的共享知识,建立系统的知识模型;⏹然后将用户需求部署到系统模型当中,即定义系列的系统行为,让它们联合起来实现用户需求,每一个系统行为即为一个系统需求。
计算机辅助软件工程(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.将活动图中的活动状态进行分组,每一组表示一个特定的类、人或部门,他们负责完成组内的活动。
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 之中的图表开始。
第九章 需求分析概述
种能够描述软件开发中各种情景 的形式化或半形式化模型语言, 但最后都失败了
语法严格同时又不太复杂
非形式化语言:自然语言是一种具有复杂规则 和多样化表达方式的语言,表达能力最强。
缺点:松散、模糊、歧义、凌乱
半形式化语言是介于自然语言和形式化语言之间的 描述语言。一方面,具有严格的语言,比自然语言 更加严格;另一方面,具有比形式化方法更强的表 达能力。
行 为
作关系
式
描
述
分解可 以使得 系统的 对外交 互转换 为系统 的内部 交互形 式
系统对外交互
交互所涉及 的系统或者 系统部分的 分解关系
系统内部交互
系 统集成
系 统分解
交互的抽象 交互的精化
Wieringa 框架
外部功能 外部通信 外部行为
概念组元
组元功能 组元通信 组元行为
结构化
信息工程 功能分解图
过程 / 数据关系建模
功能实体矩阵 Function/Entity Matrix
信息工程方法
功能分解图 Function Decomposition Diagram 过程依赖图 Process Dependency
面向对象技术
UML
用例图 Use-Case Diagram
类图 Class Diagram 交互图(顺序
结构化技术
数据建模
实体关系图 Entity Relationship Diagram
过程建模
数据流图 Data Flow Diagram 上下文图 Context Diagram 微规格说明 Mini-Specification 数据字典 Data Dictionary
行为建模
状态 ( 转换 ) 图 / 矩阵 State (Transition) Diagram/Matrix
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
•
OCL的基本类型:包括整型,实型,字符串型,布尔 的基本类型:包括整型,实型,字符串型, 的基本类型 型
武汉大学国际软件学院
9.3 OCL的构成 OCL的构成
•
OCL在基本类型上的部分运算符 在基本类型上的部分运算符
武汉大学国际软件学院
解释
•
整型
i1 + i2 加法 整型 (-,*) 加法,整型 i1 / i2 除法 实型 除法,实型 i1.abs 取绝对值 整型 取绝对值, i1.max(i2) 取最大数 整型 取最大数,
武汉大学国际软件学院
解释
•
布尔型
b1 and b2 逻辑与 布尔型( or, xor) 逻辑与,布尔型 布尔型 not b1 逻辑非, 布尔型 逻辑非 b1 = b2 等于 布尔型 等于,布尔型 b1 <> b2 不等于 布尔型 不等于,布尔型 b1 implies b2 蕴涵 布尔型 蕴涵,布尔型 均为真,或 为假时 表达式为真1 为假时,表达式为真 当b1和b2均为真 或b1为假时 表达式为真 和 均为真 if b1 then <expr1> else <expr2>软件学院
(2) 表达式的上下文 表达式的上下文表示这个表达式所作用的范围。 表达式的上下文表示这个表达式所作用的范围。可以 类的属性和操作. 是类,类的属性和操作 context 订单 -- 上下文为“订单”类 上下文为“订单” 的属性“订单和” 的属性“订单和” context 订单 求税金( ) 订单.求税金 求税金 --上下文为“订单” 上下文为“订单” 上下文为 类的操作求“税金 类的操作求“税金( )” context 订单.订单和 --上下文为“订单”类 订单 订单和 上下文为“订单” 上下文为
武汉大学国际软件学院
9.2 OCL的特点 OCL的特点
• • • • •
声明性语言,不会改变模型中的内容。 声明性语言,不会改变模型中的内容。 形式化语言语言。 形式化语言语言。 无二义规范语言。 无二义规范语言。 类型性语言,每一个表达式都有类型; 类型性语言,每一个表达式都有类型; 易学好用。 易学好用。
(4) 表达式的前置条件和后置条件 context 订单 求税金(): Real 订单.求税金 求税金 pre: -post: result = 订单和 * 0.065
(6) 蕴涵 context 订单 inv 订单的文章->size = 0 implies 订单和 = 0 订单的文章 “订单的文章”的数量如果等于0,则 “订单”的“订单和” 订单的文章”的数量如果等于 则 订单” 订单和” 订单的文章 也必须等于0 也必须等于 (7) 分支 context 订单 inv 酬金 = if (订单和 订单和<100) then 2.00 else (订单和 订单和*0.01) endif 订单和 订单和 如果订单和<100,酬金为 否则为 酬金为2,否则为 求“订单”的“酬金”,如果订单和 订单” 酬金” 如果订单和 酬金为 订单和的百分之一. 订单和的百分之一
武汉大学国际软件学院
9.1 为什么需要OCL 为什么需要OCL
•
OCL(object constraint language) 对象约束语言。用来 对象约束语言。 进行约束定义的,形式化的无二义的语言。 进行约束定义的,形式化的无二义的语言。
• • • •
OCL于1995年由 于 年由Warmer等人,在IBM设计成功,并开始 等人, 设计成功, 年由 等人 设计成功 使用。 使用。 1997年UML的1.1版本正式采用 年 版本正式采用OCL 的 版本正式采用 2003年1月推出 年 月推出 月推出OCL1.4版本 版本 OCL2.0版本正在征求意见 版本正在征求意见
•
实型
i1 + i2 加法 实型 ( -, *, / ) 加法,实型 i1.abs 取绝对值 实型 取绝对值,实型 r1.round 四舍五入取整 整型 四舍五入取整, r1.floor 向下取整 整型 向下取整,
武汉大学国际软件学院
解释
•
字符串型
s1.concat(s2) 连接 字符串 连接,字符串 s1.size 字符串长度,整型 字符串长度 整型 s1.toLower 转换成为小写字母 字符串 转换成为小写字母,字符串 s1.toUper 转换成为大写字母 字符串 转换成为大写字母, s1.substring(i1,i2) 取子串 字符串 取子串, s1 = s2 等于 布尔型 等于,
(3) 表达式的不变量 不变量由inv关键字规定。 不变量由 关键字规定。上下文表示这个表达式所作用 关键字规定 的范围。可以是类,类的属性和操作. 的范围。可以是类,类的属性和操作 context 订单 inv: --”订单”类中的所有对 订单” 订单 订单和 > 10 --象的”订单和”都应该大于10 --象的”订单和”都应该大于10 象的 context 订单 inv: --”订单”类的”酬金”的求法 订单” 订单 类的”酬金” 酬金= 酬金 0.01 * 订单和 也可以: 也可以 context 订单 inv: --”订单”类的”酬金”的求法 订单”类的”酬金” 订单 self.酬金 = 0.01 * self.订单和 酬金 订单和
(8) 导航 OCL可以从初始的上下文导航到与它有关系的其它类。 可以从初始的上下文导航到与它有关系的其它类。 可以从初始的上下文导航到与它有关系的其它类 这些类与初始的类有关联或组合关系. 这些类与初始的类有关联或组合关系 context 订单 inv 订单客户.age > 18 订单客户 context 客户 inv 订单->size >= 1 订单
武汉大学国际软件学院
解释
•
运算符的优先级别
优先级决定了操作顺序; 优先级决定了操作顺序; 优先级从上到下, 优先级从上到下,改变顺序用括号 。
武汉大学国际软件学院
9.3 OCL的构成 OCL的构成
•
OCL的表达式 的表达式 (1) 表达式的含义 OCL的表达式由操作数和运算符按一定规则构成。 的表达式由操作数和运算符按一定规则构成。 的表达式由操作数和运算符按一定规则构成 表达式和特定的上下文有关,表达式具有确定的值。 表达式和特定的上下文有关,表达式具有确定的值。
群的操作(Collection) 群的操作 OCL定义的群的操作有下表中列出的操作 定义的群的操作有下表中列出的操作. 定义的群的操作有下表中列出的操作
小结
• • •
OCL是一种形式化语言 是一种形式化语言 OCL已经成为 已经成为UML规范说明的一部分 已经成为 规范说明的一部分 OCL可以表示施加于模型元素或模型元素的属性、操作 可以表示施加于模型元素或模型元素的属性、 可以表示施加于模型元素或模型元素的属性 等上面的约束条件
武汉大学国际软件学院
9.4 OCL的高级数据类型 OCL的高级数据类型 OCL定义的高级数据类型有群 集合 袋和序列 其中群是 定义的高级数据类型有群,集合 袋和序列.其中群是 定义的高级数据类型有群 集合,袋和序列 抽象数据类型,集合 袋和序列是群的子集. 集合,袋和序列是群的子集 抽象数据类型 集合 袋和序列是群的子集 集合(set):不包含重复元素 不包含重复元素; 集合 不包含重复元素 允许包含重复元素; 袋(Bag):允许包含重复元素 允许包含重复元素 序列(Sequence):元素具有有序性的袋 元素具有有序性的袋. 序列 元素具有有序性的袋
第九章 对象约束语言
武汉大学国际软件学院
内容
• • • • •
为什么需要OCL 为什么需要 OCL的特点 的特点 OCL的构成 的构成 OCL的高级数据类型 的高级数据类型 小结
武汉大学国际软件学院
9.1 为什么需要OCL 为什么需要OCL
•
对象约束语言(Object Constraint Language, OCL)作为 对象约束语言 作为 图形符号的补充,说明建模元素的有关细节,例如: 图形符号的补充,说明建模元素的有关细节,例如:约 前置条件,后置条件等。 束,前置条件,后置条件等。
武汉大学国际软件学院
9.3 OCL的构成 OCL的构成
•
OCL作为形式化语言,基本语言要素包括: 作为形式化语言,基本语言要素包括 作为形式化语言
• • • •
类型(基本类型,高级类型 类型 基本类型,高级类型) 基本类型 操作 表达式 语句
武汉大学国际软件学院
9.3 OCL的构成 OCL的构成