读书人

新一代软件工程体系与实践:基于现代系

发布时间: 2010-02-01 12:48:27 作者:

 新一代软件工程体系与实践:基于现代系统科学与复杂性科学的非线性整体软件工程体系及其应用


基本信息出版社:清华大学出版社
页码:418 页
出版日期:2008年12月
ISBN:7302180083/9787302180081
条形码:9787302180081
版本:第1版
装帧:平装
开本:16
正文语种:中文
丛书名:中国软件行业协会培训中心指定软件质量培训教材

内容简介 《新一代软件工程体系与实践:基于现代系统科学与复杂性科学的非线性整体软件工程体系及其应用》从分析软件界长期以来一直存在的效率低、成本高、质量差和风险大问题人手,指出以线性思维方式和简单性科学方法来处理复杂的软件系统和软件工程体系是造成这些问题的根源。然后,详细介绍了著者所创立并指导软件开发团队实现了产品化的新一代软件工程体系——非线性整体软件工程(Nonlinear Software Engineering,NSE)体系及其产品化应用。这一新体系的创立基础是非线性思维和系统科学与复杂性科学。NSE体系遵从系统科学与复杂性科学的一系列基本原则,特别是其整体性原则,即一切都从整体、全局出发。
NSE体系浓缩了著者几十年在美国创业和以外国专家身份来华工作所取得的一系列研究成果,包括处理多重复合复杂系统的五维结构综合法、非线性双向多轨并行实时迭代软件工程过程模型、缺陷预防与可追溯性驱动软件开发方法、“以防为主”的软件质量保证体系、用于实现软件开发全过程可视化的交互式可追溯3J图式、可动态应用于软件开发全过程的“透明盒测试法”,以及基于一系列双向自动可追溯性技术的系统化与量化软件维护体系。实践应用表明,NSE体系能有效处理软件的复杂性、可变性、一致性与不可见性,实现多、快、好、省的软件开发与维护。
《新一代软件工程体系与实践:基于现代系统科学与复杂性科学的非线性整体软件工程体系及其应用》既可供软件企业和研究单位专业人员参考,也可供科研、教学和获得相应授权的培训机构使用。
作者简介 熊继光,美籍华裔软件工程专家,发表过数十篇相关论文,担任过中国科学院和美国国家科学基金会共同签署的一项合作研究项目的首席科学家,在美国硅谷先后创建了“先进软件自动化公司”和“国际软件自动化公司”,指导团队成功开发了基于他的一系列发明创造的大型软件工具系统Hindsight(“后景”)和Panorama(“全景”)等。前者曾被Sun公司选为除操作系统之外的通用软件产品测试平台,后者被《软件工程实践者的研究方法》一书的作者Pressman教授赞为“提供了面向对象软件开发的完整工具集”。本书浓缩了作者在软件工程自动化与智能化技术研究方面所取得的一系列原创性重要成果,以及几十年软件产品成功开发的实践经验。
编辑推荐 《新一代软件工程体系与实践:基于现代系统科学与复杂性科学的非线性整体软件工程体系及其应用》是美籍华裔软件工程专家熊继光先生倾力奉献,清华大学郑人杰教授作序并推荐,在金融风暴中帮助您全方位提升软件产品和个人求职的竞争力!《新一代软件工程体系与实践:基于现代系统科学与复杂性科学的非线性整体软件工程体系及其应用》介绍软件工程的新思维方式与新科学方法和新一代工程体系——不是空谈理论,而是全都落到实处,实现了产品化和实用化
涵盖新的过程模型、开发方法、图式、技术、工具、平台与“以防为主”的质量保证体系。
不仅给出各个方面的新功能与特点描述,而且给出其程序实现的算法原理与主要步骤。
易理解(图文并茂)、学习(附体验版光盘)与应用(高兼容性+傻瓜式工具,可随时切入)。
多、快、好、省软件开发指南与利器,对付软件人狼(落后进度、超出预算、存在大量缺陷)的银弹。
目录
彩图
序言
前言
第1章 引论
1.1 软件工程概述
1.2 传统软件工程体系是线性思维产物
1.3 传统软件工程体系的缺点
1.4 NSE体系的产生
1.5 NSE体系及其支撑平台

第2章 传统软件工程体系的过程模型
2.1 软件工程过程模型的概念
2.2 瀑布模型
2.3 增量迭代模型
2.4 演化模型
2.5 过程模型
2.5.1 Rational统一过程
2.5.2 规范开发
2.5.3 敏捷开发
2.6 平衡敏捷与规范
2.7 提倡超越敏捷与规范及其平衡
2.7.1 部分专家的评论
2.7.2 软件工程存在更本质的问题
2.7.3 期待“破冰之旅”

第3章 传统软件工程体系存在的主要问题及其根源
3.1 颠倒了人与过程的主次关系
3.2 放任软件缺陷的引入
3.3 放任软件缺陷的传播
3.4 盲目进行软件的修改维护
3.5 分不清主要矛盾与次要矛盾
3.6 应用效果
3.7 根源——基于线性思维和简单性科学

第4章 NSE体系的理论基础与创立工作框架
4.1 基本概念
4.2 非线性思维与现代系统科学
4.2.1 非线性现象的发现
4.2.2 系统科学及其应用所要遵从的基本原则
4.2.3 实现从线性思维到非线性系统思维的转变
4.3 复杂系统与复杂性科学
4.3.1 复杂系统
4.3.2 复杂性科学
4.4 五维结构综合法
4.4.1 预言:新一轮更深刻、更广泛的产业革命的来临
4.4.2 五维结构综合法的创立背景
4.4.3 五维结构综合法的创立目的
4.4.4 五维结构综合法的内涵
4.4.5 五维结构综合法的特点
4.4.6 五维结构综合法的应用实例

第5章 非线性整体软件工程体系概述
5.1 NSE体系的概念
5.2 NSE体系的创立目的
5.3 NSE体系的技术路线
5.4 :NSE体系的构成
5.5 :NSE体系的主要特点

第6章 非线性整体软件工程体系的过程模型
6.1 专家对线性模型的评论和对非线性模型的期待
6.2 NSE模型的图形化描述
6.3 NSE模型的预处理过程步骤
6.4 NSE模型的主过程处理步骤
6.5 NSE模型的特点
6.6 非线性系统思维原则和复杂性科学原则的体现
6.6.1 非线性系统思维原则在NSE模型中的具体体现
6.6.2 扩展原则在NSE模型及NSE体系中的体现

第7章 双向多级自动追溯机制
7.1 白盒结构测试覆盖率分析的实现原理
7.2 一个小程序的白盒结构测试分析
7.3 时间标签的自动设置与使用
7.4 正向自动追溯
7.5 逆向自动追溯
7.6 软件开发各阶段所有相关制品间的双向自动追溯
7.7 方案特点

第8章 非线性整体软件工程体系的开发方法
8.1 概述
8.2 非线性系统思维与复杂性科学原则的体现
8.3 企业级多项目并行开发支撑
8.4 在软件开发与维护各阶段的应用要点
8.5 NSE软件开发方法的特点

第9章 非线性整体软件工程体系的支撑图式
9.1 3J图式的概念
9.2 3J图式的特点
9.3 J-Chart
9.4 J-Diagram
9.5 J-Flow

第10章 软件测试的基础知识
10.1 软件测试的目的
10.2 量化软件测评
10.3 黑盒功能测试方法
10.4 白盒结构测试方法
10.5 性能测试
10.6 其他非功能性测试
10.7 单元测试、集成测试与系统测试
10.8 回归测试
10.9 验收测试
10.10 软件测试脚本
10.11 面向对象的软件测试
10.12 Web应用软件测试
10.13 测试计划与测试文档
10.14 使用专业软件测试工具的必要性

第11章 软件测试用例设计
11.1 软件测试用例设计基础
11.2 最小等效测试用例集的自动生成
11.3 高效率测试用例的半自动设计

第12章 深度与广度软件测试
12.1 集成化单元测试
12.2 功能测试过程操作的自动捕获与选择性回放
12.3 MC/DC测试覆盖率分析
12.4 性能测试分析
12.5 内存泄漏与违规使用分析
12.6 动态运行错误分类与定位和执行路径追溯
12.7 面向对象程序的头文件与类的测试覆盖率分析
12.8 嵌入式软件测试支撑

第13章 透明盒测试法及其应用
13.1 传统的软件测试方法所存在的主要问题
13.2 新的解决方案——透明盒测试法
13.3 透明盒测试法的测试用例描述
13.4 实例
13.5 透明盒测试法在软件开发全生命周期中的应用
13.6 透明盒测试法与黑盒测试法的主要区别

第14章 非线性整体软件工程的质量保证体系
14.1 软件缺陷产生的主动预防
14.1.1 需求开发阶段的缺陷预防
14.1.2 软件设计阶段的缺陷预防
14.1.3 软件编码阶段的缺陷预防
14.1.4 软件维护阶段的缺陷预防
14.2 软件缺陷传播的主动预防
14.2.1 独立于编程风格的图形化源码阅读查错
14.2.2 基于逻辑图与控制流程图的逻辑查错
14.2.3 半自动软件评审与走查支撑
14.3 基于复杂性分析和性能分析的软件模块重构
14.4 深度与广度软件测试
14.5 软件质量的量化度量
14.6 NsE质量保证体系的综合应用效果估算
14.6.1 定性分析
14.6.2 定量分析

第15章 非线性整体软件工程的系统化与量化软件维护体系
15.1 非线性整体软件工程体系的维护过程模型
第16章 非线性整体软件工程的“活文档”体系
第17章 非线性整体软件工程体系的支撑技术
第18章 非线性整体软件工程的项目计划与管理
第19章 非线性整体软件工程体系的支撑工具与支撑平台
第20章 非线性整体软件工程体系的应用
第21章 两颗不同类型的候选“银弹”
附录A 需求规格说明书模板源码
附录B 在增量式单元测试中自动设置被调用的单元的返回值方法
附录C 实现100%MC/DC(修改条件/判断覆盖)测试覆盖率分析实例
参考文献
……
序言 自从20世纪60年代计算机软件进入产业界以来,人们一直在寻找成功开发软件的途径。这是因为,按照传统的开发模型,在实践中遇到的失败和教训太多了,付出的代价以及给人们的压力太大了,以致将这一现象用“危机”一语加以概括,力图引起足够的重视。此后,在试图突破“危机”的多种尝试和努力中,令人欣慰的是,20年前产业界与学术界在“从软件过程人手”方面已取得了共识。以Watts S.Humphrey为首的美国卡内基梅隆大学软件工程研究所的研究人员在1986年推出了CMM模型(能力成熟度模型)。这一模型及其后继CMMI(能力成熟度模型集成)的广泛实施对软件界产生了巨大的影响。虽然这两个模型并不是标准,却也获得了“事实上的标准”的赞誉。当前遵循CMM/CMMI的软件过程改进,已成为十分热门的话题。
然而人们必须注意到的事实是,在CMM和CMMI中,要求软件项目人员必须认定或是明确自己所采用的软件生存期模型(Project Life Cycle Model)。例如,确定是瀑布模型、增量模型,还是螺旋模型。也就是说,遵循CMM/CMMI所开展的软件过程改进,是在软件工程过程模型既定的条件下进行的。随之产生的问题是,难道既定的软件生存期模型是完美无缺的吗?如果答案是否定的,那么又为什么要把生存期模型的问题排除在软件过程改进的范围之外呢?究竟是有意回避还是无意的疏忽呢?也许两者兼而有之。不管属于哪种情况,毕竟客观上在人们头脑里已形成了一种误解,以为在这一限定下进行过程改进,才是过程改进的全部。似乎传统的软件工程过程模型是不容置疑的。正因如此,针对软件工程过程模型的软件过程改进,很少有人涉及。其实这才是更有意义的软件过程改进。
本书作者提出的非线性软件工程过程模型以及基于这一模型的新一代软件工程体系,正是针对传统线性软件工程过程模型和体系所存在的问题而开发的,它是对传统软件工程过程模型和体系的挑战。该模型体现了非线性、增量式、双向、多轨、并行、实时迭代的软件工程模式。它将在软件工程的效率、成本、质量等多方面显示出优越性。更为重要的是,作者不仅给出了革新模型的概念和方法论,现已将此模型发展成为支持软件开发和维护的整个新的软件工程体系和工具系统,从而为用户提供了实现该模型和应用该工程体系的有力手段。此外,该工具系统及其使用界面在交互性、反应速度、图形化、直观性及自动化等方面均具有明显的优点。
本书凝聚了作者多年来辛勤研究工作和大量实践的成果。读者在阅读本书的基础上,试用随书提供(含于本书所附光盘)的“Panorama++/艾赛银弹”软件开发与测试和维护平台,不仅会使自己的软件工程项目获益,而且还将在此过程中加深对其相关概念的理解,同时受到启发,走上创新的道路。
文摘 第1章 引论
1.1 软件工程概述
“软件工程”这个概念,自从1968年由北大西洋公约组织的科学委员会提出以来,至今已经经历了40个年头。相应地,通过国际软件界几十年来的共同努力,不仅在软件工程的理论研究方面,而且在软件工程的应用方面,都已经取得了长足的进步。这体现在多种过程模型、开发方法、质量保证体系、项目管理规范、支撑技术、支撑工具和支撑环境的提出与实用化。其中较为重大的进步是面向对象的软件开发方法与基于构件的软件开发方法的提出与实用化。
软件工程有多种大同小异的定义。其中广为大家所接受的是IEEE Standard Computer Dictionary,610、ISBN l一55937—079—3和1990〔IEE 90〕的如下定义:
“将系统化、规范化和量化的方法应用于软件的开发、操作和维护”。这与国标GB/T11457—2006的定义非常类似。后者翘;
“应用计算机科学理论和技术以及工程管理原则和方法,按预算和进度,实现满足用户要求的软件产品的定义、开发、发布和维护的工程或进行研究的学科”。
关于软件工程的基本概念和具体的活动内容,包括需求开发、设计、编码、测试、维护以及标准化和文档化等方面详细的内容,可参考清华大学出版社出版的《实用软件工程》第三版。
现在,软件的重要性比过去任何时候都更为人们所深刻认识。正如Pressman和Herron所指出的,“计算机软件是对现代社会的、几乎所有方面均具有重要影响的、为数不多的技术之一。它是使商业、产业和政府实现自动化的机制,是传递新技术的媒介”。 
手机,就是软件宣传其重要性的最好“广告”。于是,软件产业本身,也已经发展成为国际最庞大的产业之一,达到每年近万亿美元的规模。软件的使用使得其他行业的许许多多过程实现了自动化、半自动化。例如,汽车装配线、无人驾驶飞机等。
然而,与之极不相称的是,软件产业本身却是自动化程度最差的产业之一,至今还没有完全摆脱手工作坊式的生产方式。
读书人网 >软件工程

热点推荐