新一代软件工程体系与实践
2008-12
清华大学出版社
熊继光
418
无
《新一代软件工程体系与实践:基于现代系统科学与复杂性科学的非线性整体软件工程体系及其应用(配光盘)》从分析软件界长期以来一直存在的效率低、成本高、质量差和风险大问题人手,指出以线性思维方式和简单性科学方法来处理复杂的软件系统和软件工程体系是造成这些问题的根源。然后,详细介绍了著者所创立并指导软件开发团队实现了产品化的新一代软件工程体系——非线性整体软件工程(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所指出的,“计算机软件是对现代社会的、几乎所有方面均具有重要影响的、为数不多的技术之一。它是使商业、产业和政府实现自动化的机制,是传递新技术的媒介”。 手机,就是软件宣传其重要性的最好“广告”。于是,软件产业本身,也已经发展成为国际最庞大的产业之一,达到每年近万亿美元的规模。软件的使用使得其他行业的许许多多过程实现了自动化、半自动化。例如,汽车装配线、无人驾驶飞机等。 然而,与之极不相称的是,软件产业本身却是自动化程度最差的产业之一,至今还没有完全摆脱手工作坊式的生产方式。
美籍华裔软件工程专家熊继光先生倾力奉献,清华大学郑人杰教授作序并推荐,在金融风暴中帮助您全方位提升软件产品和个人求职的竞争力! ——《新一代软件工程体系与实践:基于现代系统科学与复杂性科学的非线性整体软件工程体系及其应用(配光盘)》介绍软件工程的新思维方式与新科学方法和新一代工程体系 ——不是空谈理论,而是全都落到实处,实现了产品化和实用化 ——涵盖新的过程模型、开发方法、图式、技术、工具、平台与“以防为主”的质量保证体系 ——不仅给出各个方面的新功能与特点描述,而且给出其程序实现的算法原理与主要步骤 ——易理解(图文并茂)、学习(附体验版光盘)与应用(高兼容性+傻瓜式工具,可随时切入) ——多、快、好、省软件开发指南与利器,对付软件人狼(落后进度、超出预算、存在大量缺陷)的银弹
无
软件工程这行业似乎有这样习惯,几乎每次一种新的方法出来,总是被吹为银弹,然后过几年就不了了之了.于是,就现在来说,银弹基本上是一个贬义词.这本书的作者居然又自称自己找到了银弹,哎,结果为了批判一下这本书,我不得不忍着恶心把它看完了.
现在出版业有这样一种不好的风气,技术类书,很多时候喜欢利用一些标新立异的词语,一些看不懂的词语,或者是宣称在段时间内对读者有极大的帮助.这些方法基本上都已经被证明是扯淡了.本书一出场,打着新一代软件工程的旗号,这本身没错,但是为什么偏偏拉上"复杂性""非线性""整体"等词,体现自己这本书很前沿吗?
本书提供的主过程模型,看起来就很乱七八糟,看明白了也就那么一回事.无非是分两大块,前期利用一些手段实现对需求从非形式化向形式化的转化,然后在第二块,依据传统5部依次向下,中间如果出现了问题,就向上回述.这过程模型很新吗?无非就是把传统模型细化了一下而已.复杂性,非线性体现在哪里?
再继续看下去,前5章就是废话,拉出大把的系统科学,复杂理论的东西来糊弄人,把我们看书的当乡下人吗?就算我们是乡下人也行,不过本书大谈了这么多复杂系统的理论,居然连一个软件过程复杂系统的模型都没建出来,全部空口大谈自己理论的好处,你糊弄谁啊.
再往后面看下去,几乎全是自动化测试的内容.难道软件工程就只是测试工程吗?我承认那些自动化测试,错误查找,相关管理的功能是不错,但是软件工程并不仅仅只包含这些,软件工程包含了一整套从用户开始的理论体系,只说这些是不够的.
最后,跑去查了一下"熊继光"的历史,原来这家伙是做自动化出身的,他的所有产品都和自动化相关.而软件工程方面的自动化产品,绝大多数都是处于过程的后端.这也难怪他的这本书全都在描述那个小范围了.不过你这家伙不懂软件工程,你乱出书干什么啊,这不是误人子弟吗.
清华大学出版社,又一次让我失望了.
一看书名就晕了...
作为本书的作者,我邀请你访问下列网页,以便充实你的“评论”的内容:http://www.world-academy-of-science.org/worldcomp09/ws/tutorials/tutorial_xiong,
那是我应WORLDCOMP'09(今年7月在美国拉斯维加斯召开的计算机科学、工程与应用超级国际会议 - 由22个相关国际会议同时同地联合举行)组委会的邀请所作的3小时辅导讲演的内容介绍,题目为:“A Complete Revolution in Software Engineering Based on Complexity Science ”,即“基于复杂性科学的、完整的软件工程革命”。说的,正是本书的概要。
猪君:
我是本书的作者。我认为,书评必须严肃、认真、诚恳、言之有理,任何论点都有论据支持,而不是信口雌黄,不懂装懂,以小人之心度君子之腹,把自己的观点强加于人,把牢骚发在别人身上,败坏整个学风。
你说什么 “本书一出场,打着新一代软件工程的旗号,这本身没错,但是为什么偏偏拉上"复杂性""非线性""整体"等词,体现自己这本书很前沿吗? ” - 这说明你对复杂性科学这一继相对论和量子力学之后最伟大的科研成果一无所知!“21世纪是复杂性世纪”(霍金)。复杂性科学不仅是21世纪学科的前沿,而且是科学的前沿,是现代科学、工程与商业发展的驱动力量。非线性与整体性,是复杂性科学的一系列基本原则中两个重要原则:复杂系统都是非线性的,因为它存在于动态的环境中,会与所处环境发生信息、能量与质量的交换,初始条件的小小变化,最终可能引发整个系统的巨变 – “蝴蝶效益”,系统整体大于其局部之和 – 整体的行为与特性是其组成部分相互作用而涌现出来的、是其各局部所不具有的,因此,要解决复杂系统的问题,必须从整体、全局出发。传统的软件工程体系存在着一系列严重的缺陷,效率低、成本高、质量差、风险大,50多年来一直困扰了国际整个软件界,始终得不到解决,至今软件项目的成品率才只有40%左右。究其原因,就在于它是线性思维和还原论(认为系统整体等于其局部之和,所以几乎一切都从局部出发)的产物,采用线性过程模型(瀑布模型或者单向增量迭代模型)!“非线性整体软件工程体系”(NSE),正是以复杂性科学为利器,对现有的软件工程体系进行了全方位的改造 – 它已经远远超出了是不是 “银弹”的问题,而是一场完整的(包括软件工程的过程模型、开发方法、测试体系、质量保证体系、可视化体系、维护体系、文档体系、管理体系等方方面面)的软件工程革命!这一观点已经得到了WORLCOMP’09计算机科学、工程与应用超级国际会议(由22个相关国际会议同时同地在美国拉斯维加斯联合举行)组委会许多专家教授的认同,并邀请我为此大会作了题为“基于复杂性科学的、完整的软件工程革命”的、长达3小时的辅导讲演。当然,任何领域的新体系诞生后,都要经历与原有旧体系的长期竞争,并取得胜利,才会最终为整个业界所接受。
你还说什么“最后,跑去查了一下"熊继光"的历史,原来这家伙是做自动化出身的,他的所有产品都和自动化相关.而软件工程方面的自动化产品,绝大多数都是处于过程的后端.这也难怪他的这本书全都在描述那个小范围了.不过你这家伙不懂软件工程,你乱出书干什么啊,这不是误人子弟吗. ” - 猪君,你无知本亦无过,何以说话如此缺德损人?
补充一点:我在书中曾经作出预言: 新一轮更深刻更广泛的产业革命的来临, 指出复杂性科学将是这新一轮更深刻更广泛的产业革命的驱动力量,并提出了有助于各行各业实现从基于线性过程和还原论的旧体系到基于非线性思维和复杂性科学的新体系的革命性体系转移通用工作框架 – 五维结构综合法。非线性整体软件工程体系的创立,是这一工作框架的一个应用实例。应某国际高峰论坛的邀请,本月下旬我将到北京在该高峰论坛作题为“研究与实践:知识资本与新一轮产业革命”的讲演,为这新一轮基于复杂性科学的、更加深刻、更加广泛的产业革命的来临推波助澜。
我觉得发帖人的技术水平可以说是代表了大多数中国软件技术人员的平均水平,理解能力相当的差劲。作为一个大型IT公司的技术总监,看到这本书个人感觉非常的惊叹,中国在软件领域还能有这样高深的论著,中国的软件落后到这种程度,居然有人还对这样也许是国内百年不得一见的科学论著持这种观点,看到这些就知道中国为什么这么落后。如果一个华人科学家写的论著在国内就受到这种评价,我想中国人还是趁早很软件行业说拜拜算了,唉,真是可悲可叹!!!
哈哈,决定买了读读再说,Amazon 上只有三本了