净室是一种以合理的成本开发高质量软件的基于理论、面向工作组的方法。净室是基于理论的,因为坚实的理论基础是任何工程学科所不可缺少的。再好的管理也代替不了理论基础。净室是面向工作组的,因为软件是由人开发出来的,并且理论必须简化到实际应用才能引导人的创造力和协作精神。净室是针对经济实用软件的生产的,因为在现实生活中,业务和资源的限制必须在软件工程中予以满足。最后,净室是针对高质量软件的生产的,因为高质量改进管理,降低风险及成本,满足用户需求,提供竞争优势。
净室理论基础建立于20世纪70年代末80年代初,资深数学家和IBM客座科学家Harlan Mills阐述了将数学、统计学及工程学上的基本概念应用到软件的设想。受Edsger Dijkstra关于结构化编程、Nicholas Wirth关于逐步求精、David Parnas关于模块化设计的影响,Mills为软件的工程方法奠定了科学基础。
两大基本观点促进了Mills的工作:首先,程序是数学函数规则,其次,潜在的程序执行是无穷的,质量认证必须进行统计采样。第一个观点使所有函数理论向软件开发敞开大门,导致以下技术的产生:盒式结构规范及设计、函数理论正确性检验及增量开发,第二个观点使所有统计理论在软件测试方面得到应用,导致了统计使用测试和质量认证。
Mills的观点在其与同仁A1an Currit,Michael Dyer,Alan Hevner,Richard Linger,Bernard Witt及IBM公司联邦系统部的其他同事的合作中得到了修改和演示。1979年由Addison—Wesley出版的《结构化编程:理论与实践》(作者:Linger,Mills和Witt)介绍了软件规范、设计、认证及再工程中的函数理论方法。《信息系统分析和设计原理》(作者:Mills,Linger,Hevner,Academic出版公司,1986)介绍了系统规范、设计和认证中的盒式结构方法,同时介绍了项目管理的增量开发。1987年,净室将这些思想融合在一起。“净室”一词借自半导体业,强调“防患胜于除患”的思想。《净室软件工程》(作者:Mills,Dyer和Linger)刊登于《IEEE软件》1987晰年5月刊上。
第一项净室软件项目由IBM的Richard Linger于20世纪80年代中期负责实施。COBOL结构化设施项目开发出一项商业软件再工程产品,该产品显示出了卓越的质量水平及用户使用可靠性,净室方法得到了初步确认。
1990年,Richard Linger创建了IBM净室软件技术中心,在此,净室方法、自动化及技术改变得到进一步改进。20世纪90年代初,IBM生产出运用净室方法开发的海量存储控制单元适配器,售出了数千单元,直至1997年产品超过使用寿命后,仍未收到任何反映净室微码现场故障的报告。这项开发由Mike Brewer领导,成员有Paul Fisher,Dave Fuhrer,Karl Nielson及其他一些工作组成员。认证测试由Joe Ryan和Mike Houghtaling领导。如今,IBM公司存储系统部的测试实验室无可争议地成为统计使用测试方法的全球巨擎。
从20世纪80年代末到90年代初,享有盛名的国家宇航局(NASA)哥达德飞行控制中心(GSFC)软件工程实验室(SEL)在Vic Basili,Scott Green,Rose Pajerski,Jon Valett等人的领导下进行了一系列净室试验。这些试验被认为是迄今为止软件工程领域进行的一次最完整的研究。4个规模依次扩大的地面控制软件系统按净室工程方法开发出来,结果表明,与NASA GSFC已足以让人佩服的底线相比,质量和生产力还有一致的提高。
20世纪80年代中期,在美国国防部的ARPA STARS项目(自适应的可靠系统软件技术)的形成期,STARS领导层选取净室作为开发和商业化的核心技术。领导层包括Dave Ceely,Dick Drake,Bill Ett,Joe,Greene,John Foreman,Jim Moore等。Mills博士和Arnie Beckhardt为推动净室技术而建立的软件工程技术公司(SET)被选来推动净室技术的商业化,在SIldzS的支持下,SET在净室的手段和工具方面取得了显著进展。
与此同时,Mills博士正就使用净室建立一家名为Q—Labs的公司而同欧洲的I.M.Ericsson AB进行商谈,为软件工程新技术走出实验室,向Ericsson(爱立信,译者注)进行转让。自两家公司成立之初,Q-Labs和SET就是商业伙伴,以后两家公司于1998年合并为Q—Labs公司。
20世纪90年代初,美国陆军Picatinny Arsenal执行了一个净室项目,并在这个项目中获得了20倍于引进净室技术所用的投资回报。1996年国防部软件数据与分析中心在其所作的软件方法比较分析中,报告净室具有真实的价值和质量优势。其他留有软件生产和质量方面历史数据的机构也用净室进行了大型项目的研发,它们公开发表了其结果。净室实践明显改进了IBM、Ericsson、NASA、DoD及许多其他机构的软件项目产出。净室的数据表明而且将继续表明,采用净室学科有可能使软件成组性能得到很大的改善。
Carnegie Mellon大学软件工程研究所(SEI)实际上已成为改进软件工程实践方面的领头羊。SEI的软件能力成熟度模型(CMM)成为一项已被认可并广泛用于改善软件工程实践的管理模型。1996年SEI完成了一个项目,该项目定义了净室参考模型并将净室的工程技术映射到CMM的管理过程中。这项工作的主要结论是净室与CMM是兼容的、相互支持的。该工作在1996年2份SEI技术报告中进行推广:净室软件工程参考模型(Linger,Trammell,1996)和软件能力成熟度模型(CMM)的净室软件工程实践(Linger,Paulk,Trammell,1999)。经Carnegie Mellon大学许可,本书将净室软件工程参考模型也纳入其中。
净室技术一直由Mills及其在全球各大学和工业界的同仁进行讲授,他们是Vic Basili,A1an Hevner,Richard Linger,Jesse PboIe,Dieter Rombach,Shirley Becker,Richard Cobb, Michael Deck,Chuck Engle,Philip Housler,Ara Kouchakdjian,John Madin,Dave Pearson,Mark Pleszkoch,Stacy Prowell,Steve Rosen,Kirk Sayre, A1an Spangler,Carmen Trammell,Gwen Walton和James Whittaker。另外,还有很多人通过大量实地应用而推进净室实践,包括Mike Brewer,John Gibson, Mike Houghtaling,David Kelly,Jenny Mordes,Rob Oshana,Jason Selvidge,Wayne Sherer和Tom Swain。他们每个人都为净室成为真正的软件工程学科做出了各自的贡献。
一项工程的发展是以其科学理论为基础的,实践中的改进从遵循源自实践的第一条原理开始并沿着科学的轨道向前发展。净室实践的改进和进展正是按照这种模式进行并将继续进行下去。
净室规范方法的精化的研究主流已经形成并在本书中予以说明。Mills使用的函数理论,激发了David Parnas在序列(跟踪)分析和域划分方面的工作,这又激发了Hailong Mao在典型序列历史方面的研究,以上三者为本书中提到的Stacy Prowell和Jesse Poore基于序列规范的定义打下了基础。
另一项由Gwen Walton和Jesse Poore所从事的独立的研究,将基于Markov链使用模型应用到了运筹学的优化方法当中。他们的研究将基于约束的方法应用到使用建模中,该研究有望加强净室统计测试实践的控制,提高其价值。
其他在决策理论、先进统计设计、建模与仿真等有关理论和工程实践领域内开展的工作正在取得进展,净室软件工程也一定会随着得到进一步的改进。 |
相关推荐
软件工程发展史 软件工程是指为了提高软件质量、降低成本、提高生产效率、降低维护难度的一门工程学科。软件工程的发展经历了漫长的过程,从软件的诞生到现在的发展趋势。下面是软件工程发展的主要阶段: 第一阶段...
软件工程实践报告:软件在当今生活中的重要性和软件工程的发展现状 软件工程是当今信息时代最重要的组成部分之一,软件的重要性和软件工程的发展现状对国家经济、社会发展和个人生活产生了深远的影响。 一、软件的...
### 软件工程发展综述 #### 一、软件工程概述 软件工程是一门集计算机科学、工程学和管理学于一体的学科,旨在利用科学的方法和技术来开发、维护高质量的软件产品。它不仅关注软件的开发过程,还涉及到软件生命...
### 软件工程发展动态 #### 一、软件工程的发展背景与意义 自1968年软件工程这一概念被提出以来,该领域经历了快速且显著的变化和发展。随着计算机技术的进步,特别是硬件生产能力的提升,到了20世纪60年代,发达...
净室软件工程的发展始于20世纪70年代末至80年代初,由资深数学家Harlan Mills提出,他主张通过避免错误的引入和统计测试来提高软件质量。Mills认为,程序错误只能由开发者引入,而程序可以被视为数学函数,因此可以...
软件工程未来发展趋势
软件工程学科发展历史简述,软件工程的三个发展阶段,软件工程发展的主要历程,一份很简短的PPT。质量一般,按需自取。
### 软件工程发展趋势分析 #### 全球化下的软件工程 自2000年以来,全球化成为了推动社会和经济发展的重要力量。在这个背景下,软件工程领域也经历了一系列的重大变革。托马斯·弗里德曼在其著作中提到,全球化的...
软件工程的发展前景展望。对软件工程各个阶段及实现方法的探讨和对比分析,介绍了软件工程的新发展———基于组件技术的软件工程 (CBSE)。对软件的发展方向及动态从标准和实现方法上作了简要阐述和论证。
### 软件工程国内外发展现状深度解析 #### 国内外现状分析 在国内软件研发领域,个人英雄主义现象显著,这种过度依赖个人能力的方式阻碍了软件产业规模化发展,进而影响了产业化的进程。国内软件厂商虽能提供多样...
【软件工程发展概论】 软件工程是一门综合性的学科,起源于20世纪50年代,旨在解决大型应用系统的开发、管理和维护问题。这门学科不仅涵盖了构建软件的技术层面,如编程语言、设计方法和测试工具,还包括了管理层面...
软件工程师的成长与职业发展 ,本ppt包括四个部分:职业生涯规划三步曲 软件工程师职业发展路线参考 李开复对年轻人的忠告 成为职位之星
"软件工程发展史及发展趋势" 软件工程是研究用工程化方法构建和维护有效的、实用的和高质量的软件的学科。软件工程涉及到程序设计语言、数据库、软件开发工具、系统平台、标准、设计模式等方面。在现代社会中,软件...
10. 软件工程的发展需要与时俱进,随着技术的发展和社会的需求,软件工程也需要不断地完善和发展。 11. 软件工程的发展需要多方面的知识和技能,如计算机科学、数学、管理科学、工程学等。 12. 软件工程的发展需要...
以下是对软件工程发展过程中一些关键技术与标准的概述。 1. 软件开发生命周期(SDLC)和计算机辅助软件工程(CASE) 软件开发生命周期模型是软件工程的核心组成部分,它描述了软件从概念、需求分析、设计、实现、...
此外,适应国内市场的特殊性,如培养成熟工程师、优化企业管理等,将成为软件工程发展的重要方向。 【软件工程的适应与创新】 企业实施软件工程需与自身战略和市场需求相匹配,以盈利为目标。对于不同类型的软件...
论软件工程的发展历程及前景展望 一、软件工程的诞生:历史背景与需求驱动 自1946年世界上首台电子计算机ENIAC的问世,标志着人类科技史上的一个新纪元。随着时间的推移,计算机技术不仅取得了突飞猛进的发展,还...