UML语言及系统设计
架构师成长营
1.前言
本文是以《软件架构设计》和《大象Think in UML》两本书的内容为基础进行讲述,以个人的理解做了提炼和总结,旨在能够通过本文对UML语言以及其在系统设计中的应用有一个概括性的了解。
2.《软件架构设计》

图 架构设计过程的节奏

图 架构设计的6个步骤

需求分析

确定关键需求

概念架构设计

2.1需求分析
愿景分析:愿景=业务目标+范围+Feature+上下文图。
需求分析
用例图

用例简述(用户故事)

用例规约

用例实现(鲁棒图)



2.2.领域建模
领域模型:类图、状态图



领域模型在软件开发中的作用
2.3.确定关键需求
关键质量
关键功能:核心功能、必做功能、高风险功能、独特功能。
2.4.概念架构设计
关键需求进、概念架构出。
左手功能:鲁棒图。
右手质量:目标-场景-决策表。
要领1:功能需求与质量需求并重。
要领2:1个决定、4个选择。
2.5.细化架构设计
5个视图、15个任务
逻辑架构=模块划分+接口定义+领域建模。
开发架构=技术选型+文件划分+编译关系。
物理架构=硬件分布+软件部署+方案优化。
运行架构=技术选型+控制流划分+同步关系。
数据架构=技术选型+存储格式+数据分布。
3.《大象Think in UML》
3.1概念
UML(Unified Modeling Language)统一建模语言
RUP(Rational Unified Process)统一过程
3.2UML核心元素
版型:是对一个UML元素基础定义的扩展,UML几乎每一个元素都有很多版型,例如:用例有业务用例、业务用例实现、系统用例等版型;类有接口、边界类、实体类、控制类等。在建模的不同阶段,问了区分视图之间的不同点,会采用不同的图示来表示。
参与者:参与者是在建模过程中处于核心地位的。
![]()
参与者位于边界之外。
参与者可以非人。
业务主角和业务工人的区别。
参与者与涉众的关系
参与者与用户的关系
参与者与角色的关系
用例:用例是一种把现实世界捕获下来的方法,用例定义了一组用例实例,其中每一个实例都是系统所执行的一系列操作,这些操作生成特定主角可以观测的值。
![]()
用例是相对独立的。
用例执行结果对参与者来说是可以观测和有意义的。
这件事必须由一个参与者发起,不存在没有参与者的用例,用例不应该自动启动,也不应该主动启动另一个用例。
用例必须是以动宾短语形式出现的。
业务用例、业务用例实现、概念用例、系统用例、用例实现
边界:
边界决定视界
边界决定抽象层次
业务实体:业务实体是一种版型,在业务建模阶段建立领域模型。

包:

领域包、子系统、组织结构、层
分析类:分析类用于获取系统中主要的“职责簇”。它们代表系统的原型类,是系统必须处理的主要抽象概念的第一个关口。
分析类代表系统的主要“职责簇”,意味着分析类是从功能性需求向计算机实现转换的第一个关口。
分析类可以产生系统的设计类和子系统,意味着计算机实现是可以通过某种途径产生出来的。
边界类
控制类
实体类
类:属性、方法、可见性
关系:关系是重要的语义,它抽象出对象之间的联系,让对象构成某个特定的结构。
关联
它描述不同类的对象之间的结构关系,它在一段时间内将多个类的实例连接在一起。A对象知道B对象的存在。
依赖
它表示一个对象的修改会导致另一个对象的修改的关系。A对象保存了B对象的ID,如果A没有使用B,则是关联关系,如果A使用了B对象,则是依赖关系。
扩展
它特别用于用例模型中说明向基本用例中的某个扩展点插入扩展用例。一般来说,扩展用例是带有抽象性质的,它表示用例场景中的某一个支流,由特定的扩展点触发而被启动。用例是可选的。
包含
它特别用于用例模型,说明在执行基本用例的实例的用例实例过程中插入行为端。用例是必须的而不是可选的。
实现
A实现B,在用例模型中连接用例与用例实现,说明基本用例的一种实现方式。
精化
A精化了B,一个基本用例可以分解出许多更小的关键精化用例,这些精化用例更细致地展示了基本用例的核心业务。
泛化
A继承自B,说明两个对象之间的继承关系。
聚合
聚合关系用于类图,特别用于表示实体对象之间的关系,表达整体由部分构成的语义。与组合不同的是,聚合不是强依赖的,即使整体不存在了,部分仍然存在。
组合![]()
组件
3.3UML核心视图
静态图:用例图、类图(概念层类图、说明层类图、实现层类图)、包图
动态图:
活动图:用例活动图、对象活动图、泳道、业务场景建模、用例场景建模
状态图:
时序图:业务模型时序图、概念模型时序图、设计模型时序图
协作图:业务模型协作图、概念模型协作图、设计模型协作图
3.4UML核心模型
用例模型
业务用例模型:业务用例视图、业务规则、业务对象模型、业务用例实现视图、业务用例实现场景、包图。
概念用例模型:概念用例分析、分析类视图、分析场景
系统用例模型:业务用例、概念用例、用例视图、用例规约、补充规约、业务规则、用例实现、用例场景、分析对象。
领域模型
分析模型
软件架构和框架
设计模型
组件模型
实施模型
3.5实践
准备工作
了解问题领域
涉众分析
规划业务范围
客户访谈
获取需求
定义边界
发现主角
发现业务用例:用例图
业务建模:活动图(泳道)、时序图、协作图、用例规约、业务对象模型、业务用例实现视图、业务用例实现场景、包图
领域建模:分析类图、时序图、协作图
提炼业务规则:全局规划、交互规则、内禀规则
获取非功能性需求
主要成果物
需求分析
关键概念分析:概念用例、概念模型
业务架构
系统原型
系统分析
系统用例
分析业务规则:全局规则、交互规则、内禀规则
用例实现:系统用例、系统用例实现、系统用例实现场景。
软件架构和框架
分析模型:分析类、时序图
组件模型
部署模型
系统设计
设计模型:设计类、设计模型、设计类实现(时序图)
接口设计
包设计
转载于:https://my.oschina.net/u/3963977/blog/2240182