軟件工程-第10章-軟件工程管理PPT_第1頁
軟件工程-第10章-軟件工程管理PPT_第2頁
軟件工程-第10章-軟件工程管理PPT_第3頁
軟件工程-第10章-軟件工程管理PPT_第4頁
軟件工程-第10章-軟件工程管理PPT_第5頁
已閱讀5頁,還剩125頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

軟件工程10軟件工程管理本章概述軟件工程學(xué)的主要內(nèi)容是軟件開發(fā)技術(shù)和軟件工程管理技術(shù)。本章將集中介紹與軟件工程管理技術(shù)有關(guān)的知識(shí)。軟件工程管理是通過計(jì)劃、組織和控制等一系列活動(dòng),合理地配置和使用各種資源,以達(dá)到既定目標(biāo)的過程。軟件工程管理在項(xiàng)目的任何技術(shù)活動(dòng)開始之前就要進(jìn)行,并且貫穿于整個(gè)軟件生存周期?!锉菊轮攸c(diǎn):進(jìn)度計(jì)劃的制定;軟件配置管理;軟件質(zhì)量保證。軟件工程管理Contents目錄軟件工程管理概述01軟件規(guī)模估算02進(jìn)度計(jì)劃03人員組織04Contents目錄軟件配置管理05軟件質(zhì)量保證06軟件開發(fā)風(fēng)險(xiǎn)管理07軟件工程標(biāo)準(zhǔn)與軟件文檔0801軟件工程管理概述軟件產(chǎn)品的特點(diǎn)軟件工程管理的重要性軟件工程管理的內(nèi)容10.1軟件工程管理概述10.1.1軟件產(chǎn)品的特點(diǎn)軟件產(chǎn)品的特點(diǎn)(1)軟件是邏輯產(chǎn)品,具有高度的抽象性。(2)同一功能的軟件可以有多樣性。(3)軟件生產(chǎn)過程復(fù)雜,具有易錯(cuò)性。(4)軟件開發(fā)和維護(hù)主要是根據(jù)用戶需求“定制”的,其過程具有復(fù)雜性和易變性。(5)軟件的開發(fā)和運(yùn)行經(jīng)常受到計(jì)算機(jī)系統(tǒng)環(huán)境的限制,因而軟件有安全性和可移植性等問題。(6)軟件生產(chǎn)有許多新技術(shù)需要軟件工程師進(jìn)一步研究和實(shí)踐,如“軟件復(fù)用”“自動(dòng)生成代碼”等新的軟件工具或新的軟件開發(fā)環(huán)境等。10.1軟件工程管理概述10.1.2軟件工程管理的重要性由于軟件本身的復(fù)雜性,軟件工程將軟件開發(fā)劃分為若干個(gè)階段,每個(gè)階段完成不同的任務(wù)、采取不同的方法。為此,軟件工程管理需要有相應(yīng)的管理策略。1由于軟件產(chǎn)品的特殊性,軟件工程管理涉及很多學(xué)科,如系統(tǒng)工程學(xué)、標(biāo)準(zhǔn)化、管理學(xué)、邏輯學(xué)、數(shù)學(xué)等。對(duì)軟件工程的管理,人們還缺乏經(jīng)驗(yàn)和技術(shù)。實(shí)際上,人們都在自覺或不自覺地進(jìn)行管理,但管理的好壞不一樣。隨著軟件規(guī)模的不斷增大,軟件開發(fā)人員日益增加,開發(fā)時(shí)間不斷增長,軟件工程管理的難度逐步增加。由于軟件開發(fā)管理不善而造成的后果通常很嚴(yán)重。因此軟件工程管理非常重要。210.1軟件工程管理概述10.1.3軟件工程管理的內(nèi)容軟件工程管理的內(nèi)容包括對(duì)軟件開發(fā)成本、控制、開發(fā)人員、組織機(jī)構(gòu)、用戶、軟件開發(fā)文檔、軟件質(zhì)量等方面的管理。軟件開發(fā)成本的估算主要是對(duì)軟件規(guī)模的估算,從而估算開發(fā)所需要的時(shí)間、人員和經(jīng)費(fèi)。10.1軟件工程管理概述10.1.3軟件工程管理的內(nèi)容控制包括軟件開發(fā)進(jìn)度控制、人員控制、經(jīng)費(fèi)控制和質(zhì)量控制。由于軟件產(chǎn)品的特殊性和軟件工程的不成熟,制定軟件進(jìn)度計(jì)劃比較困難。通常把一個(gè)大的開發(fā)任務(wù)分為若干期工程。例如分一期工程、二期工程等。然后再制定各期工程的具體計(jì)劃,這樣才能保證計(jì)劃實(shí)際可行,便于控制。在制定計(jì)劃時(shí)要適當(dāng)留有余地。10.1軟件工程管理概述10.1.3軟件工程管理的內(nèi)容軟件工程管理很大程度上是通過對(duì)文檔資料的管理來實(shí)現(xiàn)的。因此,要把開發(fā)過程中的初步設(shè)計(jì)、中間過程和最后結(jié)果建立一套完整的文檔資料。文檔標(biāo)準(zhǔn)化是文檔管理的一個(gè)重要方面。02軟件規(guī)模估算軟件開發(fā)成本估算方法代碼行技術(shù)功能點(diǎn)技術(shù)COCOMO2模型10.2軟件規(guī)模估算

在計(jì)算機(jī)技術(shù)發(fā)展的早期,軟件的成本只占系統(tǒng)總成本的很小的比例。因此,在估算軟件成本時(shí),即使誤差較大也無關(guān)緊要。但現(xiàn)在軟件已成為整個(gè)計(jì)算機(jī)系統(tǒng)中成本最高的部分。若軟件開發(fā)成本的估算出現(xiàn)較大的誤差,可能會(huì)使盈利變?yōu)樘潛p。由于軟件的成本涉及的因素較多,因而難以對(duì)其做出準(zhǔn)確的估算。軟件項(xiàng)目開始之前,要估算軟件開發(fā)所需要的工作量和時(shí)間,首先需要估算軟件的規(guī)模。估算軟件規(guī)模的主要技術(shù)是代碼行技術(shù)和功能點(diǎn)技術(shù)??梢允褂枚喾N不同的方法進(jìn)行軟件開發(fā)成本的估算,對(duì)估算結(jié)果的比較,有助于暴露不同方法之間不一致的地方,從而更準(zhǔn)確地估算出軟件成本。10.2軟件規(guī)模估算10.2.1軟件開發(fā)成本估算方法為了使開發(fā)項(xiàng)目能在規(guī)定的時(shí)間內(nèi)、不超過預(yù)算的情況下完成,較準(zhǔn)確的成本預(yù)算和嚴(yán)格的管理控制是關(guān)鍵。一個(gè)項(xiàng)目是否開發(fā),經(jīng)濟(jì)上是否可行,主要取決于對(duì)成本的估算。對(duì)于一個(gè)大型的軟件項(xiàng)目,由于項(xiàng)目的復(fù)雜性,開發(fā)成本的估算不是一件簡單的事。軟件開發(fā)成本估算方法主要有自頂向下估算方法、自底向上估算方法、差別估算方法、專家估算法、類推估算法、算式估算法等。10.2軟件規(guī)模估算10.2.1軟件開發(fā)成本估算方法自頂向下估算方法估算人員參照以前完成的項(xiàng)目所耗費(fèi)的總成本或總工作量,來推算將要開發(fā)的軟件的總成本或總工作量,然后把它們按階段、步驟和工作單元進(jìn)行分配,這種方法稱為自頂向下估算方法。自頂向下估算方法的主要優(yōu)點(diǎn)是對(duì)系統(tǒng)級(jí)工作重視,不會(huì)遺漏系統(tǒng)級(jí)工作的成本估算。例如,集成、用戶手冊(cè)和配置管理等工作,估算工作量小、速度快。該方法的缺點(diǎn)是往往不清楚較低層次工作的技術(shù)性困難問題,而這些困難往往會(huì)使成本增加。1自底向上估算方法這種方法是將每一部分的估算工作交給負(fù)責(zé)該部分工作的人來做,其優(yōu)點(diǎn)是估算較為準(zhǔn)確,缺點(diǎn)是往往會(huì)缺少對(duì)軟件開發(fā)系統(tǒng)級(jí)工作量的估算。可見,最好采用自頂向下與自底向上結(jié)合的方法來估算開發(fā)成本。210.2軟件規(guī)模估算10.2.1軟件開發(fā)成本估算方法專家估算法依靠一個(gè)或多個(gè)專家對(duì)要求的項(xiàng)目做出估算,其精確性取決于專家對(duì)估算項(xiàng)目的定性參數(shù)的了解和他們的經(jīng)驗(yàn)。4差別估算方法差別估算是將開發(fā)項(xiàng)目與一個(gè)或多個(gè)已完成的類似項(xiàng)目進(jìn)行比較,找出與類似項(xiàng)目的若干不同之處,并估算每個(gè)不同之處對(duì)成本的影響,從而推導(dǎo)出開發(fā)項(xiàng)目的總成本。該方法的優(yōu)點(diǎn)是可以提高估算的準(zhǔn)確度,缺點(diǎn)是不容易明確“差別”的界限。310.2軟件規(guī)模估算10.2.1軟件開發(fā)成本估算方法類推估算法自頂向下的方法中,將估算項(xiàng)目與類似項(xiàng)目進(jìn)行直接比較,得到結(jié)果。自底向上的方法中,在具有相似條件的相同工作階段之間進(jìn)行比較,得到結(jié)果。5算式估算法專家估算法和類推估算法的缺點(diǎn)在于,它們依靠帶有一定盲目性和主觀性的猜測(cè)對(duì)項(xiàng)目進(jìn)行估算。算式估算法則是企圖避免主觀因素的影響,用于估算的方法有兩種基本類型:由理論導(dǎo)出和由經(jīng)驗(yàn)得出。610.2軟件規(guī)模估算10.2.2代碼行技術(shù)代碼行(LineofCode,LOC)技術(shù)是一個(gè)相對(duì)簡單的定量估算軟件規(guī)模的方法。該方法先根據(jù)以往經(jīng)驗(yàn)及歷史數(shù)據(jù),估算出將要編寫的軟件的源代碼行數(shù),然后以每行的平均成本乘上估計(jì)的總行數(shù),估算出總的成本。軟件各項(xiàng)功能需要的代碼行數(shù)和開發(fā)成本應(yīng)分別估算。程序較小時(shí),代碼規(guī)模的估算單位是行數(shù)(LOC);程序較大時(shí),代碼規(guī)模的估算單位是千行數(shù)(KLOC)。代碼行的每行成本與開發(fā)工作的復(fù)雜性和工資水平有關(guān)。10.2軟件規(guī)模估算10.2.2代碼行技術(shù)代碼行技術(shù)優(yōu)點(diǎn)

代碼行是所有軟件開發(fā)項(xiàng)目都有的“產(chǎn)品”,很容易計(jì)算;已有大量的基于代碼行的文獻(xiàn)資料和數(shù)據(jù)。缺點(diǎn)

用不同語言實(shí)現(xiàn)同一軟件產(chǎn)品時(shí)所需要的代碼行數(shù)并不相同,代碼行技術(shù)不適用于非過程性語言。10.2軟件規(guī)模估算10.2.2代碼行技術(shù)每項(xiàng)功能的工作量(人天)等于代碼行數(shù)除以每人每天設(shè)計(jì)的行數(shù);每項(xiàng)功能的成本等于代碼行數(shù)乘以每行成本。最后分別計(jì)算出工作量的合計(jì)數(shù)和成本的合計(jì)數(shù)。為了使軟件規(guī)模的估算更符合實(shí)際情況,可由多名有經(jīng)驗(yàn)的軟件工程師分別做出估算。每個(gè)人都估算程序規(guī)模的最小值(a)、最大值(b)和最可能的值(m),分別計(jì)算這3種值的平均值,,,再用下式計(jì)算程序規(guī)模的估算值:開發(fā)軟件時(shí)要注意不斷積累有關(guān)數(shù)據(jù),以使今后的估算更準(zhǔn)確。10.2軟件規(guī)模估算10.2.3功能點(diǎn)技術(shù)功能點(diǎn)技術(shù)依據(jù)對(duì)軟件信息域特性和軟件復(fù)雜性的評(píng)估結(jié)果,估算軟件規(guī)模。這種方法以功能點(diǎn)為單位來度量軟件的規(guī)模。10.2軟件規(guī)模估算

10.2.3功能點(diǎn)技術(shù)1輸入項(xiàng)數(shù)(Inp)

用戶向軟件輸入的項(xiàng)目數(shù)。2輸出項(xiàng)數(shù)(Out)

軟件向用戶輸出的項(xiàng)目數(shù)。例如,報(bào)表、屏幕、出錯(cuò)信息等。報(bào)表內(nèi)的數(shù)據(jù)項(xiàng)個(gè)數(shù)不單獨(dú)計(jì)算。3查詢數(shù)(Inq)

查詢是一次輸入,它導(dǎo)致軟件產(chǎn)生某種即時(shí)響應(yīng)。4主文件數(shù)(Maf)

主文件是數(shù)據(jù)的一個(gè)邏輯組合,它可能是大型數(shù)據(jù)庫的一部分或一個(gè)獨(dú)立的文件。5外部接口數(shù)(Inf)

系統(tǒng)利用外部接口向其他系統(tǒng)傳送信息。

功能點(diǎn)技術(shù)定義了信息域的5個(gè)特性,每個(gè)特性按照不同復(fù)雜等級(jí)和不同的技術(shù)復(fù)雜性分配不同的功能點(diǎn)系數(shù),由此計(jì)算出軟件的功能點(diǎn)數(shù)來度量軟件的規(guī)模。1.信息域特性10.2軟件規(guī)模估算

10.2.3功能點(diǎn)技術(shù)計(jì)算未調(diào)整的功能點(diǎn)數(shù)UFP01首先,把每個(gè)信息域特性都分成3個(gè)等級(jí):簡單級(jí)、平均級(jí)和復(fù)雜級(jí)。根據(jù)不同的等級(jí),為每個(gè)特性分配一個(gè)功能點(diǎn)系數(shù)。假設(shè),一個(gè)平均級(jí)的輸入按4個(gè)功能點(diǎn)計(jì)算,一個(gè)簡單級(jí)的輸入項(xiàng)是3個(gè)功能點(diǎn),一個(gè)復(fù)雜級(jí)的輸入項(xiàng)是6個(gè)功能點(diǎn),如表10-1所示。然后,用下式計(jì)算未調(diào)整的功能點(diǎn)數(shù)UFP:其中,(1≤i≤5)是信息域特性系數(shù),其值由相應(yīng)特性的復(fù)雜級(jí)別決定。

復(fù)雜類別特性系數(shù)簡單平均復(fù)雜輸入項(xiàng)系數(shù)a1346輸出項(xiàng)系數(shù)a2457查詢系數(shù)a3346文件系數(shù)a471015接口系數(shù)a557102.估算功能點(diǎn)的步驟10.2軟件規(guī)模估算

10.2.3功能點(diǎn)技術(shù)先對(duì)軟件工程的14種主要技術(shù)因素,按照項(xiàng)目的工作情況,分別考慮它們可能會(huì)對(duì)軟件規(guī)模大小產(chǎn)生的不同影響。為了度量這14種技術(shù)因子,為每種技術(shù)因子分配一個(gè)從0到5的值。0表示不存在或?qū)浖?guī)模沒有影響,5表示對(duì)本項(xiàng)目的軟件規(guī)模有很大影響。表10-2列出了全部14種技術(shù)因素,并用Fi(1≤i≤14)代表這些因素,根據(jù)項(xiàng)目的具體情況將各技術(shù)因子分配的值填在“技術(shù)因子值”欄內(nèi)。計(jì)算技術(shù)復(fù)雜性因子TCF0210.2軟件規(guī)模估算10.2.3功能點(diǎn)技術(shù)序

號(hào)技術(shù)因素Fi技術(shù)因子值1數(shù)據(jù)通信F12分布式數(shù)據(jù)處理F23性能標(biāo)準(zhǔn)F34高負(fù)荷的硬件F45高處理率F56聯(lián)機(jī)數(shù)據(jù)輸入F67終端用戶效率F78聯(lián)機(jī)更新F89復(fù)雜的計(jì)算F910可重用性F1011安裝方便F1112操作方便F1213可移植性F1314可維護(hù)性F14表10-214種技術(shù)因素10.2軟件規(guī)模估算10.2.3功能點(diǎn)技術(shù)然后,用下式計(jì)算技術(shù)因素對(duì)軟件規(guī)模的綜合影響程度DI:技術(shù)復(fù)雜性因子TCF由下式計(jì)算:由于DI的值是14種技術(shù)因素值之和,因而DI的值在0~70之間,TCF的值在0.65~1.35之間。10.2軟件規(guī)模估算

10.2.3功能點(diǎn)技術(shù)功能點(diǎn)數(shù)FP用下式計(jì)算:功能點(diǎn)數(shù)與所選用的程序設(shè)計(jì)語言無關(guān)。因此,功能點(diǎn)技術(shù)比代碼行技術(shù)更合理些。但是,在判斷信息域特性復(fù)雜級(jí)別和技術(shù)因素的影響程度時(shí),存在相當(dāng)大的主觀因素。計(jì)算功能點(diǎn)數(shù)FP0310.2軟件規(guī)模估算10.2.4COCOMO2模型軟件開發(fā)工作量是軟件規(guī)模(KLOC)的函數(shù),工作量的單位通常是人月。COCOMO模型是一種軟件開發(fā)工作量估算模型。COCOMO是構(gòu)造性成本模型(ConstructiveCostModel)的英文縮寫,是Boehm于1981年提出的。它是一種層次結(jié)構(gòu)的軟件估算模型,是最精確、最易于使用的軟件成本估算方法之一。1997年Boehm等人提出的COCOMO2模型,是COCOMO模型的修訂版。10.2軟件規(guī)模估算10.2.4COCOMO2模型早期設(shè)計(jì)模型后期設(shè)計(jì)模型應(yīng)用系統(tǒng)組成模型系統(tǒng)說明文檔早期設(shè)計(jì)模型用于軟件結(jié)構(gòu)設(shè)計(jì)階段。應(yīng)用系統(tǒng)組成模型用于估算構(gòu)建原型的工作量,這種模型考慮到大量使用已有構(gòu)件的情況。

后期設(shè)計(jì)模型用于軟件結(jié)構(gòu)設(shè)計(jì)完成之后的軟件開發(fā)階段。

COCOMO2模型分為3個(gè)層次,在估算軟件開發(fā)工作量時(shí),對(duì)軟件細(xì)節(jié)問題考慮的詳盡程度逐層增加。這3個(gè)估算模型的層次分別是:10.2軟件規(guī)模估算10.2.4COCOMO2模型COCOMO2模型把軟件開發(fā)工作量表示成千行代碼數(shù)(KLOC)的非線性函數(shù):其中,E是開發(fā)工作量(以人月為單位);a是模型系數(shù);KLOC是估算的源代碼行數(shù)(以千行為單位);b是模型指數(shù);()是成本因素。每個(gè)成本因素都根據(jù)其重要程度和對(duì)工作量影響的大小被賦予一定的數(shù)值,稱為工作量系數(shù)。這些成本因素對(duì)任何一個(gè)項(xiàng)目的開發(fā)工作都有影響,應(yīng)該重視。Boehm把成本因素劃分為產(chǎn)品因素、平臺(tái)因素、人員因素和項(xiàng)目因素4類。表10-3列出了COCOMO2模型使用的成本因素及與之相聯(lián)系的工作量系數(shù)。10.2軟件規(guī)模估算10.2.4COCOMO2模型類型成本因素級(jí)

別甚低低正常高甚高特高產(chǎn)品因素1.要求的可靠性2.?dāng)?shù)據(jù)庫規(guī)模3.產(chǎn)品復(fù)雜程度4.要求的可重用性5.需要的文檔量0.750.750.890.880.930.880.910.951.001.001.001.001.001.151.091.151.141.061.391.191.301.291.131.661.49平臺(tái)因素6.執(zhí)行時(shí)間約束7.主存約束8.平臺(tái)變動(dòng)0.871.001.001.001.111.061.151.311.211.301.671.57人員因素9.分析員能力10.程序員能力11.應(yīng)用領(lǐng)域經(jīng)驗(yàn)12.平臺(tái)經(jīng)驗(yàn)13.語言和工具經(jīng)驗(yàn)14.人員連續(xù)性1.501.371.221.241.251.241.221.161.101.101.121.101.001.001.001.001.001.000.830.870.890.920.880.920.670.740.810.840.810.84項(xiàng)目因素15.使用軟件工具16.多地點(diǎn)開發(fā)17.開發(fā)進(jìn)度限制1.241.251.291.121.101.101.001.001.000.860.921.000.720.841.000.78表10-3成本因素及工作量系數(shù)10.2軟件規(guī)模估算10.2.4COCOMO2模型為了計(jì)算模型指數(shù)b,COCOMO2模型使用了5個(gè)分級(jí)因素Wi(1≤i≤5),其中每個(gè)成本因素都劃分為6個(gè)級(jí)別,每個(gè)級(jí)別的分級(jí)因素Wi取值如下:甚低Wi=5,低Wi=4,正常Wi=3,高Wi=2,甚高Wi=1,特高Wi=0。然后用下式計(jì)算b的值:因而,b的取值范圍為1.01~1.26。COCOMO2使用的5個(gè)分級(jí)因素分別是項(xiàng)目先例性、開發(fā)靈活性、風(fēng)險(xiǎn)排除度、項(xiàng)目組凝聚力和過程成熟度。在估算工作量的方程中,模型系數(shù)a的典型值為3.0,應(yīng)根據(jù)經(jīng)驗(yàn)數(shù)據(jù)確定一個(gè)適合本組織當(dāng)前開發(fā)的項(xiàng)目類型的數(shù)值。03進(jìn)度計(jì)劃Gantt圖工程網(wǎng)絡(luò)技術(shù)10.3進(jìn)度計(jì)劃

為進(jìn)行軟件項(xiàng)目管理,需要定義當(dāng)前項(xiàng)目的任務(wù)集合,識(shí)別關(guān)鍵任務(wù),制定一個(gè)詳細(xì)的進(jìn)度表,規(guī)定完成各項(xiàng)任務(wù)的起止日期,督促項(xiàng)目進(jìn)度,保證項(xiàng)目按期完成。制定項(xiàng)目進(jìn)度計(jì)劃可使用Gantt圖和工程網(wǎng)絡(luò)技術(shù)。10.3進(jìn)度計(jì)劃10.3.1Gantt圖任務(wù)分解成子任務(wù)的情況。每個(gè)任務(wù)的開始時(shí)間和完成時(shí)間,線段的長度表示完成任務(wù)所需的時(shí)間。子任務(wù)之間的并行和串行關(guān)系。

Gantt圖表示了任務(wù)之間的并行和串行關(guān)系,簡單明了,易畫易讀易改,使用十分方便。由于圖上顯示了年月時(shí)間,用它來檢查工程完成的情況十分直觀方便,但是它不能顯示各項(xiàng)子任務(wù)之間的依賴關(guān)系,以及哪些是關(guān)鍵子任務(wù)等,要彌補(bǔ)這一不足,可采用工程網(wǎng)絡(luò)技術(shù)。

Gantt圖(橫道圖或甘特圖)是安排工程進(jìn)度計(jì)劃的簡單工具,它把任務(wù)分解成子任務(wù),常用水平線來描述每個(gè)子任務(wù)的進(jìn)度安排。該方法簡單易懂、一目了然。10.3進(jìn)度計(jì)劃10.3.1Gantt圖Gantt圖用于安排軟件工程進(jìn)度計(jì)劃。圖10-1在Gantt圖中,每一項(xiàng)任務(wù)的開始時(shí)間和結(jié)束時(shí)間先均用空心小三角形表示,兩者用橫線相連,令人一目了然。當(dāng)活動(dòng)開始時(shí),將橫線左邊的小三角形涂黑;當(dāng)活動(dòng)結(jié)束時(shí),再把橫線右邊的小三角形涂黑。從圖10-1中可以很容易地看出,需求分析工作從2005年1月開始,到2月底已經(jīng)完成;測(cè)試計(jì)劃、編寫文檔工作從2月初開始,概要設(shè)計(jì)也已經(jīng)開始,這三項(xiàng)工作尚未完成;其他幾項(xiàng)工作還未開始。圖10-1Gantt圖例10.3進(jìn)度計(jì)劃10.3.2工程網(wǎng)絡(luò)技術(shù)工程網(wǎng)絡(luò)技術(shù)又稱PERT(ProgramEvaluationandReviewTechnique)技術(shù),是指利用PERT圖制定進(jìn)度計(jì)劃。如果把一個(gè)工程項(xiàng)目分解成許多子任務(wù)(作業(yè)),并且這些子任務(wù)之間的依賴關(guān)系又比較復(fù)雜時(shí),可以用工程網(wǎng)絡(luò)圖表示。10.3進(jìn)度計(jì)劃10.3.2工程網(wǎng)絡(luò)技術(shù)工程網(wǎng)絡(luò)圖該圖用圓圈表示事件(子任務(wù)的開始或結(jié)束),能明顯地表示各個(gè)子任務(wù)之間的依賴關(guān)系。事件是可以明確定義的時(shí)間點(diǎn),本身并不消耗時(shí)間和資源。用有向弧或箭頭表示一個(gè)事件結(jié)束,另一個(gè)事件開始。用開始事件的編號(hào)和結(jié)束事件的編號(hào)表示一個(gè)子任務(wù),箭頭上方的數(shù)字表示該子任務(wù)的持續(xù)時(shí)間,箭頭下方括號(hào)中的數(shù)字表示該子任務(wù)允許的機(jī)動(dòng)時(shí)間。例如,在圖10-2中,任務(wù)3-4的持續(xù)時(shí)間為3,機(jī)動(dòng)時(shí)間為0。圖10-2工程網(wǎng)絡(luò)圖10.3進(jìn)度計(jì)劃10.3.2工程網(wǎng)絡(luò)技術(shù)工程網(wǎng)絡(luò)圖表示事件的圓圈分左右兩部分,左部中的數(shù)字表示事件的序號(hào)。圓圈的右部又劃分為上下兩部分,上部分中的數(shù)字表示前一子任務(wù)結(jié)束或后一子任務(wù)開始的最早時(shí)刻(EET);下部分中的數(shù)字則表示前一子任務(wù)結(jié)束或后一子任務(wù)開始的最遲時(shí)刻(LET)。圖10-2工程網(wǎng)絡(luò)圖10.3進(jìn)度計(jì)劃10.3.2工程網(wǎng)絡(luò)技術(shù)工程網(wǎng)絡(luò)圖工程網(wǎng)絡(luò)圖只有一個(gè)開始點(diǎn)和一個(gè)終止點(diǎn),開始點(diǎn)沒有流入的箭頭,最早時(shí)刻定義為零;終止點(diǎn)沒有流出的箭頭,其最遲時(shí)刻就是它的最早時(shí)刻。中間的事件圓表示在它之前的子任務(wù)已經(jīng)完成,在它之后的子任務(wù)可以開始,如圖10-2所示。圖10-2工程網(wǎng)絡(luò)圖10.3進(jìn)度計(jì)劃10.3.2工程網(wǎng)絡(luò)技術(shù)工程網(wǎng)絡(luò)圖工程網(wǎng)絡(luò)圖中還可以有一些虛線箭頭表示虛擬子任務(wù)。這些虛擬子任務(wù)實(shí)際并不存在,只是表示子任務(wù)之間存在依賴關(guān)系。例如,圖10-2中有虛擬子任務(wù)4-8,表示只有在任務(wù)4-8和任務(wù)5-8都結(jié)束后,事件8才能開始,虛擬子任務(wù)4-8本身并不花費(fèi)時(shí)間。圖10-2工程網(wǎng)絡(luò)圖10.3進(jìn)度計(jì)劃10.3.2工程網(wǎng)絡(luò)技術(shù)考慮進(jìn)入該事件的所有作業(yè)。對(duì)每個(gè)作業(yè)都計(jì)算它的持續(xù)時(shí)間與起始事件的EET之和。選取上述和數(shù)中的最大值,作為該事件的最早時(shí)刻EET。123

事件的最早時(shí)刻(EET)是該事件可以開始的最早時(shí)間。工程網(wǎng)絡(luò)圖由開始點(diǎn)沿著事件發(fā)生的順序,使用3條簡單規(guī)則來計(jì)算最早時(shí)刻。1.計(jì)算最早時(shí)刻(EET)10.3進(jìn)度計(jì)劃10.3.2工程網(wǎng)絡(luò)技術(shù)例如,作業(yè)2-3由事件2開始,到事件3結(jié)束。事件2的最早時(shí)刻為2,只有一個(gè)作業(yè)進(jìn)入事件3,作業(yè)2-3的持續(xù)時(shí)間為4,所以事件3的最早時(shí)間為2+4=6。作業(yè)3-5的持續(xù)時(shí)間為1,事件3的最早時(shí)刻為6,事件5只有一個(gè)作業(yè)進(jìn)入,事件5的最早時(shí)刻為6+1=7。作業(yè)5-8進(jìn)入事件8,持續(xù)時(shí)間為1,事件5的最早時(shí)刻為7,7+1=8;虛擬作業(yè)4-8也進(jìn)入事件8,持續(xù)時(shí)間為0,事件4的最早時(shí)刻為9,9+0=9。根據(jù)第3條規(guī)則,事件8的最早時(shí)刻為按照此方法,算出所有事件的最早時(shí)刻,寫在每個(gè)圓圈的右上部分內(nèi)。1.計(jì)算最早時(shí)刻(EET)10.3進(jìn)度計(jì)劃10.3.2工程網(wǎng)絡(luò)技術(shù)從結(jié)束點(diǎn)開始,計(jì)算出每個(gè)事件的最遲時(shí)刻(LET),寫在圓圈的右下部分內(nèi)。事件的最遲時(shí)刻是在不影響工程進(jìn)度的前提下,該事件最晚可以發(fā)生的時(shí)刻。結(jié)束點(diǎn)的最遲時(shí)刻就是它的最早時(shí)刻。其他點(diǎn)的最遲時(shí)刻按作業(yè)的逆向順序,使用下述規(guī)則進(jìn)行計(jì)算:(1)考慮離開該事件的所有作業(yè)。(2)從每個(gè)作業(yè)的結(jié)束事件的最遲時(shí)刻中減去該作業(yè)的持續(xù)時(shí)間。(3)選取上述差數(shù)中的最小值,作為該事件的最遲時(shí)刻LET。2.計(jì)算最遲時(shí)刻(LET)10.3進(jìn)度計(jì)劃10.3.2工程網(wǎng)絡(luò)技術(shù)例如,圖10-2中事件10,離開它的作業(yè)只有一個(gè),是作業(yè)10-11,持續(xù)時(shí)間為1,結(jié)束事件的最遲時(shí)刻為15,因而事件10的最遲時(shí)刻為15-1=14。同理,事件7的最遲時(shí)刻為14-2=12;事件8的最遲時(shí)刻為14-1=13。離開事件4的作業(yè)有兩個(gè):作業(yè)4-7和虛擬作業(yè)4-8,持續(xù)時(shí)間分別為3和0,因而,事件4的最遲時(shí)刻為:2.計(jì)算最遲時(shí)刻(LET)10.3進(jìn)度計(jì)劃10.3.2工程網(wǎng)絡(luò)技術(shù)在圖10-2中,有幾個(gè)事件的最早時(shí)刻和最遲時(shí)刻相同,這些事件定義了關(guān)鍵路徑,在圖中用粗線箭頭表示。關(guān)鍵路徑上的事件必須準(zhǔn)時(shí)開始,關(guān)鍵路徑上的作業(yè)是關(guān)鍵作業(yè),它的實(shí)際持續(xù)時(shí)間不能超過預(yù)先估計(jì)的時(shí)間,否則工程不能準(zhǔn)時(shí)結(jié)束。工程項(xiàng)目管理人員應(yīng)該密切注視關(guān)鍵作業(yè)的進(jìn)展情況,如果關(guān)鍵作業(yè)開始的時(shí)間比預(yù)定的時(shí)間晚,則會(huì)使最終完成項(xiàng)目的時(shí)間最遲;如果希望縮短工期,應(yīng)當(dāng)想法使關(guān)鍵作業(yè)的持續(xù)時(shí)間減少。3.關(guān)鍵路徑10.3進(jìn)度計(jì)劃10.3.2工程網(wǎng)絡(luò)技術(shù)不在關(guān)鍵路徑上的作業(yè)有一定的機(jī)動(dòng)時(shí)間,實(shí)際開始時(shí)間可以比預(yù)定時(shí)間晚一點(diǎn),或者實(shí)際持續(xù)時(shí)間可以比預(yù)定的持續(xù)時(shí)間長一些,而并不影響工程的結(jié)束時(shí)間。一個(gè)作業(yè)可以有的機(jī)動(dòng)時(shí)間等于它的結(jié)束事件的最遲時(shí)刻減去它的開始事件的最早時(shí)刻,再減去這個(gè)作業(yè)的持續(xù)時(shí)間:

在工程網(wǎng)絡(luò)圖中,每個(gè)作業(yè)的機(jī)動(dòng)時(shí)間寫在該作業(yè)的箭頭下面的括號(hào)里,如圖10-2所示。關(guān)鍵路徑上作業(yè)的機(jī)動(dòng)時(shí)間為0。在制定進(jìn)度計(jì)劃時(shí),仔細(xì)考慮和利用網(wǎng)絡(luò)圖中的機(jī)動(dòng)時(shí)間,往往能安排出既節(jié)省資源又不影響竣工時(shí)間的進(jìn)度表。4.機(jī)動(dòng)時(shí)間10.3進(jìn)度計(jì)劃10.3.2工程網(wǎng)絡(luò)技術(shù)對(duì)于不在關(guān)鍵路徑上的任務(wù),可根據(jù)實(shí)際情況調(diào)整其開始時(shí)間,這樣做既不影響整個(gè)工程的進(jìn)度,又可減少工作人員。將網(wǎng)絡(luò)圖和Gantt圖結(jié)合起來安排進(jìn)度,有時(shí)可以節(jié)省不少的人力。例如在圖10-2中,作業(yè)3-5和作業(yè)3-6本來是兩個(gè)并行的作業(yè),由于可以在時(shí)間安排上錯(cuò)開進(jìn)行,如果由一組人員可以先后完成這兩個(gè)作業(yè),就節(jié)省了一組人力。其他作業(yè)也一樣,應(yīng)仔細(xì)研究是否能節(jié)省人力。10.3進(jìn)度計(jì)劃10.3.2工程網(wǎng)絡(luò)技術(shù)爭取縮短關(guān)鍵路徑上的某些任務(wù)的耗時(shí)數(shù),以便縮短整個(gè)工程的工期。利用工程網(wǎng)絡(luò)圖和Gantt圖可以制定出合理的進(jìn)度計(jì)劃,并能科學(xué)合理地管理軟件開發(fā)的進(jìn)展情況。一般來說,Gantt圖適用于簡單的軟件項(xiàng)目,而對(duì)各項(xiàng)任務(wù)的相互依賴關(guān)系較為復(fù)雜的軟件項(xiàng)目,使用網(wǎng)絡(luò)技術(shù)較為適宜。有時(shí)可同時(shí)使用這兩種方法,互相比較,取長補(bǔ)短,隨時(shí)調(diào)整,更好地安排項(xiàng)目進(jìn)度。10.3進(jìn)度計(jì)劃10.3.2工程網(wǎng)絡(luò)技術(shù)對(duì)于圖10-2所示的工程中各項(xiàng)任務(wù)的進(jìn)度安排,可用Gantt圖畫出,如圖10-3所示。這里應(yīng)當(dāng)首先將關(guān)鍵路徑上的任務(wù)進(jìn)度安排好,再考慮其他任務(wù)的進(jìn)度安排。由于任務(wù)3-5和任務(wù)3-6的進(jìn)度安排可以有一定的機(jī)動(dòng)時(shí)間,如果把這兩項(xiàng)任務(wù)的執(zhí)行時(shí)間錯(cuò)開,可以節(jié)省人力,那不是更好嗎?圖10-3圖10-2工程的Gantt圖10.3進(jìn)度計(jì)劃10.3.2工程網(wǎng)絡(luò)技術(shù)在工程網(wǎng)絡(luò)圖10-2中有3條執(zhí)行路徑,不仔細(xì)考慮的話,需要三組人員來完成任務(wù)。這里,關(guān)鍵路徑上的任務(wù)必須確保每個(gè)任務(wù)順序按時(shí)進(jìn)行。而兩條非關(guān)鍵路徑上的任務(wù),由于執(zhí)行任務(wù)所需要的時(shí)間較少,實(shí)際執(zhí)行的時(shí)間又有一定的機(jī)動(dòng)靈活余地,如果任務(wù)執(zhí)行者可以調(diào)劑的話,通過適當(dāng)安排,只需一組人員就可完成這兩條非關(guān)鍵路徑上的所有任務(wù),如圖10-3所示。執(zhí)行順序?yàn)椋喝蝿?wù)3-5,3-6,5-8,6-9,8-10,9-10。04人員組織開發(fā)人員組織機(jī)構(gòu)用戶10.4人員組織10.4.1開發(fā)人員

軟件開發(fā)人員一般分為項(xiàng)目負(fù)責(zé)人、系統(tǒng)分析員、高級(jí)程序員、程序員、初級(jí)程序員、資料員和其他輔助人員。這里,系統(tǒng)分析員和高級(jí)程序員是高級(jí)技術(shù)人員;后面幾種是低級(jí)技術(shù)人員。根據(jù)項(xiàng)目規(guī)模的大小,有的人可能身兼數(shù)職,但職責(zé)必須明確。參加軟件生存周期各個(gè)階段活動(dòng)的人員,既要有分工又要互相聯(lián)系。因此,要求各類人員既能勝任工作,又要能很好地相互配合。沒有一個(gè)和諧的工作環(huán)境,很難完成一個(gè)復(fù)雜的軟件項(xiàng)目。10.4人員組織10.4.1開發(fā)人員圖10-4列出了各類開發(fā)人員在軟件工程各階段的參加程度。圖10-4各類人員在軟件工程各階段參加程度10.4人員組織10.4.1開發(fā)人員系統(tǒng)分析員程序員項(xiàng)目負(fù)責(zé)人開發(fā)人員系統(tǒng)分析員系統(tǒng)分析員需要有概括能力、分析能力和社交活動(dòng)能力。項(xiàng)目負(fù)責(zé)人項(xiàng)目負(fù)責(zé)人需要具有組織能力、判斷能力和對(duì)重大問題做出決策的能力。程序員程序員需要有熟練的編程能力等。10.4人員組織10.4.2組織機(jī)構(gòu)開發(fā)人員不能只是一個(gè)簡單的集合,要求具有好的組織結(jié)構(gòu):合理的人員分工和有效的通信。軟件開發(fā)的組織機(jī)構(gòu)沒有統(tǒng)一的模式,通??刹捎靡韵?種組織結(jié)構(gòu)的模式。按課題劃分的模式(ProjectFormat)。按職能劃分的模式(FunctionalFormat)。矩陣形模式(MatrixFormat)。矩陣形模式是將前兩種模式結(jié)合起來:一方面,按工作性質(zhì)成立一些專門組,如開發(fā)組、業(yè)務(wù)組、測(cè)試組等;另一方面,每個(gè)項(xiàng)目有負(fù)責(zé)人,每個(gè)人屬于某個(gè)課題組,參加該項(xiàng)目的工作。通常程序設(shè)計(jì)工作是按小組進(jìn)行的,程序設(shè)計(jì)小組的組織形式可以有3種:主程序員組、民主制程序員組、層次式小組。10.4人員組織10.4.2組織機(jī)構(gòu)主程序員組01如果程序設(shè)計(jì)小組的大多數(shù)軟件開發(fā)人員是比較缺乏經(jīng)驗(yàn)的人員,而程序設(shè)計(jì)過程中又有許多事務(wù)性工作(如大量信息的存儲(chǔ)和更新),則可采取“主程序員組”的組織方法,也就是說,用經(jīng)驗(yàn)多、能力強(qiáng)、技術(shù)好的程序員作為主程序員。同時(shí),其他人多做些事務(wù)性工作,為主程序員提供充分的支持,而所有的聯(lián)絡(luò)工作都通過一兩個(gè)人(程序管理員)來進(jìn)行?!爸鞒绦騿T組”的核心有3個(gè)人。另外,須配備一些臨時(shí)或長期的工作人員,如項(xiàng)目管理員、工具員、文檔編輯、語言和系統(tǒng)專家、測(cè)試員、后援程序員等。使用“主程序員組”的組織方式,可提高生產(chǎn)率,減少總的人年(或人月)數(shù)。10.4人員組織10.4.2組織機(jī)構(gòu)應(yīng)由經(jīng)驗(yàn)豐富、能力較強(qiáng)的高級(jí)程序員擔(dān)任,全面負(fù)責(zé)系統(tǒng)的設(shè)計(jì)、編碼、測(cè)試和安裝工作。主程序員組的制度突出了主程序員的領(lǐng)導(dǎo),責(zé)任集中在少數(shù)人身上,有利于提高軟件質(zhì)量主程序員也應(yīng)由技術(shù)熟練、富于經(jīng)驗(yàn)者擔(dān)任,協(xié)助主程序員工作,設(shè)計(jì)測(cè)試方案和分析測(cè)試結(jié)果,以驗(yàn)證主程序員的工作輔助程序員負(fù)責(zé)保管和維護(hù)所有的軟件文檔資料,幫助收集軟件的數(shù)據(jù),并在研究、分析和評(píng)價(jià)文檔資料的準(zhǔn)備方面進(jìn)行協(xié)助工作。如提交程序、保存運(yùn)行記錄、管理軟件配置等程序管理員10.4人員組織10.4.2組織機(jī)構(gòu)民主制程序員組02民主制程序員組的程序設(shè)計(jì)成員完全平等,享有充分的民主,通過協(xié)商做出技術(shù)決策,發(fā)現(xiàn)錯(cuò)誤時(shí),每個(gè)人都積極主動(dòng)地想方法,攻克難關(guān)。很顯然,這種組織機(jī)構(gòu)對(duì)調(diào)動(dòng)積極性和個(gè)人的創(chuàng)造性是很值得稱道的。但是,這種組織也有缺點(diǎn),如果小組有n個(gè)人,通信的信道有條,小組人數(shù)多的話,通信量會(huì)非常大。如果組織內(nèi)有缺乏經(jīng)驗(yàn)的新手或技術(shù)水平不高的成員,可能難以完成任務(wù)。10.4人員組織10.4.2組織機(jī)構(gòu)層次式小組03這種小組中,組長負(fù)責(zé)全組工作,直接領(lǐng)導(dǎo)2~3名高級(jí)程序員,每位高級(jí)程序員管理若干程序員。這種小組比較適合于完成層次結(jié)構(gòu)的課題。一般來講,程序設(shè)計(jì)小組的成員以2~8名為宜。如果項(xiàng)目規(guī)模較大,一個(gè)小組不能在預(yù)定時(shí)間內(nèi)完成任務(wù),則可使用多個(gè)程序設(shè)計(jì)小組,每個(gè)小組在一定程度上獨(dú)立自主地完成工程中的部分任務(wù)。這時(shí),系統(tǒng)的概要設(shè)計(jì)工作特別重要,應(yīng)保證各部分之間的接口定義良好,并且越簡單越好。10.4人員組織10.4.2組織機(jī)構(gòu)把主程序員組和民主制程序員組的優(yōu)點(diǎn)結(jié)合起來,根據(jù)軟件項(xiàng)目的規(guī)模大小,安排適當(dāng)?shù)某绦蛟O(shè)計(jì)小組的成員和人數(shù),合理地、層次式地進(jìn)行管理,有利于提高軟件工程的質(zhì)量和效率。10.4人員組織10.4.3用戶軟件是為用戶開發(fā)的,在開發(fā)過程中必須自始至終得到用戶的密切合作和支持。開發(fā)人員要特別注意與用戶多溝通,了解用戶的心理和動(dòng)態(tài),防止來自用戶的各種干擾和阻力。其干擾和阻力主要有以下幾種:1不積極配合

用戶在行動(dòng)上表現(xiàn)為消極、漠不關(guān)心或不配合。在需求分析階段,做好這部分人的工作是很重要的,要通過他們中的業(yè)務(wù)骨干真正了解用戶的要求。10.4人員組織10.4.3用戶2求快求全

用戶中的部分人員急切希望馬上就能用上計(jì)算機(jī)軟件,應(yīng)當(dāng)讓他們認(rèn)識(shí)到開發(fā)一個(gè)軟件項(xiàng)目不是一朝一夕就能完成的,軟件工程不是靠人多就能加快速度的;同時(shí)還要讓他們認(rèn)識(shí)到軟件系統(tǒng)不能貪大求全。3功能的變化

在軟件開發(fā)過程中,用戶可能會(huì)不斷提出新的要求和修改以前提出的要求。從軟件工程的角度講,不希望有這種變化。但實(shí)際上,不允許用戶變更所提出的要求是不可能的。因?yàn)槊總€(gè)人對(duì)事物的認(rèn)識(shí)要有個(gè)過程,不可能一下子提出全面的、正確的要求。對(duì)來自用戶的這種變化要正確對(duì)待,要向用戶解釋軟件工程的規(guī)律,并在可能的條件下,部分或有條件地滿足用戶的合理要求。05軟件配置管理標(biāo)識(shí)變更控制變更配置審計(jì)配置狀態(tài)報(bào)告10.5軟件配置管理

在計(jì)算機(jī)軟件開發(fā)過程中,軟件變更是不可避免的。如果不能適當(dāng)?shù)乜刂坪凸芾碜兏瑒?shì)必造成混亂并產(chǎn)生許多嚴(yán)重的錯(cuò)誤。軟件配置(SoftwareConfiguration)是軟件產(chǎn)品在軟件開發(fā)或運(yùn)行過程中產(chǎn)生的全部信息。這些信息隨著軟件開發(fā)運(yùn)行工作的進(jìn)展而不斷變更。10.5軟件配置管理文檔、計(jì)算機(jī)程序單元、文字材料及測(cè)試結(jié)果等。機(jī)器不可執(zhí)行形式程序內(nèi)包含的數(shù)據(jù)或程序外的數(shù)據(jù)。數(shù)據(jù)機(jī)器可讀代碼及存儲(chǔ)在機(jī)器可讀介質(zhì)上的數(shù)據(jù)庫。機(jī)器可執(zhí)行形式大部分軟件配置都是文字材料,其中有定義階段和開發(fā)階段為軟件開發(fā)人員內(nèi)部使用而寫的文檔,開發(fā)階段為用戶寫的技術(shù)資料或手冊(cè),還有供維護(hù)階段使用的內(nèi)部參考材料,如測(cè)試結(jié)果等。

軟件過程中產(chǎn)生的全部信息,可以分為3類。10.5軟件配置管理軟件配置管理(SoftwareConfigurationManagement,SCM)是在軟件的整個(gè)生存周期內(nèi)管理變更的一組活動(dòng)。軟件配置與軟件維護(hù)不同。軟件維護(hù)是在軟件交付給用戶使用以后,根據(jù)用戶的需要修改軟件。軟件配置管理是在軟件項(xiàng)目定義時(shí)就開始,一直到軟件退役后才停止的控制活動(dòng)。軟件配置管理的目的是使軟件變更所產(chǎn)生的錯(cuò)誤達(dá)到最少,從而有效地提高軟件生產(chǎn)率。10.5軟件配置管理標(biāo)識(shí)變更1423軟件配置管理的任務(wù)控制軟件配置的全部變動(dòng),即“控制變更”確保變更正確地實(shí)現(xiàn)報(bào)告配置的變更10.5軟件配置管理軟件配置是軟件在某一具體時(shí)刻的瞬時(shí)寫照。軟件配置項(xiàng)(SoftwareConfigurationItem,SCI)是軟件工程生存周期中不斷產(chǎn)生的信息項(xiàng),它是軟件配置管理的基本單位。隨著軟件工程的進(jìn)展,軟件配置在不斷地變更,因而配置管理首先要標(biāo)識(shí)這種變更。“”1.標(biāo)識(shí)變更10.5軟件配置管理01(1)以可理解、可預(yù)見的方式確定一個(gè)有條理的文檔結(jié)構(gòu);03(3)對(duì)各種變更提供控制設(shè)施。02(2)提供調(diào)節(jié)、修改的方法,并協(xié)助追溯各種變更;

標(biāo)識(shí)變更的主要目標(biāo)是:10.5軟件配置管理在軟件工程中,對(duì)軟件配置進(jìn)行管理有一個(gè)基本概念——基線,基線是通過了正式復(fù)審的軟件配置。美國電氣與電子工程師學(xué)會(huì)(IEEE)對(duì)基線的定義是:“已經(jīng)通過了正式復(fù)審的規(guī)格說明或中間產(chǎn)品,它可以作為進(jìn)一步開發(fā)的基礎(chǔ),并且只有通過正式的變化控制才能改變它?!?在軟件配置項(xiàng)變?yōu)榛€之前,可以迅速地修改它。一旦建立了基線,就必須應(yīng)用特定的、正式的過程來評(píng)估、實(shí)現(xiàn)和驗(yàn)證每個(gè)變更(不能隨意地修改基線)。為便于在配置項(xiàng)各層次中進(jìn)行追溯,應(yīng)確定好全部文檔的格式、內(nèi)容及控制機(jī)構(gòu)。要用同一種編號(hào)體制提供軟件配置項(xiàng)的信息,以便對(duì)所有產(chǎn)品、文檔和介質(zhì)指定合適的標(biāo)識(shí)號(hào)。注意,標(biāo)識(shí)方式要有利于控制變更,要便于增刪和修改。210.5軟件配置管理系統(tǒng)規(guī)格說明書;軟件項(xiàng)目實(shí)施計(jì)劃;軟件需求規(guī)格說明書;設(shè)計(jì)規(guī)格說明書(數(shù)據(jù)設(shè)計(jì)、體系結(jié)構(gòu)設(shè)計(jì)、模塊設(shè)計(jì)、接口設(shè)計(jì)和對(duì)象描述);源代碼清單;測(cè)試計(jì)劃和過程、測(cè)試用例和測(cè)試結(jié)果記錄;操作和安裝手冊(cè);可執(zhí)行程序(可執(zhí)行程序模塊、連接模塊);數(shù)據(jù)庫描述(模式和文件結(jié)構(gòu)、初始內(nèi)容);用戶手冊(cè);維護(hù)文檔(軟件問題報(bào)告、維護(hù)請(qǐng)求和工程變更次序);軟件工程標(biāo)準(zhǔn);項(xiàng)目開發(fā)小結(jié)。以下軟件配置項(xiàng)是軟件配置管理的對(duì)象,并可形成基線。10.5軟件配置管理01(1)為全部軟件配置建立一個(gè)專門的軟件庫。03(3)由可靠的計(jì)算機(jī)終端訪問的文檔檢索設(shè)備及文字處理設(shè)備支持的聯(lián)機(jī)軟件庫。02(2)把全部軟件文檔以及每個(gè)配置的其他成分都視為已建成的文檔庫的組成部分。

在軟件的生存周期中對(duì)軟件配置項(xiàng)進(jìn)行變更的評(píng)價(jià)及核準(zhǔn)的機(jī)制,稱為控制變更。實(shí)施文檔控制的方法大致有以下3種:2.控制變更10.5軟件配置管理

實(shí)行配置管理意味著對(duì)配置的每一種變動(dòng)都要有復(fù)查及批準(zhǔn)手續(xù)。變動(dòng)控制越正規(guī),復(fù)查及批準(zhǔn)手續(xù)就越麻煩。

變更控制包括建立控制點(diǎn)和建立報(bào)告與審查制度。對(duì)于一個(gè)大型軟件來說,不加控制的變更很快就會(huì)引起混亂。因此變更控制是一項(xiàng)最重要的軟件配置管理任務(wù)。

無論采取何種方法進(jìn)行文檔控制,都應(yīng)建立一個(gè)參考系統(tǒng)。每個(gè)文檔都應(yīng)有單獨(dú)編號(hào),包括單獨(dú)的項(xiàng)目標(biāo)識(shí)號(hào)、配置單元項(xiàng)標(biāo)識(shí)號(hào)、修改級(jí)號(hào)以及屬性編號(hào)等。一般來說,控制變更可以建立單項(xiàng)控制、管理控制及正式控制3種不同的類型。其中以正式控制最正規(guī),管理控制次之。10.5軟件配置管理變更控制存取控制

存取控制(訪問控制)管理各個(gè)用戶具有存取和修改一個(gè)特定軟件配置對(duì)象的權(quán)限。同步控制

同步控制可用來確保由不同用戶所執(zhí)行的并發(fā)變更不會(huì)互相覆蓋。10.5軟件配置管理

正式的技術(shù)復(fù)審關(guān)注被修改后的配置對(duì)象的技術(shù)正確性。

軟件配置復(fù)審對(duì)技術(shù)復(fù)審進(jìn)行補(bǔ)充。如檢查配置項(xiàng)的變更標(biāo)識(shí)是否完整、正確、明顯等。審計(jì)工作的主要目的是要保證基線在技術(shù)與管理上的完整性和正確性,保證對(duì)軟件配置項(xiàng)(SCI)所做的變動(dòng)是服從需求規(guī)定的。審計(jì)工作是變動(dòng)控制人員批準(zhǔn)SCI的先決條件。在軟件生存期內(nèi),必須不斷地進(jìn)行配置審計(jì)工作,不要等到最后才進(jìn)行。配置審計(jì)要采取正式的技術(shù)復(fù)審和軟件配置復(fù)審兩方面措施。3.配置審計(jì)10.5軟件配置管理軟件配置狀態(tài)報(bào)告主要是回答“發(fā)生了什么情況”“誰做的這件事”“什么時(shí)候發(fā)生這一情況”“它將影響哪些其他事物”等問題。配置狀態(tài)報(bào)告從每個(gè)軟件配置管理中獲取信息,建立數(shù)據(jù)庫,便可產(chǎn)生報(bào)告。通過對(duì)軟件配置變更的記錄及報(bào)告的復(fù)查,便能確定何時(shí)做過何種變動(dòng),何種元素已被添加到已批準(zhǔn)的基線,以及在給定的時(shí)刻配置處于何種狀態(tài)等。例如,隨著軟件工程生存期的推進(jìn),軟件系統(tǒng)的版本不斷更新。可將不斷變更的版本進(jìn)行編號(hào),在哪種版本的基礎(chǔ)上做不大的改動(dòng)時(shí),就在這種版本號(hào)的后面加點(diǎn)號(hào)和序號(hào);改動(dòng)較大時(shí),版本序號(hào)變大。如版本1.0、版本1.1、版本1.1.1、版本1.1.2;版本1.2、版本1.3、版本1.4;版本2.0、版本2.1等。每種版本是在哪個(gè)版本的基礎(chǔ)上,做了何種變動(dòng)等都要詳細(xì)加以記錄。4.配置狀態(tài)報(bào)告10.5軟件配置管理綜上所述,軟件配置管理是對(duì)軟件工程的定義、開發(fā)、維護(hù)階段的一種重要補(bǔ)充。軟件工程過程中某一階段的變更,都會(huì)引起軟件配置的變更,對(duì)這種變更必須嚴(yán)格加以控制和管理。必須保持配置,并把精確、清晰的信息傳遞到軟件工程過程的下一步驟。06軟件質(zhì)量保證軟件質(zhì)量的特性軟件質(zhì)量保證措施10.6軟件質(zhì)量保證軟件質(zhì)量保證10.6軟件質(zhì)量保證

計(jì)算機(jī)軟件質(zhì)量是軟件的一些內(nèi)部特性的組合,質(zhì)量不是在軟件產(chǎn)品中被測(cè)試出來的,而是在軟件開發(fā)和生產(chǎn)過程中形成的。國家標(biāo)準(zhǔn)GB/T11457—2006《信息技術(shù)軟件工程術(shù)語》對(duì)軟件質(zhì)量(SoftwareQuality)的定義為:軟件產(chǎn)品中能滿足給定需要的性質(zhì)和特性的總體,例如符合規(guī)格說明;軟件具有所期望的各種屬性的組合程度;顧客和用戶覺得軟件滿足其綜合期望的程度;確定軟件在使用中將滿足顧客預(yù)期要求的程度。為保證軟件充分滿足用戶要求而進(jìn)行的有計(jì)劃、有組織的活動(dòng)稱為軟件質(zhì)量保證,其目的是生產(chǎn)高質(zhì)量的軟件。10.6軟件配置管理

10.6.1軟件質(zhì)量的特性軟件功能必須滿足用戶規(guī)定的需求。軟件應(yīng)遵守規(guī)定標(biāo)準(zhǔn)所定義的一系列開發(fā)準(zhǔn)則。軟件應(yīng)滿足某些隱含的需求,例如可理解性、可維護(hù)性等。123

軟件質(zhì)量是指軟件滿足明確規(guī)定或隱含定義的需求的程度。軟件質(zhì)量的要點(diǎn)如下:10.6軟件配置管理

10.6.1軟件質(zhì)量的特性評(píng)價(jià)軟件質(zhì)量的關(guān)鍵,要定出評(píng)定質(zhì)量的指標(biāo)和評(píng)定優(yōu)劣的標(biāo)準(zhǔn)。軟件工程質(zhì)量保證體系應(yīng)遵循國家相關(guān)的法律、法規(guī)及標(biāo)準(zhǔn),如國家標(biāo)準(zhǔn)GB/T25000.1—2010《軟件工程軟件產(chǎn)品質(zhì)量要求和評(píng)價(jià)(SQuaRE)SQuaRE指南》、ISO/IEC25021—2012《系統(tǒng)和軟件工程系統(tǒng)和軟件質(zhì)量要求和評(píng)估(SQuaRE)質(zhì)量評(píng)估要素》,國際標(biāo)準(zhǔn)ISO9001—2015《質(zhì)量管理體系要求》等。這些標(biāo)準(zhǔn)的基本思想是:質(zhì)量不是在產(chǎn)品檢驗(yàn)中得到的,而是在生產(chǎn)的全過程中形成的。10.6軟件配置管理

10.6.1軟件質(zhì)量的特性ISO(國際標(biāo)準(zhǔn)化組織)和IEC(國際電工委員會(huì))是世界性的標(biāo)準(zhǔn)化專門機(jī)構(gòu)。國家標(biāo)準(zhǔn)GB/T16260.1—2006《軟件工程產(chǎn)品質(zhì)量第1部分:質(zhì)量模型》等同于國際標(biāo)準(zhǔn)ISO/IEC9126-1-2001,IDT,規(guī)定軟件質(zhì)量模型由質(zhì)量特性、質(zhì)量子特性等組成。以下介紹其中規(guī)定的軟件質(zhì)量特性和質(zhì)量子特性。軟件質(zhì)量特性由以下6個(gè)方面來衡量。1功能性

功能性是指軟件的功能達(dá)到它的設(shè)計(jì)規(guī)范和能滿足用戶需求的程度。如軟件產(chǎn)品的準(zhǔn)確性(包括計(jì)算的精度)、兩個(gè)或兩個(gè)以上系統(tǒng)可相互操作的能力、安全性等。10.6軟件配置管理

10.6.1軟件質(zhì)量的特性2可靠性

可靠性是指在規(guī)定的時(shí)間和規(guī)定的條件下,軟件能夠?qū)崿F(xiàn)所要求的功能的能力以及不引起系統(tǒng)失效的概率。3易使用性

易使用性是指用戶學(xué)習(xí)、操作、準(zhǔn)備輸入和理解輸出的難易程度。4效率

效率是指軟件實(shí)現(xiàn)某種功能所需計(jì)算機(jī)資源的多少及執(zhí)行其功能時(shí)使用資源的持續(xù)時(shí)間的多少。5可維護(hù)性

可維護(hù)性是指進(jìn)行必要修改的難易程度。6可移植性

可移植性是指軟件從一個(gè)計(jì)算機(jī)環(huán)境轉(zhuǎn)移到另一個(gè)計(jì)算機(jī)環(huán)境下的運(yùn)行能力。10.6軟件配置管理

10.6.1軟件質(zhì)量的特性

上述各個(gè)軟件質(zhì)量特性分別包含的質(zhì)量子特性如下。質(zhì)量子特性(1)功能性:適合性、準(zhǔn)確性、互用性、安全性。(2)可靠性:成熟性、容錯(cuò)性、易恢復(fù)性。(3)易使用性:易理解性、易學(xué)性、易操作性。(4)效率:資源效率、時(shí)間效率。(5)可維護(hù)性:易分析性、易改變性、穩(wěn)定性、易測(cè)試性。(6)可移植性:適應(yīng)性、易安裝性、一致性、易替換性。10.6軟件配置管理

10.6.2軟件質(zhì)量保證措施為保證軟件能充分滿足用戶要求,而進(jìn)行的有計(jì)劃、有組織的活動(dòng),稱為軟件質(zhì)量保證。軟件質(zhì)量保證是一個(gè)復(fù)雜的系統(tǒng),它采用一定的技術(shù)、方法和工具,以確保軟件產(chǎn)品滿足或超過在該產(chǎn)品的開發(fā)過程中所規(guī)定的標(biāo)準(zhǔn)。若軟件沒有規(guī)定具體的標(biāo)準(zhǔn),應(yīng)保證產(chǎn)品滿足或超過工業(yè)的或經(jīng)濟(jì)上能接受的水平。10.6軟件配置管理

10.6.2軟件質(zhì)量保證措施

軟件質(zhì)量保證是軟件工程管理的重要內(nèi)容,軟件質(zhì)量保證主要包括以下措施。應(yīng)用好的技術(shù)方法質(zhì)量控制活動(dòng)要自始至終貫徹于開發(fā)過程中,軟件開發(fā)人員應(yīng)該依靠適當(dāng)?shù)募夹g(shù)方法和工具,形成高質(zhì)量的規(guī)格說明和高質(zhì)量的設(shè)計(jì),還要選擇合適的軟件開發(fā)環(huán)境來進(jìn)行軟件開發(fā)。1測(cè)試軟件軟件測(cè)試是質(zhì)量保證的重要手段,通過測(cè)試可以發(fā)現(xiàn)軟件中大多數(shù)潛在的錯(cuò)誤。應(yīng)當(dāng)采用多種測(cè)試策略,設(shè)計(jì)高效的檢測(cè)錯(cuò)誤的測(cè)試用例進(jìn)行軟件測(cè)試。但是軟件測(cè)試并不能保證發(fā)現(xiàn)所有的錯(cuò)誤。210.6軟件配置管理

10.6.2軟件質(zhì)量保證措施進(jìn)行正式的技術(shù)評(píng)審在軟件開發(fā)的每個(gè)階段結(jié)束時(shí),都要組織正式的技術(shù)評(píng)審。由技術(shù)人員按照規(guī)格說明和設(shè)計(jì),對(duì)軟件產(chǎn)品進(jìn)行嚴(yán)格的評(píng)審、審查。多數(shù)情況下,審查能有效地發(fā)現(xiàn)軟件中的缺陷和錯(cuò)誤。國家標(biāo)準(zhǔn)要求開發(fā)單位必須采用審查、文檔評(píng)審、設(shè)計(jì)評(píng)審、審計(jì)和測(cè)試等具體手段來控制質(zhì)量。3

標(biāo)準(zhǔn)的實(shí)施

用戶可以根據(jù)需要,參照國家標(biāo)準(zhǔn)、國際標(biāo)準(zhǔn)或行業(yè)標(biāo)準(zhǔn),制定軟件工程實(shí)施的規(guī)范。一旦形成軟件質(zhì)量標(biāo)準(zhǔn),就必須確保遵循它們。在進(jìn)行技術(shù)審查時(shí),應(yīng)評(píng)估軟件是否與所制定的標(biāo)準(zhǔn)一致。410.6軟件配置管理

10.6.2軟件質(zhì)量保證措施控制變更在軟件開發(fā)或維護(hù)階段,對(duì)軟件的每次變動(dòng)都有引入錯(cuò)誤的危險(xiǎn)。如修改代碼可能引入潛在的錯(cuò)誤;修改數(shù)據(jù)結(jié)構(gòu)可能使軟件設(shè)計(jì)與數(shù)據(jù)不相符;修改軟件時(shí)文檔沒有準(zhǔn)確及時(shí)地反映出來等都是維護(hù)的副作用。因而必須嚴(yán)格控制軟件的修改和變更??刂谱兏峭ㄟ^對(duì)變更的正式申請(qǐng)、評(píng)價(jià)變更的特征和控制變更的影響等直接地提高軟件質(zhì)量。5程序正確性證明程序正確性證明的準(zhǔn)則是證明程序能完成預(yù)定的功能。610.6軟件配置管理

10.6.2軟件質(zhì)量保證措施記錄、保存和報(bào)告軟件過程信息在軟件開發(fā)過程中,要跟蹤程序變動(dòng)對(duì)軟件質(zhì)量的影響程度。記錄、保存和報(bào)告軟件過程信息是指為軟件質(zhì)量保證收集信息和傳播信息。評(píng)審、檢查、控制變更、測(cè)試和其他軟件質(zhì)量保證活動(dòng)的結(jié)果必須記錄、報(bào)告給開發(fā)人員,并保存為項(xiàng)目歷史記錄的一部分。7只有在軟件開發(fā)的全過程中始終重視軟件質(zhì)量問題,采取正確的質(zhì)量保證措施,才能開發(fā)出滿足用戶需求的高質(zhì)量的軟件。07軟件開發(fā)風(fēng)險(xiǎn)管理軟件開發(fā)風(fēng)險(xiǎn)標(biāo)識(shí)軟件開發(fā)風(fēng)險(xiǎn)估算軟件開發(fā)風(fēng)險(xiǎn)管理10.7軟件開發(fā)風(fēng)險(xiǎn)管理軟件開發(fā)幾乎總會(huì)存在某些風(fēng)險(xiǎn),對(duì)付風(fēng)險(xiǎn)應(yīng)該采取主動(dòng)的策略。也就是說,早在技術(shù)工作開始之前就應(yīng)該啟動(dòng)風(fēng)險(xiǎn)管理活動(dòng):標(biāo)識(shí)出潛在的風(fēng)險(xiǎn),估算風(fēng)險(xiǎn)出現(xiàn)的概率和影響,并且把風(fēng)險(xiǎn)按重要性排序;然后,軟件項(xiàng)目組制定一個(gè)計(jì)劃來管理風(fēng)險(xiǎn)。風(fēng)險(xiǎn)管理的主要目標(biāo)是預(yù)防風(fēng)險(xiǎn),但是,并非所有風(fēng)險(xiǎn)都能預(yù)防。因此,軟件項(xiàng)目組還必須制定一個(gè)處理意外事件的計(jì)劃,以便一旦風(fēng)險(xiǎn)變成現(xiàn)實(shí)時(shí),能夠以可控的和有效的方式作出反應(yīng)。10.7軟件開發(fā)風(fēng)險(xiǎn)管理

10.7.1軟件開發(fā)風(fēng)險(xiǎn)標(biāo)識(shí)

軟件開發(fā)風(fēng)險(xiǎn)的事件可能發(fā)生也可能不發(fā)生。也就是說,沒有100%肯定會(huì)發(fā)生的風(fēng)險(xiǎn)。如果已經(jīng)知道軟件項(xiàng)目開發(fā)過程中有100%發(fā)生的風(fēng)險(xiǎn),那就是施加在軟件項(xiàng)目上的約束,必須已經(jīng)加以考慮,這不是風(fēng)險(xiǎn)。風(fēng)險(xiǎn)的不確定性1

如果軟件開發(fā)風(fēng)險(xiǎn)一旦變成了現(xiàn)實(shí),就會(huì)造成不好的后果或損失。在分析軟件開發(fā)的風(fēng)險(xiǎn)時(shí),重要的是要量化產(chǎn)生風(fēng)險(xiǎn)的不確定性程度以及與每個(gè)風(fēng)險(xiǎn)相關(guān)的損失程度。軟件開發(fā)時(shí),各種不同類型的風(fēng)險(xiǎn),其不確定性是不一樣的,可能產(chǎn)生的損失程度也不相同。為此,必須對(duì)風(fēng)險(xiǎn)加以標(biāo)識(shí)。要標(biāo)識(shí)軟件開發(fā)風(fēng)險(xiǎn),需要先進(jìn)行風(fēng)險(xiǎn)的分類,再分析風(fēng)險(xiǎn)的狀態(tài),然后進(jìn)行風(fēng)險(xiǎn)識(shí)別。風(fēng)險(xiǎn)產(chǎn)生的損失210.7軟件開發(fā)風(fēng)險(xiǎn)管理

10.7.1軟件開發(fā)風(fēng)險(xiǎn)標(biāo)識(shí)由于項(xiàng)目在預(yù)算、進(jìn)度、人力、資源、顧客和需求等方面的原因,對(duì)軟件項(xiàng)目產(chǎn)生的不良影響稱為項(xiàng)目風(fēng)險(xiǎn)。這類風(fēng)險(xiǎn)威脅項(xiàng)目計(jì)劃,也就是說,如果這類風(fēng)險(xiǎn)變成現(xiàn)實(shí),可能會(huì)拖延項(xiàng)目進(jìn)度并且增加項(xiàng)目成本。項(xiàng)目風(fēng)險(xiǎn)是指預(yù)算、進(jìn)度、人力、資源、客戶及需求等方面的潛在問題和它們對(duì)軟件項(xiàng)目的影響。項(xiàng)目復(fù)雜程度、規(guī)模以及結(jié)構(gòu)不確定性也是項(xiàng)目的風(fēng)險(xiǎn)因素。項(xiàng)目風(fēng)險(xiǎn)1.風(fēng)險(xiǎn)的分類10.7軟件開發(fā)風(fēng)險(xiǎn)管理

10.7.1軟件開發(fā)風(fēng)險(xiǎn)標(biāo)識(shí)技術(shù)風(fēng)險(xiǎn)是指在設(shè)計(jì)、實(shí)現(xiàn)、接口、驗(yàn)證和維護(hù)過程中可能發(fā)生的潛在問題,對(duì)軟件項(xiàng)目帶來的危害。例如,規(guī)格說明的二義性、技術(shù)的不確定性、采用陳舊或尚不成熟的技術(shù)等。這類風(fēng)險(xiǎn)威脅軟件產(chǎn)品的質(zhì)量和交付時(shí)間。如果技術(shù)風(fēng)險(xiǎn)變成現(xiàn)實(shí),開發(fā)工作可能會(huì)變得很困難或者根本不可能進(jìn)行。一般說來,存在技術(shù)風(fēng)險(xiǎn)是因?yàn)閱栴}比我們?cè)O(shè)想的更難解決。技術(shù)風(fēng)險(xiǎn)10.7軟件開發(fā)風(fēng)險(xiǎn)管理

10.7.1軟件開發(fā)風(fēng)險(xiǎn)標(biāo)識(shí)商業(yè)風(fēng)險(xiǎn)開發(fā)了一個(gè)沒人需要的優(yōu)質(zhì)軟件,或推銷部門不知如何銷售這一軟件產(chǎn)品,或開發(fā)的產(chǎn)品不符合公司的產(chǎn)品銷售戰(zhàn)略等,稱為商業(yè)風(fēng)險(xiǎn)。這類風(fēng)險(xiǎn)威脅軟件產(chǎn)品的生存力,也往往危及項(xiàng)目或產(chǎn)品。以下為5種主要的商業(yè)風(fēng)險(xiǎn)。開發(fā)了一個(gè)沒有人真正需要的優(yōu)良產(chǎn)品或系統(tǒng)(市場風(fēng)險(xiǎn))。開發(fā)的產(chǎn)品不再符合公司的整體商業(yè)策略(策略風(fēng)險(xiǎn))。開發(fā)了一個(gè)銷售部門不知道如何去賣的產(chǎn)品(銷售風(fēng)險(xiǎn))。由于重點(diǎn)轉(zhuǎn)移或人員變動(dòng)而失去了高級(jí)管理層的支持(管理風(fēng)險(xiǎn))。沒有獲得預(yù)算或人力上的保證(預(yù)算風(fēng)險(xiǎn))。10.7軟件開發(fā)風(fēng)險(xiǎn)管理

10.7.1軟件開發(fā)風(fēng)險(xiǎn)標(biāo)識(shí)以上這3大類風(fēng)險(xiǎn)在進(jìn)行軟件開發(fā)之前,就需要項(xiàng)目管理者通過仔細(xì)的分析,來了解在項(xiàng)目中是否有可能存在。有些風(fēng)險(xiǎn)是很容易判斷的,例如軟件開發(fā)團(tuán)隊(duì)中是否有人員變動(dòng),提出離職。有些風(fēng)險(xiǎn)卻是毫無征兆,不可預(yù)測(cè)。因此按照風(fēng)險(xiǎn)的不確定性,把風(fēng)險(xiǎn)分為3種不同的狀態(tài)?!啊?0.7軟件開發(fā)風(fēng)險(xiǎn)管理

10.7.1軟件開發(fā)風(fēng)險(xiǎn)標(biāo)識(shí)1已知風(fēng)險(xiǎn)

這類風(fēng)險(xiǎn)是通過仔細(xì)評(píng)估項(xiàng)目計(jì)劃、開發(fā)項(xiàng)目的商業(yè)和技術(shù)環(huán)境以及其他可靠的信息來源(例如不現(xiàn)實(shí)的交付時(shí)間,沒有需求文檔和描述軟件范圍的文檔,惡劣的開發(fā)環(huán)境)之后,可以發(fā)現(xiàn)的那些風(fēng)險(xiǎn)。2可預(yù)測(cè)的風(fēng)險(xiǎn)

這類風(fēng)險(xiǎn)可以從過去項(xiàng)目的經(jīng)驗(yàn)中推測(cè)出來。例如,人員變動(dòng),與客戶之間缺少溝通,由于正在進(jìn)行維護(hù)而使開發(fā)人員精力分散等。3不可預(yù)測(cè)的風(fēng)險(xiǎn)

這類風(fēng)險(xiǎn)可能真的會(huì)出現(xiàn),但是很難事先加以識(shí)別。2.風(fēng)險(xiǎn)的狀態(tài)10.7軟件開發(fā)風(fēng)險(xiǎn)管理

10.7.1軟件開發(fā)風(fēng)險(xiǎn)標(biāo)識(shí)通過識(shí)別已知的和可預(yù)測(cè)的風(fēng)險(xiǎn),項(xiàng)目管理者首先要做的就是在可能時(shí)避免這些風(fēng)險(xiǎn),在必要時(shí)控制這些風(fēng)險(xiǎn)。為了識(shí)別出特定產(chǎn)品的風(fēng)險(xiǎn),必須檢查項(xiàng)目計(jì)劃和軟件范圍說明,然后回答下述問題:“本項(xiàng)目有什么特殊的性質(zhì)可能會(huì)威脅我們的項(xiàng)目計(jì)劃?”。3.風(fēng)險(xiǎn)識(shí)別10.7軟件開發(fā)風(fēng)險(xiǎn)管理

10.7.1軟件開發(fā)風(fēng)險(xiǎn)標(biāo)識(shí)可預(yù)測(cè)的風(fēng)險(xiǎn)(1)產(chǎn)品規(guī)?!c要開發(fā)或要修改的軟件總體規(guī)模相關(guān)的風(fēng)險(xiǎn)。(3)客戶特性——與客戶素質(zhì)以及開發(fā)者和客戶定期溝通的能力相關(guān)的風(fēng)險(xiǎn)。(5)開發(fā)環(huán)境——與用來開發(fā)產(chǎn)品的工具的可用性以及質(zhì)量相關(guān)的風(fēng)險(xiǎn)。(7)人員才能與經(jīng)驗(yàn)——與軟件工程師的總體技術(shù)水平及項(xiàng)目經(jīng)驗(yàn)相關(guān)的風(fēng)險(xiǎn)。(4)過程定義——與軟件過程定義的程度以及軟件開發(fā)組織遵守軟件過程的程度相關(guān)的風(fēng)險(xiǎn)。(2)商業(yè)影響——與管理或市場所施加的約束相關(guān)的風(fēng)險(xiǎn)。(6)開發(fā)技術(shù)——與待開發(fā)系統(tǒng)的復(fù)雜性及系統(tǒng)所包含的技術(shù)的“新奇性”相關(guān)的風(fēng)險(xiǎn)。10.7軟件開發(fā)風(fēng)險(xiǎn)管理

10.7.1軟件開發(fā)風(fēng)險(xiǎn)標(biāo)識(shí)風(fēng)險(xiǎn)條目檢查表可以采用不同的方式來組織。例如,可以列出與上述每個(gè)主題相關(guān)的問題,針對(duì)一個(gè)具體的軟件項(xiàng)目來回答。有了問題的答案,項(xiàng)目管理者就可以估計(jì)風(fēng)險(xiǎn)產(chǎn)生的影響。還有一種方法是僅僅列出與每一種類型相關(guān)的特性,最終給出風(fēng)險(xiǎn)因素和它們發(fā)生的概率??傊?,項(xiàng)目管理者要通過查看風(fēng)險(xiǎn)條目檢查表來初步判斷一個(gè)軟件項(xiàng)目是否處于風(fēng)險(xiǎn)之中。10.7軟件開發(fā)風(fēng)險(xiǎn)管理

案例針對(duì)人員才能與經(jīng)驗(yàn)的主題提問示例。例10-1開發(fā)人員的水平如何?人員在技術(shù)上是否適合項(xiàng)目?團(tuán)隊(duì)人員的數(shù)量如何?人員是否能夠自始至終地參加軟件開發(fā)工作?開發(fā)人員是否能夠集中精力投入軟件開發(fā)?人員對(duì)自己的工作是否有正確的期望?開發(fā)人員是否接受過必要的培訓(xùn)?團(tuán)隊(duì)人員的流動(dòng)是否能夠保證工作的連續(xù)性?上述問題的回答可以采用0-5分的記分法來回答。完全肯定記0分,反之記5分,中間情況分別取值1,2,3,4,值越大風(fēng)險(xiǎn)越大。這個(gè)人員風(fēng)險(xiǎn)條目檢查表反映了人的因素對(duì)軟件項(xiàng)目的影響,可以用它來估算人的因素對(duì)軟件項(xiàng)目帶來的風(fēng)險(xiǎn)。10.7軟件開發(fā)風(fēng)險(xiǎn)管理

10.7.2軟件開發(fā)風(fēng)險(xiǎn)估算軟件項(xiàng)目管理人員可以從影響風(fēng)險(xiǎn)的因素和風(fēng)險(xiǎn)發(fā)生后帶來的損失兩方面來度量風(fēng)險(xiǎn)。為了對(duì)各種風(fēng)險(xiǎn)進(jìn)行估算,必須建立風(fēng)險(xiǎn)度量指標(biāo)體系;必須指明各種風(fēng)險(xiǎn)帶來的后果和損失;必須估算風(fēng)險(xiǎn)對(duì)軟件項(xiàng)目及軟件產(chǎn)品的影響;必須給出風(fēng)險(xiǎn)估算的定量結(jié)果。進(jìn)行風(fēng)險(xiǎn)估算的方法有很多,其中一種簡單易行的是建立風(fēng)險(xiǎn)評(píng)估表。10.7軟件開發(fā)風(fēng)險(xiǎn)管理

10.7.2軟件開發(fā)風(fēng)險(xiǎn)估算軟件風(fēng)險(xiǎn)四要素(1)產(chǎn)品性能風(fēng)險(xiǎn)——產(chǎn)品能滿足需求,符合其使用目的的不確定程度。(2)項(xiàng)目成本風(fēng)險(xiǎn)——能夠維持項(xiàng)目預(yù)算的不確定程度。(3)項(xiàng)目進(jìn)度風(fēng)險(xiǎn)——能夠?qū)崿F(xiàn)項(xiàng)目進(jìn)度計(jì)劃且產(chǎn)品能按時(shí)交付的不確定程度。(4)產(chǎn)品維護(hù)風(fēng)險(xiǎn)——軟件易于改錯(cuò)、適應(yīng)和增強(qiáng)的不確定程度。1.風(fēng)險(xiǎn)要素評(píng)估表10.7軟件開發(fā)風(fēng)險(xiǎn)管理

10.7.2軟件開發(fā)風(fēng)險(xiǎn)估算影響風(fēng)險(xiǎn)要素的原因、措施稱為風(fēng)險(xiǎn)驅(qū)動(dòng)因子。根據(jù)每一風(fēng)險(xiǎn)驅(qū)動(dòng)因子對(duì)風(fēng)險(xiǎn)要素影響的嚴(yán)重程度,可以劃分成4個(gè)等級(jí):可忽略的、輕微的、嚴(yán)重的和災(zāi)難性的。風(fēng)險(xiǎn)要素評(píng)估表如表10-4所示,第i項(xiàng)風(fēng)險(xiǎn)可能給產(chǎn)品性能、項(xiàng)目成本、項(xiàng)目進(jìn)度和產(chǎn)品維護(hù)帶來不同程度的影響,表中進(jìn)行了量化,用Xij表示。如果風(fēng)險(xiǎn)i對(duì)產(chǎn)品性能產(chǎn)生了災(zāi)難性影響,則Xi1取值為3;如果風(fēng)險(xiǎn)i對(duì)項(xiàng)目成本產(chǎn)生輕微影響,則Xi2取值為1,以此類推。

風(fēng)險(xiǎn)Xij影響產(chǎn)品性能(Xi1)項(xiàng)目成本(Xi2)項(xiàng)目進(jìn)度(Xi3)產(chǎn)品維護(hù)(Xi4)災(zāi)難性的3產(chǎn)品無法達(dá)到合同要求的技術(shù)性能資金缺口很大,沒有補(bǔ)充來源交付日期無限期延長不能支持軟件維護(hù)和升級(jí)嚴(yán)重的2產(chǎn)品性能降低資金不足,可能超過預(yù)算較多交付日期可能推遲數(shù)月軟件維護(hù)能力不夠,不及時(shí)輕微的1產(chǎn)品性能有些降低超預(yù)算不多,基本符合預(yù)算要求基本按照進(jìn)度完成能支持軟件維護(hù)和升級(jí)可忽略的0可以達(dá)到技術(shù)指標(biāo)可能低于預(yù)算能按時(shí),可能提前交付能有效支持軟件維護(hù)和升級(jí)表10-4風(fēng)險(xiǎn)要素評(píng)估表示例10.7軟件開發(fā)風(fēng)險(xiǎn)管理

10.7.2軟件開發(fā)風(fēng)險(xiǎn)估算10.7軟件開發(fā)風(fēng)險(xiǎn)管理

10.7.2軟件開發(fā)風(fēng)險(xiǎn)估算有了風(fēng)險(xiǎn)驅(qū)動(dòng)因子的取值之后,需要研究軟件項(xiàng)目風(fēng)險(xiǎn)的估算公式。如果某軟件項(xiàng)目共存在著L種主要風(fēng)險(xiǎn),其中第i(i=

1,2,…,L)種風(fēng)險(xiǎn)由K項(xiàng)風(fēng)險(xiǎn)要素組成,為每項(xiàng)風(fēng)險(xiǎn)要素(j=

1,2,…,K)確定一個(gè)整數(shù)值0,1,2,…,N。理想的情況下取值為0,風(fēng)險(xiǎn)影響最嚴(yán)重時(shí)取值為N。對(duì)于中間狀態(tài)依次取值為1,2,…,N-1。于是,第i種風(fēng)險(xiǎn)的估算值可以定義為:(10-1)其中,是權(quán)系數(shù),滿足,且≥0。0≤≤1,的值越小,表明第i種風(fēng)險(xiǎn)越小。2.軟件項(xiàng)目風(fēng)險(xiǎn)的估算公式10.7軟件開發(fā)風(fēng)險(xiǎn)管理

10.7.2軟件開發(fā)風(fēng)險(xiǎn)估算如果第i種風(fēng)險(xiǎn)對(duì)整個(gè)軟件項(xiàng)目的風(fēng)險(xiǎn)估算加權(quán)系數(shù)是(i=1,2,…,L,L為整個(gè)軟件項(xiàng)目存在的風(fēng)險(xiǎn)個(gè)數(shù)),,則軟件項(xiàng)目風(fēng)險(xiǎn)估算公式定義為(10-2)或者可以理解為,其中每個(gè)。可以驗(yàn)證,0≤R≤1,當(dāng)R接近于0時(shí)表示風(fēng)險(xiǎn)比較小,R越接近于1表示風(fēng)險(xiǎn)越大。當(dāng)較大時(shí),表示第i類風(fēng)險(xiǎn)出現(xiàn)并帶來不利影響的可能性較大,必須引起軟件項(xiàng)目管理人員的重視,去設(shè)法減小的值。10.7軟件開發(fā)風(fēng)險(xiǎn)管理

10.7.2軟件開發(fā)風(fēng)險(xiǎn)估算在風(fēng)險(xiǎn)分析過程中,經(jīng)常使用三元組描述風(fēng)險(xiǎn)。其中代表風(fēng)險(xiǎn),表示風(fēng)險(xiǎn)發(fā)生的概率,是風(fēng)險(xiǎn)帶來的影響,i=1,2,…,L是風(fēng)險(xiǎn)序號(hào),表示軟件項(xiàng)目共有L種風(fēng)險(xiǎn)。通常風(fēng)險(xiǎn)估算過程可分為4步:①定義項(xiàng)目的風(fēng)險(xiǎn)參考量;②定義每種風(fēng)險(xiǎn)的三元組;③定義項(xiàng)目被迫終止的臨界點(diǎn);④預(yù)測(cè)幾種風(fēng)險(xiǎn)組合對(duì)參考量的綜合影響。三元組是風(fēng)險(xiǎn)管理的基礎(chǔ)。3.風(fēng)險(xiǎn)估算舉例10.7軟件開發(fā)風(fēng)險(xiǎn)管理

案例對(duì)以下用PDL表示的程序進(jìn)行測(cè)試。例10-2設(shè)高級(jí)職員的流動(dòng)給項(xiàng)目帶來的風(fēng)險(xiǎn)為。根據(jù)歷史經(jīng)驗(yàn)或直觀感覺,高級(jí)職員離開課題組的概率:。管理人員經(jīng)分析認(rèn)為:這一事件的出現(xiàn)帶來的影響是項(xiàng)目開發(fā)時(shí)間延長15%,項(xiàng)目成本增加20%,影響嚴(yán)重。參照表10-4和估算風(fēng)險(xiǎn)的公式,可知和取值都為2,風(fēng)險(xiǎn)對(duì)產(chǎn)品性能和維護(hù)影響輕微,因此和取值都為1,。為簡單起見,權(quán)系數(shù)取值為1/4,于是得到風(fēng)險(xiǎn)值:也就是說:在這個(gè)軟件項(xiàng)目中,高級(jí)職員流動(dòng)給項(xiàng)目帶來的風(fēng)險(xiǎn)為

,這個(gè)值越接近1,表示風(fēng)險(xiǎn)越大。在進(jìn)行軟件風(fēng)險(xiǎn)管理時(shí),可以采取一些措施,例如增加高級(jí)職員的薪資等措施,來降低

發(fā)生的概率,從而降低風(fēng)險(xiǎn)的值。10.7軟件開發(fā)風(fēng)險(xiǎn)管理

10.7.2軟件開發(fā)風(fēng)險(xiǎn)估算軟件開發(fā)過程中,由于項(xiàng)目超支、進(jìn)度拖延和軟件性能下降都會(huì)導(dǎo)致軟件項(xiàng)目的終止,因此多數(shù)軟件項(xiàng)目的風(fēng)險(xiǎn)分析都需要給出性能、成本、進(jìn)度和維護(hù)這4種典型的風(fēng)險(xiǎn)參考值。當(dāng)軟件項(xiàng)目的風(fēng)險(xiǎn)參考值達(dá)到或超過某一臨界點(diǎn)時(shí),軟件項(xiàng)目將被迫終止。在軟件開發(fā)過程中,性能、成本、進(jìn)度和維護(hù)是相互關(guān)聯(lián)的。例如,項(xiàng)目投入成本的增長應(yīng)與進(jìn)度相匹配,當(dāng)項(xiàng)目投入的成本與項(xiàng)目拖延的時(shí)間超過某一臨界點(diǎn)時(shí),項(xiàng)目也應(yīng)該終止。10.7軟件開發(fā)風(fēng)險(xiǎn)管理

10.7.3軟件開發(fā)風(fēng)險(xiǎn)管理風(fēng)險(xiǎn)管理是指在項(xiàng)目進(jìn)行中不斷對(duì)風(fēng)險(xiǎn)進(jìn)行識(shí)別、評(píng)估,制定策略監(jiān)控風(fēng)險(xiǎn)的過程。它應(yīng)是貫穿軟件項(xiàng)目開發(fā)始末的一項(xiàng)重要任務(wù),其中包括風(fēng)險(xiǎn)識(shí)別、風(fēng)險(xiǎn)評(píng)估、風(fēng)險(xiǎn)計(jì)劃、風(fēng)險(xiǎn)監(jiān)控和風(fēng)險(xiǎn)解決。它能讓風(fēng)險(xiǎn)管理者主動(dòng)“規(guī)避”風(fēng)險(xiǎn),進(jìn)行有效的風(fēng)險(xiǎn)管理。10.7軟件開發(fā)風(fēng)險(xiǎn)管理

10.7.3軟件開發(fā)風(fēng)險(xiǎn)管理“實(shí)施有效風(fēng)險(xiǎn)管理框架”的7項(xiàng)原則(1)站在系統(tǒng)的角度,全面考慮軟件風(fēng)險(xiǎn),以及軟件需要解決的業(yè)務(wù)問題。(3)提倡廣泛交流,鼓勵(lì)、重視開發(fā)團(tuán)隊(duì)成員和用戶提出的各種風(fēng)險(xiǎn)。(5)在軟件開發(fā)過程中,隨著信息和知識(shí)的增加,適時(shí)修改已識(shí)別的風(fēng)險(xiǎn),加入新風(fēng)險(xiǎn)。(7)在風(fēng)險(xiǎn)管理中要發(fā)揮集體智慧,鼓勵(lì)協(xié)同工作。(4)風(fēng)險(xiǎn)分析要與軟件過程相結(jié)合。(2)從長遠(yuǎn)的角度,考慮可能發(fā)生的風(fēng)險(xiǎn),并制定相應(yīng)的風(fēng)險(xiǎn)應(yīng)對(duì)計(jì)劃。(6)開發(fā)共享版本的軟件產(chǎn)品有利于風(fēng)險(xiǎn)識(shí)別和估算。10.7軟件開發(fā)風(fēng)險(xiǎn)管理

10.7.3軟件開發(fā)風(fēng)險(xiǎn)管理項(xiàng)目負(fù)責(zé)人可采取的風(fēng)險(xiǎn)管理措施(1)項(xiàng)目開始以前應(yīng)控制產(chǎn)生風(fēng)險(xiǎn)的原因,在項(xiàng)目開工后應(yīng)想方設(shè)法減輕風(fēng)險(xiǎn)影響。(3)在工作方法和技術(shù)上應(yīng)采取適當(dāng)措施,防止因人員流動(dòng)給工作帶來損失。(5)建立組織機(jī)構(gòu),確定文檔標(biāo)準(zhǔn)并及時(shí)生成文檔。(7)為關(guān)鍵技術(shù)準(zhǔn)備后備人員。(4)項(xiàng)目在開發(fā)過程中應(yīng)及時(shí)公布并交流項(xiàng)目開發(fā)的信息。(2)了解導(dǎo)致項(xiàng)目開發(fā)人員變動(dòng)的原因,在項(xiàng)目開發(fā)期間應(yīng)控制上述原因,盡量減少人員的流動(dòng)。(6)對(duì)工作進(jìn)行集體復(fù)審,使多數(shù)人都能了解工作的細(xì)節(jié),跟上工作進(jìn)度。10.7軟件開發(fā)風(fēng)險(xiǎn)管理

10.7.3軟件開發(fā)風(fēng)險(xiǎn)管理值得注意的是,風(fēng)險(xiǎn)標(biāo)識(shí)、風(fēng)險(xiǎn)估算和風(fēng)險(xiǎn)管理都將花費(fèi)額外的項(xiàng)目成本。例如,備份每個(gè)關(guān)鍵的技術(shù)人員是要花錢的。因此風(fēng)險(xiǎn)管理的另一個(gè)任務(wù),就是評(píng)估在什么情況下,風(fēng)險(xiǎn)緩解、監(jiān)控和管理措施所產(chǎn)生的效益高于實(shí)現(xiàn)這些步驟所花費(fèi)的成本。通常,項(xiàng)目計(jì)劃者要做一次常規(guī)的成本/效益分析。一般說來,如果采取某項(xiàng)風(fēng)險(xiǎn)緩解措施所增加的成本大于其產(chǎn)生的效益,則項(xiàng)目管理者很可能決定不采取這項(xiàng)措施。對(duì)于大型項(xiàng)目,可以識(shí)別出幾十種風(fēng)險(xiǎn),如果為每一個(gè)風(fēng)險(xiǎn)都制定風(fēng)險(xiǎn)緩解措施,那么風(fēng)險(xiǎn)管理本身就變成一個(gè)“大項(xiàng)目”,因此,我們要將Pareto的80/20法則應(yīng)用于軟件風(fēng)險(xiǎn)。經(jīng)驗(yàn)表明,整個(gè)項(xiàng)目風(fēng)險(xiǎn)的80%(即可能導(dǎo)致項(xiàng)目失敗的80%的潛在因素)能夠由20%已經(jīng)識(shí)別的風(fēng)險(xiǎn)來說明。早期風(fēng)險(xiǎn)分析步驟中所做的工作能夠幫助我們確定哪些風(fēng)險(xiǎn)在這20%中,從而將精力集中在具有最高級(jí)別的風(fēng)險(xiǎn)上,為其采取相應(yīng)的緩解措施。10.7軟件開發(fā)風(fēng)險(xiǎn)管理

10.7.3軟件開發(fā)風(fēng)險(xiǎn)管理在軟件項(xiàng)目管理的實(shí)踐中,有些團(tuán)隊(duì)采用了風(fēng)險(xiǎn)檢測(cè)表的方法,有些團(tuán)隊(duì)在軟件項(xiàng)目計(jì)劃中建立風(fēng)險(xiǎn)緩解、監(jiān)測(cè)和管理計(jì)劃(RiskMitigation,MonitoringandManagement,RMMM),將所有風(fēng)險(xiǎn)分析文檔化,進(jìn)行風(fēng)險(xiǎn)緩解和監(jiān)測(cè)。目前已有多種風(fēng)險(xiǎn)檢查表為軟件項(xiàng)目提供了有效手段。10.7軟件開發(fā)風(fēng)險(xiǎn)管理

10.7.3軟件開發(fā)風(fēng)險(xiǎn)管理軟件項(xiàng)目,尤其是大型項(xiàng)目有3個(gè)非常重要的因素,會(huì)影響整個(gè)項(xiàng)目的進(jìn)度與質(zhì)量,它們分別是:“人”“技術(shù)”“流程”?!叭恕笔琼?xiàng)目中最難預(yù)料與掌控的一項(xiàng)要素,人可分成兩部份,一是客戶,二是開發(fā)團(tuán)隊(duì)?!凹夹g(shù)”是指軟件項(xiàng)目所使用的開發(fā)平臺(tái),主要指開發(fā)環(huán)境及開發(fā)語言,是最容易掌握的部分?!傲鞒獭笔侵杠浖_發(fā)流程或是項(xiàng)目流程,定義流程的目的是要掌控所有的情況。項(xiàng)目的最大敵人是時(shí)間及預(yù)算,這兩者都是有限的,如何在有限預(yù)算內(nèi)準(zhǔn)時(shí)完成項(xiàng)目,可以說是一項(xiàng)藝術(shù)。優(yōu)秀的項(xiàng)目管理者不僅要掌握軟件開發(fā)的技術(shù)知識(shí),還要通曉項(xiàng)目管理的方法。08軟件工程標(biāo)準(zhǔn)與軟件文檔軟件工程標(biāo)準(zhǔn)軟件文檔的編寫10.8軟件工程標(biāo)準(zhǔn)與軟件文檔軟件測(cè)試說明軟件工程作為一門工程技術(shù),自然離不開標(biāo)準(zhǔn)。積極推行軟件的標(biāo)準(zhǔn)化,可以使軟件開發(fā)工作有章可循,從而提高軟件質(zhì)量、降低軟件成本等。軟件文檔是軟件工程的一項(xiàng)重要內(nèi)容,在軟件生存周期中具有承上啟下的作用,是軟件工程各階段的里程碑。軟件文檔的標(biāo)準(zhǔn)化是軟件工程標(biāo)準(zhǔn)化的重點(diǎn)。10.8軟件工程標(biāo)準(zhǔn)與軟件文檔

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論