前言
先说说自己对UML建模的理解和认识:
现代软件开发都是团队开发模式,需要团队协作和分工,因此如何能精确表达自己的意思就是一件很重要的事,UML建模就是来解决这件事情的,我们需要构建一种通用的表达形式让我们整个团队可以互相理解整个项目,避免自然语言带来的歧义,这就是UML建模存在的意义
1.概述
面向对象的系统开发过程以体系结构为中心,以用例为驱动,是一个反复渐增的过程
1.1几种典型的面向对象(OO)的方法
1.1.1Booch面向对象方法(OOAD)
认为软件开发是螺旋上升过程,强调多次重复
Booch 方法的基本开发模型包括
逻辑模型:描述系统的类结构(类图)和对象结构(对象图)
物理模型:描述系统的模块结构(模型图)和进程结构(进程图)
静态模型:描述系统的静态组成结构
动态模型:描述系统执行过程中的行为(状态迁移图、顺序图)
Booch方法一般将开发过程分为技术层和管理层开发
系统技术层开发步骤
发现类与对象:提取候选对象,分析、标识相关场景,为每个类定义属性和操作。
确定类和对象的语义:选择、分析场景,为对象类赋予责任,枚举每个对象的角色和责任,定义相应操作,寻找对象间的协作。
标识类和对象间的关系:定义对象间的继承、依赖、关联等关系。
系统管理层开发步骤
强调团队技术管理。开发进度及过程监控。
明确用户关键需求。提出概念性的原型。
建立系统分析模型。系统功能说明、设计要去及自愿要求。
完善设计系统结构。设计阶段的结构说明及一般技术要求。
系统实现。系统优化后进行编码,产生可执行版本。
软件交付。考虑每一个变动及其影响。
1.1.2Jacobson的面向对象方法(OOSE)
一种用例驱动的面向对象方法
过程:
(1)建立面向对象分析模型的过程
建造用户需求模型。执行者及其责任,标识用例。
建造系统分析模型。表示行为操作。
(2)建立面向对象设计模型的过程
创建模块作为主要的设计对象。
创建一个显示激励如何在模块间传送的交互图。
把模块组织成子系统。
复审设计工作。
1.1.3Coad-Yourdon的面向对象方法论(OOA/OOD)
面向对象分析(OOA)的步骤(※※※)
1主题层 :识别主题(子系统)活动,将性质相同的类与对象归纳为同一主题。
2类及对象层 :识别类与对象。
对象是属性及其专用服务的一个封装体,是对问题域中的人事和物等客观实体进行的抽象描述。
注意:以上活动无顺序要求。
3结构层或关系层 :识别结构(继承结构和组合结构)。
在OO方法中组装结构和分类结构是两种重要的结构类型:整体与部分,一般与特殊
4属性层或特征层 :定义属性(包括实例)对象的属性值,就是一些状态的信息数据
5服务层 :定义服务(包括消息连接)。
一个服务就是收到一条信息后所执行的处理操作
服务是对模型化的现实世界的进一步抽象
面向对象设计(OOD)步骤(四个部件模型及相应活动)
问题邻域部件
人机接口(界面)部件
任务管理部件
数据管理部件
1.1.4Rumbaugh(OMT)方法
分析活动建立三个模型:
- 对象模型 描述对象、类、层次和关系。对象图描述。
- 动态模型 描述对象和系统的行为。状态图。
- 功能模型 类似于高层的DFD,描述穿越系统的信息流。
数据流程图。
1.2UML对软件系统体系结构的描述——5大视图与四种(或者六种关系)
1.2.1五大视图
用例视图
作用:描述系统的功能需求,找出用例和执行者;
适用对象:客户、分析者、设计者、开发者和测试者;
描述使用的图:用例图和活动图;
重要性:系统的中心,它决定了其他视图的开发,用于确认和最终验证系统。
逻辑视图
作用:描述如何实现系统内部的功能 ;
适用对象:分析者、设计者、开发者 ;
描述使用的图:类图和对象图、状态图、顺序图、合作图和活动图 ;
重要性:描述了系统的静态结构和因发送消息而出现的动态协作关系 。
构建视图
作用:描述系统代码构件组织和实现模块,及它们之间的依赖关系 ;
适用对象:设计者、开发者 ;
描述使用的图:构件图 ;
重要性:描述系统如何划分软件构件,如何进行编程 。
进程视图
作用:描述系统的并发性,并处理这些线程间的通信和同步 ;
适用对象:开发者和系统集成者 ;
描述使用的图:状态图、顺序图、合作图、活动图、构件图和配置图 ;
重要性:将系统分割成并发执行的控制线程及处理这些线程的通信和同步 。
配置视图
作用:描述系统的物理设备配置,如计算机、硬件设备以及它们相互间的连接 ;
适用对象:开发者、系统集成者和测试者 ;
描述使用的图:配置图 ;
重要性:描述硬件设备的连接和哪个程序或对象驻留在哪台计算机上执行 。
1.2.2四种关系(六种关系)
1.2.3三大类十四种图的表示
用例模型图(功能模型,Use Case Model):由用例图组成。
静态模型图(对象模型Object Model ,Domain Model):由类图、对象图、包图、构件图和配置图组成。
动态模型图(行为模型Behavior Model, 包括 交互,状态模型):由活动图、顺序图、状态图和合作图组成。
(新增四种图:时间图、交互纵览图、组合结构图、外廓图)
1.2.4对象模型的五个层次
类和对象
确定结构与关联
划分主题
定义属性
定义服务
1.2.5对象和类之间的四种关系
一般—特殊结构(分类结构)
整体—部分结构(组装结构)
实例关联(一个类的属性中含有另一个类的实例)
消息关联(一个对象在执行自己的服务时需要通过消息请求另一个对象为它完成某个服务)
1.2.6UML开发过程产生的模型
1)业务模型:建立问题领域的组织结构和业务流程的抽象。
描述方式:需求分析规格说明书。
2)领域模型:建立问题领域的需求分析说明。
描述方式:需求分析规格说明书。
3)用例模型:表达系统的功能。
描述方式:用例图、活动图及需求分析规格说明书。
4)分析模型(任选):只有复杂的系统才需要建立独立的分析模型。
模型包括: 基本功能分析、实现功能的对象、对象之间的关系
描述方式:类图、对象图、包图、顺序图、合作图、状态图和活动图。
5)设计模型:系统具体解决方案,由调整和完善分析模型而成。
描述方式:类图、对象图、包图、顺序图、合作图、状态图和活动图。
6)进程模型(任选):描述系统并发和同步机制有多线程的并发系统才建立。
描述方式:状态图、顺序图、合作图、活动图、构件图和配置图。
7)实现模型:软件的系统体系结构。
描述方式:包图和构件图。
8)配置模型:描述系统软件在各个硬件上的配置。
描述方式:配置图。
9)测试模型:描述验证系统功能的途径。
描述方式:测试案例和测试报告。
1.2.7UML开发过程产生的文档
技术文档:
需求分析信息集:软件规格说明书、需求补充说明、业务用例图等
设计信息集:软件设计规格说明书、图形界面、类图、对象图、包图、顺序图、状态图、合作图、活动图等
实现信息集:源程序清单、动态链接库说明、用户使用手册、构件图
配置信息集:配置图及详细说明
管理文档:风险分析说明、软件开发进度计划、配置计划、测试计划、测试方案及步骤