当前位置:首页 » 软件开发
开发技术指南» 文章正文
    引言: 53.规范表示法(canonical notation)UML定义了规范表示法,它用单色线和文字表示任何模型。
 

 

    摘要: 对象式java/j2me/code/ target=_blank>程序设计方法 作者:夏寒    本世纪60年代中期,对象式语言诞生,和以前传统的程序设计方法相比,对象式程序设计给我们开辟了全新的"视听"空间,对象式程序设计引进了异于以前过程式程序设计的概念和术语;怎样用对象式程序设计方法实现防火墙中的规则集......   本世纪60年代中期,对象式语言诞生,和以前传统的程序设计方法相比......
 ·第13章 术 语 大 全 (4)    »显示摘要«
    摘要: 80.复合状态(composite state)包含并行(正交)或顺序(互斥的)子状态的状态。见复杂转换(complex transition) ,简单状态(simple state),状态(state)。语义组成状态可以使用"与"关系分解为并行子状态,或者通过"或"关系分解为互相排斥的互斥子状态。状态精化只能使用两种方法之一。其子状态还可以用两种方法之一进一步进行分解。如果一个顺序组成状态是活......


第13章 术 语 大 全 (3)
53.规范表示法(canonical notation)

图形编辑工具可以扩展规范表示法并且提供交互能力.比如,一个工具提供突出屏幕中被选择元素的能力.其他交互能力包括模型中的导航与按照选择的特性过滤显示的模型.这种格式是暂时的,并且不受uml制约.交互显示减少了模棱两可的弊端.所以,uml标准的焦点是印刷的规范形式,一个交互工具可以而且应该提供交互扩展. 【程序编程相关:directshow中响应事件

uml定义了规范表示法,它用单色线与文字表示任何模型.这就是uml模型的标准"出版格式",可用于印刷图. 【推荐阅读:directshow 中的注册文件类型(

基数是集合中元素的数量.它是一个具体的数值.基数不同于多重性,多重性是一个集合拥有的可能基数的范围. 【扩展信息:MSComm编程的一个误解

54.基数(cardinality)

讨论

请注意基数这个术语被许多作者错用为我们所谓的多重性,但是基数在数学上定义为一个数字,而不是数的范围.这正是我们所用的定义.

55.修改事件(change event)

由于所引用的一个或多个值的改变而使布尔表达式得到满足的事件称为修改事件.

见监护条件(guard condition).

语义

修改事件包含由一个布尔表达式指定的条件.事件没有参数.由于条件所依赖的一个或多个变量的改变而使条件(从假)变成真时,事件就发生.

这种事件隐含一个对条件的连续的测试.而实际上,通过分析条件输入改变的时间点,开发者可以在良好定义的.抽象的时间上执行测试,这样就不需要连续的测试了.

当表达式的值从假改变到真(一个正值状态变化)时,事件就发生.当这种情况发生时事件发生一次,除非值又先变成假,否则,事件不会再发生.

请注意与监护条件的区别.当转换上的事件发生时,监护条件只计算一次.如果条件是假的,那么转换不激发并且事件被遗失(除非这个事件又触发了其他的转换).一个修改事件隐含连续计算,并且当值变成真时事件发生一次.在那个时刻,它可以触发一个转换或被忽略.如果它被忽略,因为条件还是真所以修改事件不触发处于后继状态的转换.修改事件已经发生,因此被抛弃.条件必须变成假,然后再变成真时,才能引发另一个修改事件.

布尔表达式的值必须是对象的属性,这个对象拥有包含从它可到达的转换或值的状态机.

表示法

与信号不同,修改事件没有名字并且不被声明.它们仅仅被用作转换的触发.修改事件表示成关键字when,后面是圆括弧中的布尔表达式.例如:

when(self.waitingcustomers>6)

讨论

修改事件是对条件满足的测试.实现起来是十分昂贵的,虽然有技巧来编译它而不必连续地测试,但是修改事件本身隐含着高成本与一种特定的关系,即值的改变与由它触发的结果之间的直接因果关系.有时,这是令人满意的,因为它封装了结果,但应该小心使用修改事件.

修改事件表示对对象可见的值的测试.如果一个对象中属性改变意味着触发另一个对象(该对象不知道第一个对象的属性改变)的修改,那么这种情况应该建模成属性拥有者上的修改事件,它触发一个内部转换,向第二个对象发送信号.

请注意一个修改对象并不是明确地向任何地方发送.如果试图与另一个对象进行明确地通信,应该用信号.

修改事件可以通过多种方式实现,有些通过在合适的时间点在应用程序内部进行测试,而有些则通过利用基本的操作系统机制来完成.

56.可变性(changeability)

说明某属性值或者链是否可变的一种特性.

语义

本特性可以赋给关联端或者属性.此特性还可以赋给一个类,表明该类中的所有关联与属性都满足本特性(例如,特性值为"冻结")表示该类的对象的值在初始化后不可改变).在特性表中代表可变性的关键字可取下列枚举值.

可变的(changeable)

属性值可以任意变换,包括在多重性允许的范围内增加或者删除值.链可以随意变更,或者在多重性及其他约束允许的范围内被增加或者删除.如果没有指定其他值,则以此为默认值.

冻结的(frozen)

属性值在初始化后不可变更;不可增加或者删除变量.当关联的另一端(即与带有冻结值的一端相对另一边)的对象初始化后,则不可增加,删除或者修改链.但是,当另一端生成新的对象时,作为初始化的一部分,将生成指向冻结端的新连接.

只可增加(addonly)

如果多重性不是固定值,或者尚未达到最大值,则可以增加新的属性值.一旦生成,只要类的对象仍然存在,就不能更改或删除属性值.可以增加新的链,但是不能在其生成后进行修改或删除.当一个参与者对象被删除时,其中包含的所有链,无论是否是"只可增加"类型的,都将被删除.

57.子(child)

泛化关系中更具体的元素.被称为一个类的子类.一个或者多个子关系的链称为后代.反义词:父(parent)

语义

子元素继承了其父元素的特征(同样间接继承了其祖先的特征)而且可以声明自己附加的特征.它还继承了涉及其祖先的关联与约束.子元素遵循替代原则--即描述符的实例满足任何该描述符祖先声明的变量.子的实例是其父的间接实例.

58.类(class)

说明一系列拥有相同的属性,操作,方法,关系,行为的对象集.一个类就代表了被建模系统中的一个概念.根据模型种类的不同,此概念可能是现实世界的(对于分析模型),或还可能含有算法与计算机实现的概念(对于设计模型).类元是类的泛化,包含其他类似类的元素,如数据类型.参与者.构件.

语义

对对象集的数据结构及行为的描述称为类.类用于声明变量.作为变量值的对象必须属于一个类,该类应与声明该变量的类兼容--也就是说,该类必须是声明变量的类或其后代类.类还用来实例化对象.一个创建操作生成给定类的一个新实例.

类的实例对象,是这个类的直接实例,同时是该类的父类的间接实例,对象保存

每一个属性的值;接受本类的所有操作与信号.同时还可以出现在与本类或本类的父类相关的关联链中.有些类可能不会被直接实例化,而只用于描述其后代类共享的结构;这种类被称为抽象类.可以实例化的类称为具体类.

一个类还可以被当作全局对象,该类任何类作用域属性是这个隐式对象的属性.这样的属性有全局性,在整个系统中拥有唯一的值.类作用域的操作是指适用于类本身,而不适用于对象的操作.最常见的类作用域操作就是创建操作.

在uml中,类是一种类元,类元包括一系列类似于类的元素,但是它的完整表述仍在类中.

结构

一个类有名字以及一些操作.方法与属性.
...   下一页
 ·第9章 物 理 视 图    »显示摘要«
    摘要: .1 概述  系统模型的大部分内容反映了系统的逻辑和设计方面的信息,并且独立于系统的最终实现单元。然而,为了可重用性和可操作性的目的,系统实现方面的信息也很重要。uml使用两种视图来表示实现单元:实现视图和部署视图。  实现视图将系统中可重用的块包装成具有可替代性的物理单元,这些单元被称为构件。实现视图用构件及构件间的接口和依赖关系来表示设计元素(例如类)的具体实现。构件是系统高层的可重用的组成......
» 本期热门文章:

©2000-2007 All Rights Reserved. 最佳浏览:1024X768 MSIE