第四章 类图建模(二)

来源:互联网 发布:移动网络e是什么意思 编辑:程序博客网 时间:2024/05/29 10:45

目录

m1.高级类
m2.高级关系
m3.接口
m4.可见性设计
m5.代码映射

2.1 高级类

1.类目(Classifiers)

一般而言,有实例的的建模元素被称为类目。类目有结构特征(以属性的形式)和行为特征(以操作的形式)。

Ø(1)接口(interface):一组操作的集合,每个操作用于描述类或构件的一个服务。
Ø(2)数据类型(datatype):一种类型,其值是不可变的,包括简单的内置类型(如数字和字符串)和枚举类型(如Boolean
Ø3)关联(association):对一组链的描述,其中每个链都与两个或以上的对象相关。
Ø4)信号(signal):对实例之间传递的异步消息的描述
Ø5)构件(component):系统的模块化部分,它在一组外部接口背后隐藏了它的实现。
Ø6)节点(node):运行时存在的物理元素,表示可计算的资源,一般至少有一定内存,还经常具有处理能力
Ø7)用例(use case):一组动作序列的描述,系统对它的执行将为特定的参与者产生可观察的结果值。
Ø8)子系统(subsystem):描述系统一个主要部分的构件

2.可见性(Visibility


3.实例范围和静态范围(Instanceand Static Scope


4.抽象元素、叶子元素和多态性元素(Abstract,Leaf, and Polymorphic Elements


5.重数(Multiplicity


6.属性(Attributes)

语法:

[可见性]属性名[’:’类型][‘[重数’]’][‘=’初始值][特征串{‘,’特征串}]

例:

origin                            只有属性名

+origin                         可见性和属性名

originPoint              属性名和类型

nameString[0..1]      属性名、类型和重数

originPoint =0,0)属性名、类型和初始值

idInteger {readonly} 属性名、类型和特性

7.操作(Operations

语法:
[可见性]操作名[‘(’参数表’)’][‘:’返回类型][特性串{‘,’特性串}]
例:
display                          操作名
+ display                       可见性和操作名
set(n:Name,s:String)   操作名和参数
getID():Integer             操作名和返回类型
restart() {gaurded}       操作名和特性

参数的语法:

[方向参数名:类型  [=默认值]

方向可以是

in   输入参数

out输出参数

inout输入输出参数,调用者可修改

用于操作的特性:

leaf  abstract 

query

sequential  guarded concurrent

static

8.模板类(Template class

      被参数化的元素。不能直接使用,必须首先对它进行实例化。(把形式参数绑定为实际参数)


9.标准元素(StandardElements


2.2 高级关系

1.依赖

可用于类图中的类和对象之间的依赖关系上的构造型:

bind

derive

permit

instanceOf

instantiate

powertype

refine

use

用于包之间依赖的构造型:

import

access

用于用例之间的依赖的构造型:

extend

include

用于对象间交互语境的构造型

send

trace

2.泛化

泛化的约束:

    completeincompletedisjointoverlapping


3.关联

    关联的基本修饰:关联名、角色、重数、聚合


可见性


限定



组合


关联类

在两个类之间的关联中,关联本身可以有特性。在UML中把这种情况建模为关联类。




约束

用于关联的约束:

ordered

set

bag

order set

list sequence

readonly

4.实现




2.3接口

接口是一组操作的集合,其中每个操作用于描述类或构件的一个服务。



名称



操作

关系

2.4 可见性设计

m可见性(visibility):对象看到或引用其他对象的能力。
m为了使发送者对象能够向接收者对象发送消息,发送者必须具有接收者的可见性,即发送者必须拥有对接收者对象的某种引用或指针

m实现对象A到对象B的可见性通常有四种方式:
Ø属性可见性Attribute Visibility: BA的属性
Ø参数可见性Parametervisibility:BA方法中的参数
Ø局部可见性Local Visibility: BA中方法的局部对象(不是参数)
Ø全局可见性Global Visibility: B具有某种方式的全局可见性
m为了使对象A能够向对象B发送消息,对于A而言,B必须是可见的

1)属性可见性

这是一种相对持久的可见性。


2)参数可见性

这种可见性是相对暂时的。


3)局部可见性

两种常见方式:

Ø创建新的局部实例并将其分配给局部变量
Ø将方法调用返回的对象分配给局部变量


(4)全局可见性

这是一种相对持久的可见性。

2.5 将设计映射为代码

1.设计类图(DCD
Ø交互图完成后,有可能来定义软件类(接口)的描述
Ø设计类图(DesignClass DiagramsDCD)
mDCD的创建时间:
Ø实践中,交互图经常与DCD并行创建

DCD UP 术语

m设计类图描述了应用中的软件类和接口
Ø类,关联和属性
Ø接口,包括操作和常量
Ø方法
Ø属性类型信息
Ø可见性
Ø依赖
mUP并没有专门的设计类图
mUP定义了设计模型,包括交互,包和类图.
mUP设计模型中的类图包含设计类

领域模型 vs. 设计模型类


2. 代码生成

m交互图和DCD可以作为代码生成过程的输入
m实现模型包括源代码,数据库定义,源代码,JSP/XML/HTML

 编程和开发过程

m现代方法:Design-while-programming
m但是我们经常在编程前进行可视化建模

 在实现时候的创造性和变更

m设计中也包括决策和创新工作
m代码的生成 = 机械翻译过程?
Ø不完全对
Ø需要修改,详细的问题将出现并被解决

 代码变更和迭代过程


DCD创建类的定义

(1)定义带有方法和简单属性的类


(2)增加引用属性

引用属性是依据类图中的关联和方向性来的

引用属性和角色名字


(3)属性映射


(4) 从交互图中创建方法

消息顺序被翻译成方法定义中的一系列声明


(5) 代码中的容器/集合类


注意

mDCD翻译类的定义、从交互图翻译方法是比较直接的过程
m但是在编程阶段依旧有许多地方需要做决策,设计修改和探索

小结

m类目是有实例的建模元素,除了类,还有其他8种。
m类之间的有依赖、关联、泛化、实现关系,每种关系都有一些特定的构造型。
m接口是一组操作的集合,可用接口对系统中的接缝建模。
m可见性是对象看见或引用其他对象的能力,有属性、参数、局部、全局可见性。
m代码映射是从设计类到实现类的转换过程。可用建模工具实现,但在编程过程仍然存在创造、进化和探索的空间。




原创粉丝点击