软件工程(四)—— 面向对象方法UML

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Alexshi5/article/details/88585155

前言

        长期以来,关于如何建造一个软件系统中的模块,先后出现了4种基本的观点。第一种观点是以“过程”和“函数”来构建一个模块,使每个模块实现一项功能,由此产生了结构化方法;第二种观点是围绕一个数据结构来构建一个模块,使每个模块实现该数据结构上的操作,由此产生了面向数据结构的软件开发方法;第三种观点是围绕一类事件来构造一个模块,使每个模块能够识别该类事件并对该类事件作为响应,由此产生了由事件驱动的软件开发方法;第四种观点是围绕问题域中的一个客体来构造一个模块,使每个模块实现该客体对系统承担的责任,由此产生了当今流行的面向对象方法。

        面向对象方法是一种根据客体之间的关系来建造系统模型的系统化方法。

        UML是一种图形化的建模语言,可用于规约系统的制品、构造系统的制品、建立系统制品的文档。

        UML引入了8个术语,即类与对象、接口、协作、用况、主动类、构件、制品和节点,并给出了它们的含义和表示。UML把它们统称为类目,作为元信息,以便对客观世界的一切事物进行模型化。

        UML为了表达各类事物之间的关系,给出了4个术语,即关联、泛化、实现和依赖,作为元信息,用于对一切事物之间的关系进行模型化。

一、UML术语表

1、表达客观事物的术语

(1) 类与对象

        类是构建对象的模板,对象是类的一个实例。通常把类表示为具有3个栏目的矩形,每个栏目分别代表类名、属性和操作。由于类主要用于抽象客观世界中的事物,因此一般要有一组属性和操作。图例如下:

① 类的属性

        类的属性是类的一个命名特性,该特性是由该类的所有对象共享、用于表达对象状态的数据。

        属性有其作用范围,为此UML把属性分成两类,即类范围的属性和对象范围的属性。所谓类范围的属性是指该属性被该类所有对象所共享。在UML中通过在属性名和类型表达式下面画出一条线段的方式,表示该属性是类范围的属性。如果没有声明一个属性是类范围的属性,那么它就是实例范围的属性。

② 类的操作

        操作是对一个类中所有对象要做的事情的抽象。操作可以被其他对象所调用,调用一个对象上的操作可能会改变该对象的数据或状态。操作可以是抽象操作,即不给出操作的实现。

        和类的属性一样,操作也分为类范围的操作和对象范围的操作。类范围的操作是通过在操作名和类型表达式串下面画一条线段表示,否则就是对象范围的操作。

③ 关于类语义的进一步表达

● 详细叙述类的职责

        通过定义类的职责,可以表达一个类的目的,这往往是对类进行模型化的基础,在此基础上可以进一步定义类的属性和操作。

        若想使该类具有良好的结构,一般应遵循单一职责原则,即对于一个类而言,应仅有一个引起它发生变化的原因,这条原则通常被称为内聚性原则。

● 通过类的注解或操作的注解,以结构化文本的形式或编程语言,详细注释整个类的语义或各个方法

● 通过类的注解或操作的注解,以结构化文本形式,详细注释各操作的前置条件和后置条件,甚至注释整个类的不变式

● 详述类的状态机

● 详述类的内部结构

● 类与其他类的协作

④ 类在建模中的主要用途

● 模型化问题域中的概念

● 建立系统的职责分布模型

● 模型化建模中使用的基本类型

(2) 接口

        接口是操作的一个集合,其中每个操作描述了子类、构件或子系统的一个服务。

① 接口采用具有分栏和关键字《interface》的矩形符号来表示

② 由类提供的接口,即供接口用圆圈表示;类需要的接口,即需接口用半圈表示。

(3) 协作

        协作是一个交互,涉及交互的三要素:交互各方、交互方式以及交互内容。在UML中协作表示为虚椭圆。

(4) 用况(用例)

        用况是对一组动作序列的描述,系统执行这些动作应产生对特定参与者有值的、可观察的结果。在UML中把用况表现为实线椭圆。

(5) 主动类

        主动类是一种至少具有一个进程或线程的类,主动类能够启动系统的控制活动,其对象的行为通常是与其他元素行为是并发的。在UML中主动类的表示与类相似,只是在两边多了两条竖线。

(6) 构件

        构件是系统设计中的一种模块化部件,通过外部接口隐藏了它的内部实现。构件一般用于表达解空间中可独立标识的部分,它不能用于问题定义。

(7) 制品

        制品是系统中包含物理信息的、可替代的物理部件。

(8) 节点

        节点是在运行时存在的物理元素,通常表示一种具有记忆能力和处理能力的计算机资源。

2、表达关系的术语

可以参考:解析UML类图符号意义

3、表达组合信息的术语——包

        为了控制信息组织的复杂性,UML提供了一种组织信息的通用机制——包,支持形成一些可管理的部分。包是模型元素的一个分组,一个包本身可以被嵌套在其他包中,并且可以含有子包和其他种类的模型元素。

        在UML中把包表示为一个大矩形,并且在这一矩形的左上角还有一个小矩形。通常在大矩形中描述包的内容,而把该包的名字放在左上角的小矩形中,作为包的标签。也可以把所包含的元素画在包的外面,通过符号\bigoplus,将这些元素与该包相连。

二、UML的模型表达格式

1、类图的构成

        类图是可视化的表达系统静态结构模型的工具,使用类图所表达的系统静态结构模型,给出的是一些关于系统的说明性信息。

        类图可以包含包和子系统;有时为了凸显某个类的作用,还可以包含这样的实例;还可以通过在类图中给出与其所包含的内容相关的约束来加强模型的定义。

2、用况图的构成

        用况图是一种来表达系统功能模型的图形化工具,它包含六个模型元素,分别是主题、用况、参与者、关联、泛化、依赖。

① 主题是由一组用况所描述的一个类,通常是一个系统或者子系统;

② 用况通过一组动作序列规约系统功能,表达了参与者使用系统的一种方式,它是系统开发设计的起点,是类、对象、操作的源,是系统分析和设计阶段的输入之一;是分析和设计、制订开发计划和测试计划、设计测试用例的依据之一;应用于系统的用况是回归测试最好的源;应用于整个系统的用况是集成测试和系统测试最好的源;

③ 参与者表达了一组高内聚的角色,当用户与用况交互时,该用户扮演这组角色;

④ 关联是一种参与关系,是操作者与用况之间唯一的关系。

        用况图可以为系统建模,描述软件系统行为的功能结构,也可以对业务建模,描述企业或组织的业务过程结构。不论是对系统建模还是对业务建模者涉及系统/业务语境的模型化和系统/业务需求的模型化。

3、顺序图的构成

        顺序图是由一组对象以及按时序组织的对象之间的关系组成,是一种交互图,包含对象之间传递的信息。

        顺序图能够表达交互行为,交互中涉及以下一些基本术语:

① 消息;

② 对象生命线;

③ 聚焦控制。

4、状态以及状态图的构成

        状态图强调了从一个状态到另一个状态的控制流,是显示一个状态机的图。

        状态图由状态、事件和状态转移构成。

① 状态是类的实例在生存中的一种条件或一种情况,期间该实例满足这一条件,执行某一活动或等待某一消息。UML把状态分为3类:初态、终态和通常状态;

② 事件是对确定的时空内一个有意义的发生的规约,可分为内部事件和外部事件;

③ 状态转移是两个状态之间的一种关系,一般包含五个部分:源状态、转移触发器、监护条件、效应和目标状态。

5、顺序图中的操作子

        为了控制交互行为描述的复杂性,以便更好地表达顺序图的复杂控制,UML定义了4种常见的控制操作子:

① 选择执行操作子;

② 条件执行操作子;

③ 并发执行操作子;

④ 迭代执行操作子。

6、子状态机、简单状态和组合状态

        为了有效地组织状态,控制对象状态的复杂性,UML提供了组合状态,在一个状态机中引入了另一个状态机,被引入的状态机称为子状态机。相对地,把没有子状态的状态称为简单状态;把含子状态的状态称为组合状态,组合状态可包含两种类型的子状态机,即非正交(顺序)子状态机和正交(并发)子状态机。

猜你喜欢

转载自blog.csdn.net/Alexshi5/article/details/88585155
今日推荐