第一部分 哲 理 3
第1章 大型应用软件架构与软件开发的认知体系 3
1.1 面向过程思想的认知观 3
1.1.1 结构程序设计方法与软件工程 3
1.1.2 对SASD方法的责难 5
1.2 面向对象思想的认知观 6
1.2.1 面向对象方法与技术 6
1.2.2 对面向对象思想的责难 7
1.3 面向构件思想的认知观 7
1.4 从认知观的变迁看新时期的认知观 8
1.4.1 “否定之否定”的认知过程 8
1.4.2 一种新生产工具的出现可能构成一个新里程碑 9
1.4.3 对软件架构技术的进一步认知 9
第2章 软件架构与软件开发基础 12
2.1 软件架构的基本概念 14
2.2 基于构架/构件的开发模型的各阶段 16
2.3 软件体系结构的作用和意义 17
2.3.1 开发软件各阶段的体系结构 17
2.3.2 软件体系结构的实例 18
2.4 软件体系结构风格 23
2.5 基于工作流的软件体系结构设计实例 25
2.5.1 ARIS角色法需求建模 25
2.5.2 事务处理参考模型 25
2.5.3 几种常见的体系结构 26
第二部分 原 理 31
第3章 面向过程的结构化软件架构与开发模型 31
3.1 结构程序设计的由来 31
3.2 结构程序设计的定义 32
3.3 自顶向下逐步求精的示例 33
3.4 结构程序设计中的基本控制结构和数据结构 37
3.4.1 基本控制结构 37
3.4.2 基本数据结构 38
3.5 逐步求精的程序设计方法 40
3.6 从结构程序设计发展到程序设计方法学 41
3.7 操作系统架构设计实例 41
3.7.1 分层的虚拟机架构 42
3.7.2 进程概念 43
3.7.3 模块程序 44
3.7.4 各层之间的接口软件 45
第4章 面向构件的阶段化软件架构与开发模型 46
4.1 提倡软件复用的原因 46
4.2 软件复用的概念 46
4.3 软件复用的历史 47
4.4 软件复用的形式 49
4.5 软件构件的定义和技术 51
4.5.1 构件模型 52
4.5.2 构件的获取 53
4.5.3 构件的表示和检索 53
4.5.4 构件组装 54
4.6 构件分类 54
4.7 基于构件和架构技术的软件生产线 57
4.7.1 三阶段开发模型的特点 59
4.7.2 非技术因素 59
4.8 世界顶级软件公司的软件产品开发模型 59
4.8.1 产品的生命周期 60
4.8.2 多部门合作的模式 61
4.8.3 项目管理系统 61
4.9 二进制代码构件的组装 62
4.10 平台 63
4.10.1 操作系统平台 64
4.10.2 基础层通用平台 64
4.10.3 业务层专用平台 65
4.10.4 展现层界面平台 66
4.11 构件的分类与构件之间的关系 66
4.12 财政信息管理系统实例 67
第5章 面向服务的分布式软件架构与开发模型 68
5.1 分层体系结构 68
5.1.1 二层结构的缺点 68
5.1.2 三层结构的兴起 69
5.1.3 三层C/S的基本结构 69
5.2 中间件 70
5.2.1 三层结构产生的新问题 70
5.2.2 中间件的发展历史 71
5.2.3 中间件的定义 72
5.2.4 中间件的作用 73
5.2.5 中间件的分类 74
5.3 中间件模型和形态 78
5.4 国内外中间件发展情况 79
第三部分 方法、技术和工具 83
第6章 需求工程 83
6.1 引言 83
6.2 需求工程要解决的问题 84
6.3 客观系统需求功能的描述 85
6.4 需求工程的两种典型方法 86
6.5 形成应用软件客观系统模型的需求工程 87
6.6 ARIS需求建模方法 89
6.7 应用软件功能需求的获取方法 92
6.8 美国软件公司的需求工程方法 93
第7章 领域工程 95
7.1 领域工程的定义 95
7.1.1 领域工程的概念 96
7.1.2 领域工程的任务与步骤 97
7.1.3 企业信息系统的三种数据环境 98
7.1.4 企业信息系统的三种基本职能 99
7.2 主题文档的概念 100
7.2.1 主题数据库 100
7.2.2 主题文档库 101
7.2.3 主题文档分类 102
7.3 文档构件系统的优点 102
7.4 领域构件对象的识别 103
7.5 基于主题文档的领域分析 106
7.6 主题文档的提取 107
7.6.1 主题文档库的设计原则 107
7.6.2 主题文档库规划的基本步骤 107
7.7 SDBDA方法示例 110
7.7.1 领域总体描述 110
7.7.2 业务描述 111
7.8 领域构件类的提取途径 112
第8章 UML建模 114
8.1 建模的原因 114
8.2 UML的形成过程与特点 115
8.3 UML的内容 116
8.4 模型与UML 118
8.5 UML的意义与影响 119
8.6 采用用例图实现需求工程 119
8.7 UML的图形表示方法 121
8.7.1 类图 121
8.7.2 序列图 122
8.7.3 状态图 124
8.7.4 活动图 124
8.7.5 组件图 125
8.7.6 部署图 126
第四部分 SOA与软件开发方法 131
第9章 SOA与软件开发方法 131
9.1 引言 131
9.1.1 三层体系结构的缺陷 131
9.1.2 创新软件技术 131
9.1.3 面向服务的架构 132
9.2 面向服务的计算环境及其演化 132
9.2.1 计算环境的概念 132
9.2.2 计算环境的演变历程 132
9.2.3 SOA计算环境 134
9.2.4 用BPEL语言描述业务流程 135
9.2.5 企业服务总线 136
9.3 面向服务在我国的发展过程 136
9.3.1 服务的概念 137
9.3.2 BPEL4WS的概念 138
9.3.3 BPEL的基本特性 138
9.4 SOA的基本概念 139
9.4.1 SOA的架构风格 139
9.4.2 SOA的业务驱动方式 139
9.4.3 产生SOA的条件与基础 140
9.4.4 SOA的定义 140
9.4.5 SOA的特性 140
9.4.6 澄清几个易混淆的概念 141
9.5 SOA方法学 141
9.5.1 SOA的重要特性 141
9.5.2 一套完整的开发方法学 143
9.5.3 SOA分析和设计的任务与方法 143
9.5.4 采用企业服务总线集成系统 144
参考文献 145