不是三维―软件项目的设计、开发与管理
不是三维―软件项目的设计、开发与管理
基本信息
作者: 何小朝
出版社:电子工业出版社
ISBN:9787121104848
上架时间:2010-4-9
出版日期:2010 年4月
开本:16开
其他详细信息查看:http://www.china-pub.com/196625
内容简介
"本书从软件与三维实物的本质性不同出发研究软件生产方法论。今天,软件生产中许多传统问题并没有得到质的改善,以“爆炸”形容的技术发展的实质究竟是什么?先进管理模式下的管理现状如何?本书首先深入分析以上问题,指出软件的本质及其至今不能实现工业化生产的内在原因;接着,从软件设计,测试与管理三个方面,系统地介绍了作者多年实践中总结出来的有效实用方法;最后从软件本质出发,提出了全新的先进软件生产模式与方法——代码驱动生产(Code Driving Production),并指出这将是适合软件本质的新途径。
"本书适合于从事软件工程研究的科研人员、管理人员与设计人员阅读,也可作为高等学校与计算机相关专业师生的教学参考读物。
目录
第 1 章
困难与困惑
第一部分 现状与困惑
1.1 软件项目实施的困难 2
1.1.1 漫长的维护期 2
1.1.2 什么时候开始编码——生产过程控制 2
1.1.3 开发周期的精确估算 3
1.1.4 需求何时确定 4
1.1.5 令人头痛的边缘问题 4
1.1.6 鲁棒性 5
1.2 飞速发展?——困惑 6
第 2 章
技术方法的抉择——软件设计师的困惑
2.1 引言 . 8
2.2 软件设计师的理想 9
2.2.1 什么是软件设计师 10
2.2.2 技术人员的理想 12
2.3 似有曙光——方法论 13
2.3.1 技术进步带来希望 13
2.3.2 软件技术方法综述 .14
.2.4 现实 26
2.4.1 新技术手段的使用状况 27
2.4.2 困难没有得到本质解决 .33
2.4.3 许多人这样看 .34
2.4.4 痛一时,利一生 .35
2.5 疑惑——方法的抉择 36
2.6 方法到底解决了什么 38
2.6.1 通用函数库、类库与框架的复用 .39
2.6.2 分层体系使生产集中于应用本身 41
2.6.3 面向对象有机描述客观目标 .43
2.6.4 “平台无关”是以“时间换空间” .45
2.6.5 其他本质探讨 .46
2.7 常用有效技术方法简介 . 47
2.7.1 分析与设计的组织 .48
2.7.2 开发环境的选择 .49
2.7.3 编程 .53
2.7.4 文档的生成 .54
2.7.5 其他环节 .55
2.8 本章小结 56
第 3 章
如何有效地服务——技术管理者的烦恼
3.1 软件项目管理现状 57
3.1.1 管理过多依赖个人经验 .58
3.1.2 管理规则很不成熟 .59
3.1.3 管理组与开发组不协调 .60
3.1.4 无通用规则可循,各有特色 .61
3.1.5 新方法的现实情况 .61
3.2 软件项目管理的几个具体问题 62
3.2.1 文档的管理问题 .62
3.2.2 设计文档的作用到底是什么 .63
3.2.3 过程控制问题 .64
3.2.4 测试的问题 .66
3.2.5 需求制定的问题 .66
3.3 管理者的希望与困惑——CMM 67
3.3.1 CMM简介 .67
3.3.2 PSP/TSP .69
3.3.3 CMM应用现状 .70
3.3.4 CMM的困惑 .70
3.4 究竟怎么回事 .71
3.5 本章小结 72
第 4 章
理想与现实——科学与工程的碰撞
4.1 软件工程的理想——生产线与复用 75
4.2 工程实践——与理想模式的距离 .76
4.2.1 软件是数字化社会的主体 76
4.2.2 软件生产业的主体是
什么 76
4.2.3 软件生产工程实践现状 . 77
4.3 “飞速发展”的本质 .78
4.4 本章小结 79
第二部分 软件的本质
第 5 章
不是三维——软件的本质
5.1 三维空间——人类形象思维的局限 .80
5.2 传统产品简析 .81
5.2.1 传统产品——三维实体 . 81
5.2.2 传统产品的核心——设计输出 81
5.2.3 传统产品生产模式——生产线 82
5.3 软件产品简析 .82
5.3.1 软件是一种特殊的产品 . 82
5.3.2 二维可视化设计语言能力分析 83
5.3.3 软件无法完全可视化表达 85
5.3.4 软件产品的核心——代码 85
5.3.5 一个有趣的问题 86
5.4 软件的本质——不是三维 .87
5.5 本章小结 88
第 6 章
设计与开发
第三部分 软件生产方法论——实践与研究
6.1 引言 91
6.1.1 构件化生产与自动化的探讨 .92
6.1.2 实用技术方法涉及的内容 94
6.2 应用系统架构设计 95
6.2.1 什么是架构 95
6.2.2 几种常见架构模式 .96
6.2.3 实践中的系统架构设计 .107
6.3 系统分析与设计 .122
6.3.1 软件分析与设计的内容.122
6.3.2 系统整体结构的软件描述 123
6.3.3 整体代码框架搭建 .127
6.3.4 系统公共库设计 .128
6.3.5 接口设计 129
6.4 代码编制与调试 .131
6.4.1 程序结构搭建 131
6.4.2 多线程/多进程程序设计 .134
6.4.3 编辑 .138
6.4.4 编译 .140
6.4.5 调试 .142
6.4.6 类型安全 154
6.4.7 跨平台程序设计 .155
6.4.8 开源软件代码 158
6.5 面向对象——正确理解与使用 160
6.5.1 何时使用面向对象 .160
6.5.2 如何使用面向对象 .162
6.6 设计的结束与输出 169
6.6.1 实效的制度化,而非教条的制度化 169
6.6.2 强化设计结束准则 .169
6.6.3 设计阶段的输出文档 .170
6.7 本章小结 171
第 7 章
软件测试——质量保证的重要环节
7.1 测试技术综述 .172
7.1.1 测试的阶段 173
7.1.2 测试的种类 173
7.1.3 常用的测试工具 .173
7.1.4 测试步骤 175
7.2 软件测试中几个实用问题 .177
7.2.1 手工测试 177
7.2.2 自动化测试 180
7.2.3 测试用例的制定 .180
7.2.4 关于测试驱动开发 .182
7.2.5 测试时间估算 183
7.2.6 测试人员的素质 .184
7.3 对测试标准的探讨 186
7.3.1 软件bug的分布特征 .186
7.3.2 测试标准的制定原则 .187
7.3.3 测试人员的困惑——测试标准如何实施? 188
7.4 软件测试的本质探讨与工业化生产 189
7.5 本章小结 191
第 8 章
软件项目管理方法论
8.1 软件项目管理的产生 192
8.2 软件项目管理的作用与地位——为研发服务 193
8.3 软件项目管理的内容 194
8.4 软件项目管理的实用方法 .194
8.4.1 软件规模划分 195
8.4.2 软件类型划分 198
8.4.3 软件项目实施的阶段划分 .198
8.4.4 软件项目的最初需求确定 .200
8.4.5 软件项目实施的资源确定 .201
8.4.6 软件生产过程 202
8.4.7 软件生产过程控制 .208
8.4.8 设计与编程的分界点 .209
8.4.9 测试与研发的交流 .213
8.4.10 文档的生成与管理 .214
8.4.11 用软件进行软件项目管理 .215
8.5 软件生产过程中的实用工具 .215
8.5.1 软件配置管理系统 .216
8.5.2 软件缺陷追踪系统 .216
8.6 国外软件项目管理简析 .219
8.6.1 欧美国家软件项目管理模式 .219
8.6.2 最为特色的模式——日本软件项目管理 222
8.7 本章小结 223
第 9 章
用软件管理软件
9.1 引言 .224
9.2 管理系统功能分析 225
9.2.1 问题的提出 225
9.2.2 CMM规范 226
9.2.3 策略 .226
9.2.4 实现管理的要素 .227
9.2.5 关键方法 227
9.3 实用系统设计 .229
9.3.1 系统组成与总体构架 .229
9.3.2 软件开发的计划与进度管理 .231
9.3.3 评分系统 231
9.3.4 界面示例 231
9.4 管理系统再分析 .232
第 10 章
新一代软件生产方法论探索——代码驱动生产
10.1 原则与依据.236
10.1.1 以质为本,以实践为依据 .236
10.1.2 不能以类推法制定软件生产理论框架 236
10.1.3 软件生产方法论应包括现有成果 237
10.2 软件生产技术回顾 237
10.2.1 概述.237
10.2.2 传统软件工业化生产技术分析 239
10.3 先进软件生产方法分析 .246
10.3.1 设计思维过程分析 .246
10.3.2 先进软件生产方法应有的特征 248
10.4 代码驱动生产的定义与内容 .250
10.4.1 软件“工业化”生产的新含义 .251
10.4.2 代码驱动生产的要素 .251
10.4.3 代码驱动生产的组成内容 255
10.5 软件生产模型——代码为核心的星形模型 .256
10.5.1 传统软件生产顺序模型 .256
10.5.2 以代码为核心的星形模型 .257
10.6 代码驱动生产运行机制(CodeDriving Prodution) .260
10.6.1 代码驱动生产运行机制综述 260
10.6.2 代码驱动需求分析 .261
10.6.3 代码驱动设计开发 .263
10.6.4 代码驱动测试271
10.7 软件过程——“代码框架”上的并行协作 275
10.7.1 软件过程的两个要素 .275
10.7.2 软件生产平台——“代码框架” 275
10.7.3 并行协作的软件过程 .276
10.7.4 生产过程迭代再探 .281
10.7.5 代码核心与文档弱化 .282
10.8 其他讨论 283
10.9 本章小结 284
后记 285
参考文献 .289