第11章 对象约束语言
- 格式:ppt
- 大小:221.00 KB
- 文档页数:10
UML根底与Rose建模实用教程课后习题及答案第1章面向对象概述1. 填空题〔1〕软件对象可以这样定义:所谓软件对象,是一种将状态和行为有机结合起来形成的软件构造模型,它可以用来描述现实世界中的一个对象。
〔2〕类是具有一样属性和操作的一组对象的组合,即抽象模型中的“类〞描述了一组相似对象的共同特征,为属于该类的全部对象提供了统一的抽象描述。
〔3〕面向对象程序的根本特征是抽象、封装、继承和多态。
2. 选择题〔1〕可以认为对象是ABC。
〔A〕某种可被人感知的事物〔B〕思维、感觉或动作所能作用的物质〔C〕思维、感觉或动作所能作用的精神体〔D〕不能被思维、感觉或动作作用的精神体〔2〕类的定义要包含以下的要素ABD。
〔A〕类的属性〔B〕类所要执行的操作〔C〕类的编号〔D〕属性的类型〔3〕面向对象程序的根本特征不包括B。
〔A〕封装〔B〕多样性〔C〕抽象〔D〕继承〔4〕以下关于类与对象的关系的说法不正确的选项是A。
〔A〕有些对象是不能被抽象成类的〔B〕类给出了属于该类的全部对象的抽象定义〔C〕类是对象集合的再抽象〔D〕类用来在存中开辟一个数据区,并存储新对象的属性3. 简答题〔1〕什么是对象?试着列举三个现实中的例子。
对象是某种可被人感知的事物,也可是思维、感觉或动作所能作用的物质或精神体,例如桌子.椅子.汽车等。
〔2〕什么是抽象?抽象是对现实世界信息的简化。
能够通过抽象将需要的事物进展简化、将事物特征进展概括、将抽象模型组织为层次构造、使软件重用得以保证。
〔3〕什么是封装?它有哪些好处?封装就是把对象的状态和行为绑在一起的机制,使对象形成一个独立的整体,并且尽可能地隐藏对象的部细节。
封装有两个含义;一是把对象的全部状态和行为结合在一起,形成一个不可分割的整体。
对象的私有属性只能够由对象的行为来修改和读取。
二是尽可能隐蔽对象的部细节,与外界的联系只能够通过外部接口来实现。
通过公共访问控制器来限制对象的私有属性,使用封装具有以下好处:防止对封装数据的未授权访问、帮助保护数据的完整性、当类的私有方法必须修改时,限制了在整个应用程序的影响。
约束1:什么是约束约束(Constraint)使⽤户可以定义数据库引擎执⾏数据完整性的⽅式,就是说,约束定义了有关列中允许的值的规则,强制数据表保持数据的完整性,表数据必须符合⼀定的条件。
因为约束跟表数据有⼗分密切的关系,因此,通常在表定义中创建约束。
事实上,表是数据库对象,约束也是⼀种特殊的数据库对象,只不过⽤于实现数据的完整性。
在关系型数据库中,数据的完整性主要分为三类:实体完整性约束:数据是唯⼀的,相关的约束是主键约束(Primary Key),唯⼀约束(Unique);域完整性:数据值符合标准,相关的约束是:Check约束,默认值约束(Default),⾮空约束(NOT NULL);引⽤完整性:引⽤的数据必须存在或联动更新,相关的约束是:外键约束(Foreign Key)综上所述,共有六种类型的约束,约束类型分别是:Check约束:C = CHECK constraint默认值约束:D = DEFAULT constraint外键约束:F = FOREIGN KEY constraint主键约束:PK = PRIMARY KEY constraint唯⼀约束:UQ = UNIQUE constraint⾮空约束:NOT NULL除⾮空约束之外,每⼀个约束都是⼀个数据库对象,有名称,存在于sys.objects中,⽽⾮空约束⽐较特殊,不是⼀个数据库对象,没有名称,⼀般可以把⾮空属性作为列的属性,不把NOT NULL/NULL作为约束看待。
⼀,约束是数据库对象由于约束是数据库对象,所有的约束都处于特定的数据库架构(internal)中,因此,处于同⼀个schema下的约束的名称不能重复,每⼀个约束的名称必须是唯⼀的。
通常情况下,约束的schema是其⽗对象(表)的架构。
1,约束不能同名例如,在两个表中创建两个同名的约束:create table dbo.dt_test(id int identity not null constraint PK_ID primary key,)create table dbo.dt_test_add(id int identity not null constraint PK_ID check(id>0),)当创建第⼆个约束时,SQL Server引擎抛出错误消息:There is already an object named 'PK_ID' in the database. Could not create constraint. See previous errors.2,查看约束对象通过sys.objects 查看约束对象的信息,每⼀个约束对象都必须依附在表对象上,称作约束的⽗对象。
对象约束语言简称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 之中的图表开始。