新一代软件工程体系与实践——基于现代系统科学与复杂性科学的非线性整体软件工程体系
![新一代软件工程体系与实践——基于现代系统科学与复杂性科学的非线性整体软件工程体系](http://image.wangchao.net.cn/small/product/1236730450501.jpg)
分类: 图书,计算机/网络,软件工程/开发项目管理,
作者: 熊继光著
出 版 社: 清华大学出版社
出版时间: 2008-12-1字数: 695000版次: 1页数: 418印刷时间: 2008/12/01开本: 16开印次: 1纸张: 胶版纸I S B N : 9787302180081包装: 平装编辑推荐
美籍华裔软件工程专家熊继光先生倾力奉献,清华大学郑人杰教授作序并推荐,在金融风暴中帮助您全方位提升软件产品和个人求职的竞争力!
——本书介绍软件工程的新思维方式与新科学方法和新一代工程体系
——不是空谈理论,而是全都落到实处,实现了产品化和实用化
——涵盖新的过程模型、开发方法、图式、技术、工具、平台与“以防为主”的质量保证体系
——不仅给出各个方面的新功能与特点描述,而且给出其程序实现的算法原理与主要步骤
——易理解(图文并茂)、学习(附体验版光盘)与应用(高兼容性+傻瓜式工具,可随时切入)
——多、快、好、省软件开发指南与利器,对付软件人狼(落后进度、超出预算、存在大量缺陷)的银弹
内容简介
本书从分析软件界长期以来一直存在的效率低、成本高、质量差和风险大问题人手,指出以线性思维方式和简单性科学方法来处理复杂的软件系统和软件工程体系是造成这些问题的根源。然后,详细介绍了著者所创立并指导软件开发团队实现了产品化的新一代软件工程体系——非线性整体软件工程(Nonlinear Software Engineering,NSE)体系及其产品化应用。这一新体系的创立基础是非线性思维和系统科学与复杂性科学。NSE体系遵从系统科学与复杂性科学的一系列基本原则,特别是其整体性原则,即一切都从整体、全局出发。
NSE体系浓缩了著者几十年在美国创业和以外国专家身份来华工作所取得的一系列研究成果,包括处理多重复合复杂系统的五维结构综合法、非线性双向多轨并行实时迭代软件工程过程模型、缺陷预防与可追溯性驱动软件开发方法、“以防为主”的软件质量保证体系、用于实现软件开发全过程可视化的交互式可追溯3J图式、可动态应用于软件开发全过程的“透明盒测试法”,以及基于一系列双向自动可追溯性技术的系统化与量化软件维护体系。实践应用表明,NSE体系能有效处理软件的复杂性、可变性、一致性与不可见性,实现多、快、好、省的软件开发与维护。
本书既可供软件企业和研究单位专业人员参考,也可供科研、教学和获得相应授权的培训机构使用。
作者简介
熊继光,美籍华裔软件工程专家,发表过数十篇相关论文,担任过中国科学院和美国国家科学基金会共同签署的一项合作研究项目的首席科学家,在美国硅谷先后创建了“先进软件自动化公司”和“国际软件自动化公司”,指导团队成功开发了基于他的一系列发明创造的大型软件工具系统Hindsight(“后景”)和Panorama(“全景”)等。前者曾被Sun公司选为除操作系统之外的通用软件产品测试平台,后者被《软件工程实践者的研究方法》一书的作者Pressman教授赞为“提供了面向对象软件开发的完整工具集”。本书浓缩了作者在软件工程自动化与智能化技术研究方面所取得的一系列原创性重要成果,以及几十年软件产品成功开发的实践经验。
目录
彩图
序言
前言
第1章引论
第2章传统软件工程体系的过程模型
第3章传统软件工程体系存在的主要问题及其根源
第4章NSE体系的理论基础与创立工作框架
第5章非线性整体软件工程体系概述
第6章非线性整体软件工程体系的过程模型
第7章双向多级自动追溯体制
第8章非线性整体软件工程体系的开发方法
第9章非线性整体软件工程体系的支撑图式
第10章软件测试的基础知识
第11章软件测试用例设计
第12章深度与广度软件测试
第13章透明盒测试法及其应用
第14章非线性整体软件工程的质量保证体系
第15章非线性整体软件工程的系统化
第16章非线性整体软件工程的“活文档”体系
第17章非线性整体软件工程体系的支撑技术
第18章非线性整体软件工程的项目计划与管理
第19章非线性整体软件工程体系的支撑工具与支撑平台
第20章非线性整体软件工程体系的应用
第21章两颗不同类型的候选“银弹”
附录A需求规格说明书模板源码
附录B在增量式单元测试中自动设置被调用的单元的返回值方法
附录C实现100%MC/DC(修改条件/判断覆盖)测试覆盖率分析实例
参考文献
书摘插图
第1章引论
1.1软件工程概述
“软件工程”这个概念,自从1968年由北大西洋公约组织的科学委员会提出以来,至今已经经历了40个年头。相应地,通过国际软件界几十年来的共同努力,不仅在软件工程的理论研究方面,而且在软件工程的应用方面,都已经取得了长足的进步。这体现在多种过程模型、开发方法、质量保证体系、项目管理规范、支撑技术、支撑工具和支撑环境的提出与实用化。其中较为重大的进步是面向对象的软件开发方法与基于构件的软件开发方法的提出与实用化。
软件工程有多种大同小异的定义。其中广为大家所接受的是IEEE Standard Computer Dictionary,610、ISBN l一55937—079—3和1990〔IEE 90〕的如下定义:
“将系统化、规范化和量化的方法应用于软件的开发、操作和维护”。这与国标GB/T11457—2006的定义非常类似。后者翘;
“应用计算机科学理论和技术以及工程管理原则和方法,按预算和进度,实现满足用户要求的软件产品的定义、开发、发布和维护的工程或进行研究的学科”。
关于软件工程的基本概念和具体的活动内容,包括需求开发、设计、编码、测试、维护以及标准化和文档化等方面详细的内容,可参考清华大学出版社出版的《实用软件工程》第三版。
现在,软件的重要性比过去任何时候都更为人们所深刻认识。正如Pressman和Herron所指出的,“计算机软件是对现代社会的、几乎所有方面均具有重要影响的、为数不多的技术之一。它是使商业、产业和政府实现自动化的机制,是传递新技术的媒介”。
手机,就是软件宣传其重要性的最好“广告”。于是,软件产业本身,也已经发展成为国际最庞大的产业之一,达到每年近万亿美元的规模。软件的使用使得其他行业的许许多多过程实现了自动化、半自动化。例如,汽车装配线、无人驾驶飞机等。
然而,与之极不相称的是,软件产业本身却是自动化程度最差的产业之一,至今还没有完全摆脱手工作坊式的生产方式。
……