软件需求分析中UML(统一建模语言)的基本概念和相关知识

UML(Unified Modeling Language,统一建模语言)

UML是一种定义良好、易于表达、功能强大且普遍适用的建模语言,融入了软件工程领域的新思想、新方法和新技术,它的作用域不限于支持OOA和OOD,还支持从需求分析开始的软件开发的全过程。

1、UML结构:包含构造块、规则和公共机制三个部分

(1)构造块:UML 有三种基本的构造块,分别是事物(thing)、关系(relationship)和图(diazram)。事物是 UML的重要组成部分,关系把事物紧密联系在一起,图是多个相互关联的事物的集合;

(2)规则:规则是构造块如何放在一起的规定,包括为构造块命名;给一个名字以特定含义的语境,即范围;怎样使用或看见名字,即可见性;事物如何正确、一致地相互联系,即完整性;运行或模拟动态模型的含义是什么,即执行;

(3)公共机制:公共机制是指达到特定目标的公共UML方法,主要包括规格说明(详细说明)、修饰、公共分类(通用划分)和扩展机制四种。

2、UML事物

UML中的事物也称为建模元素,包括结构事物(structural things)、行为事物(behavioral things,也称动作事物)、分组事物(grouping things)和注释事物(annotational things,也称注解事物),这些事物是UML模型中最基本的OO构造块。

(1)结构事物:结构事物在模型中属于最静态的部分,代表概念上或物理上的元素。UML有七种结构事物,分别是类、接口、协作、用例、活动类、构件和节点;

(2)行为事物:行为事物是 UML模型中的动态部分,代表时间和空间上的动作。UML有两种主要的行为事物,第一种是交互(内部活动),交互是由一组对象之间在特定上下文中,为达到特定目的而进行的一系列消息交换而组成的动作。交互中组成动作的对象的每个操作都要详细列出,包括消息、动作次序(消息产生的动作)、连接(对象之间的连接);第二种是状态机,状态机由一系列对象的状态组成;

(3)分组事物:分组事物是 UML模型中组织的部分,可以把它们看成是个盒子,模型可以在其中进行分解。UML只有一种分组事物,称为包。包是一种将有组织的元素分组的机制。与构件不同的是,包纯粹是一种概念上的事物,只存在于开发阶段,而构件可以存在于系统运行阶段;

(4)注释事物:注释事物是UML模型的解释部分。

3、UML中的关系

UML用关系把事物结合在一起,主要有下列四种关系:

(1)依赖(dependency):依赖是两个事物之间的语义关系,其中一个事物发生变化会影响另一个事物的语义;

(2)关联(association):关联描述一组对象之间连接的结构关系;

(3)泛化(generalization):泛化是一般化和特殊化的关系,描述特殊元素的对象可替换一般元素的对象;

(4)实现(realization):实现是类之间的语义关系,其中的一个类指定了由另一个类保证执行的契约。

4、UML2.0中的图

UML2.0包括14种图,分别为类图(class diagram)、对象图(object diagram)、构件图(component diagram)、组合结构图(composite structure diagram)、用例图(use case diagram)、顺序图(sequence diagram)、通信图(communication diagram)、定时图(timing diagram)、状态图(state diagram)、活动图(activity diagram)、部署图(deployment diagram)、制品图(artifact diagram)、包图(package diagram)、交互概览图(interaction overview diagram)。

5、UML视图

UML对系统架构的定义是系统的组织结构,包括系统分解的组成部分,以及它们的关联性、交互机制和指导原则等提供系统设计的信息。以下是5个系统视图:

(1)逻辑视图:逻辑视图也称为设计视图,它表示了设计模型中在架构方面具有重要意义的部分,即类、子系统、包和用例实现的子集;

(2)进程视图:进程视图是可执行线程和进程作为活动类的建模,它是逻辑视图的一次执行实例,描述了并发与同步结构;

(3)实现视图:实现视图对组成基于系统的物理代码的文件和构件进行建模;

(4)部署视图:部署视图把构件部署到一组物理节点上,表示软件到硬件的映射和分布结构;

(5)用例视图:用例视图是最基本的需求分析模型。

6、面向对象分析

OOA的基本任务是运用00方法,对问题域进行分析和理解,正确认识其中的事物及它们之间的关系,找出描述问题域和系统功能所需的类和对象,定义它们的属性和职责,以及它们之间所形成的各种联系。最终产生一个符合用户需求,并能直接反映问题域和系统功能的OOA模型及其详细说明

OOA模型独立于具体实现,即不考虑与系统具体实现有关的因素,这也是OOA和OOD的区别之所在。OOA的任务是“做什么”OOD的任务是“怎么做”

面向对象分析阶段的核心工作是建立系统的用例模型与分析模型。

7、用例模型

用例方法是一种需求合成技术,先获取需求,记录下来,然后从这些零散的要求和期望中进行整理与提炼,从而建立用例模型。在OOA方法中,构建用例模型一般需要经历四个阶段,分别是识别参与者、合并需求获得用例、细化用例描述和调整用例模型,其中前三个阶段是必需的。

8、分析模型

分析模型描述系统的基本逻辑结构,展示对象和类如何组成系统(静态模型),以及它们如何保持通信,实现系统行为(动态模型);

建立分析模型的过程大致包括定义概念类、确定类之间的关系、为类添加职责、建立交互图等,其中学者将前三个步骤统称为CRC(
Class-Responsibility-Collaborator,类-责任-协作者)建模;

类之间的主要关系有关联、依赖、泛化、聚合、组合和实现等:

(1)关联关系:关联提供了不同类的对象之间的结构关系,它在一段时间内将多个类的实例连接在一起。关联体现的是对象实例之间的关系,而不表示两个类之间的关系。其余的关系涉及类元自身的描述,而不是它们的实例。对于关联关系的描述,可以使用关联名称、角色、多重性和导向性来说明;

(2)依赖关系:两个类A和B,如果B的变化可能会引起A的变化,则称类A依赖于类 B。依赖可以由各种原因引起,例如,一个类向另一个类发送消息,一个类是另一个类的数据成员、一个类是另一个类的某个操作参数等;

(3)泛化关系:泛化关系描述了一般事物与该事物中的特殊种类之间的关系,也就是父类与子类之间的关系继承关系是泛化关系的反关系,也就是说,子类继承了父类,而父类则是子类的泛化;

(4)共享聚集:共享聚集关系通常简称为聚合关系,它表示类之间的整体与部分的关系,其含义是“部分”可能同时属于多个“整体”,“部分”与“整体”的生命周期可以不相同。例如,汽车和车轮就是聚合关系,车子坏了,车轮还可以用;车轮坏了,可以再换一个新的;

(5)组合聚集:组合聚集关系通常简称为组合关系,它也是表示类之间的整体与部分的关系。与聚合关系的区别在于,组合关系中的“部分”只能属于一个“整体”,“部分”与“整体”的生命周期相同,“部分”随着“整体”的创建而创建,也随着“整体”的消亡而消亡。例如,一个公司包含多个部门,它们之间的关系就是组合关系。公司一旦倒闭,也就没有部门了;

(6)实现关系:实现关系将说明和实现联系起来。接口是对行为而非实现的说明,而类中则包含了实现的结构。一个或多个类可以实现一个接口,而每个类分别实现接口中的操作。

图片[1]-软件需求分析中UML(统一建模语言)的基本概念和相关知识-不念博客
类之间的关系表示
© 版权声明
THE END