《軟件工程理論及應用》由會員分享,可在線閱讀,更多相關《軟件工程理論及應用(33頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、,,單擊此處編輯母版標題樣式,,單擊此處編輯母版文本樣式,,第二級,,第三級,,第四級,,第五級,,,,*,,,,,,,單擊此處編輯母版標題樣式,,單擊此處編輯母版文本樣式,,第二級,,第三級,,第四級,,第五級,,,,*,,,,,單擊此處編輯母版標題樣式,,單擊此處編輯母版文本樣式,,第二級,,第三級,,第四級,,第五級,,,,*,,,,,單擊此處編輯母版標題樣式,,單擊此處編輯母版文本樣式,,第二級,,第三級,,第四級,,第五級,,,,*,書名:軟件工程理論及應用,,ISBN,:,978-7-111-46404-4,,作者:周屹,,出版社:機械工業(yè)出版社,,本書配有電子課件,軟件工程理論及
2、應用,ppt,課件,第,2,章 軟件過程,軟件工程理論及應用,ppt,課件,,2.1,軟件過程規(guī)范,,2.2,軟件過程成熟度模型,,初始級,,可重復級,,已定義級,,已管理級,,優(yōu)化級,,2.3,軟件過程管理案例,軟件工程理論及應用,ppt,課件,通過下面這個“七人分粥”寓意的小故事,就很清楚地說明軟件過程的重要性。,,有,7,個人曾經住在一起,每天分一大桶粥。要命的是,粥每天都是不夠的。,,一開始,指定一人負責分粥事宜,很快大家發(fā)現(xiàn),這個人為自己分的粥最多最好,于是推選出一個道德高尚的人出來分粥。強權就會產生腐敗,大家開始挖空心思去討好他,搞得整個小團體烏煙瘴氣,顯然這個方法不行。,軟件工程
3、理論及應用,ppt,課件,,指定一個人分粥和一個人監(jiān)督,起初比較公平,但到后來分粥的人與監(jiān)督的人從權力制約走向“權力合作”,于是只有這兩個人能吃飽,這種方法也失敗了。,,誰也信不過,干脆大家輪流主持分粥,每人一天。雖然看起來平等了,但是每人在一周中只有,1,天吃得飽,其余,6,天都吃不飽,而且每天粥還有剩的,這種方法造成資源浪費。,,民主選舉一個,3,人分粥委員會和一個,4,人監(jiān)督委員會,實行集體領導,公平是做到了。但是,監(jiān)督委員會經常提出各種議案,分粥委員會據(jù)理力爭,等粥分完時,粥早就涼了,此方法效率太低。,,最后想出來一個方法,——,每個人輪流值日分粥,但分粥的那個人要最后一個領粥。令人驚
4、奇的是,結果,7,只碗里的粥每次都是一樣多,就象用科學儀器量過一樣。因為,每個主持分粥的人都認識到,如果每只碗里的粥不相同,他無疑將拿到那份最少的。,軟件工程理論及應用,ppt,課件,同樣是,7,個人,不同的流程和方法,就會造成迥然不同的結果,包括效率、成本上的差異。從這個故事可以看出,有什么流程,就有什么結果,流程決定了結果,過程管理可以化腐朽為神奇。,,一般的軟件過程包括問題提出、軟件需求說明、軟件設計、軟件實現(xiàn)、軟件確認和軟件演化等基本活動。,軟件工程理論及應用,ppt,課件,2.1,軟件過程規(guī)范,過程是活動的集合,活動是任務的集合。所有人類的活動可能都是一個過程,每一個人從其中得到了自
5、我價值的體現(xiàn),這些活動產生一個表示或示例,或可被很多人反復使用,或可用于某些其他未考慮到的背景上。即產品能被自己或他人復用,從其中得到了一種滿足感。軟件過程是軟件生存周期中的一系列相關的過程。,,軟件過程有三層含義:個體含義,即指軟件產品或系統(tǒng)在生存周期中的某一類活動的集合,如軟件開發(fā)過程,軟件管理過程等;整體含義,即指軟件產品或系統(tǒng)在所有上述含義下的軟件過程的總體;工程含義,即指解決軟件過程的工程,它應用軟件工程的原則、方法來構造軟件過程模型,并結合軟件產品的具體要求進行實例化,以及在用戶環(huán)境下的運作,以此進一步提高軟件生產率,降低成本。,軟件工程理論及應用,ppt,課件,,2.1,標準體系
6、全貌,軟件工程理論及應用,ppt,課件,圖,2.2,軟件生存期過程,軟件工程理論及應用,ppt,課件,2.2,軟件過程成熟度模型,1986,年,11,月,美國卡內基,.,梅隆大學軟件工程研究所(,SEI/CMU,)在,Mitre,公司的支持下著手開發(fā)支持軟件開發(fā)組織改進軟件過程的“軟件過程成熟度框架”。美國國防部提出,希望“軟件過程成熟度框架”能用于評估軟件開發(fā)組織承制軟件的能力。,SEI/CMU,的,Humphrey,領導的小組,經過大量的調查、研究,于,1987,年開發(fā)了“軟件過程評估”和“軟件成熟度評價”兩個模型,並進行了廣泛的問卷調查。,1991,年,8,月公開發(fā)布軟件能力成熟度模型,
7、(Capability Maturity Model for Software-CMM)CMM v1.0,。此模型在建立和發(fā)展之初,主要目的在于提供一種評價軟件承接方能力的方法,為大型軟件項目的招投標活動提供一種全面而客觀的評審依據(jù)。而發(fā)展到后來,又同時被軟件組織用于改進其軟件過程。,軟件工程理論及應用,ppt,課件,CMM,描述一條從無序的、混亂的過程到成熟的、有紀律的過程的改進途徑,描繪出軟件組織如何增加對軟件開發(fā)和維護的過程控制,如何向軟件工程和管理的優(yōu)秀文化演變等方面的指導。,,關鍵過程域,(key process area),描述軟件過程的屬性,通過完成一組相互關聯(lián)的活動,實現(xiàn)一組對
8、建立過程能力至關重要的目標。,圖,2.3,能力成熟度級別與關鍵過程域,共同特性將描述關鍵過程域的關鍵實踐組織起來。共同特性是一些屬性,指明一個關鍵過程域的執(zhí)行和規(guī)范化是否有效、可重復和可持續(xù)。共有,5,個共同特性:執(zhí)行約定,執(zhí)行能力,執(zhí)行活動,測量和分析,驗證實現(xiàn)。,,執(zhí)行約定:執(zhí)行約定描述機構為確保過程的建立和持續(xù)而必須采取的一些措施。典型內容包括建立機構策略和領導關系。,,執(zhí)行能力:執(zhí)行能力描述了項目或機構完整地實現(xiàn)軟件過程所必須有的先決條件。典型內容包括資源、機構結構和培訓。,,執(zhí)行活動:執(zhí)行活動描述了執(zhí)行一個關鍵過程域所必需的活動、任務和規(guī)程。典型內容包括制定計劃和規(guī)程、執(zhí)行和跟蹤以及
9、必要時采取糾正措施。,,測量和分析:測量和分析描述了為確定與過程有關的狀態(tài)所需的基本測量實踐。這些測量可用來控制和改進過程。典型內容包括可能采用的測量實例。,,驗證實現(xiàn):驗證實現(xiàn)描述了為確保執(zhí)行的活動與已建立的過程一致所采取的步驟。典型內容包括管理部門和軟件質量保證組實施的評審和審核。,圖,2.4 CMM,的內容和結構,如果要用簡單的一句話來表達從一級到高一級所需要的努力的話,可以有: 從一級到二級的轉化:規(guī)范化過程; 從二級到三級的轉化:標準化、穩(wěn)定的過程; 從三級到四級的轉化:可預測的過程; 從四級到五級的轉化:持續(xù)改進過程。,圖,2.5 CMM,層次結構,除第一級外,
10、每一級是按完全相同的結構構成的。每一級包含了實現(xiàn)這一級目標的若干關鍵過程域,(KPA),,每個,KPA,進一步包含若干關鍵實施活動,(KP),,無論哪個,KPA,,它們的實施活動都統(tǒng)一按五個公共屬性進行組織,即每一個,KPA,都包含五類,KP,即:執(zhí)行約定,執(zhí)行能力,執(zhí)行活動,測量和分析,驗證實現(xiàn)。,,目標每一個,KPA,都確定了一組目標。若這組目標在每一個項目都能實現(xiàn),則說明企業(yè)滿足了該,KPA,的要求。若滿足了一個級別的所有,KPA,要求,則表明達到了這個級別所要求的能力。,,實施保證實施保證是企業(yè)為了建立和實施相應,KPA,所必須采取的活動,這些活動主要包括制定企業(yè)范圍的政策和高層管理的
11、責任。,執(zhí)行活動執(zhí)行過程描述了執(zhí)行,KPA,所需求的必要角色和步驟。在五個公共屬性中,執(zhí)行活動是唯一與,項目執(zhí)行,相關的屬性,其余四個屬性則涉及企業(yè),CMM,能力基礎設施的建立。執(zhí)行活動一般包括,計劃,、執(zhí)行的任務、任務執(zhí)行的跟蹤等。,,度量,分析度量分析描述了過程的度量和度量分析要求。典型的,度量,和度量分析的要求是確定執(zhí)行活動的狀態(tài)和執(zhí)行活動的有效性。,初始級,,初始級的軟件過程是未加定義的隨意過程,項目的執(zhí)行是隨意甚至是混亂的。也許,有些企業(yè)制定了一些軟件工程規(guī)范,但若這些規(guī)范未能覆蓋基本的關鍵過程要求,且執(zhí)行沒有政策、資源等方面的保證時,那么它仍然被視為初始級。,,軟件工程管理制度缺乏
12、,過程缺乏定義、混亂無序。成功依靠的是個人的才能和經驗,經常由于缺乏管理和計劃導致時間、費用超支。管理方式屬于反應式,主要用來應付危機。過程不可預測,難以重復。初始級具有明顯的不成熟過程的特點。,可重復級,,基于類似項目中的經驗,建立了基本的項目管理制度,采取了一定的措施控制費用和時間。管理人員可及時發(fā)現(xiàn)問題,采取措施。一定程度上可重復類似項目的軟件開發(fā)。,,可重復級根據(jù)多年的經驗和教訓,人們總結出軟件開發(fā)的首要問題不是技術問題而是管理問題。因此,第二級的焦點集中在軟件管理過程上。一個可管理的過程則是一個可重復的過程,一個可重復的過程則能逐漸進化和成熟。,已定義級,,已將軟件過程文檔化、標準化
13、,可按需要改進開發(fā)過程,采用評審方法保證軟件質量??山柚?CASE,工具提高質量和效率。,,在第二級僅定義了管理的基本過程,而沒有定義執(zhí)行的步驟標準,而且無論是管理還是工程開發(fā)都需要一套文檔化的標準,并將這些標準集成到企業(yè)軟件開發(fā)標準過程中去。所有開發(fā)的項目需根據(jù)這個標準過程,剪裁出與項目適宜的過程,并執(zhí)行這些過程。過程的剪裁不是隨意的,在使用前需經過企業(yè)有關人員的批準。,已管理級,,針對制定質量、效率目標,并收集、測量相應指標。利用統(tǒng)計工具分析并采取改進措施。對軟件過程和產品質量有定量的理解和控制。,,第四級的管理是量化的管理。所有過程需建立相應的度量方式,所有產品的質量,(,包括工作產品和
14、提交給用戶的產品,),需有明確的度量指標。這些度量應是詳盡的,且可用于理解和控制軟件過程和產品。量化控制將使軟件開發(fā)真正變成為一種,工業(yè)生產活動,。,優(yōu)化級,,基于統(tǒng)計質量和過程控制工具,持續(xù)改進軟件過程。質量和效率穩(wěn)步改進。,,優(yōu)化級第五級的目標是達到一個,持續(xù)改善,的境界。所謂,持續(xù)改善,是指可根據(jù)過程執(zhí)行的反饋信息來改善下一步的執(zhí)行過程,即優(yōu)化執(zhí)行步驟。如果一個企業(yè)達到了這一級,那么表明該企業(yè)能夠根據(jù)實際的項目性質、技術等因素,不斷調整軟件生產過程以求達到最佳。,2.3,軟件過程管理案例,應注意的是,并非實施了,CMM,軟件項目的質量就能有所保障。,CMM,是一種資質認證,它可以證明一個
15、軟件企業(yè)對整個軟件開發(fā)過程的控制能力。按照,CMM,的思想進行管理與通過,CMM,認證并不能劃等號。,CMM,認證并不僅僅是在,評估,軟件企業(yè)的生產能力,整個評估過程同時還在幫助企業(yè)完善已經按照,CMM,建立的科學,工作流程,,發(fā)現(xiàn)企業(yè)在軟件質量、生產進度以及成本控制等方面可能存在的問題,并且及時予以糾正。,CMM,用之于軟件過程改進時,是通過按,CMM,給出的準則對軟件過程實施評價,從而為作出改進決策和實施改進提供支持。所以,往往又把,CMM,在過程改進方面的應用看成是過程評價。,,(,1,)軟件過程評價(,SPA,,,Software Process,Assessment,),目的是確定一
16、個組織的當前軟件過程的狀態(tài),找出組織所面臨的急需解決的與軟件過程有關問題,進而有步驟地實施軟件過程改進,使組織的軟件過程能力不斷提高。因此,軟件過程評估關注一個組織的軟件過程有哪些需改進之處及其輕重緩急。評估組采用,CMM,來指導他們進行調查、分析和排優(yōu)先次序。組織可利用這些調查結果,參照,CMM,中的關鍵實踐所提供的指導,規(guī)劃本組織軟件過程的改進策略。,,(,2,)軟件能力評價(,SCE,,,Software Capability Evaluation,),目的是識別合格的能完成軟件工程項目的承包商,或者監(jiān)控承包商現(xiàn)有軟件工作中軟件過程的狀態(tài),進而提出承包商應改進之處。軟件能力評價關注識別一
17、個特定項目在進度要求和預算限制內構造出高質量軟件所面臨的風險。在采購過程中可以對投標者進行軟件能力評價。評價的結果,可用于確定在挑選承包商的風險,也可對現(xiàn)存的合同進行評價以便監(jiān)控方的過程實施。從而識別出承包商的軟件過程中潛在的可改進之處。,由于軟件過程評價和軟件能力評估是有關不同的兩種應用,因此所用的具體方法有明顯差異但是兩者都以,CMM,模型及其衍生產品為基礎,實施的幾個大步驟基本相同。從選定評價,/,評估組后: (,1,) 成熟度調查問卷作為現(xiàn)場訪問的出發(fā)點; ?。?2,) 用,CMM,作為指導現(xiàn)場調查研究的路線圖; ?。?3,) 針對,CMM,中的關鍵過程方面指出反映該組織軟件過
18、程的強,弱之點; (,4,) 根據(jù)所了解到的該組織達到,CMM,關鍵過程方面目標的情況描繪出該組織的軟件過程的概貌; (,5,) 向被審核者說明評估結果。,CMM,僅僅是模型,為了保證可靠且一致地使用它,美國卡內基,-,梅隆大學軟件工程研究所圍繞,CMM,擬制了一系列支持性文件(包括相應的評價框架,方法描述和實施指南)以及各種工具。使用,CMM,的大致思路是: ?。?1,) 圍繞,CMM,擬制出,CMM,評估框架(,CAF,),從,CAF,中歸類出各類要求; ?。?2,) 針對各類要求進行相應準備; (,3,) 按,對象,及其需求采用適當?shù)姆椒ㄟM行評定。,過程改善工作具有一切過
19、程所具有的固有特征,即需要循序漸進,不能一蹴而就;需要持續(xù)改善,不能停滯不前;需要聯(lián)系實際,不能照本宣讀;需要適應變革,不能固定不變。將,CMM/PSP/TSP,引人軟件企業(yè)首先要對單位主管和主要開發(fā)人員進行系統(tǒng)的,培訓,。另外一個有效的途徑是自頂向下的課程培訓,即從高層主管依次普及到下面的工程師。,培訓,包括最基本的軟件工程和,CMM,培訓知識;專業(yè)領域知識等方面的培訓;軟件過程方面的培訓。,圖,2.6 CMM,與個人軟件過程和小組軟件過程的關系,,TSP,解決的主要問題:如何規(guī)劃和管理一個軟件開發(fā)團隊。如何制訂團隊工作所需要的策略。如何定義和確定團隊中每個角色的職責。如何為團隊中每個成員分
20、配不同的角色。團隊及其不同角色在整個開發(fā)過程的不同階段應該做些什么,如何更好地發(fā)揮作用。在如何協(xié)調團隊成員之間的任務,并跟蹤報告團隊整體的任務進度。采用哪些方法提高團隊的協(xié)作能力。具體的工作啟動流程如圖,2.7,所示。,圖,2.7 TSP,小組啟動流程,本章小結,,軟件過程是為了獲得高質量的軟件產品所需要完成的一系列任務的框架,它規(guī)定了完成各項任務的工作步驟。軟件能力成熟度模型(,CMM,)它是對于,軟件,組織在定義、實施、,度量,、控制和改善其,軟件過程,的實踐中各個發(fā)展階段的描述。,習題,簡述軟件過程的三層含義。,,簡述,CMM,的發(fā)展歷程。,,共同特性將描述關鍵過程域的關鍵實踐組織起來,介紹,5,個共同特性。,,簡述,CMM,的五個等級。,