iOS开发:UML在项目开发中的规范应用

一、什么是UML

统一建模语言(英语:Unified Modeling Language,缩写 UML)是非专利的第三代建模和规约语言。UML是一种开放的方法,用于说明、可视化、构建和编写一个正在开发的、面向对象的、软件密集系统的制品的开放方法。【*】

UML分为UML模型和UML类图。
区分UML模型和UML图是非常重要的,UML图,包括用例图、协作图、活动图、序列图、部署图、构件图、类图、状态图,是模型中信息的图形表达方式,但是UML模型独立于UML图存在。

二、类图的作用

UML展现了一系列最佳工程实践,这些最佳实践在对大规模,复杂系统进行建模方面,特别是在软件架构层次已经被验证有效。
​ 类图的作用:
​ (1):在软件工程中,类图是一种静态的结构图,描述了系统的类的集合,类的属性和类之间的关系,可以简化了人们对系统的理解;
​ (2):类图是系统分析和设计阶段的重要产物,是系统编码和测试的重要模型。

三、画法和介绍

类的UML使用包含类名、属性、方法名以及参数。使用带分割线的长方形表示。
iOS开发:UML在项目开发中的规范应用注:可见性分为三类,分别是public、private和protected,在类图分别用+、-和#表示;名称为属性的名称。

四、类之间关系UML的介绍和画法

4.1、泛化(Generalization)关系 :空心箭头实线表示,箭头指向个人

iOS开发:UML在项目开发中的规范应用

4.2、实现(Realization)关系 :空心箭头虚线表示,箭头指向约定的元素

iOS开发:UML在项目开发中的规范应用

4.3、依赖(Dependence)关系:虚线箭头表示,箭头指向被依赖的对象

依赖关系是类与类之间最弱的关系,A元素变化会影响B元素,反之不成立。说简单点就是一个类使用了另一个类,这种关系具有临时性特征,一个类的改变由于另一类而受影响。

iOS开发:UML在项目开发中的规范应用

4.4、关联关系:实线箭头表示,箭头指向(也可以双向)被依赖元素

关联关系表示一个类和另一类有联系,它使一个类知道另一个类的属性和方法,被关联的元素间通常可以被独立的考虑。

iOS开发:UML在项目开发中的规范应用

1…1表示另一个类的一个对象只与该类的一个对象有关系
0…* 表示另一个类的一个对象与该类的零个或多个对象有关系
1…* 表示另一个类的一个对象与该类的一个或多个对象有关系
0…1表示另一个类的一个对象没有或只与该类的一个对象有关系

4.5、聚合(Aggregation)关系:带空心菱形头的实线表示,菱形头指向整体

聚合关系是整体和部分的关系,是一种强的关系,但是部分可以脱离整体而存在。是关联关系的一种。

iOS开发:UML在项目开发中的规范应用

4.6、组合(Composition)关系:带实心菱形头的实线表示,菱形头指向整体

组合关系是聚合关系的一种变种,便是了更强的组合关系,它要求整体的对象代表部分对象的生命周期。

iOS开发:UML在项目开发中的规范应用
关系线条汇总:
iOS开发:UML在项目开发中的规范应用强弱关系是没有异议的:依赖 < 关联 < 聚合 < 组合<泛化(继承)。

五、使用工具和详细资料

参考:OmniGraffle应用:从工具栏开始

六、规范

移动端项目开发,经过汇总分析,为了展示模块的功能结构、业务逻辑、多状态展示,这些UML展示,分别是类图、活动图、状态图。
为了统一规范,通过以下几个实例展示:

6.1、用例图

iOS开发:UML在项目开发中的规范应用

6.2、活动图

iOS开发:UML在项目开发中的规范应用

6.3、状态图

iOS开发:UML在项目开发中的规范应用

6.4、类图

iOS开发:UML在项目开发中的规范应用

规范:
1、统一使用[OmniGraffle]应用软件开发。
2、每张UML都要有线框框住内容。
3、要有标题、编辑人审稿人备注、最近更新日期和版本备注。
4、为了说明清除对应模块的应用,有必要在左下角可以添加备注。
5、相同层级要线框分开,使结构更清晰。
6、各模块必须按规范关联。
7、不考虑关联数量。
8、考虑到功能模块的类图,涉及层次比较多,类的UML使用可仅包含类名(必填)和关键属性、方法名、参数;并做好备注。
9、外宽的宽高比必须满足A4纸的要求:21x29.7、或29.7x21。

参考:
1、UML类图中箭头和线条的含义和用法