版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
軟件工程第1章概論2/154教師介紹趙文耘教授、博士生導(dǎo)師復(fù)旦大學(xué)軟件工程實(shí)驗(yàn)室主任中國(guó)計(jì)算機(jī)學(xué)會(huì)軟件工程專業(yè)委員會(huì)副主任中國(guó)軟件行業(yè)協(xié)會(huì)軟件工程分會(huì)副理事長(zhǎng)上海復(fù)旦天翼計(jì)算機(jī)有限公司總經(jīng)理3/154序言計(jì)算機(jī)專業(yè)應(yīng)該學(xué)到什么,有什么用?在大學(xué)里能夠?qū)W到什么?學(xué)習(xí)能力?序言(2)什么是一個(gè)好專業(yè)?中國(guó)Vs美國(guó)中國(guó)Vs印度中國(guó)Vs日本?軟件工程課程的目標(biāo)4/1545/154課程成績(jī)計(jì)算項(xiàng)目和作業(yè)40%一個(gè)項(xiàng)目文檔和練習(xí)課堂練習(xí)20%大考40%總分排序后按30%(A/A-)類推6/154參考書實(shí)用軟件工程(第二版)鄭人杰、殷人昆、陶永雷,清華大學(xué)出版社,1997年軟件工程(第二版)齊治昌、譚慶平、寧洪,高等教育出版社,2004年軟件系統(tǒng)開(kāi)發(fā)技術(shù)(修訂版)潘錦平、施小英、姚天昉,西安電子科技大學(xué)出版社,1997年計(jì)算機(jī)科學(xué)技術(shù)百科全書(第二版)張效強(qiáng)主編,清華大學(xué)出版社,2005年SoftwareEngineeringAPractitionersApproach(SixthEdition),RogerSPressman,2005年(中文版)鄭人杰等譯,機(jī)械工業(yè)出版社,2007年7/154內(nèi)容摘要計(jì)算機(jī)軟件軟件工程軟件過(guò)程軟件過(guò)程模型敏捷軟件開(kāi)發(fā)CASE工具與環(huán)境8/154內(nèi)容摘要計(jì)算機(jī)軟件軟件工程軟件過(guò)程軟件過(guò)程模型敏捷軟件開(kāi)發(fā)CASE工具與環(huán)境9/154計(jì)算機(jī)軟件計(jì)算機(jī)軟件指計(jì)算機(jī)系統(tǒng)中的程序及其文檔程序是計(jì)算任務(wù)的處理對(duì)象和處理規(guī)則的描述計(jì)算任務(wù):任何以計(jì)算機(jī)為處理工具的任務(wù)處理對(duì)象:數(shù)據(jù)(如數(shù)據(jù)、文字、圖形、圖像、聲音等,它們只是表示,而無(wú)含義)或信息(數(shù)據(jù)及有關(guān)的含義)處理規(guī)則一般指處理的動(dòng)作和步驟。程序必須裝入計(jì)算機(jī)內(nèi)才能工作文檔是為了便于了解程序所需的闡明性資料,文檔一般是給人看的,不一定裝入計(jì)算機(jī)10/154軟件的發(fā)展
1946-1956年從計(jì)算機(jī)問(wèn)世到實(shí)用的高級(jí)程序語(yǔ)言出現(xiàn)前存儲(chǔ)容量比較小,運(yùn)算速度比較慢采用個(gè)體工作方式,用低級(jí)語(yǔ)言編寫程序應(yīng)用領(lǐng)域主要是以數(shù)值數(shù)據(jù)處理為主的科學(xué)計(jì)算,其特點(diǎn)是輸入、輸出量較小衡量程序質(zhì)量的標(biāo)準(zhǔn)主要是功效,即運(yùn)行時(shí)間省、占用內(nèi)存小主要研究?jī)?nèi)容是科學(xué)計(jì)算程序、服務(wù)性程序和程序庫(kù),研究對(duì)象是順序程序11/1541956-1968年
從實(shí)用的高級(jí)程序語(yǔ)言出現(xiàn)到軟件工程出現(xiàn)前存儲(chǔ)器容量大,外圍設(shè)備得到迅速發(fā)展,出現(xiàn)了高級(jí)程序設(shè)計(jì)語(yǔ)言應(yīng)用領(lǐng)域包括數(shù)據(jù)處理(非數(shù)值數(shù)據(jù)),其特點(diǎn)是計(jì)算量不大,但輸入、輸出量卻較大高速主機(jī)與低速外圍設(shè)備的矛盾突出,出現(xiàn)了操作系統(tǒng)、并發(fā)程序、數(shù)據(jù)庫(kù)及其管理系統(tǒng)20世紀(jì)60年代初提出了軟件一詞,開(kāi)始認(rèn)識(shí)到文檔的重要性研究高級(jí)程序設(shè)計(jì)語(yǔ)言、編譯程序、操作系統(tǒng)、支持編程的工具及各種應(yīng)用軟件工作方式逐步從個(gè)體方式轉(zhuǎn)向合作方式出現(xiàn)軟件危機(jī)12/1541968年-至今從軟件工程出現(xiàn)到現(xiàn)在硬件向巨型機(jī)和微型機(jī)二個(gè)方向發(fā)展,出現(xiàn)了計(jì)算機(jī)網(wǎng)絡(luò),軟件方面提出了軟件工程,出現(xiàn)了“計(jì)算機(jī)輔助軟件工程”(CASE)計(jì)算機(jī)的應(yīng)用領(lǐng)域滲透到各個(gè)業(yè)務(wù)領(lǐng)域,出現(xiàn)了嵌入式應(yīng)用,其特點(diǎn)是受制于它所嵌入的宿主系統(tǒng)開(kāi)發(fā)方式逐步由個(gè)體合作方式轉(zhuǎn)向工程方式軟件工程方面的研究主要包括軟件開(kāi)發(fā)模型、軟件開(kāi)發(fā)方法及技術(shù)、軟件工具與環(huán)境、軟件過(guò)程、軟件自動(dòng)化系統(tǒng)等軟件方面研究以智能化、自動(dòng)化、集成化、并行化、以及自然化為標(biāo)志的軟件開(kāi)發(fā)新技術(shù)13/154軟件危機(jī)
許多軟件項(xiàng)目不能滿足客戶的要求許多軟件項(xiàng)目超出預(yù)算和時(shí)間安排14/154軟件危機(jī)的表現(xiàn)對(duì)軟件開(kāi)發(fā)成本和進(jìn)度的估計(jì)常常很不正確用戶對(duì)“已完成的”軟件系統(tǒng)不滿意的現(xiàn)象經(jīng)常發(fā)生軟件產(chǎn)品的質(zhì)量往往靠不住軟件常常是不可維護(hù)的軟件通常沒(méi)有適當(dāng)?shù)奈臋n資料軟件成本在計(jì)算機(jī)系統(tǒng)總成本中所占的比例逐年上升軟件開(kāi)發(fā)生產(chǎn)率提高的速度遠(yuǎn)遠(yuǎn)跟不上計(jì)算機(jī)應(yīng)用迅速普及深入的趨勢(shì)15/154軟件危機(jī)的原因軟件是邏輯產(chǎn)品,開(kāi)發(fā)進(jìn)度、成本難以估計(jì)缺乏或不完整、不一致的文檔給維護(hù)帶來(lái)困難用戶對(duì)軟件需求的描述往往不夠精確,有遺漏,有二義軟件開(kāi)發(fā)人員對(duì)需求的理解與用戶的本來(lái)愿望有差異大型軟件項(xiàng)目需多人協(xié)同完成,缺乏管理經(jīng)驗(yàn)開(kāi)發(fā)人員不能有效地、獨(dú)立自主地處理大型軟件的全部關(guān)系缺乏有力的方法學(xué)和工具的支持軟件項(xiàng)目的特殊性和人類智力的局限性16/154克服軟件危機(jī)的途徑消除錯(cuò)誤的概念和做法推廣使用成功的開(kāi)發(fā)技術(shù)和方法使用軟件工具和軟件工程支持環(huán)境加強(qiáng)軟件管理17/154軟件的特點(diǎn)軟件是一種邏輯實(shí)體,而不是有形的系統(tǒng)元件,其開(kāi)發(fā)成本和進(jìn)度難以準(zhǔn)確地估算軟件是被開(kāi)發(fā)的或被設(shè)計(jì)的,它沒(méi)有明顯的制造過(guò)程,一旦開(kāi)發(fā)成功,只需復(fù)制即可,但其維護(hù)的工作量大軟件的使用沒(méi)有硬件那樣的機(jī)械磨損和老化問(wèn)題18/15419/154其它特點(diǎn):軟件的開(kāi)發(fā)和運(yùn)行常受到計(jì)算機(jī)硬件的限制,對(duì)計(jì)算機(jī)硬件有著不同程度的依賴性軟件的開(kāi)發(fā)至今尚未完全實(shí)現(xiàn)自動(dòng)化軟件成本相當(dāng)昂貴相當(dāng)多的軟件工作涉及到社會(huì)因素20/15421/154軟件的分類系統(tǒng)軟件:屬于計(jì)算機(jī)系統(tǒng)中最靠近硬件的一層,其它軟件一般都通過(guò)系統(tǒng)軟件發(fā)揮作用,它與具體的應(yīng)用領(lǐng)域無(wú)關(guān)。如操作系統(tǒng)、編譯程序等。支持軟件:支持軟件的開(kāi)發(fā)和維護(hù)的軟件。如數(shù)據(jù)庫(kù)管理系統(tǒng)、網(wǎng)絡(luò)軟件、軟件開(kāi)發(fā)環(huán)境等。應(yīng)用軟件:特定應(yīng)用領(lǐng)域?qū)S玫能浖?。如?shí)時(shí)軟件、嵌入式軟件、科學(xué)和工程計(jì)算軟件、事務(wù)處理軟件、人工智能軟件等。22/154
按軟件工作方式劃分:實(shí)時(shí)處理軟件分時(shí)軟件交互式軟件批處理軟件按軟件服務(wù)對(duì)象的范圍劃分:項(xiàng)目軟件產(chǎn)品軟件
23/154
按使用的頻度進(jìn)行劃分:
一次使用頻繁使用按軟件失效的影響進(jìn)行劃分:
高可靠性軟件一般可靠性軟件25/154軟件語(yǔ)言
softwarelanguage
軟件語(yǔ)言是用于書寫計(jì)算機(jī)軟件的語(yǔ)言。它主要包括:
需求定義語(yǔ)言功能性語(yǔ)言設(shè)計(jì)性語(yǔ)言實(shí)現(xiàn)性語(yǔ)言(即程序設(shè)計(jì)語(yǔ)言)文檔語(yǔ)言26/154需求定義語(yǔ)言
requirementsdefinitionlanguage需求定義語(yǔ)言用來(lái)書寫軟件需求定義。軟件需求定義是軟件功能需求和非功能需求的定義性描述。軟件功能需求刻畫軟件“做什么”,軟件非功能需求刻畫諸如功能性限制、設(shè)計(jì)限制、環(huán)境描述、數(shù)據(jù)與通信規(guī)程及項(xiàng)目管理等典型的需求定義語(yǔ)言有PSL語(yǔ)言(ProblemStatementLanguage問(wèn)題陳述語(yǔ)言)27/154功能性語(yǔ)言
functionallanguage功能性語(yǔ)言用來(lái)書寫軟件功能規(guī)約(functionalspecification)軟件功能規(guī)約是軟件功能的嚴(yán)格而完整的陳述。通常它只刻畫軟件系統(tǒng)“做什么”的外部功能,而不涉及系統(tǒng)“如何做”的內(nèi)部算法。典型的功能性語(yǔ)言有廣譜語(yǔ)言、Z語(yǔ)言。28/154設(shè)計(jì)性語(yǔ)言
designlanguage設(shè)計(jì)性語(yǔ)言用來(lái)書寫軟件設(shè)計(jì)規(guī)約(designspecification)軟件設(shè)計(jì)規(guī)約是軟件設(shè)計(jì)的嚴(yán)格而完整的陳述。一方面,它是軟件功能規(guī)約的算法性細(xì)化,刻畫軟件“如何做”的內(nèi)部算法,另一方面,它是軟件實(shí)現(xiàn)的依據(jù)。典型的設(shè)計(jì)性語(yǔ)言有PDL語(yǔ)言(ProgramDesignLanguage)29/154實(shí)現(xiàn)性語(yǔ)言
實(shí)現(xiàn)性語(yǔ)言用來(lái)書寫計(jì)算機(jī)程序?qū)崿F(xiàn)性語(yǔ)言也稱編程語(yǔ)言或程序設(shè)計(jì)語(yǔ)言(programminglanguage)程序設(shè)計(jì)語(yǔ)言可按語(yǔ)言的級(jí)別、對(duì)使用者的要求、應(yīng)用范圍、使用方式、成分性質(zhì)等多種角度進(jìn)行分類
30/154
按語(yǔ)言級(jí)別分:低級(jí)語(yǔ)言和高級(jí)語(yǔ)言
低級(jí)語(yǔ)言是與特定計(jì)算機(jī)體系結(jié)構(gòu)密切相關(guān)的程序設(shè)計(jì)語(yǔ)言,如機(jī)器語(yǔ)言、匯編語(yǔ)言。其特點(diǎn)是與機(jī)器有關(guān),功效高,但使用復(fù)雜,開(kāi)發(fā)費(fèi)時(shí),難維護(hù)。
高級(jí)語(yǔ)言是不反映特定計(jì)算機(jī)體系結(jié)構(gòu)的程序設(shè)計(jì)語(yǔ)言,它的表示方法比低級(jí)語(yǔ)言更接近于待解問(wèn)題的表示方法。其特點(diǎn)是在一定程度上與具體機(jī)器無(wú)關(guān),易學(xué)、易用、易維護(hù)。但高級(jí)語(yǔ)言程序經(jīng)編譯后產(chǎn)生的目標(biāo)程序的功效往往較低。31/154
按用戶要求分:過(guò)程式語(yǔ)言和非過(guò)程式語(yǔ)言
過(guò)程式語(yǔ)言(procedurallanguage)是通過(guò)指明一列可執(zhí)行的運(yùn)算及運(yùn)算次序來(lái)描述計(jì)算過(guò)程的程序設(shè)計(jì)語(yǔ)言。如FORTRAN、COBOL、C等。
非過(guò)程式語(yǔ)言(nonprocedurallanguage)是不顯式指明處理過(guò)程細(xì)節(jié)的程序設(shè)計(jì)語(yǔ)言。在這種語(yǔ)言中盡量引進(jìn)各種抽象度較高的非過(guò)程性描述手段,以期做到在程序中增加“做什么”的描述成分,減少“如何做”的細(xì)節(jié)描述。如第四代語(yǔ)言(4GL)、函數(shù)式語(yǔ)言、邏輯式語(yǔ)言。32/154也可稱:命令式語(yǔ)言和申述式語(yǔ)言
命令式語(yǔ)言(imperativelanguage)即過(guò)程式語(yǔ)言。
申述式語(yǔ)言(declarativelanguage)是著重描述要處理什么,而非描述如何處理的語(yǔ)言。申述式語(yǔ)言程序是關(guān)于問(wèn)題解的約束陳述,這些約束迫使含于實(shí)現(xiàn)中的算法處理機(jī)制生成一個(gè)解或一組解。如函數(shù)式語(yǔ)言、邏輯式語(yǔ)言。33/154
函數(shù)式語(yǔ)言(functionalprogramminglanguage)中函數(shù)是構(gòu)造程序的基本成分,它提供一些設(shè)施用于構(gòu)造更為復(fù)雜的函數(shù)。程序人員根據(jù)提出的問(wèn)題去定義求解函數(shù)(即主程序),其中可能包含一些輔助函數(shù)。如Lisp語(yǔ)言。
邏輯式語(yǔ)言(logicprogramminglanguage)的基本運(yùn)算單位是謂詞。謂詞定義了變?cè)g的邏輯關(guān)系。例如,Prolog語(yǔ)言的基本形式是Horn子句,其程序圍繞著某一主題的事實(shí)、規(guī)則和詢問(wèn)三類語(yǔ)句組成。這三類語(yǔ)句分別用來(lái)陳述事實(shí)、定義規(guī)則和提出問(wèn)題。34/154
按應(yīng)用范圍分:通用語(yǔ)言和專用語(yǔ)言
通用語(yǔ)言指目標(biāo)非單一的語(yǔ)言,如FORTRAN、COBOL、C等。
專用語(yǔ)言指目標(biāo)單一的語(yǔ)言,如自動(dòng)數(shù)控程序APT。35/154
按使用方式分:交互式語(yǔ)言和非交互式語(yǔ)言
交互式語(yǔ)言指具有反映人機(jī)交互作用的語(yǔ)言,如BASIC。
非交互式語(yǔ)言指不反映人機(jī)交互作用的語(yǔ)言,如FORTRAN、COBOL。36/154
按成分性質(zhì)分:順序語(yǔ)言、并發(fā)語(yǔ)言、分布語(yǔ)言
順序語(yǔ)言指只含順序成分的語(yǔ)言,如FORTRAN、C。
并發(fā)語(yǔ)言指含有并發(fā)成分的語(yǔ)言,如Modula、Ada、并發(fā)Pascal。
分布語(yǔ)言指考慮到分布計(jì)算要求的語(yǔ)言,如Modula。37/154文檔語(yǔ)言
documentationlanguage
文檔語(yǔ)言用來(lái)書寫軟件文檔。計(jì)算機(jī)軟件文檔是計(jì)算機(jī)開(kāi)發(fā)、維護(hù)和使用過(guò)程的檔案資料和對(duì)軟件本身的闡述性資料。通常用自然語(yǔ)言或半形式化語(yǔ)言書寫。38/154內(nèi)容摘要計(jì)算機(jī)軟件軟件工程軟件過(guò)程軟件過(guò)程模型敏捷軟件開(kāi)發(fā)CASE工具與環(huán)境39/154軟件工程定義1968年NATO(北大西洋公約組織)會(huì)議上首次提出FritzBauer:軟件工程是為了經(jīng)濟(jì)地獲得可靠的和能在實(shí)際機(jī)器上高效運(yùn)行的軟件而建立和使用的好的工程原則IEEE:軟件工程是(1)將系統(tǒng)化的、規(guī)范的、可度量的方法應(yīng)用于軟件的開(kāi)發(fā)、運(yùn)行和維護(hù)的過(guò)程,即將工程化應(yīng)用于軟件中;(2)(1)中所述方法的研究計(jì)算機(jī)科學(xué)技術(shù)百科全書:軟件工程是應(yīng)用計(jì)算機(jī)科學(xué)、數(shù)學(xué)及管理科學(xué)等原理,以工程化的原則和方法制作軟件的工程40/154軟件工程的框架
目標(biāo):生產(chǎn)具有正確性、可用性以及價(jià)格合宜的產(chǎn)品
正確性反映軟件產(chǎn)品實(shí)現(xiàn)相應(yīng)功能規(guī)約的程度;
可用性反映軟件的基本結(jié)構(gòu)、實(shí)現(xiàn)及其文檔為用戶可用的程度;
價(jià)格合宜反映軟件開(kāi)發(fā)與運(yùn)行的總代價(jià)滿足用戶要求的程度。41/154
過(guò)程(Process):生產(chǎn)一個(gè)最終滿足需求且達(dá)到工程目標(biāo)的軟件產(chǎn)品所需要的步驟軟件工程過(guò)程包括:開(kāi)發(fā)過(guò)程、運(yùn)作過(guò)程、維護(hù)過(guò)程、管理過(guò)程、支持過(guò)程、獲取過(guò)程、供應(yīng)過(guò)程、剪裁過(guò)程等42/154
原則:選取適宜的開(kāi)發(fā)模型采用合適的設(shè)計(jì)方法提供高質(zhì)量的工程支持重視軟件工程的管理43/154軟件生存周期
(softwarelifecycle)軟件有一個(gè)孕育、誕生、成長(zhǎng)、成熟、衰亡的生存過(guò)程。這個(gè)過(guò)程即為計(jì)算機(jī)軟件的生存周期軟件生存周期大體可分為如下幾個(gè)活動(dòng):計(jì)算機(jī)系統(tǒng)工程、需求分析、設(shè)計(jì)、編碼、測(cè)試、運(yùn)行和維護(hù)44/154計(jì)算機(jī)系統(tǒng)工程計(jì)算機(jī)系統(tǒng)包括計(jì)算機(jī)硬件、軟件、使用計(jì)算機(jī)系統(tǒng)的人、數(shù)據(jù)庫(kù)、文檔、規(guī)程等系統(tǒng)元素。計(jì)算機(jī)系統(tǒng)工程的任務(wù):確定待開(kāi)發(fā)軟件的總體要求和范圍,以及它與其它計(jì)算機(jī)系統(tǒng)元素之間的關(guān)系進(jìn)行成本估算,做出進(jìn)度安排進(jìn)行可行性分析,即從經(jīng)濟(jì)、技術(shù)、法律等方面分析待開(kāi)發(fā)的軟件是否有可行的解決方案,并在若干個(gè)可行的解決方案中作出選擇。45/154軟件需求分析主要解決待開(kāi)發(fā)軟件要“做什么”的問(wèn)題確定軟件的功能、性能、數(shù)據(jù)、界面等要求,生成軟件需求規(guī)約。46/154軟件設(shè)計(jì)主要解決待開(kāi)發(fā)軟件“怎么做”的問(wèn)題。軟件設(shè)計(jì)通常可分為系統(tǒng)設(shè)計(jì)(也稱概要設(shè)計(jì)或總體設(shè)計(jì))和詳細(xì)設(shè)計(jì)。系統(tǒng)設(shè)計(jì)的任務(wù)是設(shè)計(jì)軟件系統(tǒng)的體系結(jié)構(gòu),包括軟件系統(tǒng)的組成成分、各成分的功能和接口、成分間的連接和通信,同時(shí)設(shè)計(jì)全局?jǐn)?shù)據(jù)結(jié)構(gòu);詳細(xì)設(shè)計(jì)的任務(wù)是設(shè)計(jì)各個(gè)組成成分的實(shí)現(xiàn)細(xì)節(jié),包括局部數(shù)據(jù)結(jié)構(gòu)和算法等。47/154編碼
用某種程序設(shè)計(jì)語(yǔ)言,將設(shè)計(jì)的結(jié)果轉(zhuǎn)換為可執(zhí)行的程序代碼。測(cè)試發(fā)現(xiàn)并糾正軟件中的錯(cuò)誤和缺陷。測(cè)試主要包括單元測(cè)試、集成測(cè)試、確認(rèn)測(cè)試和系統(tǒng)測(cè)試。運(yùn)行和維護(hù)在軟件運(yùn)行期間,當(dāng)發(fā)現(xiàn)了軟件中潛藏的錯(cuò)誤或需要增加新的功能或使軟件適應(yīng)外界環(huán)境的變化等情況出現(xiàn)時(shí)對(duì)軟件進(jìn)行修改。48/154內(nèi)容摘要計(jì)算機(jī)軟件軟件工程軟件過(guò)程軟件過(guò)程模型敏捷軟件開(kāi)發(fā)CASE工具與環(huán)境49/154軟件過(guò)程軟件過(guò)程是軟件生存周期中的一系列相關(guān)的過(guò)程。過(guò)程是活動(dòng)的集合,活動(dòng)是任務(wù)的集合。軟件過(guò)程有三層含義:個(gè)體含義,即指軟件產(chǎn)品或系統(tǒng)在生存周期中的某一類活動(dòng)的集合,如軟件開(kāi)發(fā)過(guò)程,軟件管理過(guò)程等;整體含義,即指軟件產(chǎn)品或系統(tǒng)在所有上述含義下的軟件過(guò)程的總體;工程含義,即指解決軟件過(guò)程的工程,它應(yīng)用軟件工程的原則、方法來(lái)構(gòu)造軟件過(guò)程模型,并結(jié)合軟件產(chǎn)品的具體要求進(jìn)行實(shí)例化,以及在用戶環(huán)境下的運(yùn)作,以此進(jìn)一步提高軟件生產(chǎn)率,降低成本。50/154ISO12207軟件生存周期過(guò)程ISO/IEC12207標(biāo)準(zhǔn)把軟件生存周期中可以開(kāi)展的活動(dòng)分為5個(gè)基本過(guò)程,8個(gè)支持過(guò)程和4個(gè)組織過(guò)程。每一個(gè)過(guò)程劃分為一組活動(dòng),每項(xiàng)活動(dòng)進(jìn)一步劃分為一組任務(wù)。51/154
基本(primary)過(guò)程供各當(dāng)事方在軟件生存周期期間使用。包括:獲?。╝cquisition)過(guò)程:確定需方和組織向供方獲取系統(tǒng)、軟件或軟件服務(wù)的活動(dòng)。供應(yīng)(supply)過(guò)程:確定供方和組織向需方提供系統(tǒng)、軟件或軟件服務(wù)的活動(dòng)。開(kāi)發(fā)(development)過(guò)程:確定開(kāi)發(fā)者和組織定義并開(kāi)發(fā)軟件的活動(dòng)。運(yùn)作(operation)過(guò)程:確定操作者和組織在規(guī)定的環(huán)境中為其用戶提供運(yùn)行計(jì)算機(jī)系統(tǒng)服務(wù)的活動(dòng)。維護(hù)(maintenance)過(guò)程:確定維護(hù)者和組織提供維護(hù)軟件服務(wù)的活動(dòng)。52/154
支持(supporting)過(guò)程用于支持其他過(guò)程,它有助于軟件項(xiàng)目的成功和質(zhì)量提高。包括:文檔編制(documentation)過(guò)程:確定記錄生存周期過(guò)程產(chǎn)生的信息所需的活動(dòng)。配置管理(configurationmanagement)過(guò)程:確定配置管理活動(dòng)。質(zhì)量保證(qualityassurance)過(guò)程:確定客觀地保證軟件和過(guò)程符合規(guī)定的要求以及已建立的計(jì)劃所需的活動(dòng)。53/154驗(yàn)證(verification)過(guò)程:根據(jù)軟件項(xiàng)目要求,按不同深度確定驗(yàn)證軟件所需的活動(dòng)。確認(rèn)(validation)過(guò)程:確定確認(rèn)軟件所需的活動(dòng)。聯(lián)合評(píng)審(jointreview)過(guò)程:確定評(píng)價(jià)一項(xiàng)活動(dòng)的狀態(tài)和產(chǎn)品所需的活動(dòng)。審計(jì)(audit)過(guò)程:確定為判斷符合要求、計(jì)劃和合同所需的活動(dòng)。問(wèn)題解決(problemresolution)過(guò)程:確定一個(gè)用于分析和解決問(wèn)題的過(guò)程。54/154
組織(organizational)過(guò)程用于軟件組織建立和實(shí)現(xiàn)構(gòu)成相關(guān)生存周期的基礎(chǔ)結(jié)構(gòu)和人事制度,并不斷改進(jìn)這種結(jié)構(gòu)和過(guò)程。包括:管理(management)過(guò)程:確定生存周期過(guò)程中的基本管理活動(dòng)?;A(chǔ)設(shè)施(infrastructure)過(guò)程:確定建立生存周期過(guò)程基礎(chǔ)結(jié)構(gòu)的基本活動(dòng)。改進(jìn)(improvement)過(guò)程:確定一個(gè)組織為建立、測(cè)量、控制和改進(jìn)其生存周期過(guò)程所需開(kāi)展的基本活動(dòng)。培訓(xùn)(training)過(guò)程:確定提供經(jīng)適當(dāng)培訓(xùn)的人員所需的活動(dòng)。55/154ISO/IEC12207為軟件生存周期過(guò)程建立了一個(gè)公共框架,它提供了一組標(biāo)準(zhǔn)的過(guò)程、活動(dòng)和任務(wù)。對(duì)于一個(gè)軟件項(xiàng)目,可根據(jù)其具體情況對(duì)標(biāo)準(zhǔn)的過(guò)程、活動(dòng)和任務(wù)進(jìn)行剪裁,即刪除不適用的過(guò)程、活動(dòng)和任務(wù)。ISO/IEC12207標(biāo)準(zhǔn)的附錄A中的剪裁(tailoring)過(guò)程規(guī)定了在針對(duì)該標(biāo)準(zhǔn)進(jìn)行剪裁時(shí)所需要的基本活動(dòng)(包括:明確項(xiàng)目環(huán)境;請(qǐng)求輸入;選擇過(guò)程、活動(dòng)和任務(wù);把剪裁決定和理由寫成文檔),剪裁過(guò)程的輸出是:剪裁決定和理由記錄。附錄B就剪裁要點(diǎn)提供簡(jiǎn)要說(shuō)明,并列出一些關(guān)鍵要素,可以根據(jù)這些要素作出剪裁決定。56/154能力成熟度模型CMMCMM(CapabilityMaturityModel)即能力成熟度模型,是美國(guó)卡耐基梅隆大學(xué)軟件工程研究所(SEI)在美國(guó)國(guó)防部資助下于二十世紀(jì)八十年代末建立的,用于評(píng)價(jià)軟件機(jī)構(gòu)的軟件過(guò)程能力成熟度的模型。此模型在建立和發(fā)展之初,主要目的在于提供一種評(píng)價(jià)軟件承接方能力的方法,為大型軟件項(xiàng)目的招投標(biāo)活動(dòng)提供一種全面而客觀的評(píng)審依據(jù)。而發(fā)展到后來(lái),又同時(shí)被軟件組織用于改進(jìn)其軟件過(guò)程。57/154軟件組織的成熟與不成熟1.不成熟的軟件組織軟件過(guò)程一般并不預(yù)先計(jì)劃,而是在項(xiàng)目進(jìn)行中由實(shí)際工作人員及管理員臨時(shí)計(jì)劃有時(shí),即使軟件過(guò)程已計(jì)劃好,仍不按計(jì)劃執(zhí)行沒(méi)有一個(gè)客觀的基準(zhǔn)來(lái)判斷產(chǎn)品質(zhì)量,或解決產(chǎn)品和過(guò)程中的問(wèn)題對(duì)軟件過(guò)程步驟如何影響軟件質(zhì)量,一無(wú)所知,產(chǎn)品質(zhì)量得不到保證。而且,一些提高質(zhì)量的環(huán)節(jié),如檢查、測(cè)試等經(jīng)常由于要趕進(jìn)度而減少或取消58/154產(chǎn)品在交付前,對(duì)客戶來(lái)說(shuō),一切都是不可見(jiàn)的沒(méi)有長(zhǎng)遠(yuǎn)目標(biāo),管理員通常只關(guān)注解決任何當(dāng)前的危機(jī)由于沒(méi)有實(shí)事求是地估計(jì)進(jìn)度、預(yù)算,因此他們經(jīng)常超支、超時(shí)。當(dāng)最后期限臨近,他們往往在功能性和質(zhì)量上妥協(xié),或以加班加點(diǎn)方式趕進(jìn)度59/1542.成熟的軟件組織具有全面而充分的組織和管理軟件開(kāi)發(fā)和維護(hù)過(guò)程的能力管理員監(jiān)視軟件產(chǎn)品的質(zhì)量以及生產(chǎn)這些產(chǎn)品的過(guò)程制定了一系列客觀基準(zhǔn)來(lái)判別產(chǎn)品質(zhì)量,并分析產(chǎn)品和過(guò)程中的問(wèn)題進(jìn)度和預(yù)算可以按照以前積累的經(jīng)驗(yàn)來(lái)制定,結(jié)果可行。預(yù)期的成本、進(jìn)度、功能與性能和質(zhì)量都能實(shí)現(xiàn),并達(dá)到目的能準(zhǔn)確及時(shí)地向工作人員通報(bào)實(shí)際軟件過(guò)程,并按照計(jì)劃有規(guī)則地(前后一致,不互相矛盾)工作60/154凡規(guī)定的過(guò)程都編成文檔軟件過(guò)程和實(shí)際工作方法相吻合。必要時(shí),過(guò)程定義會(huì)及時(shí)更新,通過(guò)測(cè)試,或者通過(guò)成本-效益分析來(lái)改進(jìn)過(guò)程。全體人員普遍地、積極地參與改進(jìn)軟件過(guò)程的活動(dòng)。在組織內(nèi)部的各項(xiàng)目中,每人在軟件過(guò)程中的職責(zé)都十分清晰而明確,每人各守其責(zé),協(xié)同工作,有條不紊,甚至能預(yù)見(jiàn)和防范問(wèn)題的發(fā)生。61/154軟件過(guò)程成熟度等級(jí)CMM提供了一個(gè)成熟度等級(jí)框架:1級(jí)-初始級(jí)、2級(jí)-可重復(fù)級(jí)、3級(jí)-已定義級(jí)、4級(jí)-已管理級(jí)和5級(jí)-優(yōu)化級(jí)。1.初始(initial)級(jí):軟件過(guò)程的特點(diǎn)是無(wú)秩序的,甚至是混亂的。幾乎沒(méi)有什么過(guò)程是經(jīng)過(guò)妥善定義的,成功往往依賴于個(gè)人或小組的努力。2.可重復(fù)(repeatable)級(jí):建立了基本的項(xiàng)目管理過(guò)程來(lái)跟蹤成本、進(jìn)度和功能特性。制定了必要的過(guò)程紀(jì)律,能重復(fù)早先類似應(yīng)用項(xiàng)目取得的成功。62/1543.已定義(defined)級(jí):己將管理和工程活動(dòng)兩方面的軟件過(guò)程文檔化、標(biāo)準(zhǔn)化,并綜合成該機(jī)構(gòu)的標(biāo)準(zhǔn)軟件過(guò)程。所有項(xiàng)目均使用經(jīng)批準(zhǔn)、剪裁的標(biāo)準(zhǔn)軟件過(guò)程來(lái)開(kāi)發(fā)和維護(hù)軟件。4.已管理(managed)級(jí):收集對(duì)軟件過(guò)程和產(chǎn)品質(zhì)量的詳細(xì)度量值,對(duì)軟件過(guò)程和產(chǎn)品都有定量的理解和控制。5.優(yōu)化(optimizing)級(jí):整個(gè)組織關(guān)注軟件過(guò)程改進(jìn)的持續(xù)性、預(yù)見(jiàn)及增強(qiáng)自身,防止缺陷及問(wèn)題的發(fā)生。過(guò)程的量化反饋和先進(jìn)的新思想、新技術(shù)促使過(guò)程不斷改進(jìn)。63/1545.優(yōu)化級(jí)4.已管理級(jí)3.已定義級(jí)2.可重復(fù)級(jí)1.初始級(jí)標(biāo)準(zhǔn)、一致的過(guò)程有紀(jì)律的過(guò)程可預(yù)測(cè)的過(guò)程持續(xù)改進(jìn)的過(guò)程軟件過(guò)程成熟度的5個(gè)等級(jí)64/154成熟度等級(jí)關(guān)鍵過(guò)程域共同特性關(guān)鍵實(shí)踐包含劃分為包含過(guò)程能力表明目標(biāo)實(shí)現(xiàn)實(shí)施或制度化解決活動(dòng)或基礎(chǔ)設(shè)施描述CMM結(jié)構(gòu)能力成熟度模型的結(jié)構(gòu)65/154能力成熟度模型的結(jié)構(gòu)
成熟度等級(jí)表明了一個(gè)軟件組織的過(guò)程能力的水平。除初始級(jí)外,每個(gè)成熟度等級(jí)都包含若干個(gè)關(guān)鍵過(guò)程域(KeyProcessArea,簡(jiǎn)稱KPA)(見(jiàn)表1.2)達(dá)到某個(gè)成熟度級(jí)別,該級(jí)別(以及較低級(jí)別)的所有關(guān)鍵過(guò)程域都必須得到滿足,并且過(guò)程必須實(shí)現(xiàn)制度化。66/154CMM提供了18個(gè)關(guān)鍵過(guò)程域,每個(gè)關(guān)鍵過(guò)程域都有一組對(duì)改進(jìn)過(guò)程能力非常重要的目標(biāo),并確定了一組相應(yīng)的關(guān)鍵實(shí)踐
目標(biāo)說(shuō)明了每一個(gè)關(guān)鍵過(guò)程域的范圍、界限和意義。
關(guān)鍵實(shí)踐描述了建立一個(gè)過(guò)程能力必須完成的活動(dòng)和必須具備的基礎(chǔ)設(shè)施,完成了這些關(guān)鍵實(shí)踐就達(dá)到了相應(yīng)關(guān)鍵過(guò)程域的目標(biāo),該關(guān)鍵過(guò)程域也就得到了滿足。每個(gè)關(guān)鍵過(guò)程域的關(guān)鍵實(shí)踐都是按照五個(gè)共同特性(執(zhí)行約定,執(zhí)行能力,執(zhí)行活動(dòng),測(cè)量和分析,驗(yàn)證實(shí)現(xiàn))進(jìn)行組織的,主要解決關(guān)鍵實(shí)踐的實(shí)施或制度化問(wèn)題。67/154
共同特性將描述關(guān)鍵過(guò)程域的關(guān)鍵實(shí)踐組織起來(lái)。共同特性是一些屬性,指明一個(gè)關(guān)鍵過(guò)程域的執(zhí)行和規(guī)范化是否有效、可重復(fù)和可持續(xù)。共有5個(gè)共同特性:執(zhí)行約定,執(zhí)行能力,執(zhí)行活動(dòng),測(cè)量和分析,驗(yàn)證實(shí)現(xiàn)。1)執(zhí)行約定:執(zhí)行約定描述機(jī)構(gòu)為確保過(guò)程的建立和持續(xù)而必須采取的一些措施。典型內(nèi)容包括建立機(jī)構(gòu)策略和領(lǐng)導(dǎo)關(guān)系。68/1542)執(zhí)行能力:執(zhí)行能力描述了項(xiàng)目或機(jī)構(gòu)完整地實(shí)現(xiàn)軟件過(guò)程所必須有的先決條件。典型內(nèi)容包括資源、機(jī)構(gòu)結(jié)構(gòu)和培訓(xùn)。3)執(zhí)行活動(dòng):執(zhí)行活動(dòng)描述了執(zhí)行一個(gè)關(guān)鍵過(guò)程域所必需的活動(dòng)、任務(wù)和規(guī)程。典型內(nèi)容包括制定計(jì)劃和規(guī)程、執(zhí)行和跟蹤以及必要時(shí)采取糾正措施。69/1544)測(cè)量和分析:測(cè)量和分析描述了為確定與過(guò)程有關(guān)的狀態(tài)所需的基本測(cè)量實(shí)踐。這些測(cè)量可用來(lái)控制和改進(jìn)過(guò)程。典型內(nèi)容包括可能采用的測(cè)量實(shí)例。5)驗(yàn)證實(shí)現(xiàn):驗(yàn)證實(shí)現(xiàn)描述了為確保執(zhí)行的活動(dòng)與已建立的過(guò)程一致所采取的步驟。典型內(nèi)容包括管理部門和軟件質(zhì)量保證組實(shí)施的評(píng)審和審核。70/154在執(zhí)行活動(dòng)這個(gè)共同特性中的實(shí)踐描述了建立一個(gè)過(guò)程能力所必須完成的活動(dòng)。所有其他實(shí)踐共同形成了一個(gè)使機(jī)構(gòu)能將執(zhí)行活動(dòng)中描述的實(shí)踐進(jìn)行規(guī)范化的基礎(chǔ)。各關(guān)鍵過(guò)程域的詳細(xì)描述,參見(jiàn)《能力成熟度模型(CMM):軟件過(guò)程改進(jìn)指南》,卡耐基梅隆大學(xué)軟件工程研究所編著,劉孟仁等譯,電子工業(yè)出版社出版。71/154缺陷預(yù)防技術(shù)更新管理過(guò)程更改管理優(yōu)化級(jí)定量過(guò)程管理軟件質(zhì)量管理已管理級(jí)機(jī)構(gòu)過(guò)程焦點(diǎn)機(jī)構(gòu)過(guò)程定義培訓(xùn)大綱綜合軟件管理軟件產(chǎn)品工程組間協(xié)調(diào)同行評(píng)審已定義級(jí)需求管理軟件項(xiàng)目計(jì)劃軟件項(xiàng)目跟蹤和監(jiān)督軟件分包合同管理軟件質(zhì)量保證軟件配置管理可重復(fù)級(jí)初始級(jí)能力成熟度級(jí)別中的關(guān)鍵過(guò)程域72/154關(guān)鍵過(guò)程域?qū)嵗龣C(jī)構(gòu)過(guò)程焦點(diǎn)第3級(jí)的關(guān)鍵過(guò)程域:已定義級(jí)
機(jī)構(gòu)過(guò)程焦點(diǎn)的目的是,為能改進(jìn)機(jī)構(gòu)整體軟件過(guò)程能力的軟件過(guò)程活動(dòng)建立機(jī)構(gòu)的職責(zé)。
機(jī)構(gòu)過(guò)程焦點(diǎn)包括,建立和維護(hù)機(jī)構(gòu)的軟件過(guò)程和項(xiàng)目軟件過(guò)程(之間)的默契關(guān)系,并協(xié)調(diào)有關(guān)評(píng)估、開(kāi)發(fā)、維護(hù)和改進(jìn)這些過(guò)程的活動(dòng)。機(jī)構(gòu)提供長(zhǎng)期的約定和資源,以協(xié)調(diào)現(xiàn)在和將來(lái)的軟件項(xiàng)目的軟件過(guò)程的開(kāi)發(fā)和維護(hù)。該項(xiàng)工作由某個(gè)小組實(shí)施,例如軟件工程過(guò)程組。它負(fù)責(zé)機(jī)構(gòu)的軟件過(guò)程活動(dòng),特別是負(fù)責(zé)開(kāi)發(fā)和維護(hù)機(jī)構(gòu)標(biāo)準(zhǔn)軟件過(guò)程和相關(guān)過(guò)程資源(如在機(jī)構(gòu)過(guò)程定義關(guān)鍵過(guò)程域中說(shuō)明的),并協(xié)調(diào)軟件項(xiàng)目的過(guò)程活動(dòng)。73/154目標(biāo)目標(biāo)1:機(jī)構(gòu)內(nèi)部軟件過(guò)程的制定和改進(jìn)活動(dòng)協(xié)調(diào)一致。目標(biāo)2:相對(duì)于過(guò)程標(biāo)準(zhǔn),所使用的軟件過(guò)程的優(yōu)勢(shì)和薄弱環(huán)節(jié)標(biāo)識(shí)清楚。目標(biāo)3:機(jī)構(gòu)級(jí)的過(guò)程開(kāi)發(fā)和改進(jìn)活動(dòng)有計(jì)劃。74/154執(zhí)行約定約定1:機(jī)構(gòu)遵循書面的管理策略,協(xié)調(diào)整個(gè)機(jī)構(gòu)范圍內(nèi)的軟件過(guò)程開(kāi)發(fā)和改進(jìn)活動(dòng)。
該策略一般規(guī)定:1.建立一個(gè)小組,負(fù)責(zé)機(jī)構(gòu)級(jí)的軟件過(guò)程活動(dòng),使這些活動(dòng)與各項(xiàng)目協(xié)調(diào)一致。
2.定期評(píng)估項(xiàng)目所使用的軟件過(guò)程,以確定其優(yōu)勢(shì)和薄弱環(huán)節(jié)。
75/1543.對(duì)機(jī)構(gòu)標(biāo)準(zhǔn)軟件過(guò)程進(jìn)行合理地剪裁,以得到項(xiàng)目使用的軟件過(guò)程。
關(guān)于機(jī)構(gòu)標(biāo)準(zhǔn)軟件過(guò)程,參見(jiàn)綜合軟件管理關(guān)鍵過(guò)程域的活動(dòng)1。4.每個(gè)項(xiàng)目的軟件過(guò)程、工具和方法的改進(jìn)和其他有用信息,可用于其他項(xiàng)目。76/154約定2:上級(jí)管理部門倡導(dǎo)和支持機(jī)構(gòu)的軟件過(guò)程開(kāi)發(fā)和改進(jìn)活動(dòng)。
上級(jí)管理部門:
1.向機(jī)構(gòu)成員和負(fù)責(zé)人說(shuō)明有關(guān)軟件過(guò)程活動(dòng)的約定。
2.制定資金、人員配備和其他資源的長(zhǎng)期計(jì)劃和約定。
3.制定管理和執(zhí)行有關(guān)軟件過(guò)程開(kāi)發(fā)和改進(jìn)活動(dòng)的策略。77/154約定3:上級(jí)管理部門監(jiān)督機(jī)構(gòu)的軟件過(guò)程開(kāi)發(fā)和改進(jìn)活動(dòng)。
l.確保機(jī)構(gòu)標(biāo)準(zhǔn)軟件過(guò)程滿足企業(yè)目標(biāo)和策略。
2.提出關(guān)于軟件過(guò)程開(kāi)發(fā)和改進(jìn)活動(dòng)優(yōu)先次序的建議。
3.參與制定軟件過(guò)程開(kāi)發(fā)和改進(jìn)計(jì)劃。
a.上級(jí)管理部門與更高層人員和負(fù)責(zé)人共同協(xié)調(diào)軟件過(guò)程需求及問(wèn)題
b.上級(jí)管理部門與該機(jī)構(gòu)負(fù)責(zé)人進(jìn)行協(xié)調(diào),以獲得負(fù)責(zé)人和機(jī)構(gòu)成員的支持和參與78/154執(zhí)行能力能力1:有一個(gè)負(fù)責(zé)機(jī)構(gòu)的軟件過(guò)程活動(dòng)的小組。
一個(gè)小組是一些部門、負(fù)責(zé)人和人員的組合,負(fù)責(zé)一組任務(wù)和活動(dòng)。小組的規(guī)??梢圆煌瓤梢允菃蝹€(gè)兼職的人,也可以是多個(gè)來(lái)自不同部門的兼職人員,也可以由幾個(gè)專職人員組成。組成小組時(shí)考慮的因素包括:分派的任務(wù)和活動(dòng)、項(xiàng)目規(guī)模、機(jī)構(gòu)結(jié)構(gòu)和機(jī)構(gòu)文化。某些小組,如軟件質(zhì)量保證組,集中關(guān)注項(xiàng)目活動(dòng);而其他一些小組,例如軟件工程過(guò)程組,集中關(guān)注機(jī)構(gòu)范圍內(nèi)的活動(dòng)。
79/154
1.條件可能時(shí),小組成員以專職工作的軟件專業(yè)人員為核心,并盡可能有其他的兼職人員支持。
該小組最一般的例子是軟件工程過(guò)程(SEPG)。
2.小組成員中有軟件工程及軟件相關(guān)科目的代表。軟件工程及軟件相關(guān)科目的實(shí)例有:軟件需求分析軟件設(shè)計(jì)程序編碼軟件測(cè)試軟件配置管理軟件質(zhì)量保證80/154能力2:為實(shí)施機(jī)構(gòu)的軟件過(guò)程活動(dòng)提供了充足的資源和資金。
1.委派在特定領(lǐng)域具有特長(zhǎng)的人員支持該小組。特定領(lǐng)域的實(shí)例有:軟件重用計(jì)算機(jī)輔助軟件工程技術(shù)(CASE)測(cè)量培訓(xùn)課程開(kāi)設(shè)
2.有支持該機(jī)構(gòu)軟件過(guò)程活動(dòng)的工具。支持工具的實(shí)例有:統(tǒng)計(jì)分析工具桌面出版工具數(shù)據(jù)庫(kù)管理系統(tǒng)過(guò)程建模工具81/154能力3:負(fù)責(zé)機(jī)構(gòu)軟件過(guò)程活動(dòng)的小組成員接受過(guò)實(shí)施這些活動(dòng)所需的培訓(xùn)。培訓(xùn)的實(shí)例有:軟件工程實(shí)踐過(guò)程控制技術(shù)機(jī)構(gòu)過(guò)程變動(dòng)管理軟件過(guò)程計(jì)劃、管理和監(jiān)督技術(shù)轉(zhuǎn)變參見(jiàn)培訓(xùn)大綱關(guān)鍵過(guò)程域82/154能力4:軟件工程組和其他軟件相關(guān)小組的成員接受過(guò)機(jī)構(gòu)軟件過(guò)程活動(dòng)及其在這些活動(dòng)中的任務(wù)方面的定向培訓(xùn)。
參見(jiàn)培訓(xùn)大綱關(guān)鍵過(guò)程域83/154執(zhí)行活動(dòng)活動(dòng)1:定期評(píng)估軟件過(guò)程,并根據(jù)評(píng)估結(jié)果制定行動(dòng)計(jì)劃。
評(píng)估一般每隔一年、一年半至三年進(jìn)行一次。評(píng)估可針對(duì)機(jī)構(gòu)中所使用的所有軟件過(guò)程,也可通過(guò)對(duì)過(guò)程和項(xiàng)目進(jìn)行抽樣評(píng)估。評(píng)估機(jī)構(gòu)軟件過(guò)程能力的方法實(shí)例之一是SEI軟件過(guò)程評(píng)估方法。行動(dòng)計(jì)劃標(biāo)識(shí):涉及哪些評(píng)估結(jié)果針對(duì)評(píng)估結(jié)果實(shí)施更改軟件過(guò)程的準(zhǔn)則負(fù)責(zé)實(shí)施更改的小組或個(gè)人84/154活動(dòng)2:機(jī)構(gòu)制定和維護(hù)它的軟件過(guò)程開(kāi)發(fā)和改進(jìn)活動(dòng)的計(jì)劃。該計(jì)劃:以軟件過(guò)程評(píng)估后的行動(dòng)計(jì)劃和其他的機(jī)構(gòu)過(guò)程改進(jìn)倡議為基礎(chǔ)。確定要實(shí)施的活動(dòng)及實(shí)施這些活動(dòng)的進(jìn)度。確定負(fù)責(zé)這些活動(dòng)的小組和個(gè)人。確定所需的資源,包括人員配備和工具。初始發(fā)布和有大改動(dòng)時(shí)通過(guò)同行評(píng)審。
參見(jiàn)同行評(píng)審關(guān)鍵過(guò)程域。
6.機(jī)構(gòu)的軟件負(fù)責(zé)人和上級(jí)負(fù)責(zé)人評(píng)審認(rèn)可。85/154活動(dòng)3:在機(jī)構(gòu)級(jí)協(xié)調(diào)關(guān)于機(jī)構(gòu)和項(xiàng)目的軟件過(guò)程的開(kāi)發(fā)和改進(jìn)活動(dòng)。涉及的軟件過(guò)程有:
1.機(jī)構(gòu)標(biāo)準(zhǔn)軟件過(guò)程。關(guān)于機(jī)構(gòu)標(biāo)準(zhǔn)過(guò)程,參見(jiàn)機(jī)構(gòu)過(guò)程定義關(guān)鍵過(guò)程域的活動(dòng)1和活動(dòng)2。
2.項(xiàng)目定義的軟件過(guò)程。關(guān)于項(xiàng)目定義的軟件過(guò)程。參見(jiàn)綜合軟件管理關(guān)鍵過(guò)程域的活動(dòng)1和活動(dòng)2。86/154活動(dòng)4:在機(jī)構(gòu)級(jí)協(xié)調(diào)有關(guān)軟件過(guò)程數(shù)據(jù)庫(kù)的使用。機(jī)構(gòu)的軟件過(guò)程數(shù)據(jù)庫(kù)用來(lái)收集機(jī)構(gòu)和項(xiàng)目的軟件過(guò)程以及生成的軟件產(chǎn)品的信息。關(guān)于機(jī)構(gòu)的軟件過(guò)程數(shù)據(jù)庫(kù),參見(jiàn)機(jī)構(gòu)過(guò)程定義關(guān)鍵過(guò)程域的活動(dòng)5。87/154活動(dòng)5:監(jiān)控和評(píng)價(jià)機(jī)構(gòu)中限制使用的新過(guò)程、方法和工具。合適時(shí),推廣到機(jī)構(gòu)的其他部分?;顒?dòng)6:在機(jī)構(gòu)內(nèi)協(xié)調(diào)機(jī)構(gòu)和項(xiàng)目的軟件過(guò)程的培訓(xùn)。
1.制定有關(guān)機(jī)構(gòu)和項(xiàng)目軟件過(guò)程的專題培訓(xùn)計(jì)劃。
2.合適時(shí),培訓(xùn)由負(fù)責(zé)機(jī)構(gòu)軟件過(guò)程活動(dòng)的小組(如軟件工程過(guò)程組)或培訓(xùn)小組準(zhǔn)備和實(shí)施。參見(jiàn)培訓(xùn)大綱關(guān)鍵過(guò)程域。88/154活動(dòng)7:向與實(shí)施軟件過(guò)程有關(guān)的小組通報(bào)機(jī)構(gòu)和項(xiàng)目中軟件過(guò)程開(kāi)發(fā)和改進(jìn)活動(dòng)的情況。通報(bào)方式的實(shí)例有:過(guò)程電子公告板過(guò)程咨詢委員會(huì)工作小組信息交流會(huì)調(diào)查過(guò)程改進(jìn)組日常討論89/154測(cè)量和分析測(cè)量1:測(cè)量機(jī)構(gòu)的軟件過(guò)程開(kāi)發(fā)和改進(jìn)活動(dòng)的狀態(tài)測(cè)量的實(shí)例有:機(jī)構(gòu)在過(guò)程評(píng)估、開(kāi)發(fā)和改進(jìn)活動(dòng)中已完成的工作、工作量和耗費(fèi)的資金,與計(jì)劃相比較每次軟件過(guò)程的評(píng)估結(jié)果,與以前的評(píng)估結(jié)果和建議相比較90/154驗(yàn)證實(shí)現(xiàn)驗(yàn)證1:上級(jí)管理部門定期評(píng)審軟件過(guò)程開(kāi)發(fā)和改進(jìn)活動(dòng)。上級(jí)管理部門實(shí)施定期評(píng)審的主要目的是適當(dāng)?shù)亍⒓皶r(shí)地掌握軟件過(guò)程活動(dòng)。在滿足機(jī)構(gòu)需求的前提下,只要有適當(dāng)?shù)臋C(jī)制來(lái)報(bào)告異常情況,評(píng)審的時(shí)間間隔就盡可能長(zhǎng)些。
1.對(duì)照計(jì)劃,評(píng)審有關(guān)開(kāi)發(fā)和改進(jìn)軟件過(guò)程活動(dòng)的進(jìn)展和狀態(tài)。
2.討論低層不能解決的沖突和問(wèn)題。
3.指定和評(píng)審行動(dòng)措施,并跟蹤到關(guān)閉。
4.編寫評(píng)審的總結(jié)報(bào)告,并分發(fā)給相關(guān)的小組和個(gè)人。91/154能力成熟度模型集成CMMI
CapabilityMaturityModelIntegrationCMM的成功導(dǎo)致了各種模型的衍生,每一種模型都探討了某一特定領(lǐng)域中的過(guò)程改進(jìn)問(wèn)題SW-CMM:適用于軟件開(kāi)發(fā)SE-CMM:系統(tǒng)工程能力成熟度模型SA-CMM:適用于軟件獲取SECAM:系統(tǒng)工程能力評(píng)估模型PeopleCMM:討論軟件組織吸引、開(kāi)發(fā)、激勵(lì)、組織和留住人才的能力EIA/IS731:替代SW-CMM和SECAMIPD-CMM:適用于集成化產(chǎn)品開(kāi)發(fā)FAA-iCMM:集成了SE-CMM、SA-CMM、SW-CMM92/154相應(yīng)的國(guó)際標(biāo)準(zhǔn):ISO/IEC12207(軟件生存周期過(guò)程)、ISO/IEC15288(系統(tǒng)生存周期過(guò)程)、ISO/IEC15504(軟件過(guò)程評(píng)估)模型的繁衍導(dǎo)致模型框架、術(shù)語(yǔ)等方面的矛盾和不一致包含在當(dāng)代工程中各種各樣的學(xué)科和工程是密切交叉在一起的,應(yīng)用不同模型時(shí)效率低下且容易混淆,常常要付出極其昂貴的代價(jià)93/154美國(guó)國(guó)防部、美國(guó)國(guó)防工業(yè)委員會(huì)和SEI/CMU于1998年啟動(dòng)CMMI項(xiàng)目,希望CMMI是若干過(guò)程模型的綜合和改進(jìn),是支持多個(gè)工程學(xué)科和領(lǐng)域的系統(tǒng)的、一致的過(guò)程改進(jìn)框架,能適應(yīng)現(xiàn)代工程的特點(diǎn)和需要,能提高過(guò)程的質(zhì)量和工作效率2000年發(fā)布第一個(gè)CMMI模型CMMI-SE/SW/IPPDV1.0:集成了SW-CMM、EIA/IS731、IPDCMMV0.9894/1542002年1月發(fā)布CMMI-SE/SW/IPPDV1.1,美國(guó)國(guó)防工業(yè)委員會(huì)在第一屆CMMI國(guó)際研討會(huì)上宣布,CMMIV1.1將至少穩(wěn)定五年不變CMMI模型為每個(gè)學(xué)科的組合都提供兩種表示法:階段式模型和連續(xù)式模型95/154階段式模型階段式模型的結(jié)構(gòu)類同于軟件CMM,它關(guān)注組織的成熟度,其成熟度等級(jí)如下圖所示5.優(yōu)化的4.定量管理的3.已定義的2.已管理的1.初始的過(guò)程不可預(yù)測(cè)且缺乏控制過(guò)程為項(xiàng)目服務(wù)過(guò)程為組織服務(wù)過(guò)程已度量和控制集中于過(guò)程改進(jìn)階段式成熟度等級(jí)96/154階段式模型的成熟度等級(jí)結(jié)構(gòu)過(guò)程域2過(guò)程域n成熟度等級(jí)過(guò)程域1執(zhí)行的能力執(zhí)行的承諾定向?qū)崿F(xiàn)驗(yàn)證實(shí)現(xiàn)特定目標(biāo)共性目標(biāo)特定實(shí)踐共性實(shí)踐公共特征97/154CMMIV1.1的24個(gè)過(guò)程域的分組如下:成熟度等級(jí)過(guò)程域已管理的需求管理REQM,項(xiàng)目計(jì)劃PP,項(xiàng)目監(jiān)督和控制PMC,供應(yīng)商合同管理SAM,度量和分析MA,過(guò)程和產(chǎn)品質(zhì)量保證PPQA,配置管理CM已定義的需求開(kāi)發(fā)RD,技術(shù)解決方案TS,產(chǎn)品集成PI,驗(yàn)證VER,確認(rèn)VAL,組織級(jí)過(guò)程焦點(diǎn)OPF,組織級(jí)過(guò)程定義OPD,組織級(jí)培訓(xùn)OT,集成化項(xiàng)目管理IPM,風(fēng)險(xiǎn)管理RSKM,集成化建組IT,決策分析和解決方案DAR,組織級(jí)集成環(huán)境OEI定量管理的組織級(jí)過(guò)程性能OPP,項(xiàng)目定量管理QPM優(yōu)化的組織級(jí)改革和實(shí)施OID,因果分析和解決方案CAR98/154連續(xù)式模型連續(xù)式模型關(guān)注每個(gè)過(guò)程域的能力,一個(gè)組織對(duì)不同的過(guò)程域可以達(dá)到不同的過(guò)程域能力等級(jí)(Capabilitylevel,CL)。CMMI中包括六個(gè)過(guò)程域能力等級(jí),等級(jí)號(hào)為0~5。能力等級(jí)表明了單個(gè)過(guò)程域中組織執(zhí)行的好壞程度。允許組織對(duì)連續(xù)式模型的過(guò)程域進(jìn)行剪裁,也允許對(duì)不同的過(guò)程域采用不同的能力等級(jí)下圖給出了某組織的過(guò)程域能力等級(jí)99/154能力等級(jí)特征示意圖CL0未完成的CL1已執(zhí)行的CL2已管理的CL3已定義的CL4定量管理的CL5優(yōu)化的過(guò)程域RSKMIPMSAMPMCPPITQPM100/154能力等級(jí)包括共性目標(biāo)及相關(guān)的共性實(shí)踐,這些實(shí)踐在過(guò)程域內(nèi)被添加到特定目標(biāo)和實(shí)踐中。當(dāng)組織滿足過(guò)程域的特定目標(biāo)和共性目標(biāo)時(shí),就說(shuō)該組織達(dá)到了那個(gè)過(guò)程域的能力等級(jí)。能力等級(jí)2~5的名字與成熟度等級(jí)2~5同名,但含義不同。能力等級(jí)可以獨(dú)立地應(yīng)用于任何單獨(dú)的過(guò)程域,任何一個(gè)能力等級(jí)都必須滿足比它等級(jí)低的能力等級(jí)的所有準(zhǔn)則,各能力等級(jí)的含義簡(jiǎn)述如下:101/154CL0未完成的:過(guò)程域未執(zhí)行或未達(dá)到CL1中定義的所有目標(biāo)。CL1已執(zhí)行的:其共性目標(biāo)是過(guò)程將可標(biāo)識(shí)的輸入工作產(chǎn)品轉(zhuǎn)換成可標(biāo)識(shí)的輸出工作產(chǎn)品,以實(shí)現(xiàn)支持過(guò)程域的特定目標(biāo)。CL2已管理的:其共性目標(biāo)集中于已管理的過(guò)程的制度化。根據(jù)組織級(jí)政策規(guī)定過(guò)程的運(yùn)作將使用哪個(gè)過(guò)程,項(xiàng)目遵循已文檔化的計(jì)劃和過(guò)程描述,所有正在工作的人都有權(quán)使用足夠的資源,所有工作任務(wù)和工作產(chǎn)品都被監(jiān)控、控制和評(píng)審。102/154CL3已定義的:其共性目標(biāo)集中于已定義的過(guò)程的制度化。過(guò)程是按照組織的剪裁指南從組織的標(biāo)準(zhǔn)過(guò)程集中剪裁得到的,還必須收集過(guò)程資產(chǎn)和過(guò)程的度量,并用于將來(lái)對(duì)該過(guò)程的改進(jìn)上。CL4定量管理的:其共性目標(biāo)集中于可定量管理的過(guò)程的制度化。使用測(cè)量和質(zhì)量保證來(lái)控制和改進(jìn)過(guò)程域,建立和使用關(guān)于質(zhì)量和過(guò)程執(zhí)行的定量目標(biāo)作為管理準(zhǔn)則。CL5優(yōu)化的:使用量化(統(tǒng)計(jì)學(xué))手段改編和優(yōu)化過(guò)程域,以對(duì)付客戶要求的改變和持續(xù)改進(jìn)計(jì)劃中的過(guò)程域的功效。103/154連續(xù)式模型將24個(gè)過(guò)程域劃分為過(guò)程管理、項(xiàng)目管理、工程和支持四個(gè)過(guò)程組:連續(xù)式分組過(guò)程域過(guò)程管理組織級(jí)過(guò)程焦點(diǎn)OPF,組織級(jí)過(guò)程定義OPD,組織級(jí)培訓(xùn)OT,組織級(jí)過(guò)程性能OPP,組織級(jí)改革和實(shí)施OID項(xiàng)目管理項(xiàng)目計(jì)劃PP,項(xiàng)目監(jiān)督和控制PMC,供應(yīng)商合同管理SAM,集成化項(xiàng)目管理IPM,風(fēng)險(xiǎn)管理RSKM,集成化建組IT,項(xiàng)目定量管理QPM工程需求管理REQM,需求開(kāi)發(fā)RD,技術(shù)解決方案TS,產(chǎn)品集成PI,驗(yàn)證VER,確認(rèn)VAL支持配置管理CM,過(guò)程和產(chǎn)品質(zhì)量保證PPQA,度量和分析MA,決策分析和解決方案DAR,組織級(jí)集成環(huán)境OEI,因果分析和解決方案CAR104/154內(nèi)容摘要計(jì)算機(jī)軟件軟件工程軟件過(guò)程軟件過(guò)程模型敏捷軟件開(kāi)發(fā)CASE工具與環(huán)境105/154軟件過(guò)程模型軟件過(guò)程模型是軟件開(kāi)發(fā)全部過(guò)程、活動(dòng)和任務(wù)的結(jié)構(gòu)框架也稱軟件開(kāi)發(fā)模型或軟件生存周期模型106/154軟件過(guò)程模型典型的軟件過(guò)程模型有:瀑布模型(waterfallmodel)演化模型(evolutionarymodel)增量模型(incrementalmodel)原型模型(prototypingmodel)螺旋模型(spiralmodel)噴泉模型(waterfountainmodel)基于構(gòu)件的開(kāi)發(fā)模型(component-baseddevelopmentmodel)形式方法模型(formalmethodsmodel)107/154瀑布模型系統(tǒng)工程需求分析與規(guī)約設(shè)計(jì)與規(guī)約編碼與單元測(cè)試集成測(cè)試系統(tǒng)測(cè)試運(yùn)行與維護(hù)108/1541970年W.Royce提出瀑布模型
特征接受上一階段的結(jié)果作為本階段的輸入利用這一輸入實(shí)施本階段應(yīng)完成的活動(dòng)對(duì)本階段的工作進(jìn)行評(píng)審將本階段的結(jié)果作為輸出,傳遞給下一階段
缺點(diǎn)缺乏靈活性,難以適應(yīng)需求不明確或需求經(jīng)常變化的軟件開(kāi)發(fā)開(kāi)發(fā)早期存在的問(wèn)題往往要到交付使用時(shí)才發(fā)現(xiàn),維護(hù)代價(jià)大109/154許多軟件項(xiàng)目在開(kāi)發(fā)早期對(duì)軟件需求的認(rèn)識(shí)是模糊的、不確定的,因此軟件很難一次開(kāi)發(fā)成功。可以在獲取了一組基本的需求后,通過(guò)快速分析構(gòu)造出該軟件的一個(gè)初始可運(yùn)行版本,稱之謂原型(prototype),然后根據(jù)用戶在試用原型的過(guò)程中提出的意見(jiàn)和建議、或者增加新的需求,對(duì)原型進(jìn)行改造,獲得原型的新版本,重復(fù)這一過(guò)程,最終得到令客戶滿意的軟件產(chǎn)品。演化模型的開(kāi)發(fā)過(guò)程就是從構(gòu)造初始的原型出發(fā),逐步將其演化成最終軟件產(chǎn)品的過(guò)程。演化模型適用于對(duì)軟件需求缺乏準(zhǔn)確認(rèn)識(shí)的情況。典型的演化模型有:增量模型、原型模型、螺旋模型。演化模型110/154增量模型項(xiàng)目日歷時(shí)間軟件功能性和特征12345第2次增量發(fā)布增量212345第n次增量發(fā)布增量n12345第1次增量發(fā)布增量1┇5部署(發(fā)布,反饋)4構(gòu)造(編碼,測(cè)試)3建模(分析,設(shè)計(jì))2計(jì)劃1交流111/154增量模型將軟件的開(kāi)發(fā)過(guò)程分成若干個(gè)日程時(shí)間交錯(cuò)的線性序列,每個(gè)線性序列產(chǎn)生軟件的一個(gè)可發(fā)布的“增量”版本,后一個(gè)版本是對(duì)前一版本的修改和補(bǔ)充,重復(fù)增量發(fā)布的過(guò)程,直至產(chǎn)生最終的完善產(chǎn)品。增量模型融合了瀑布模型的基本成分(重復(fù)地應(yīng)用)和演化模型的迭代特征增量模型強(qiáng)調(diào)每一個(gè)增量都發(fā)布一個(gè)可運(yùn)行的產(chǎn)品112/154增量模型特別適用于:需求經(jīng)常變化的軟件開(kāi)發(fā)市場(chǎng)急需而開(kāi)發(fā)人員和資金不能在設(shè)定的市場(chǎng)期限之前實(shí)現(xiàn)一個(gè)完善的產(chǎn)品的軟件開(kāi)發(fā)增量模型能有計(jì)劃地管理技術(shù)風(fēng)險(xiǎn),如早期增量版本中避免采用尚未成熟的技術(shù)113/154原型(prototype)是預(yù)期系統(tǒng)的一個(gè)可執(zhí)行版本,它反映了系統(tǒng)性質(zhì)(如功能、計(jì)算結(jié)果等)的一個(gè)選定的子集。一個(gè)原型不必滿足目標(biāo)軟件的所有約束,其目的是能快速、低成本地構(gòu)建原型。原型方法從軟件工程師與客戶的交流開(kāi)始,其目的是定義軟件的總體目標(biāo),標(biāo)識(shí)需求。然后快速制訂原型開(kāi)發(fā)的計(jì)劃,確定原型的目標(biāo)和范圍,采用快速設(shè)計(jì)的方式對(duì)其建模,并構(gòu)建原型。被開(kāi)發(fā)的原型應(yīng)交付給客戶試用,并收集客戶的反饋意見(jiàn),這些反饋意見(jiàn)可在下一輪迭代中對(duì)原型進(jìn)行改進(jìn)。在前一個(gè)原型需要改進(jìn),或者需要擴(kuò)展其范圍的時(shí)候,進(jìn)入下一輪原型的迭代開(kāi)發(fā)。原型模型114/154部署交付和反饋構(gòu)建原型交流快速設(shè)計(jì)方式建??焖儆?jì)劃原型模型115/154原型的類型:探索型(exploratoryprototyping)其目的是要弄清目標(biāo)系統(tǒng)的要求,確定所希望的特性,并探討多種方案的可行性實(shí)驗(yàn)型(experimentalprototyping)其目的是驗(yàn)證方案或算法的合理性,它是在大規(guī)模開(kāi)發(fā)和實(shí)現(xiàn)前,用于考核方案是否合適,規(guī)格說(shuō)明是否可靠。演化型(evolutionaryprototyping)其目的是將原型作為目標(biāo)系統(tǒng)的一部分,通過(guò)對(duì)原型的多次改進(jìn),逐步將原型演化成最終的目標(biāo)系統(tǒng)。116/154原型的使用策略:廢棄(throwaway)策略主要用于探索型和實(shí)驗(yàn)型原型的開(kāi)發(fā)。這些原型關(guān)注于目標(biāo)系統(tǒng)的某些特性,而不是全部特性,開(kāi)發(fā)這些原型時(shí)通常不考慮與探索或?qū)嶒?yàn)?zāi)康臒o(wú)關(guān)的功能、質(zhì)量、結(jié)構(gòu)等因素,這種原型通常被廢丟,然后根據(jù)探索或?qū)嶒?yàn)的結(jié)果用良好的結(jié)構(gòu)和設(shè)計(jì)思想重新設(shè)計(jì)目標(biāo)系統(tǒng)。追加(addon)策略主要用于演化型原型的開(kāi)發(fā)。這種原型通常是實(shí)現(xiàn)了目標(biāo)系統(tǒng)中已明確定義的特性的一個(gè)子集,通過(guò)對(duì)它的不斷修改和擴(kuò)充,逐步追加新的要求,最后使其演化成最終的目標(biāo)系統(tǒng)。原型可作為單獨(dú)的過(guò)程模型使用,它也常被作為一種方法或?qū)崿F(xiàn)技術(shù)應(yīng)用于其它的過(guò)程模型中。117/154B.Boehm于1988年提出是瀑布模型和演化模型的結(jié)合,并增加了風(fēng)險(xiǎn)分析螺旋模型沿著螺線旋轉(zhuǎn),在四個(gè)象限上分別表達(dá)四個(gè)方面的活動(dòng),即:制定計(jì)劃:確定軟件目標(biāo),選定實(shí)施方案,弄清項(xiàng)目開(kāi)發(fā)的限制條件風(fēng)險(xiǎn)分析:評(píng)價(jià)所選的方案,識(shí)別風(fēng)險(xiǎn),消除風(fēng)險(xiǎn)工程實(shí)施:實(shí)施軟件開(kāi)發(fā),驗(yàn)證工作產(chǎn)品客戶評(píng)估:評(píng)價(jià)開(kāi)發(fā)工作,提出修正建議螺旋模型118/154
119/154螺旋模型出現(xiàn)了一些變種,它可以有3到6個(gè)任務(wù)區(qū)域。螺旋模型指引的軟件項(xiàng)目開(kāi)發(fā)沿著螺線自內(nèi)向外旋轉(zhuǎn),每旋轉(zhuǎn)一圈,表示開(kāi)發(fā)出一個(gè)更為完善的新軟件版本。如果發(fā)現(xiàn)風(fēng)險(xiǎn)太大,開(kāi)發(fā)者和客戶無(wú)法承受,則項(xiàng)目就可能因此而終止。多數(shù)情況下沿著螺線的活動(dòng)會(huì)繼續(xù)下去,自內(nèi)向外,逐步延伸,最終得到所期望的系統(tǒng)。120/154噴泉模型121/154噴泉模型是一種支持面向?qū)ο箝_(kāi)發(fā)的模型體現(xiàn)迭代和無(wú)間隙特征迭代:各開(kāi)發(fā)活動(dòng)常常重復(fù)工作多次,相關(guān)的功能在每次迭代中隨之加入演進(jìn)的系統(tǒng)無(wú)間隙:開(kāi)發(fā)活動(dòng)之間不存在明顯的邊界122/154支持軟件復(fù)用(reuse)利用預(yù)先包裝好的軟件構(gòu)件(包括組織內(nèi)部開(kāi)發(fā)的構(gòu)件和現(xiàn)存商品化構(gòu)件COTS)來(lái)構(gòu)造應(yīng)用系統(tǒng)基于構(gòu)件的開(kāi)發(fā)模型123/154領(lǐng)域分析構(gòu)件可變性分析構(gòu)建可復(fù)用構(gòu)件領(lǐng)域模型領(lǐng)域基準(zhǔn)體系結(jié)構(gòu)圖可復(fù)用構(gòu)件庫(kù)分析體系結(jié)構(gòu)設(shè)計(jì)獲取構(gòu)件構(gòu)件特化和修改評(píng)價(jià)構(gòu)件組裝和測(cè)試開(kāi)發(fā)未找到構(gòu)件的部分應(yīng)用系統(tǒng)工程應(yīng)用系統(tǒng)領(lǐng)域工程124/154領(lǐng)域工程的目的是構(gòu)建領(lǐng)域模型、領(lǐng)域基準(zhǔn)體系結(jié)構(gòu)和可復(fù)用構(gòu)件庫(kù)。領(lǐng)域分析分析該領(lǐng)域中各種應(yīng)用系統(tǒng)的公共部分或相似部分,構(gòu)建領(lǐng)域模型和領(lǐng)域基準(zhǔn)體系結(jié)構(gòu)(referencearchitecture),標(biāo)識(shí)領(lǐng)域的候選構(gòu)件。對(duì)候選構(gòu)件進(jìn)行可變性分析,以適應(yīng)多個(gè)應(yīng)用系統(tǒng)的需要。構(gòu)建可復(fù)用構(gòu)件,經(jīng)嚴(yán)格測(cè)試和包裝后存入可復(fù)用構(gòu)件庫(kù)(稱為構(gòu)件工程)。125/154應(yīng)用系統(tǒng)工程的目的是使用可復(fù)用構(gòu)件組裝應(yīng)用系統(tǒng)。分析待開(kāi)發(fā)的應(yīng)用系統(tǒng),設(shè)計(jì)應(yīng)用系統(tǒng)的體系結(jié)構(gòu),標(biāo)識(shí)應(yīng)用系統(tǒng)所需的構(gòu)件。在可復(fù)用構(gòu)件庫(kù)中查找合適的構(gòu)件(也可購(gòu)買第三方的構(gòu)件)。特化選中的構(gòu)件,必要時(shí)作適當(dāng)?shù)男薷?,以適應(yīng)該應(yīng)用系統(tǒng)的需要。開(kāi)發(fā)那些未找到合適構(gòu)件的應(yīng)用部分。組裝應(yīng)用系統(tǒng)。評(píng)價(jià)構(gòu)件的復(fù)用情況,以改進(jìn)可復(fù)用構(gòu)件,同時(shí)對(duì)新開(kāi)發(fā)的部分進(jìn)行評(píng)價(jià),并向構(gòu)件工程推薦候選構(gòu)件。126/154根據(jù)AT&T、Ericsson、HP公司的經(jīng)驗(yàn),有的軟件復(fù)用率高達(dá)90%以上,產(chǎn)品上市時(shí)間可縮短2~5倍,錯(cuò)誤率減少5~10倍,開(kāi)發(fā)成本減少15%~75%。僅管這些結(jié)論出自一些較好使用基于構(gòu)件開(kāi)發(fā)的實(shí)例,但毫無(wú)疑問(wèn),基于構(gòu)件的開(kāi)發(fā)模型對(duì)提高軟件生產(chǎn)率、提高軟件質(zhì)量、降低成本、提早上市時(shí)間起到很大的作用。127/154形式方法模型形式化方法(formalmethods)是建立在嚴(yán)格數(shù)學(xué)基礎(chǔ)上的一種軟件開(kāi)發(fā)方法。軟件開(kāi)發(fā)的全過(guò)程中,從需求分析、規(guī)約、設(shè)計(jì)、編程、系統(tǒng)集成、測(cè)試、文檔生成、直至維護(hù)各個(gè)階段,凡是采用嚴(yán)格的數(shù)學(xué)語(yǔ)言,具有精確的數(shù)學(xué)語(yǔ)義的方法,都稱為形式化方法。形式化方法用嚴(yán)格的數(shù)學(xué)語(yǔ)言和語(yǔ)義描述功能規(guī)約和設(shè)計(jì)規(guī)約,通過(guò)數(shù)學(xué)的分析和推導(dǎo),易于發(fā)現(xiàn)需求的岐義性、不完整性和不一致性,易于對(duì)分析模型、設(shè)計(jì)模型和程序進(jìn)行驗(yàn)證。通過(guò)數(shù)學(xué)的演算,使得從形式化功能規(guī)約到形式化設(shè)計(jì)規(guī)約,以及從形式化設(shè)計(jì)規(guī)約到程序代碼的轉(zhuǎn)換成為可能。128/154凈室過(guò)程模型系統(tǒng)工程需求收集代碼審查盒結(jié)構(gòu)規(guī)約形式化設(shè)計(jì)正確性驗(yàn)證代碼生成統(tǒng)計(jì)使用測(cè)試認(rèn)證測(cè)試計(jì)劃增量1需求收集代碼審查盒結(jié)構(gòu)規(guī)約形式化設(shè)計(jì)正確性驗(yàn)證代碼生成統(tǒng)計(jì)使用測(cè)試認(rèn)證測(cè)試計(jì)劃需求收集代碼審查盒結(jié)構(gòu)規(guī)約形式化設(shè)計(jì)正確性驗(yàn)證代碼生成統(tǒng)計(jì)使用測(cè)試認(rèn)證測(cè)試計(jì)劃增量2增量3129/154內(nèi)容摘要計(jì)算機(jī)軟件軟件工程軟件過(guò)程軟件過(guò)程模型敏捷軟件開(kāi)發(fā)CASE工具與環(huán)境130/154敏捷軟件開(kāi)發(fā)軟件開(kāi)發(fā)的新挑戰(zhàn)快速的市場(chǎng)進(jìn)入時(shí)間,要求高生產(chǎn)率快速變化的需求快速發(fā)展的技術(shù)傳統(tǒng)的軟件開(kāi)發(fā)方法強(qiáng)調(diào)過(guò)程強(qiáng)調(diào)文檔開(kāi)發(fā)人員負(fù)擔(dān)過(guò)重稱為重載(Heavyweight)方法131/154針對(duì)上述問(wèn)題,產(chǎn)生了一系列輕載(Lightweight)方法,如XP、SCRUM等。2001年2月,新方法的一些創(chuàng)始人在美國(guó)猶他州成立了敏捷軟件開(kāi)發(fā)聯(lián)盟,簡(jiǎn)稱Agile聯(lián)盟。Agile聯(lián)盟起草了一個(gè)敏捷軟件開(kāi)發(fā)宣言,該宣言由四個(gè)價(jià)值觀聲明組成,并提煉出敏捷軟件開(kāi)發(fā)方法必須遵循的12條原則。Agile方法是在保證軟件開(kāi)發(fā)有成功產(chǎn)出的前提下,盡量減少開(kāi)發(fā)過(guò)程中的活動(dòng)和制品的方法?;\統(tǒng)的講就是,“剛剛好”(Justenough),即開(kāi)發(fā)中的活動(dòng)及制品既不要太多也不要太少。132/154Agile方法的價(jià)值觀個(gè)人和交互高于過(guò)程和工具不是否定過(guò)程和工具的重要性,而是更強(qiáng)調(diào)軟件開(kāi)發(fā)中人的作用和交流的作用。軟件是由人組成的團(tuán)隊(duì)來(lái)開(kāi)發(fā)的,與軟件項(xiàng)目相關(guān)的各類人員通過(guò)充分的交流和有效的合作,才能成功地開(kāi)發(fā)出得到用戶滿意的軟件。如果光有定義良好的過(guò)程和先進(jìn)的工具,而人員的技能很差,又不能很好地交流和協(xié)作,軟件是很難成功地開(kāi)發(fā)的。133/154可運(yùn)行軟件高于詳盡的文檔通過(guò)執(zhí)行一個(gè)可運(yùn)行的軟件來(lái)了解軟件做了什么,遠(yuǎn)比閱讀厚厚的文檔要容易得多。敏捷軟件開(kāi)發(fā)強(qiáng)調(diào)不斷地快速地向用戶提交可運(yùn)行的軟件(不一定是完整的軟件),以得到用戶的認(rèn)可。好的必要的文檔仍是需要的,它能幫助我們理解軟件做什么,怎么做以及如何使用,但軟件開(kāi)發(fā)的主要目標(biāo)是創(chuàng)建可運(yùn)行的軟件。134/154與客戶協(xié)作高于合同(契約)談判只有客戶才能明確說(shuō)明需要什么樣的軟件,然而,大量的實(shí)踐表明,在開(kāi)發(fā)的早期客戶常常不能完整地表達(dá)他們的全部需求,有些早期確定的需求,以后也可能會(huì)改變。要想通過(guò)合同談判的方式,將需求固定下來(lái)常常是困難的。敏捷軟件開(kāi)發(fā)強(qiáng)調(diào)與客戶的協(xié)作,通過(guò)與客戶的交流和緊密合作來(lái)發(fā)現(xiàn)用戶的需求。135/154對(duì)變更及時(shí)做出反應(yīng)高于遵循計(jì)劃任何軟件項(xiàng)目的開(kāi)發(fā)都應(yīng)該制訂一個(gè)項(xiàng)目計(jì)劃,以確定各開(kāi)發(fā)任務(wù)的優(yōu)先順序和起止日期。然而,隨著項(xiàng)目的進(jìn)展,需求、業(yè)務(wù)環(huán)境、技術(shù)等都可能變化,任務(wù)的優(yōu)先順序和起止日期也可能因種種原因會(huì)改變。因此,項(xiàng)目計(jì)劃應(yīng)具有可塑性,有變動(dòng)的余地。當(dāng)出現(xiàn)變化時(shí)及時(shí)做出反應(yīng),修訂計(jì)劃以適應(yīng)變化。136/154Agile方法的指導(dǎo)原則(1)最優(yōu)先的是通過(guò)盡早地和不斷地提交有價(jià)值的軟件使客戶滿意(2)歡迎變化的需求,即使該變化出現(xiàn)在開(kāi)發(fā)的后期,為了提升對(duì)客戶的競(jìng)爭(zhēng)優(yōu)勢(shì),Agile過(guò)程利用變化作為動(dòng)力(3)以幾周到幾個(gè)月為周期,盡快、不斷地發(fā)布可運(yùn)行軟件(4)在整個(gè)項(xiàng)目過(guò)程中,業(yè)務(wù)人員和開(kāi)發(fā)人員必須天天一起工作137/154(5)以積極向上的員工為中心建立項(xiàng)目組,給予他們所需的環(huán)境和支持,對(duì)他們的工作予以充分的信任(6)項(xiàng)目組內(nèi)效率最高、最有效的信息傳遞方式是面對(duì)面的交流(7)測(cè)量項(xiàng)目進(jìn)展的首要依據(jù)是可運(yùn)行的軟件(8)敏捷過(guò)程提倡可持續(xù)的開(kāi)發(fā),項(xiàng)目發(fā)起者、開(kāi)發(fā)者和用戶應(yīng)能長(zhǎng)期保持恒定的速度138/154(9)應(yīng)時(shí)刻關(guān)注技術(shù)上的精益求精和好的設(shè)計(jì),以增強(qiáng)敏捷性(10)簡(jiǎn)單化是必不可少的,這是盡可能減少不必要工作的藝術(shù)(11)最好的構(gòu)架、需求和設(shè)計(jì)出自于自我組織的團(tuán)隊(duì)(12)團(tuán)隊(duì)要定期反思怎樣才能更有效,并據(jù)此調(diào)整自己的行為139/154Agile方法的適用范圍MartinFowler認(rèn)為:新方法不是到處可適用的適合采用Agile方法的情況:需求不確定、易揮發(fā)(Volatile,意指今天的要求明天就不需要了)有責(zé)任感和積極向上的開(kāi)發(fā)人員用戶容易溝通并能參與140/154Agile的典型方法ExtremeProgramming(簡(jiǎn)稱XP)SCRUMCrystalMethodologies(簡(jiǎn)稱Crystal)FeatureDrivenDevelopment(簡(jiǎn)稱FDD)DynamicSystemsDevelopmentMethodology(簡(jiǎn)稱DSDM)AdaptiveSoftwareDevelopment(簡(jiǎn)稱ASD)PragmaticProgramming等141/154XP方法由KentBeck提出,是Agile方法中最引人注目的一個(gè)XP最初實(shí)踐于1997年Crysler公司的C3項(xiàng)目(Smalltalk開(kāi)發(fā))適用于10人以下項(xiàng)目組、開(kāi)發(fā)地點(diǎn)集中的場(chǎng)合廣泛用于需求模糊和揮發(fā)性強(qiáng)的場(chǎng)合IONA公司的Obix技術(shù)支持小組在采用了XP方法后,軟件生產(chǎn)率提高了67%142/154XP方法的4個(gè)價(jià)值觀交流(Communication)實(shí)踐表明,項(xiàng)目失敗的重要原因之一是交流不暢,使得客戶的需求不能準(zhǔn)確地傳遞給開(kāi)發(fā)人員,造成開(kāi)發(fā)人員不能充分理解需求;模型或設(shè)計(jì)的變動(dòng)未能及時(shí)告知相關(guān)人員,造成系統(tǒng)的不一致和集成的困難所有項(xiàng)目相關(guān)人員之間充分的有效的交流是軟件開(kāi)發(fā)成功所必不可少的XP方法提倡面對(duì)面的交流,這是一種有效的也是效率最高的交流方式143/154簡(jiǎn)單(Simplicity)指在確保得到客戶滿意的軟件的前提下,做最簡(jiǎn)潔的工作(簡(jiǎn)單的過(guò)程、模型、文檔、設(shè)計(jì)和實(shí)現(xiàn))在開(kāi)發(fā)中不斷優(yōu)化設(shè)計(jì),時(shí)刻保持代碼簡(jiǎn)潔、無(wú)冗余體現(xiàn)了敏捷開(kāi)發(fā)的“剛剛好(Justenough)”思想,即開(kāi)發(fā)中的活動(dòng)及制品既不要太多也不要太少,剛好即可144/154反饋(Feedback)及時(shí)有效的反饋能確定開(kāi)發(fā)工作是否正確,及時(shí)發(fā)現(xiàn)開(kāi)發(fā)工作的偏差并加以糾正。強(qiáng)調(diào)各種形式的反饋,如非正式的評(píng)審(走查,Walkthrough)、小發(fā)布等145/154勇氣(Courage)采用敏捷軟件開(kāi)發(fā)需要勇氣:信任合作的同事,也相信自己做能做到的最簡(jiǎn)單的事只有在絕對(duì)需要的時(shí)候才創(chuàng)建文檔讓業(yè)務(wù)人員制定業(yè)務(wù)決策,技術(shù)人員制定技術(shù)決策用可能的最簡(jiǎn)單的工具,例如白板和紙,只有在復(fù)雜建模工具能提供可能的最好價(jià)值時(shí)才去使用它們相信程序員能制定設(shè)計(jì)決策,不需要給他們提供過(guò)多的細(xì)節(jié)需要勇氣來(lái)承認(rèn)自己是會(huì)犯錯(cuò)誤的,需要勇氣來(lái)相信自己明天能克服明天出現(xiàn)的問(wèn)題。146/154XP方法的12個(gè)核心實(shí)踐1.完整的團(tuán)隊(duì)(WholeTeam)所有的小組成員應(yīng)在同一個(gè)工作地點(diǎn)工作成員中必須有一個(gè)現(xiàn)場(chǎng)用戶(On-siteUser)由他提出需求,確定開(kāi)發(fā)優(yōu)先級(jí)通常還設(shè)一個(gè)“教練”(Coach)角色
教練指導(dǎo)XP方法的實(shí)施,以及與外部的溝通和協(xié)調(diào)2.計(jì)劃對(duì)策(PlanningGame)
包括兩類:發(fā)布計(jì)劃和迭代(Iteration)計(jì)劃147/1543.系統(tǒng)比喻(Metaphor)
系統(tǒng)比喻是待開(kāi)發(fā)軟件的一個(gè)每個(gè)成員都熟悉的形象化比喻,相當(dāng)于一個(gè)粗略的軟件體系結(jié)構(gòu)4.小發(fā)布(Smallrelease)
經(jīng)常、不斷地發(fā)布可運(yùn)行的、具有商業(yè)價(jià)值的小軟件版本,供現(xiàn)場(chǎng)用戶評(píng)估或最終使用
5.測(cè)試(testing)
XP方法提倡測(cè)試優(yōu)先,即先寫測(cè)試后編代碼(testingthencoding)6.簡(jiǎn)單設(shè)計(jì)(SimpleDesign)設(shè)計(jì)
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 小學(xué)五年級(jí)數(shù)學(xué)小數(shù)乘除法計(jì)算練習(xí)題集
- 小學(xué)四年級(jí)下冊(cè)四則混合運(yùn)算及簡(jiǎn)便運(yùn)算
- 中考語(yǔ)文專題匯編-非連續(xù)性文本閱讀-人教版初中九年級(jí)全冊(cè)語(yǔ)文試題
- 小學(xué)三年級(jí)四則混合運(yùn)算練習(xí)題
- 屆茶中學(xué)屆高三臨考模擬考試臨考模擬語(yǔ)文加試試題教師版語(yǔ)文加試題(選考?xì)v史)
- 波形梁護(hù)欄材料技術(shù)參數(shù)
- 激光焊接常見(jiàn)工藝參數(shù)解讀
- 血透室護(hù)理工作總結(jié)
- 優(yōu)化數(shù)學(xué)課程設(shè)置與教材使用提高教學(xué)效果
- 污水處理行業(yè)技術(shù)工作總結(jié)
- 四川新農(nóng)村建設(shè)農(nóng)房設(shè)計(jì)方案圖集川東南部分
- 2024年江蘇省普通高中學(xué)業(yè)水平測(cè)試小高考生物、地理、歷史、政治試卷及答案(綜合版)
- 浙江省杭州市西湖區(qū)2023-2024學(xué)年六年級(jí)上學(xué)期期末語(yǔ)文試卷
- vienna整流器交錯(cuò)并聯(lián)三相pfc電路
- 重慶市永川區(qū)城鄉(xiāng)總體規(guī)劃
- 擋風(fēng)玻璃自動(dòng)涂膠方案
- 復(fù)旦大學(xué)新聞傳播學(xué)考博真題
- IEC60335-1(中文)
- 對(duì)于申請(qǐng)?jiān)黾愚k公用房請(qǐng)示
- 姓名代碼查詢
- 四層電梯控制系統(tǒng)設(shè)計(jì)-(共38頁(yè))
評(píng)論
0/150
提交評(píng)論