CMMI軟件成熟度 《軟件工程過程》高級(jí)篇讀后感
從世界上第一臺(tái)計(jì)算機(jī)誕生起,軟件就伴隨左右。最初由于計(jì)算機(jī)的昂貴與稀少,開始的使用者都是科學(xué)家或?qū)I(yè)的工程技術(shù)人員,他們主要用來進(jìn)行大量的數(shù)值計(jì)算,把他們從繁重的計(jì)算工作中解脫出來。隨著工作的開展與增多,逐漸出現(xiàn)了專業(yè)的軟件工程師,他們的工作就是編寫軟件,但是這些工程師在初期的時(shí)候,沒有編寫軟件的規(guī)范與指南,沒有需求文檔,也沒有軟件說明的文檔,每個(gè)人都自成一套體系,編寫出來的軟件難以維護(hù)與閱讀,并且充滿著大量艱難晦澀的定制功能,使后續(xù)的人難以承受。隨著各種軟件的大量增加,規(guī)模性和維護(hù)成本居高不下,更多的是復(fù)雜難懂,于是終于爆發(fā)了“軟件危機(jī)”,為了解決這個(gè)危機(jī),于是北大西洋公約組織(North Atlantic Treaty Organization NATO)軟件方面的科學(xué)家提出了“軟件工程”這個(gè)概念,來解決軟件開發(fā)過程中的棘手問題。軟件工程是借鑒傳統(tǒng)工程的原則、方法和技術(shù),以提高質(zhì)量,降低成本為目的,最終向用戶交付高質(zhì)量的軟件產(chǎn)品。它包括構(gòu)造軟件的過程、方法、工具和質(zhì)量四個(gè)方面的內(nèi)容。
軟件工程理論的發(fā)展和實(shí)踐經(jīng)驗(yàn)的積累,證明了它的復(fù)雜性,同時(shí)具有交叉學(xué)科的特點(diǎn),于是在2004年,軟件工程終于從計(jì)算機(jī)科學(xué)與技術(shù)中分離出來,成為了一門獨(dú)立的學(xué)科,奠定了其獨(dú)特的IT“江湖地位”,要想在一本書中把軟件工程全部的內(nèi)容講清楚,這是不大可能的,于是本書的重點(diǎn)側(cè)重于軟件工程過程,從過程的角度闡述并實(shí)踐軟件工程。
第1章緒論部分,作者講述了軟件制造的復(fù)雜過程和軟件危機(jī)、軟件產(chǎn)品與軟件工程過程,重要意義,軟件生存周期過程標(biāo)準(zhǔn)的基本概念和ISO/IEC 12207 軟件生存周期過程標(biāo)準(zhǔn)。軟件工程的關(guān)鍵概念和一些基本術(shù)語都在本章給出定義。
第2章是本書的重頭戲,作者重點(diǎn)闡述了軟件開發(fā)的主要活動(dòng)。其中核心活動(dòng)包括:需求工程、軟件設(shè)計(jì)、軟件構(gòu)造、軟件測(cè)試、軟件運(yùn)行與維護(hù)。支持活動(dòng)包括:軟件項(xiàng)目管理、軟件配置管理、軟件驗(yàn)證與確認(rèn)、軟件質(zhì)量保證、軟件聯(lián)合評(píng)審、軟件審核、軟件文檔管理。輔助活動(dòng)包括軟件基礎(chǔ)設(shè)施過程、軟件改進(jìn)過程、軟件培訓(xùn)過程等等。這些活動(dòng)都是軟件開發(fā)過程中不可缺少的環(huán)節(jié),如果某些關(guān)鍵環(huán)節(jié)缺失或遺漏,那么可能交付的軟件產(chǎn)品質(zhì)量就得不到保證。這些活動(dòng)相輔相成,互相彌補(bǔ),為向用戶及時(shí)準(zhǔn)確交付高質(zhì)量的軟件產(chǎn)品提供了保證?,F(xiàn)代軟件工程過程中,企業(yè)可以根據(jù)自身的需要,針對(duì)某些環(huán)節(jié)進(jìn)行剪裁,找到適合自己的活動(dòng)過程,形成企業(yè)的規(guī)范和標(biāo)準(zhǔn)。
第3章介紹了軟件生存周期模型。從軟件誕生起,行業(yè)采用的不同模型,從最早的編碼修正模型、瀑布模型、增量模型、演化模型、敏捷模型、統(tǒng)一軟件過程模型(Rational Unified Process RUP)、微軟解決方案框架(Microsoft Solution Framework MSF)等等。任何軟件的開發(fā),都會(huì)遵循一種生存周期模型,像人類的生命周期模型一樣,從無到有。根據(jù)采用的生存周期模型,采用不同的方法和工具去實(shí)現(xiàn)軟件產(chǎn)品。
第4,5,8章分別從瀑布過程模型、協(xié)同過程模型、敏捷過程模型介紹了軟件產(chǎn)品的實(shí)現(xiàn)過程。其中對(duì)于一些方法與工具進(jìn)行了詳細(xì)闡述。依作者的觀點(diǎn),其實(shí)每一種模型都需要一本書的內(nèi)容來解讀。
第6章介紹了軟件工程過程的建立與監(jiān)控。從軟件工程過程的層次、建立、剪裁、編制、監(jiān)控、改進(jìn)和積累等多個(gè)方面介紹。
第7章介紹了如何改進(jìn)軟件工程過程。首先從ISO9001的角度出發(fā),雖然它主要適用于服務(wù)業(yè)與制造業(yè),但是經(jīng)過后期的修訂,在ISO9000-3標(biāo)準(zhǔn)中明確,為生產(chǎn)滿足用戶要求的軟件,建議應(yīng)采用的控制手段和方法。其中由三部分要素構(gòu)成,軟件質(zhì)量管理體系的框架、生存期基本活動(dòng)和支持活動(dòng)。軟件能力成熟度模型集成(Capability Maturity Model Integration CMMI),把軟件的過程分為五個(gè)階段CMMI1-CMMI5,每個(gè)階段都有某些關(guān)鍵過程域構(gòu)成,如果某個(gè)過程域滿足了要求的流程與標(biāo)準(zhǔn),那么說明達(dá)到了這個(gè)階段。ISO/IEC 15504軟件工程過程評(píng)估模型是一個(gè)國際標(biāo)準(zhǔn),為指導(dǎo)軟件工程過程評(píng)估提供了一個(gè)基本的框架,任何組織都可以用此框架對(duì)軟件的獲取、供應(yīng)、開發(fā)、運(yùn)行與維護(hù)進(jìn)行相應(yīng)的計(jì)劃、管理、監(jiān)控和改進(jìn)。
第9章是本書的最后一章,主要介紹了軟件工程過程的發(fā)展趨勢(shì)。對(duì)于軟件開發(fā)過程,究竟選擇是敏捷開發(fā)還是計(jì)劃驅(qū)動(dòng)的開發(fā),作者從應(yīng)用特征、管理特征、技術(shù)特征和人員特征,四個(gè)方面進(jìn)行了對(duì)比,得出了一個(gè)平衡敏捷與計(jì)劃驅(qū)動(dòng)過程的可剪裁的過程模型。簡(jiǎn)單的說就是結(jié)合了兩者的優(yōu)點(diǎn),并不是東風(fēng)壓倒西風(fēng),也不是西風(fēng)壓倒東風(fēng),適合自己的,就是最好的。