架构图
业务架构图
系统架构图
流程图
- 业务流程图
泳道图形式,展现整个业务线功能。
面向领导,对外宣传,对外交流。
- 实现流程图
即任务流程图,有入出口、判断分支等。
面向程序员,实现某个需求功能的流程设计。
- 页面流图
页面之间的跳转关系, 用户交互的页面实现的流程设计。
面向UI和前端开发人员。
- 数据流图
即数据流向图, 数据的处理流程设计。
拥有解决方案设计。
建模
4+1视图模型:
[4]
- 逻辑视图:描述需求功能,包括哪些功能模块,各功能模块包括哪些组件,组件包含哪些类,及组件间的依赖关系。
- 开发视图:描述系统架构层面的层次划分,对包的管理,依赖的系统和第三方的程序包。一般来说,开发视图的一个程序包可能对应逻辑视图的一个功能模块。
- 过程视图:程序运行期内的进程、线程、对象实例,及与此相关的并发、同步、通信实现等问题。
- 物理视图:系统软件如何安装部署到物理机上,以及物理机之间的通信、关联如何实现。
[1]
- 场景视图:
结合具体的用例场景,将逻辑视图、开发视图、过程视图、物理视图结合起来,从业务功能流程、软件系统两个方面,描述相关部分的依赖、调用关系。
UML: unified modeling language, 统一建模语言
所谓统一,即在UML之前,软件建模是没有一个统一的标准的;为什么叫语言,因为UML可以用于交流沟通。
5类图:
图类 | 说明 |
---|---|
用例图 | 描述用户角色与软件系统功能,如何操作系统实现需求功能 |
静态图 | 包括类图和对象图 |
行为图 | 包括活动图和状态图 |
交互图 | 包括序列图和协作图 |
实现图 | 包括组件图和部署图 |
9种图例:
图例 | 说明 | 使用阶段和场景 |
---|---|---|
用例图 | 角色、系统功能、用例边界,在用例场景下角色与功能模块的交互, 角色可以是用户,也可以是子系统 | 需求分析时 |
类图 | 领域模型的抽象, 包括属性和方法, 以及类之间的关系 | 需求分析使用粗粒度的类图描述类之间的依赖和调用;详细设计阶段使用类图 |
时序图(序列图) | 虚线代表生命线, 表示对象之间的调用关系,对象可以是系统,组件,类 | 在需求分析、概要设计、详细设计,均可使用 |
组件图 | 组件之间的静态关系,依赖关系 | 概要设计时使用 |
部署图 | 需要几台物理机、重要组件部署在哪台机上 | 概要设计使用 |
活动图 | 类似于流程图,有泳道,表示流程关系 | 可用在需求分析(业务流程)、概要设计(子系统和组件间的交互)、详细设计时方法内部的实现流程 |
状态图 | 对象生命周期中各个状态的描述和变化 | 在需求分析时有状态说明的、详细设计时说明各个状态 |
对象图 | 类的对象 | 详细设计使用 |
协作图 |
设计步骤
1. 需求分析:
用例图配合文字说明形成需求文档;
粗粒度类图来说明领域抽象模型间的依赖关系;
序列图来说明新老系统之间调用关系;
活动图(流程图)用来描述业务流程;
状态图用来描述有状态变化的领域模型;
2. 概要设计:
组件图用来描述组件间的依赖关系;
部署图用来标书物理机和系统重要组件的部署情况;
序列图用来描述各个组件间的调用关系;
流程图(活动图)用来描述组件和子系统之间的调用关系;
3. 详细设计:
类图来描述领域模型的详细表示;
类的序列图用来表示程序中类之间的调用关系;
活动图用来表示某个复杂方法的内部实现流程;