本書從軟件工程的實際出發(fā),詳細介紹了有關軟件質(zhì)量管理、控制、保障及度量的程序、方法和技術??紤]到軟件可靠性是軟件質(zhì)量中最重要的因素,本書對軟件可靠性模型及其應用、軟件可靠性測試、軟件可靠性數(shù)據(jù)收集和處理進行了深入的論述。本書是在廣泛參考了國內(nèi)外有關資料的基礎上,結(jié)合作者多年來在軟件工程、軟件質(zhì)量和軟件可靠性方面的研究成果,特別是近年來作者在軟件公司任職期間的體驗,精心寫成的。全書內(nèi)容具有理論聯(lián)系實際、系統(tǒng)及簡潔等特點,在軟件開發(fā)、使用和維護方面具有較強的工程應用價值。本書可作為軟件項目管理人員、開發(fā)人員、系統(tǒng)分?鋈嗽奔叭砑房突У牟慰際?,也可作为紦溷机或软件工程专覚n母吣曇堆?、研究生的綖┠幌娢侩H欏?隨著計算機與因特網(wǎng)的普及和社會信息化進程的加快,計算機軟件的地位已發(fā)生了巨大的變化,它已成為支撐社會正常運行和發(fā)展的重要基礎設施。軟件變得越來越復雜,人們對軟件的要求也越來越高,特別是對軟件的可靠性、易用性、應變性和兼容性等各方面都提出了很高的要求。軟件的生產(chǎn)方式也發(fā)生了巨大的變化。開始時是手工業(yè)生產(chǎn)方式,軟件的質(zhì)量依賴于軟件編制者個人的技藝和才智。后來,演變?yōu)楣I(yè)化的規(guī)模生產(chǎn),軟件成為軟件公司一批開發(fā)人員共同協(xié)作的產(chǎn)品。這時,軟件產(chǎn)品的質(zhì)量在很大程度上取決于軟件公司實施的開發(fā)過程的優(yōu)化程度和具體的管理水平?,F(xiàn)在,又進一步擴展為軟件生產(chǎn)的社會化。一個軟件系統(tǒng)常常要由不同軟件專業(yè)公司生產(chǎn)的軟件構(gòu)件產(chǎn)品集成而成。于是為保證軟件的質(zhì)量,又要求有相關的統(tǒng)一標準和協(xié)議,以及按照標準進行的測試和認證。軟件質(zhì)量的控制和管理技術是一門實踐的技術,它是根據(jù)軟件開發(fā)的大量實踐經(jīng)驗積累而來的。這其中有很多成功的經(jīng)驗,也不乏慘痛的失敗教訓。坦誠地講,我們國家軟件產(chǎn)業(yè)發(fā)展較晚,目前真正能稱得上是有一定規(guī)模的,具有大型自主軟件開發(fā)能力的軟件公司還不多,還缺乏這種規(guī)?;_發(fā)軟件的實踐經(jīng)驗。因而,人們往往對軟件質(zhì)量管理的重要性和必要性認識不足,理解不深,同時也缺乏相應的量化的實際數(shù)據(jù)。大家知道,只有在大量數(shù)據(jù)的基礎上才能做到軟件開發(fā)過程的真正的優(yōu)化,而數(shù)據(jù)要靠長期實踐的積累。洪倫耀教授和董云衛(wèi)高級工程師聯(lián)合編寫的這本《軟件質(zhì)量工程》一書,全面、系統(tǒng)地介紹了國內(nèi)外流行的軟件開發(fā)過程中實施的質(zhì)量管理、控制、度量和保障技術。其內(nèi)容大都是根據(jù)他們多年來的實踐經(jīng)驗,從國?諭飩閑?、姐妷勳而且比锦r滌玫募際踔芯《吹?。本蕶澳踌\娑雜謚傅嘉夜砑檔穆蚣?,讣{迫砑返鬧柿?,促进我国软件产覚n姆⒄箍隙ɑ崞鸕椒淺V匾淖饔謾M蔽乙財諭樗孀盼夜砑檔男緯珊頭⒄?,我国科技人员能灾X鍘⑾獾娜砑⒓際醯幕∩?,通过纂E澩罅咳砑⒌氖導?,矚g系刈芙?、提高和词[攏徊轎夜砑⒓際醯姆⒄棺齔鲇τ械墓畢住?自從第一臺計算機誕生以來,信息技術革命無疑成為當今世界最快的技術變革。今天,計算機的應用已滲透到了人類現(xiàn)代生活的各個方面,人們對它的依賴程度與日俱增,因計算機系統(tǒng)故障而引起危機的可能性也逐漸增大。同時,在計算機的發(fā)展與應用中,存在著嚴重的軟/硬件不均衡發(fā)展的現(xiàn)象,軟件的質(zhì)量、性能、生產(chǎn)率及耗費等,都無法與硬件同步。隨著人們對軟件需求的日益增大,軟件產(chǎn)品的功能復雜性和結(jié)構(gòu)復雜性越來越高,因軟件系統(tǒng)失效造成計算機系統(tǒng)失敗和癱瘓的重大事故屢見不鮮。例如:(1)在美國宇航局的''''旅行者''''計劃中,天王星探測器就是因為深度太空網(wǎng)絡軟件發(fā)送信息遲緩和能力衰竭而處于危險之中。(2)軟/硬件干擾問題是使一些航天飛機經(jīng)常推遲發(fā)射時間的主要原因。(3)在美國國防部某項工程中,事先設計好的先進程序無一可用,從而導致AFTI/F-16的首航時間耽擱了一年。關鍵軟件系統(tǒng)的失敗也影響了大量民用項目和科學工作。例如:如果不是數(shù)據(jù)分析程序由于''''越界溢出''''而隱藏了異常數(shù)據(jù),南極上空的臭氧空洞本來可以更早引起科學界的注意。軟件失效也可導致巨大的經(jīng)濟損失。例如:1990年1月15日,美國一通信中轉(zhuǎn)系統(tǒng)新投入使用的軟件發(fā)生了錯誤,導致主干線遠程網(wǎng)大規(guī)模崩潰;1991年夏季,美國一系列局域電話網(wǎng)由于軟件問題而中斷。這些嚴重事故使?鄖Ъ埔攬康繆豆駒擻滴竦墓舅鶚Я司薅鈄式?。砍鲥e的軟件還會危及人們的生命安全。例如:(1)美國的Therac-25放射性治療儀曾以其安全性著稱于世,但有一次由于其軟件出錯而使其控制系統(tǒng)失靈,導致多名病人失去生命。(2)據(jù)專家們統(tǒng)計后指出,軟件控制系統(tǒng)對飛行員在異常飛行期間發(fā)出的緊急查詢反應不當,是發(fā)生飛行事故以致造成機毀人亡的主要原因。這一切表明:軟件中哪怕是很微小的差錯,都可能導致生產(chǎn)、生活和其他各項活動中的質(zhì)量事故,如產(chǎn)品報廢,商業(yè)停頓,甚至是人員傷亡。面對這樣一些問題,在要求軟件質(zhì)量越來越高的情況下,應該怎么辦呢?答案只有一個:因為軟件產(chǎn)品是人類智力活動的產(chǎn)物,所以軟件的質(zhì)量問題,也只有用人類的智力活動來解決!本書就是考慮到目前人們對高質(zhì)量軟件的迫切需要而撰寫的,它集中討論了與軟件產(chǎn)品質(zhì)量密切相關的質(zhì)量管理、質(zhì)量控制、質(zhì)量度量和質(zhì)量保障等問題。本書的內(nèi)容實際上就是人們?yōu)榱私鉀Q軟件的質(zhì)量問題,在總結(jié)長期的開發(fā)實踐經(jīng)驗的基礎上逐漸形成的智力成果。另外,從軟件產(chǎn)品在質(zhì)量范疇內(nèi)區(qū)別于硬件產(chǎn)品的特殊性來說,撰寫本書還有如下的理由:(1)軟件質(zhì)量是在開發(fā)過程中構(gòu)建(需求分析、設計、編碼和集成等)人軟件產(chǎn)品之中的,開發(fā)過程完成之后是加不進去的。(2)軟件產(chǎn)品是由許多人通過集約式作業(yè)方式,在絞盡腦汁的智力活動中開發(fā)出來的,而人的思維活動是非常易變的,集約在一起的眾多人的思維更難保持協(xié)調(diào)一致。(3)導致軟件產(chǎn)品質(zhì)量低下的差錯和缺陷,是隨著軟件開發(fā)的進展而向后面階段傳播的。值得注意的是,這些差錯和缺陷的危害程度,隨著從它發(fā)生到被糾正的時間間隔的增加而成倍地增長。(4)通過智力活動開發(fā)出來的產(chǎn)品,它的質(zhì)量也只有通過智力活動來確認和檢驗,而不能像硬件產(chǎn)品那樣,可以用有關的測量儀器來檢驗。相應地,針對質(zhì)量方面的上述特殊性,軟件的質(zhì)量管理、質(zhì)量控制、質(zhì)量度量和質(zhì)量保障要解決的主要問題有:(1)如何建立必要的標準、規(guī)范、條例及程序,使開發(fā)人員和開發(fā)過程保持以下三個方面的一致性:橫向的,人與人之間的一致性;縱向的,一個開發(fā)階段與另一個開發(fā)階段的一致性;產(chǎn)品(含階段性產(chǎn)品)的輸入與輸出的一致性。(2)如何將一個軟件產(chǎn)品的整個開發(fā)過程分解為若干個可實現(xiàn)并可管理的部分;對每個部分,應用相應的、有效的技術和方法,展開軟件的開發(fā)活動并對其階段性產(chǎn)品的質(zhì)量進行驗證和確認,保證其高質(zhì)量;最終組合成整個軟件產(chǎn)品,并驗證和確認其質(zhì)量是否達到要求。(3)如何盡可能地避免在開發(fā)中產(chǎn)生差錯;如何盡可能多地檢測出并糾正已經(jīng)產(chǎn)生的差錯;當差錯不可避免地殘留在軟件中時,如何容差。(4)當差錯不可避免地引入到軟件中時,如何保證自它們引入時起,盡可能早地發(fā)現(xiàn)并糾正它們。(5)軟件這個無形的智力產(chǎn)品,它的質(zhì)量究竟如何定義,又如何度量。(6)如何控制軟件的開發(fā)過程、開發(fā)資源和產(chǎn)品,使得產(chǎn)品質(zhì)量、工期和費用實現(xiàn)最佳的折中。進行質(zhì)量管理、質(zhì)量控制、質(zhì)量度量和質(zhì)量保障的目的就在于:在開發(fā)過程中,在有限的資源限制下和規(guī)定的時間內(nèi),把軟件產(chǎn)品的質(zhì)量構(gòu)建人軟件產(chǎn)品之中。當讀者在閱讀這本書的時候,抓住上述問題,就可以更好地理解書中各章節(jié)的內(nèi)容。同時,在讀完了書中各章節(jié)之后,對上述問題也就會有更實質(zhì)性的把握。本書作者洪倫耀教授,在軟件可靠性和軟件質(zhì)量方面,有著近二十年的研究和教學經(jīng)驗;作者董云衛(wèi)高級工程師,曾就職于西安協(xié)同軟件股份有限公司、西安軟件工程技術研究中心等單位,一直從事軟件項目的組織、管理和軟件的實際開發(fā)工作以及軟件工程理論與應用的研究。2003年,本書的兩位作者先后就職于國家863軟件專業(yè)孵化器西安基地(西安軟件工程技術研究中心),參加863計劃相關課題的研究工作。西安軟件工程技術研究中心是西安市科學技術局批準設立的獨立的科學研究與技術開發(fā)機構(gòu)。它圍繞西安軟件產(chǎn)業(yè)的發(fā)展和國家863軟件專業(yè)孵化器的建設,專門從事技術開發(fā)及測試評估、質(zhì)量咨詢等軟件工程技術服務。在此期間,課題組對軟件質(zhì)量管理、控制、度量以及軟件質(zhì)量保障的各種技術和方法的深入探討,使作者長期積累的有關軟件質(zhì)量管理的研究與教學經(jīng)驗以及軟件開發(fā)經(jīng)驗得到了系統(tǒng)升華,拓展了作者的視野,并使作者堅信:科學的軟件質(zhì)量管理、控制、度量和保障的方法和手段是可以形成一種面向軟件產(chǎn)業(yè)發(fā)展的服務能力的,一旦這種能力與軟件產(chǎn)業(yè)結(jié)合并廣為產(chǎn)業(yè)界所接受,它將對軟件產(chǎn)業(yè)的發(fā)展起到巨大的推動作用。這也就是作者寫作本書的用意所在。本書是面向軟件項目開發(fā)領導部門、管理機構(gòu)、質(zhì)量組織、開發(fā)人員和軟件項目的購置者、使用者和維護者的工程實用性讀物。同時,本書也面向培養(yǎng)上述人才的大專院校教師、高年級學生、研究生。因此,本書不追求冗長、復雜的理論敘述,而著重于''''做什么''''、''''為什么做''''、''''怎樣做''''、''''結(jié)果是什么''''等這樣一些實用性軟件工程的內(nèi)容。本書共分7章。第1章作為基礎,敘述了軟件與硬件之間的區(qū)別及質(zhì)量、軟件質(zhì)量等一般性的概念,并敘述了造成軟件質(zhì)量低下的根源:軟件中的差錯。第2章、第3章和第4章分別介紹了軟件質(zhì)量管理、質(zhì)量控制和質(zhì)量度量。由于軟件可靠性是軟件質(zhì)量中最重要的質(zhì)量因素,因此第5章專門對軟件可靠性、軟件可靠性模型及其應用進行了專門的論述。由于上述各質(zhì)量活動不能無序、無計劃自動進行,而是要在強有力的監(jiān)督和保障之下,落實到開發(fā)過程的每一個階段和每一個環(huán)節(jié),因此,第6章安排了這樣的內(nèi)容:軟件質(zhì)量保障。第7章對近期軟件工程和軟件可靠性研究的某些問題做了簡單的提示。作者特別要感謝863計劃計算機軟硬件技術主題專家組和西安市科學技術局領導富有遠見的支持;還要感謝西安軟件工程技術研究中心樓文曉主任和西安協(xié)同軟件股份有限公司前任總經(jīng)理蘇新雷先生,正是有了他們對軟件質(zhì)量在軟件產(chǎn)品開發(fā)過程中及軟件產(chǎn)業(yè)發(fā)展中重要地位的深層次理解,才使我們有機會嘗試、應用和實踐軟件質(zhì)量管理、控制、度量和保障的理論和方法;更要感謝郝克剛教授在寫作過程中給予作者的指導,他還在百忙之中給本書撰寫了序言。武漢大學軟件工程研究所的徐仁佐教授,中國航天總公司204研,究所的宋曉秋(博士)研究員,空軍工程大學的王興亮教授以及西安軟件工程技術研究中心、西安協(xié)同數(shù)碼軟件股份有限公司的同仁對本書的編寫和出版給予了熱情的關心、幫助和支持,在此一并表示感謝。參加本書編寫、審校、資料收集和其他輔助工作的還有:凌惠娟、孫訓峰、姬偉鋒、王海濱、杜宏、安宣、李水清等。由于作者知識水平和工作經(jīng)驗有限,書中難免有錯誤和不當之處,敬請讀者指正。