《大话软件工程——需求分析与软件设计》面向从事软件分析与设计相关工作的读者。《大话软件工程——需求分析与软件设计》的重点是在软件工程中增加了业务设计和应用设计的部分,提出了软件设计工程化的模式,支持进行定性、定量的软件项目管理,是一本实操型的软件工程工具书。全书共分为6篇22章,分别介绍了业务分析与设计的理论、需求工程的调研与分析方法、业务的分析与设计方法、应用设计方法、业务用例和应用用例的编写方法、需求和设计的配套模板、规格书标准等。
《大话软件工程——需求分析与软件设计》可作为软件工程师(包括需求、设计、开发、实施)、产品/项目经理、管理咨询师的实用工具书、培训机构的设计资格培训教材,以及普通高等院校管理信息专业、计算机专业学生学习软件设计方法的参考书。
第3章
组合原理
分离原理,提供了如何分离研究对象的原理。本章的组合原理要解决的是如何用模型表达
研究成果的原理。用图形表达分析与设计的成果,可以多维度、精准、完整地传递信息。
本章介绍逻辑图形的构成原理、规律,详细说明了图形中各元素的属性等,组合原理是建
立用图形表达分析与设计成果的基础,见图3-1。
业务
物品
组织
管理
要素
逻辑
模型
分离原理
(4分类)
组合原理
(3元素)企业管理信息系统
1.业务
2.管理
3.组织
4.物品
企业构成的分类
业务架构的元素
图3-1 分离原理与组合原理关系
3.1 基本概念
3.1.1 定义与作用
1.
定义
组合原理,给出了用要素、逻辑和模型三元素形成图形的原理和设计方法,利用组合三元
素可以表达出任意的逻辑图。
在分析与设计过程中,不论使用什么样的逻辑图形(分析用、架构用、管理用等),图形
的构成都包括这三个元素,三元素既可以用来绘图,也可以用来检查图形是否正确。
2.
作用
在企业管理咨询行业和软件行业中,针对企业管理对象的描述,不同的业务领域、不同的
描述人、不同的关注点等使得表达方式有无数种,这就带来了传递意图、解读意图都很困难的
现象。这些图形是否存在着相似的规律呢?是否可以找到一套与业务领域、描述人和关注点无
关的、具有普遍性的图形表达方法呢?
通常寻找具有普遍性的表达方法时,最常用的做法就是“穷尽”所有应用场景,然后通过
抽提共性整合成为一套方法。由于“应用场景”与具体业务相关联,所以这种方式的最大短处
就是随着遇到的场景越多,相应的约束规则、附加条件也会增多。例如,基于100次不同应用场
景抽提出的方法,在用到第101次时如果存在着新的不同点,就要将新场景中的不同之处再加入
大话软件工程——需求分析与软件设计
到既有约束规则中,这种积累方式难以收敛为一个具有共性的模型。
理想的方式是,不论什么业务应用场景仅通过有限的“元素”组合就可以表达,“组合原
理”的提出就是为了满足这一要求。
3.1.2 组合原理模型
1.图形的基本构成
由于研究对象的形态有万千种,所以表达分析、设计意图的图形也就有非常多的形式,如
果要想找到一套通用的方法来替代,需要先研究一下各种图形的构成内容是什么、规律性有哪
些等,从而找到一个通用的建模方法。
下面通过对比几个完全没有任何业务背景,也无任何关联的图形,研究一下它们之间有哪
些共同之处。如图3-2(a)所示,其中有4个图形a1~a4,它们从外形上看似乎没有什么共同
点,如果对a1~a4的图形进行拆分,将拆分后获得的图形元素进行分类,可以获得三组不同的
元素,分别详见图3-2(b)~图3-2(d),这三组不同元素的含义如下。
(1)图3-2(b):表达的是图的“要素”。
将a1~a4各图中都具有的共同内容3个方块A、B、C提出来,这3个方块是用来表达构成图
形主体内容的“构件”,它们被称为图形的“要素”。
(2)图3-2(c):表达的是要素间的“逻辑”。
在去掉a1~a4各个图形中的构件要素后,剩下了“线条、位置、背景框”等内容,它们是
用来表达各个构件要素之间的关系,它们被称为“逻辑”。
(3)图3-2(d):表达的是图的“模型”。
在去除了a1~a4 各个图形中表达要素和逻辑的内容之后,只剩下了要素方块和逻辑的“投
影”,这些投影表达的是要素与逻辑构成的不同“形状”,它们被称为“模型”。
原图三元素
A
B C
BA C
A B C
A
B C
A
B C
BA C
BA C
BA C
箭头
位置
背景框
线条①关联
关系
②位置
关系
③包含
关系
a1
a2
a3
a4
A
B
C
A
B
C
(d) 图的形状(b)图的要素(c)要素的关联(a) 常用图形
A B C
A
B C
图3-2 组合原理三元素的抽提
大话软件工程 四校 正文1-4.indd 42 2020-3-22 15:19:46
目录
第1篇 基础概念
第1章 知识体系概述 2
1.1 基础部分 2
1.1.1 三个知识体系 2
1.1.2 三个基础原理 6
1.2 软件工程 7
1.2.1 定义与框架 7
1.2.2 工程分解(横轴) 9
1.2.3 工作分解(纵轴) 10
1.2.4 工程与工作的分解区别 10
1.3 知识框架的构成 11
1.3.1 篇章的构成 11
1.3.2 软件工程知识体系框架 12
1.4 本书的思路与方法 15
1.4.1 本书采用的方法 15
1.4.2 面向过程与面向对象 17
第2章 分离原理 20
2.1 基本概念 20
2.1.1 定义与作用 20
2.1.2 分离原理模型 21
2.1.3 思路与理解 24
2.2 业务与管理的概念 25
2.2.1 业务的概念 25
2.2.2 管理的概念 26
2.2.3 业务与管理的区别 27
2.2.4 业务与管理的相对性 29
2.2.5 业务与管理的特性 30
2.3 分离1——业务与管理 32
2.3.1 要素的分离 32
2.3.2 架构的分离 33
2.3.3 业务流程与审批流程的分离 34
2.4 分离2——组织 35
2.4.1 组织的概念 35
2.4.2 组织、业务与管理的关系 36
2.4.3 组织与业务流程的关系 37
2.5 分离3——物品 38
2.5.1 物品的概念 38
2.5.2 物品要素的作用 38
第3章 组合原理 41
3.1 基本概念 41
3.1.1 定义与作用 41
3.1.2 组合原理模型 42
3.1.3 思路与理解 43
3.2 组合三元素1——要素 44
3.2.1 对象的概念 44
3.2.2 要素的概念 46
3.2.3 要素属性1——粒度与分层 47
3.2.4 要素属性2——黑盒与白盒 49
3.2.5 要素属性3——系统与模块 52
3.2.6 要素属性4——解耦与内聚 54
3.3 组合三元素2——逻辑 57
3.3.1 逻辑的概念 57
3.3.2 逻辑的作用 58
3.3.3 逻辑的分类 60
3.3.4 逻辑的表达1——架构 61
3.3.5 逻辑的表达2——功能 62
3.3.6 逻辑的表达3——数据 63
3.3.7 逻辑的表达4——管理 63
3.4 组合三元素3——模型 64
3.4.1 分析模型 64
3.4.2 架构模型 66
3.4.3 两种模型的区别 68
第4章 分析模型与架构模型 72
4.1 基本用语约定 72
4.2 图形符号说明 73
4.2.1 图形符号的构成 73
4.2.2 图形符号的用法 75
4.2.3 背景框的用法 76
4.3 分析模型1——关联图 77
4.3.1 概念与解读 77
4.3.2 画法与场景 78
4.4 分析模型2——鱼骨图 80
4.4.1 概念与解读 80
4.4.2 画法与场景 80
4.5 分析模型3——思维导图 81
4.5.1 概念与解读 81
4.5.2 画法与场景 82
4.6 分析模型4——排比图(一维) 83
4.6.1 概念与解读 83
4.6.2 画法与场景 85
4.7 分析模型5——排比图(二维) 86
4.7.1 概念与解读 86
4.7.2 画法与场景 87
4.8 架构模型1——拓扑图 88
4.8.1 概念与解读 88
4.8.2 画法与场景 89
4.9 架构模型2——分层图 90
4.9.1 概念与解读 90
4.9.2 画法与场景 92
4.10 架构模型3——框架图 93
4.10.1 概念与解读 93
4.10.2 画法与场景 94
4.11 架构模型4——分解图 96
4.11.1 概念与解读 96
4.11.2 画法与场景 97
4.12 架构模型5——流程图 98
4.12.1 概念与解读 98
4.12.2 画法与场景 99
4.13 其他模型——交互图 100
4.13.1 概念与解读 101
4.13.2 画法与场景 102
第2篇 需求工程
第5章 需求工程概述 106
5.1 基本概念 106
5.1.1 定义与作用 106
5.1.2 内容与能力 107
5.1.3 思路与理解 108
5.2 需求分类 110
5.2.1 功能性需求 110
5.2.2 非功能性需求 110
5.2.3 关于售前咨询 111
5.3 工程分解 112
5.3.1 工程分解1——需求调研 113
5.3.2 工程分解2——需求分析 113
5.3.3 需求调研与需求分析 113
5.3.4 需求工程资料的应用 114
5.4 工作分解 114
5.4.1 需求调研的工作分解 115
5.4.2 需求分析的工作分解 115
5.5 需求体系的建立 115
5.5.1 需求体系的内容 115
5.5.2 需求体系的价值 116
第6章 需求调研 118
6.1 基本概念 118
6.1.1 定义与作用 118
6.1.2 内容与能力 119
6.1.3 思路与理解 120
6.2 需求调研方法 121
6.2.1 需求调研的准备 121
6.2.2 调研对象的区别 125
6.2.3 需求调研的顺序 126
6.2.4 需求真实性的识别 127
6.2.5 需求背景的记录 129
6.2.6 需求的记录形式 129
6.3 记录方式1——现状构成(图) 131
6.3.1 定义与作用 131
6.3.2 构成图1——静态构成 132
6.3.3 构成图2——动态构成 133
6.3.4 构成图3——管控构成 135
6.4 记录方式2——访谈记录(文) 136
6.4.1 定义与作用 136
6.4.2 访谈记录表 137
6.4.3 需求与要求 137
6.5 记录方式3——既存表单(表) 138
6.5.1 定义与作用 138
6.5.2 表单的梳理与记录 139
6.5.3 梳理与记录的流程 141
6.6 需求调研汇总 143
6.6.1 需求记录的原则 143
6.6.2 需求记录的形式 143
第7章 需求分析 146
7.1 基本概念 146
7.1.1 定义与作用 146
7.1.2 内容与能力 147
7.1.3 思路与理解 148
7.2 需求的分析 149
7.2.1 需求的分层 149
7.2.2 需求的转换 150
7.2.3 三种需求分析法 152
7.3 需求分析1——现状构成图 153
7.3.1 资料梳理 153
7.3.2 分析与转换 155
7.4 需求分析2——访谈记录 155
7.4.1 资料梳理 155
7.4.2 分析与转换1——目标需求 156
7.4.3 分析与转换2——业务需求 158
7.4.4 分析与转换3——功能需求 160
7.4.5 分析与转换4——待定需求 162
7.5 需求分析3——既存表单 164
7.5.1 资料梳理 164
7.5.2 分析与转换 165
7.6 需求分析汇总 165
7.6.1 需求规格说明书 165
7.6.2 功能需求一览 166
7.6.3 功能需求规格书(需求4件套) 167
第3篇 设计工程——概要设计
第8章 设计工程概述 174
8.1 基本概念 174
8.1.1 定义与作用 174
8.1.2 内容与能力 176
8.1.3 思路与理解 178
8.2 工程分解 181
8.2.1 工程分解1——概要设计 182
8.2.2 工程分解2——详细设计 182
8.2.3 工程分解3——应用设计 183
8.2.4 工程分解4——三个阶段的关系 183
8.2.5 业务设计与技术设计的关系 184
8.2.6 工程分解与资料引用 185
8.3 工作分解 186
8.3.1 工作分解1——架构层 186
8.3.2 工作分解2——功能层 186
8.3.3 工作分解3——数据层 186
8.3.4 工作分解4——三分层的关系 187
8.3.5 工作分解5——业务与技术的分层关系 188
8.4 管理设计 189
8.5 组织设计 190
8.6 物品设计 191
8.7 价值设计 191
8.8 验证用例与规格书 192
8.8.1 验证用例 192
8.8.2 设计规格书 193
第9章 架构的概要设计 198
9.1 基本概念 199
9.1.1 定义与作用 199
9.1.2 内容与能力 200
9.1.3 思路与理解 201
9.2 设计基础——设计规范 205
9.2.1 设计理念 205
9.2.2 设计主线 206
9.2.3 规范的其他内容 207
9.3 设计基础——基础手法 207
9.3.1 架构设计的基础 207
9.3.2 设计标准 209
9.4 架构的整体规划——拓扑图 211
9.4.1 使用场景 211
9.4.2 使用案例 212
9.5 架构的分层规划——分层图 213
9.5.1 使用场景 213
9.5.2 使用案例 214
9.6 架构的区域规划——框架图 216
9.6.1 使用场景 216
9.6.2 使用案例 216
9.7 架构的结构规划——分解图 218
9.7.1 使用场景 218
9.7.2 使用案例 219
9.8 架构的流程规划——流程图 220
9.8.1 使用场景 220
9.8.2 使用案例 222
9.8.3 流程划分 224
9.9 综合应用案例 226
9.9.1 各类图形的变化 226
9.9.2 模型的组合使用 228
第10章 功能的概要设计 234
10.1 基本概念 235
10.1.1 定义与作用 235
10.1.2 内容与能力 235
10.1.3 思路与理解 236
10.2 业务功能1——分类 237
10.2.1 业务功能的分类 237
10.2.2 业务功能的分类视图 241
10.3 业务功能2——规划 243
10.3.1 功能关联图 243
10.3.2 功能关联图的设计 245
10.3.3 架构与规划的区别 248
10.4 业务功能3——汇总 250
10.4.1 业务功能的最终确定 250
10.4.2 业务功能一览 250