CMMI(Capability Maturity Model Integration For Software,軟件能力成熟度模型集成)是在 CMM(Capability Maturity Model For Software,軟件能力成熟度模型)的基礎(chǔ)上發(fā)展而來的。CMMI是由美國卡耐基梅隆大學(xué)軟件工程研究所(Software Engineering Institute,SEI)組織全世界的軟件過程改進和軟件開發(fā)管理方面的專家歷時4年而開發(fā)出來,并在全世界推廣實施的一種軟件能力成熟度評估標準,主要用于指導(dǎo)軟件開發(fā)過程的改進和進行軟件開發(fā)能力的評估。
軟件危機
在計算機系統(tǒng)發(fā)展的早期時代(二十世紀六十年代中期以前),通用硬件在這一時期非常普遍,但是軟件卻是為了每一個具體的應(yīng)用而專門編寫的,那個時期的軟件一般都是規(guī)模比較小的一個程序,編寫代碼的程序員和使用者往往是同一個(或同一組)人。那么在這種個體化的軟件環(huán)境下,軟件設(shè)計通常是在程序員的頭腦中進行的一個隱含的過程,只留下了程序,除了程序清單之外,沒有其他任何的文檔資料(需求分析、軟件說明書等)保存下來。
二十世紀的六十年代中期到七十年代中期是計算機系統(tǒng)發(fā)展的第二代時期,這個時期的一個重要特征是出現(xiàn)了“軟件作坊”,當時的微軟就是這種軟件生產(chǎn)方式的一個代表。此時,盡管軟件的生產(chǎn)是作坊式生產(chǎn),但還是生產(chǎn)了一些很有代表性的產(chǎn)品,使得產(chǎn)品軟件的使用廣泛起來。然而,“軟件作坊”仍然沿用早期形成的個體化軟件開發(fā)方法。隨著計算機應(yīng)用的日益普及,軟件數(shù)量急劇膨脹。在程序運行時發(fā)現(xiàn)的錯誤必須設(shè)法改正;用戶有了新的需求時必須相應(yīng)地修改程序;硬件或操作系統(tǒng)更新時,通常需要修改程序以適應(yīng)新的環(huán)境。上述軟件維護工作,以令人吃驚的比例耗費著資源。甚至許多程序的個體化特性使它們最終成為不可維護的。“軟件危機”就這樣開始出現(xiàn)了!
為什么會出現(xiàn)“軟件危機”?
軟件不同于一般程序,它是由許多實現(xiàn)各自功能的程序組成的。它的一個顯著特點是規(guī)模龐大。例如,美國四代宇宙飛船的軟件規(guī)模呈指數(shù)增長,二十世紀七十年代末穿梭號宇宙飛船的軟件包含4000萬行目標代碼。假設(shè)一個人一年可以開發(fā)出一個一萬行的程序,為了開發(fā)一個4000萬行的軟件,是否集中4000人的力量一年就可以完成呢?絕對做不到!因為代碼長度增加了4000倍,程序復(fù)雜程度的增加遠遠超過4000倍。而且如何保證每個人完成的工作合在一起確實能構(gòu)成一個高質(zhì)量的大型軟件系統(tǒng),更是一個極端復(fù)雜困難的問題,不僅涉及許多技術(shù)問題,例如分析方法、設(shè)計方法、形式說明方法、版本控制等,更重要的是必須進行嚴格而科學(xué)的管理。
軟件本身獨有的特點確實給開發(fā)和維護帶來一些客觀困難,但是人們在開發(fā)和使用計算機系統(tǒng)的長期實踐中,也確實積累和總結(jié)出了許多成功的經(jīng)驗。如果堅持不懈地使用經(jīng)過實踐考驗證明是正確的方法,許多困難是完全可以克服的,過去也確實有一些成功的范例。但是,目前相當多的軟件專業(yè)人員對軟件開發(fā)和維護還有不少錯誤觀念。在實踐過程中或多或少地采用了錯誤的方法和技術(shù),這可能是使軟件問題發(fā)展成軟件危機的一個主要原因。
與軟件開發(fā)和維護有關(guān)的許多錯誤認識的形成,可以歸因于在計算機系統(tǒng)發(fā)展中,早期軟件開發(fā)的個體化特點。錯誤認識主要表現(xiàn)為忽視軟件需求分析的重要性,認為軟件開發(fā)就是寫程序,并設(shè)法使之運行,輕視軟件維護等。
事實上,對用戶要求沒有完整準確的認識就匆忙著手編寫程序是許多軟件開發(fā)工程失敗的主要原因之一。只有用戶才真正了解他們自己的需要,但是許多用戶在開始時并不能準確具體地敘述他們的需要,軟件開發(fā)人員需要做大量深入細致的調(diào)查研究工作,反復(fù)多次地和用戶交流信息,才能真正全面、準確、具體地了解用戶的要求。對問題和目標的正確認識是解決任何問題的前提和出發(fā)點。
一個軟件從定義、開發(fā)、使用和維護,直到最終被廢棄,要經(jīng)歷一個漫長的時期。通常把軟件經(jīng)歷的這個過程稱為生命周期。軟件開發(fā)最初的工作應(yīng)是問題定義,然后要進行可行性研究,決定該問題是否存在一個可行的解決辦法;接下來應(yīng)該進行需求分析,也就是深入具體地了解用戶的要求,在所要開發(fā)的系統(tǒng)(不妨稱之為目標系統(tǒng))必須做什么這個問題上和用戶取得完全一致的看法。經(jīng)過上述軟件定義時期的準備工作才能進入開發(fā)時期,而在開發(fā)時期首先需要對軟件進行設(shè)計(通常又分為總體設(shè)計和詳細設(shè)計兩個階段),然后才能進入編寫程序的階段,程序編寫完之后還必須經(jīng)過大量的測試工作(所需的工作量通常占軟件開發(fā)全部工作量的40%~50%)才能最終交付使用。所以,編寫程序只是軟件開發(fā)過程中的一個階段,而且在典型的軟件開發(fā)工程中,編寫程序所需的工作量只占軟件開發(fā)全部工作量的10%~20%。
另一方面還必須認識到程序只是完整的軟件產(chǎn)品的一個組成部分,在上述軟件生命周期的每個階段都要得出最終產(chǎn)品的一個或幾個組成部分(這些組成部分通常以文檔資料的形式存在)。軟件專家曾經(jīng)指出:“軟件是程序以及開發(fā)、使用和維護程序需要的所有文檔。”這也就是對軟件的定義。所以,一個軟件產(chǎn)品必須由一個完整的配置組成,應(yīng)該清除只重視程序而忽視軟件配置其余成分的錯誤觀念。
做好軟件定義時期的工作,是降低軟件成本提高軟件質(zhì)量的關(guān)鍵。如果軟件開發(fā)人員在定義時沒有正確全面地理解用戶需求,直到測試階段或軟件交付使用后才發(fā)現(xiàn)“已完成的”軟件不完全符合用戶的需要,這時再修改就為時已晚了。
嚴重的問題是,在軟件開發(fā)的不同階段進行修改需要付出的代價是很不相同的,在早期引入變動,涉及的面較小,因而代價也比較低:而在開發(fā)中期軟件配置的許多成分已經(jīng)完成,引入一個變動要對所有已完成的配置成分都做相應(yīng)的修改,不僅工作量大,而且邏輯上也更復(fù)雜,因此付出的代價劇增。根據(jù)美國一些軟件公司統(tǒng)計資料,在后期引入一個變動比在早期進入相同變動所需付出的代價高2~3個數(shù)量級。
通過上面的論述不難認識到,輕視維護是一個最大的錯誤。許多軟件產(chǎn)品的使用壽命長達10年甚至20年,在這樣漫長的時期中不僅必須改正使用過程中發(fā)現(xiàn)的每一個潛伏的錯誤,而且當環(huán)境變化時(例如硬件或系統(tǒng)軟件更新?lián)Q代)還必須相應(yīng)地修改軟件以適應(yīng)新的環(huán)境,特別是必須經(jīng)常改進或擴充原來的軟件以滿足用戶不斷變化的需要。所有這些改動都屬于維護工作,而且是在軟件已經(jīng)完成之后進行的,因此是極端艱巨復(fù)雜的工作,需要花費很大代價。統(tǒng)計數(shù)據(jù)表明,實際上用于軟件維護的費用占軟件總費用的55%~70%。
中企檢測認證網(wǎng)提供iso體系認證機構(gòu)查詢,檢驗檢測、認證認可、資質(zhì)資格、計量校準、知識產(chǎn)權(quán)貫標一站式行業(yè)企業(yè)服務(wù)平臺。中企檢測認證網(wǎng)為檢測行業(yè)相關(guān)檢驗、檢測、認證、計量、校準機構(gòu),儀器設(shè)備、耗材、配件、試劑、標準品供應(yīng)商,法規(guī)咨詢、標準服務(wù)、實驗室軟件提供商提供包括品牌宣傳、產(chǎn)品展示、技術(shù)交流、新品推薦等全方位推廣服務(wù)。這個問題就給大家解答到這里了,如還需要了解更多專業(yè)性問題可以撥打中企檢測認證網(wǎng)在線客服13550333441。為您提供全面檢測、認證、商標、專利、知識產(chǎn)權(quán)、版權(quán)法律法規(guī)知識資訊,包括商標注冊、食品檢測、第三方檢測機構(gòu)、網(wǎng)絡(luò)信息技術(shù)檢測、環(huán)境檢測、管理體系認證、服務(wù)體系認證、產(chǎn)品認證、版權(quán)登記、專利申請、知識產(chǎn)權(quán)、檢測法、認證標準等信息,中企檢測認證網(wǎng)為檢測認證商標專利從業(yè)者提供多種檢測、認證、知識產(chǎn)權(quán)、版權(quán)、商標、專利的轉(zhuǎn)讓代理查詢法律法規(guī),咨詢輔導(dǎo)等知識。
本文內(nèi)容整合網(wǎng)站:百度百科、搜狗百科、360百科、知乎、市場監(jiān)督總局 、國家認證認可監(jiān)督管理委員會、質(zhì)量認證中心
免責(zé)聲明:本文部分內(nèi)容根據(jù)網(wǎng)絡(luò)信息整理,文章版權(quán)歸原作者所有。向原作者致敬!發(fā)布旨在積善利他,如涉及作品內(nèi)容、版權(quán)和其它問題,請跟我們聯(lián)系刪除并致歉!