




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、第九章 軟件管理項目管理過程軟件生產(chǎn)率和質(zhì)量的度量軟件項目的估算軟件項目計劃的目標軟件成本和工作量估算成本效益分析進度安排軟件項目的組織與計劃1gjuyk項目管理過程軟件項目管理的對象是軟件工程項目。涉及的范圍覆蓋了整個軟件工程過程。為使軟件項目開發(fā)獲得成功,關(guān)鍵問題是必須對軟件項目的工作范圍、可能風險、需要資源(人、硬件軟件)、要實現(xiàn)的任務(wù)、經(jīng)歷的里程碑、花費工作量(成本)、進度安排等做到心中有數(shù)。軟件項目管理可以提供這些信息。2gjuyk這種管理在技術(shù)工作開始之前就應(yīng)開始,在軟件從概念到實現(xiàn)的過程中繼續(xù)進行,當軟件工程過程最后結(jié)束時才終止。軟件項目管理的 5 個過程啟動一個項目制定計劃執(zhí)行
2、控制收尾3gjuyk1、啟動一個軟件項目在制定軟件項目計劃之前,必須 明確項目的目標和范圍 考慮候選的解決方案 標明技術(shù)和管理上的要求有了這些信息,才能確定合理、精確的成本估算,實際可行的任務(wù)分解以及可管理的進度安排。軟件人員和用戶是在系統(tǒng)工程步驟中確定項目的目標和范圍。4gjuyk目標標明了軟件項目的目的但不涉及如何去達到這些目的。范圍標明了軟件要實現(xiàn)的基本功能,并盡量以定量的方式界定這些功能。當明確了軟件項目的目標和范圍后,就應(yīng)考慮候選的解決方案。有了方案,管理人員和技術(shù)人員就能夠據(jù)此選擇一種“好的”方法,給出諸如交付期限、預(yù)算、個人能力、技術(shù)界面及其它許多因素所構(gòu)成的限制。5gjuyk2
3、-1、制定計劃:度量進行度量工作,是為了了解產(chǎn)品開發(fā)的技術(shù)過程和產(chǎn)品本身。 度量開發(fā)過程的目的是為了改進過程; 度量產(chǎn)品的目的是為了提高產(chǎn)品質(zhì)量。度量的作用是為了有效地定量地進行管理。6gjuyk為有效地度量,對于過程和產(chǎn)品,常常需要考慮: 合適的度量是什么? 所收集的數(shù)據(jù)如何使用? 用于比較個人、過程或產(chǎn)品的度量是否合理?管理人員和技術(shù)人員可利用這些度量來了解軟件工程過程的實際情況和它所生產(chǎn)的產(chǎn)品質(zhì)量 。7gjuyk2-2、制定計劃:估算在軟件項目管理過程中關(guān)鍵的活動就是制定項目計劃。在做計劃時必須就需要的人力(以人月為單位)、項目持續(xù)時間(以年份或月份為單位)、成本(以元為單位)做出估算。
4、這種估算大多是利用以前的花費做為參考而做出的。8gjuyk如果新項目與以前的一個項目在大小上和功能上十分類似,則新項目需要工作量、開發(fā)持續(xù)時間、成本大致與那個老項目相同。假使項目背景完全生疏,只憑過去的經(jīng)驗做出估算可能就不夠了?,F(xiàn)在已有了許多用于軟件開發(fā)的估算技術(shù)。其共同特點是: 事先建立軟件范圍9gjuyk以軟件度量(以往的度量)為基礎(chǔ),以做出估算項目被分解為可單獨進行估算的小塊管理人員大多使用不止一種估算技術(shù),并用一種估算技術(shù)做為另一種估算技術(shù)的交叉檢查。10gjuyk2-3、制定計劃:風險分析每當新建一個程序時,總是存在某些 不確定性。 用戶要求是否能確切地被理解? 在項目最后結(jié)束之前要
5、求實現(xiàn)的功能能否建立? 是否存在目前仍未發(fā)現(xiàn)的技術(shù)難題? 在項目出現(xiàn)嚴重誤期時是否會發(fā)生一些變更?等等。11gjuyk風險分析對于軟件項目管理是決定性的,然而現(xiàn)在還有許多項目不考慮風險就著手進行。所謂風險分析實際上就是一系列風險管理步驟,其中包括風險識別、風險估計、風險管理策略、風險解決和風險監(jiān)督。這些步驟貫穿在軟件工程過程中。12gjuyk2-4、制定計劃:進度安排每個軟件項目都要求制定一個進度安排,但不是所有進度都得一樣安排。對于進度安排,需要考慮的是: 預(yù)先對進度如何計劃? 工作怎樣就位? 如何識別定義好的任務(wù)? 管理人員對結(jié)束時間如何掌握 ? 如何識別和監(jiān)控關(guān)鍵路徑以確保結(jié)束? 13g
6、juyk 對進展如何度量? 如何建立分隔任務(wù)的里程碑。軟件項目的進度安排與任一個工程項目的進度安排基本相同。 識別一組項目任務(wù) 建立任務(wù)之間的相互關(guān)聯(lián) 估算各個任務(wù)的工作量 分配人力和其它資源 制定進度時序14gjuyk3、追蹤和控制一旦建立了開發(fā)進度安排,就可以開始著手追蹤和控制活動。由項目管理人員負責追蹤在進度安排中標明的每一個任務(wù)。如果任務(wù)實際完成日期滯后于進度安排,則管理人員可以使用一種自動的項目進度安排工具來確定在項目的中間里程碑上進度誤期所造成的影響。15gjuyk可對資源重新定向?qū)θ蝿?wù)重新安排(做為最壞的結(jié)果)可以修改交付日期以調(diào)整已經(jīng)暴露的問題。用這種方式可以較好地控制軟件的開
7、發(fā)。16gjuyk軟件生產(chǎn)率和質(zhì)量的度量生產(chǎn)率與質(zhì)量的度量是以投入工作量為依據(jù)的軟件開發(fā)活動的度量和開發(fā)成果質(zhì)量的度量。 為什么要對軟件進行度量 面向規(guī)模的度量 面向功能的度量 軟件質(zhì)量的度量 在軟件工程過程中使用度量17gjuyk為什么要對軟件進行度量表明軟件產(chǎn)品的質(zhì)量;弄清軟件開發(fā)人員的生產(chǎn)率;給出使用了新的軟件工程方法和工具所得到的(在生產(chǎn)率和質(zhì)量兩方面)的效益;建立項目估算的“基線”;幫助調(diào)整對新的工具和附加培訓(xùn)的要求。18gjuyk度量的方式 在物理世界中的度量有兩種方式。 直接度量(如度量一個螺栓的長度); 間接度量(如用次品率來度量生產(chǎn)出的螺栓質(zhì)量)。軟件度量也同樣分為兩類:直接
8、度量與間接度量。軟件工程過程的直接度量包括所投入的成本和工作量。19gjuyk軟件產(chǎn)品的直接度量包括產(chǎn)生的代碼行數(shù)(LOC)、執(zhí)行速度、存儲量大小、在某種時間周期中報告的差錯數(shù)。軟件產(chǎn)品的間接度量包括功能性、復(fù)雜性、效率、可靠性、可維護性和許多其它的質(zhì)量特性。只要事先建立特定的度量規(guī)程,很容易做到直接度量軟件所需要的成本和工作量、產(chǎn)生的代碼行數(shù)等。20gjuyk軟件的功能性、效率、可維護性等質(zhì)量特性卻很難用直接度量判明,只有通過間接度量才能推斷。21gjuyk軟件度量領(lǐng)域的分類面向人的度量面向功能的度量面向規(guī)模的度量生產(chǎn)率度量質(zhì)量度量技術(shù)度量22gjuyk軟件生產(chǎn)率度量的焦點集中在軟件工程過程
9、的輸出;軟件質(zhì)量度量則指明了軟件適應(yīng)明確和不明確的用戶要求到什么程度;技術(shù)度量的焦點則集中在軟件的某些特性(如邏輯復(fù)雜性、模塊化程度)上而不是軟件開發(fā)的全過程。23gjuyk另一種分類方法面向規(guī)模的的度量用于收集與直接度量有關(guān)的軟件工程輸出的信息和質(zhì)量信息。面向功能的度量提供直接度量的尺度。面向人的度量則收集有關(guān)人們開發(fā)計算機軟件所用方式的信息和人們理解有關(guān)工具和方法的效率的信息。24gjuyk面向規(guī)模的度量面向規(guī)模的度量是對軟件和軟件開發(fā)過程的直接度量??梢越⒁粋€面向規(guī)模的數(shù)據(jù)表格來記錄項目的某些信息。該表格列出了在過去幾年完成的每一個軟件開發(fā)項目和關(guān)于這些項目的相應(yīng)面向規(guī)模的數(shù)據(jù)。25g
10、juyk面向規(guī)模的數(shù)據(jù)表格項目 工作量 元 KLOC 文檔頁數(shù) 錯誤數(shù) 人數(shù)aaa-01 24 168 12.1 365 29 3ccc-04 62 440 27.2 1224 86 5fff-03 43 314 20.2 1050 64 6 26gjuyk項目aaa-01 規(guī)模為 114.1 KLOC(千代碼行) 工作量用了 24個人月 成本為168,000元 文檔頁數(shù)為365 在交付用戶使用后第一年內(nèi)發(fā)現(xiàn)了 29個錯誤, 有 3 個人參加了項目 aaa-01 的軟件開發(fā)工作。27gjuyk需要注意的是,在表格中記載的工作量和成本是整個軟件工程的活動(分析、設(shè)計、編碼和測試),而不僅僅是編碼
11、活動。對于每一個項目,可以根據(jù)表格中列出的基本數(shù)據(jù)計算簡單的面向規(guī)模的生產(chǎn)率和質(zhì)量的度量。28gjuyk根據(jù)數(shù)據(jù)表格可以對所有的項目計算出平均值: 生產(chǎn)率 KLOCPM(人月) 質(zhì)量 錯誤數(shù)KLOC 成本 元LOC 文檔 文檔頁數(shù)KLOC29gjuyk面向功能的度量面向功能的軟件度量是對軟件和軟件開發(fā)過程的間接度量。面向功能度量主要考慮程序的“功能性”和“實用性”,而不是對 LOC計數(shù)。該度量是一種叫做功能點方法的生產(chǎn)率度量法,利用軟件信息域中的一些計數(shù)和軟件復(fù)雜性估計的經(jīng)驗關(guān)系式而導(dǎo)出功能點 FP。30gjuyk面向功能的數(shù)據(jù)表格信息域參數(shù)用戶輸入數(shù) 3 4 6 =用戶輸出數(shù) 4 5 7 =
12、用戶查詢數(shù) 3 4 6 =文 件 數(shù) 7 10 15 = 外部接口數(shù) 5 7 10 =總 計 數(shù)計數(shù) 加 權(quán) 因 數(shù)簡單 中間 復(fù)雜 加權(quán)計數(shù)31gjuyk功能點計算確定五個信息域的特征,并在表格中相應(yīng)位置給出計數(shù)。用戶輸入數(shù):各個用戶輸入是面向不同應(yīng)用的輸入數(shù)據(jù)。用戶輸出數(shù):各個用戶輸出是面向應(yīng)用的輸出信息,包括報告,屏幕信息,錯誤信息等。在報告中的各個數(shù)據(jù)項不應(yīng)再分別計數(shù)。32gjuyk用戶查詢數(shù):查詢是一種聯(lián)機的交互操作,每次詢問/響應(yīng)具備應(yīng)計數(shù)。文件數(shù):每一個邏輯主文件都應(yīng)計數(shù)。邏輯主文件是指邏輯上的一組數(shù)據(jù),可以是一個大數(shù)據(jù)庫的一部分,可以是一個單獨的文件。外部接口數(shù):與系統(tǒng)中其他設(shè)
13、備通過外部接口讀寫信息次數(shù)均應(yīng)計數(shù)。一旦收集到上述數(shù)據(jù),就可以計算出與每一個計數(shù)相關(guān)的復(fù)雜性值。33gjuyk一個信息域是簡單的、平均的還是復(fù)雜的,由使用功能點方法的機構(gòu)自行確定,從而計算出加權(quán)計數(shù)。計算功能點,使用如下的關(guān)系式: FP 總計數(shù)(0.650.01SUM(Fi)總計數(shù)是所有加權(quán)計數(shù)項的和;SUM(Fi) 是求和函數(shù): Fi(i1.14)是復(fù)雜性校正值,它們應(yīng)通過逐一回答如下提問來確定。34gjuyk復(fù)雜性校正值 Fi的取值0.5: = 0 沒有影響 = 1 偶然的 = 2 適中的 = 3 普通的 = 4 重要的 = 5 極重要的F1 系統(tǒng)是否需要可靠的備份和恢復(fù)?F2 是否需要數(shù)
14、據(jù)通信?F3 是否有分布處理的功能?F4 是否性能成為關(guān)鍵?F5 系統(tǒng)是否運行在既存的高度實用化的操作環(huán)境中?35gjuykF6系統(tǒng)是否需要聯(lián)機數(shù)據(jù)項?F7聯(lián)機數(shù)據(jù)項是否需要建立多重窗口顯示和操作,以處理輸入處理。F8主文件是否聯(lián)機更新?F9輸入、輸出、文件、查詢是否復(fù)雜?F10內(nèi)部處理過程是否復(fù)雜?F11程序代碼是否可復(fù)用?F12設(shè)計中是否包括了轉(zhuǎn)移和安裝?F13系統(tǒng)是否設(shè)計成可以重復(fù)安裝在不同機構(gòu)中 36gjuykF14系統(tǒng)是否設(shè)計成易修改和易使用?一旦計算出功能點,就可仿照LOC的方式度量軟件的生產(chǎn)率、質(zhì)量和其它屬性: 生產(chǎn)率 FPPM(人月) 質(zhì)量 錯誤數(shù)FP 成本 元FP 文檔 文檔
15、頁數(shù)FP37gjuyk功能點度量是為了商用信息系統(tǒng)應(yīng)用而設(shè)計的。特征點度量(Feature Points)可以用于系統(tǒng)和工程軟件應(yīng)用特征點度量適合于算法復(fù)雜性高的應(yīng)用。而實時處理、過程控制、嵌入式軟件應(yīng)用的算法復(fù)雜性都偏高,因此適合于特征點度量。38gjuyk為了計算特征點,可以象功能點計算那樣,對信息域值進行計數(shù)和加權(quán)。此外,特征點度量要對一個新的軟件特征 “算法” 進行計數(shù)。計算特征點可使用一個計算表格。對于每一個度量參數(shù)只使用一個權(quán)值,并且使用 FP總計數(shù)(0.650.01SUM(Fi) 來計算總的特征點值。39gjuyk特征點度量計算表格度量參數(shù) 計數(shù) 權(quán)值 加權(quán)計數(shù)用戶輸入數(shù) 4 =
16、用戶輸出數(shù) 5 =用戶查詢數(shù) 4 =文 件 數(shù) 7 = 外部接口數(shù) 7 =算 法 3 =總 計 數(shù)40gjuyk軟件質(zhì)量的度量質(zhì)量度量貫穿于軟件工程的全過程中以及軟件交付用戶使用之后。在軟件交付之前得到的度量可作為判斷設(shè)計和測試質(zhì)量好壞的依據(jù)。這一類度量包括程序復(fù)雜性、有效的模塊性和總的程序規(guī)模。在軟件交付之后的度量則把注意力集中于還未發(fā)現(xiàn)的差錯數(shù)和系統(tǒng)的可維護性方面。41gjuyk使用得最廣泛軟件質(zhì)量的事后度量包括正確性、可維護性、完整性和可使用性。正確性:一個程序必須正確地運行,并為它的用戶提供某些輸出。正確性要求軟件執(zhí)行所要求的功能。正確性的度量是每千代碼行(KLOC)的差錯數(shù),其中將差
17、錯定義為已被證實是不符合需求的缺陷。42gjuyk可維護性:軟件維護比其它的軟件工程活動需要更多的工作量。還沒有一種方法可以直接度量可維護性,必須采取間接度量。 一種簡單的面向時間的度量: 平均變 更等待時間MTTC。這個時間包括分析變更要求、設(shè)計適當修改、實現(xiàn)變更并測試、把變更發(fā)送給所有用戶。 一個可維護的程序與不可維護的程序相比,應(yīng)有較低的MTTC。 43gjuyk完整性:完整性度量一個系統(tǒng)抗拒對它的安全性攻擊(事故的和人為的)的能力。軟件的所有三個成分程序、數(shù)據(jù)和文檔都會遭到攻擊。 度量完整性,需要定義兩個附加的屬性:危險性和安全性。 危險性是特定類型的攻擊將在一給定時間內(nèi)發(fā)生的概率,
18、安全性是排除特定類型攻擊的概率。44gjuyk 一個系統(tǒng)的完整性可定義為 完整性(1危險性(1安全性) 其中,對每一個攻擊的危險性和安全性都進行累加。可使用性:如果一個程序不具有“用戶友好性”,即使它所執(zhí)行的功能很有價值,也常常會失敗。 可使用性量化“用戶友好性”,并依據(jù)以下四個特征進行度量:45gjuyk為學(xué)習系統(tǒng)所需要的體力上的和智力上的技能;為達到適度有效使用系統(tǒng)所需要的時間;當軟件被某些人適度有效地使用時所度量的在生產(chǎn)率方面的凈增值;用戶角度對系統(tǒng)的主觀評價 (可以通過問題調(diào)查表得到)。46gjuyk協(xié)調(diào)不同的度量方法代碼行數(shù)和功能點之間的關(guān)系依賴于用來實現(xiàn)軟件的程序設(shè)計語言和設(shè)計質(zhì)量
19、。下面給出使用各種程序設(shè)計語言建立一個功能點所需要的平均代碼行數(shù)的粗略估算。47gjuyk建立一個功能點所需平均代碼行數(shù)48gjuyk影響軟件生產(chǎn)率的重要因素人的因素:軟件開發(fā)組織的規(guī)模和專長;問題因素:問題的復(fù)雜性和對設(shè)計限制,以及需求的變更次數(shù);過程因素:使用的分析與設(shè)計技術(shù)、語言和CASE工具的有效性,及評審技術(shù);產(chǎn)品因素:計算機系統(tǒng)的可靠性和性能;資源因素:CASE工具、硬件和軟件資源的有效性。49gjuyk在軟件工程過程中使用度量建立基線 為了將LOC和FP用于軟件估算技術(shù)中,必須建立歷史數(shù)據(jù)基線。 根據(jù)歷史經(jīng)驗,在軟件工程過程的銜接處劃出一條基線,在此基線上附有一些用于度量的經(jīng)驗?zāi)?/p>
20、標信息,作為工程過程評估的依據(jù),判斷工程過程的完成是否達到預(yù)想的要求。50gjuyk質(zhì)量度量數(shù)據(jù)一旦收集到,軟件開發(fā)組織就可以根據(jù)它們來調(diào)整其軟件工程項目,以消除那些對軟件開發(fā)有重大影響的差錯產(chǎn)生的根源。大多數(shù)軟件開發(fā)人員都希望了解:哪些用戶需求可能會變更?系統(tǒng)中哪些模塊容易出錯?對每一個模塊要做多少測試?在測試時能夠預(yù)計多少錯誤?如果能收集到相關(guān)的度量數(shù)據(jù),就能確定這些問題的答案。51gjuyk為了幫助計劃、成本和工作量估算,基線的數(shù)據(jù)應(yīng)當具有下列屬性: 數(shù)據(jù)必須合理、精確,應(yīng)避免單純根據(jù)以往項目進行“盲目估算”; 應(yīng)從盡可能多的項目中收集數(shù)據(jù); 數(shù)據(jù)必須一致; 基線數(shù)據(jù)的應(yīng)用必須與要做估算
21、的工作類似。52gjuyk軟件項目的估算軟件項目管理過程開始于項目計劃。在做項目計劃時,第一項活動就是估算。在做估算時往往存在某些不確定性,使得軟件項目管理人員無法正常進行管理而導(dǎo)致產(chǎn)品遲遲不能完成?,F(xiàn)在已使用的實用技術(shù)是時間和工作量估算。53gjuyk估算對風險的影響54gjuyk項目復(fù)雜性對于增加軟件計劃的不確定性影響很大。復(fù)雜性越高,估算的風險就越高。項目規(guī)模對于軟件估算的精確性和功效影響也比較大。隨著軟件規(guī)模的擴大,問題分解會更加困難。項目的規(guī)模越大,開發(fā)工作量越大,估算的風險越高。項目的結(jié)構(gòu)化程度也影響項目估算的風險。隨著結(jié)構(gòu)化程度的提高,進行精確估算的能力就能提高,而風險將減少。5
22、5gjuyk歷史信息的有效性也影響估算的風險。對以往項目進行綜合度量,可借用來比較準確地進行估算,安排進度以避免重走過去的彎路,而總的風險也減少了。如果對軟件項目的作用范圍還不十分清楚,或者用戶的要求經(jīng)常變更,都會導(dǎo)致對軟件項目所需資源、成本、進度的估算頻頻變動,增加估算的風險。計劃人員應(yīng)當要求在軟件的規(guī)格說明中給出完備的功能、性能、接口的定義。56gjuyk軟件項目計劃的目標軟件項目管理人員在開發(fā)工作一開始需要進行定量估算。軟件項目計劃的目標是提供一個能使項目管理人員對資源、成本和進度做出合理估算的框架。這些估算應(yīng)當在軟件項目開始時的一個有限的時間段內(nèi)做出,并且隨著項目的進展定期進行更新。5
23、7gjuyk軟件的范圍軟件范圍包括功能、性能、限制、接口和可靠性。估算開始時應(yīng)對軟件功能進行評價,對其進行適當?shù)募毣员闾峁└敿毜募毠?jié)。由于成本和進度的估算都與功能有關(guān),因此常采用某種程度的功能分解。性能的考慮包括處理和響應(yīng)時間的需求。約束條件則標識產(chǎn)品成本、外部硬件、可用存儲或其它現(xiàn)有系統(tǒng)對軟件的限制。58gjuyk功能、性能和約束必須在一起進行評價。當性能限制不同時,為實現(xiàn)同樣的功能,開發(fā)工作量可能相差一個數(shù)量級。還要敘述某些質(zhì)量因素(例如,給出的算法是否容易理解等)。軟件與其它系統(tǒng)元素是相互作用的。要考慮每個接口的性質(zhì)和復(fù)雜性,以確定對開發(fā)資源、成本和進度的影響。接口的概念可解釋為:5
24、9gjuyk運行軟件的硬件 (如處理機與外設(shè)) 及間接受軟件控制的設(shè)備 (如機器、顯示器);必須與新軟件連接的現(xiàn)有的軟件(如數(shù)據(jù)庫存取例程、子程序包、操作系統(tǒng)); 通過終端或其它輸入輸出設(shè)備使用該軟件的人; 該軟件運行前后的一系列操作過程。對于每一種情況,都必須清楚地了解通過接口的信息轉(zhuǎn)換。60gjuyk軟件開發(fā)中的資源軟件項目計劃的第二個任務(wù)是對完成該軟件項目所需的資源進行估算。軟件開發(fā)所需的資源有 現(xiàn)成的用以支持軟件開發(fā)的工具 (硬件工具及軟件工具); 最基本的資源 (人);61gjuyk軟件開發(fā)中的資源人工具人 需要的技能, 有效性 開始時間, 工作期限硬件 開發(fā)系統(tǒng), 目標機器, 新系
25、統(tǒng)其他硬件部分軟件 支持軟件, 實用軟件有效性,投入時間, 持續(xù)時間62gjuyk通常,對每一種資源,應(yīng)說明以下四個特性: 資源的描述; 資源的有效性說明; 資源在何時開始需要; 使用資源的持續(xù)時間。最后兩個特性統(tǒng)稱為時間窗口。63gjuyk1. 人力資源在考慮各種軟件開發(fā)資源時,人是最重要的資源。在安排開發(fā)活動時必須考慮人員的技術(shù)水平、專業(yè)、人數(shù)、以及在開發(fā)過程各階段中對各種人員的需要。計劃人員首先估算范圍并選擇為完成開發(fā)工作所需要的技能。還要在組織和專業(yè)兩方面做出安排。64gjuyk對于一些規(guī)模較小的項目 (1個人年或者更少),只要向?qū)<易鲂┳稍儯苍S一個人就可以完成所有的軟件工程步驟。對
26、一些規(guī)模較大的項目,在整個軟件生存期中,各種人員的參與情況是不一樣的。下面是各類不同的人員隨開發(fā)工作的進展在軟件工程各個階段的參與情況的典型曲線。65gjuyk管理人員初級技術(shù)人員高級技術(shù)人員高人員參與程度計 劃需求分析概要設(shè)計詳細分析程序編碼單元測試集成測試確認測試66gjuyk2. 硬件資源硬件是作為軟件開發(fā)項目的一種工具而投入的。宿主機(Host) 軟件開發(fā)時使用的計算機及外圍設(shè)備;目標機(Target) 運行已開發(fā)成功軟件的計算機及外圍設(shè)備;其它硬件設(shè)備 專用軟件開發(fā)時需要的特殊硬件資源;67gjuyk宿主機連同必要的軟件工具構(gòu)成軟件開發(fā)系統(tǒng)。通常這樣的開發(fā)系統(tǒng)能夠支持多種用戶的需要,
27、且能保持大量的由軟件開發(fā)小組成員共享的信息。在許多情況下,宿主機與目標機可以是同一種機型。68gjuyk3. 軟件資源軟件人員在軟件開發(fā)期間使用了許多軟件工具來幫助開發(fā)。這種軟件工具集叫做計算機輔助軟件工程(CASE)。業(yè)務(wù)系統(tǒng)計劃工具集項目管理工具集支援工具文檔生成工具、網(wǎng)絡(luò)系統(tǒng)軟件、數(shù)據(jù)庫、電子郵件、通報板,以及配置管理工具。 69gjuyk分析和設(shè)計工具編程工具集成和測試工具原型化和模擬工具維護工具框架工具這些工具能夠提供建立集成項目支撐環(huán)境(IPSE)的框架。70gjuyk4. 軟件復(fù)用性及軟件部件庫為了促成軟件的復(fù)用,以提高軟件的生產(chǎn)率和軟件產(chǎn)品的質(zhì)量,可建立可復(fù)用的軟件部件庫。71
28、gjuyk軟件成本和工作量的估算軟件成本和工作量的估算中變化的東西太多,人、技術(shù)、環(huán)境、政治,都會影響軟件最終成本和工作量。軟件項目的估算能夠通過一系列系統(tǒng)化的步驟,在可接受的風險范圍內(nèi)提供估算結(jié)果。成本估算必須“事前”給出。時間越久,了解得越多,估算中出現(xiàn)的嚴重誤差就越少。72gjuyk分解技術(shù)當一個待解決的問題過于復(fù)雜時,我們可以把它進一步分解,直到分解后的子問題變得容易解決為止。然后,分別解決每一個子問題,并將這些子問題的解答綜合起來,從而得到原問題的解答。73gjuykLOC和FP估算在軟件項目估算中,在兩個方面使用了LOC和FP數(shù)據(jù): 把LOC和FP數(shù)據(jù)當做一個估算變量,用于量度軟件
29、每一個元素的規(guī)模。 LOC和FP數(shù)據(jù)作為從過去項目中收集到的基線數(shù)據(jù),與其它估算變量聯(lián)合使用, 進行成本和工作量的估算。74gjuykLOC和FP的共性在于: 給出一個有界的軟件范圍的敘述 由此敘述把軟件分解成一些小的可分別獨立進行估算的子功能 對每一個子功能估算LOC或FP 把基線生產(chǎn)率度量(如LOCPM或FPPM) 用做特定的估算變量,導(dǎo)出子功能的成本或工作量綜合子功能的估算得到整個項目的總估算。75gjuyk用 LOC 做為估算變量時,必須進行功能分解, 且需要達到很詳細的程度。而估算 FP 時需要的數(shù)據(jù)是宏觀的量,當把 FP 當做估算變量時不需分解得很詳細。LOC 是直接估算的, 而
30、FP 是通過估計輸入、輸出、數(shù)據(jù)文件、查詢和外部接口的數(shù)目,以及 14 種復(fù)雜性校正值間接地確定的。76gjuyk項目計劃人員可對每一個分解的功能提出一個有代表性的估算值范圍。利用歷史數(shù)據(jù)或憑實際經(jīng)驗(當其它的方法失效時),對每個功能分別按最佳的、可能的、悲觀的三種情況給出LOC或FP估計值。記作a、m、b。接著計算LOC或FP的期望值 E。 E (a4mb)6 77gjuyk所有子功能的總估算變量值除以相應(yīng)于該估算變量的平均生產(chǎn)率度量得到項目的總工作量。例如,若假定總的FP估算值是310,基于過去項目的平均FP生產(chǎn)率是5.5FPPM,則項目的總工作量是: 工作量 3105.5 56 PM作為
31、LOC和FP估算的實例,考察一 個為CAD應(yīng)用而開發(fā)的軟件包。78gjuyk系統(tǒng)定義評審指明,軟件是在一個工作站上運行,其接口必須使用各種計算機圖形設(shè)備,包括鼠標器、數(shù)字化儀、高分辯率彩色顯示器和激光打印機。在這個實例中,使用LOC做為估算變量。根據(jù)系統(tǒng)規(guī)格說明, 軟件范圍的初步敘述如下“軟件將從操作員那里接收2 維或 3 維幾何數(shù)據(jù)。 操作員通過用戶界面與 CAD系統(tǒng)交互并控制它,這種用戶界面將表79gjuyk 現(xiàn)出很好的人機接口設(shè)計特性。所有的幾何數(shù)據(jù)和其它支持信息保存在一個CAD數(shù)據(jù)庫內(nèi)。要開發(fā)一些設(shè)計分析模塊以產(chǎn)生在各種圖形設(shè)備上顯示的輸出。軟件要設(shè)計得能控制并與能各種外部設(shè)備,包括鼠
32、標器、數(shù)字化儀、激光打印機和繪圖儀交互?!?0gjuyk經(jīng)過分解, 識別出下列主要軟件功能: 用戶界面和控制功能 二維幾何分析 三維幾何分析 數(shù)據(jù)庫管理 計算機圖形顯示功能 外設(shè)控制PC 設(shè)計分析模塊通過分解,可得到如下估算表81gjuyk82gjuyk從歷史的基線數(shù)據(jù)求出生產(chǎn)率度量,即行PM和元行。需要根據(jù)復(fù)雜性程度的不同,對各功能使用不同的生產(chǎn)率度量值。在表中的成本 = LOC的期望值 E與元行相乘,工作量 = 用LOC 的期望值 E與行PM相除。因此可得,該項目總成本的估算值為 657,000元,總工作量的估算值為145人月(PM)。83gjuyk軟件開發(fā)成本估算軟件開發(fā)成本主要是指軟件
33、開發(fā)過程中所花費的工作量及相應(yīng)的代價。它不包括原材料和能源的消耗,主要是人的勞動的消耗。人的勞動消耗所需代價就是軟件產(chǎn)品的開發(fā)成本。軟件產(chǎn)品開發(fā)成本的計算方法不同于其它物理產(chǎn)品成本的計算。84gjuyk軟件的開發(fā)成本是以一次性開發(fā)過程所花費的代價來計算的。軟件開發(fā)成本的估算,應(yīng)是從軟件計劃、需求分析、設(shè)計、編碼、單元測試、組裝測試到確認測試,整個軟件開發(fā)全過程所花費的代價作為依據(jù)的。85gjuyk軟件開發(fā)成本估算方法對于一個大型的軟件項目,由于項目的復(fù)雜性,開發(fā)成本的估算不是一件簡單的事,要進行一系列的估算處理。主要靠分解和類推?;竟浪惴椒ǚ譃槿悺?自頂向下的估算方法 自底向上的估計法 差
34、別估計法86gjuyk自頂向下的估算方法這種方法的主要思想是從項目的整體出發(fā),進行類推。估算人員根據(jù)以前已完成項目所消耗的總成本(或總工作量),推算將要開發(fā)的軟件的總成本(或總工作量),然后按比例將它分配到各開發(fā)任務(wù)單元中去,再來檢驗它是否能滿足要求。87gjuyk88gjuyk這種方法的優(yōu)點是估算工作量小,速度快。缺點是對項目中的特殊困難估計不足,估算出來的成本盲目性大,有時會遺漏被開發(fā)軟件的某些部分。89gjuyk自底向上的估計法這種方法的主要思想是把待開發(fā)的軟件細分,直到每一個子任務(wù)都已經(jīng)明確所需要的開發(fā)工作量,然后把它們加起來,得到軟件開發(fā)的總工作量。它的優(yōu)點是估算各個部分的準確性高。
35、缺點是缺少各項子任務(wù)之間相互聯(lián)系所需要的工作量,還缺少許多與軟件開發(fā)有關(guān)的系統(tǒng)級工作量.90gjuyk差別估計法這種方法綜合了上述兩種方法的優(yōu)點,其主要思想是把待開發(fā)的軟件項目與過去已完成的軟件項目進行類比,從其開發(fā)的各個子任務(wù)中區(qū)分出類似的部分和不同的部分。類似的部分按實際量進行計算,不同的部分則采用相應(yīng)方法進行估算。91gjuyk專家判定技術(shù)由多位專家進行成本估算。單獨一位專家可能會有種種偏見,最好由多位專家進行估算,取得多個估算值。有多種方法把這些估算值合成一個估算值。一種方法是簡單地求各估算值的中值或平均值。其優(yōu)點是簡便。缺點是可能會由于受一、二個極端估算值的影響而產(chǎn)生嚴重的偏差。92
36、gjuyk一種方法是召開小組會,使各位專家們統(tǒng)一于或至少同意某一個估算值。優(yōu)點是可以擯棄蒙昧無知的估算值,缺點是一些組員可能會受權(quán)威或政治因素的影響。93gjuykDeiphi技術(shù)標準Deiphi技術(shù) 組織者發(fā)給每位專家一份軟件系統(tǒng)規(guī)格說明書和一張記錄估算值的表格,請他們進行估算。 專家詳細研究軟件規(guī)格說明書的內(nèi)容,對該軟件提出三個規(guī)模的估算值,即:ai (最小), mi (可能), bi (最大), 無記名地填寫表格94gjuyk 組織者對專家們填在表格中的答復(fù)進行整理: a. 計算各專家估算的期望值 Ei; b. 對專家的估算結(jié)果分類摘要。 專家對此估算值另做一次估算。 在綜合專家估算結(jié)果
37、的基礎(chǔ)上,組織專家再次無記名地填寫表格。比較兩次估算的結(jié)果。若差異很大,要通過查詢找出差異的原因。95gjuyk 上述過程可重復(fù)多次。最終可獲得一個得到多數(shù)專家共識的軟件規(guī)模(源代碼行數(shù))。最后,通過與歷史資料進行類比,根據(jù)過去完成軟件項目的規(guī)模和成本等信息,推算出該軟件每行源代碼所需要的成本。然后再乘以該軟件源代碼行數(shù)的估算值,就可得到該軟件的成本估算值。96gjuyk軟件開發(fā)成本估算的經(jīng)驗?zāi)P蛙浖_發(fā)成本估算是依據(jù)開發(fā)成本估算模型進行估算的。開發(fā)成本估算模型通常采用經(jīng)驗公式來預(yù)測軟件項目計劃所需要的成本、工作量和進度數(shù)據(jù)。用以支持大多數(shù)模型的經(jīng)驗數(shù)據(jù)都是從有限的一些項目樣本中得到的。97g
38、juykIBM模型 E 5.2L0.91 D 4.1L0.36 14.47E0.35 S 0.54E0.6 DOC 49L1.01L 是源代碼行數(shù) (KLOC),E 是工作量 (PM),D 是項目持續(xù)時間(月),S 是人員需要量 (人),DOC是文檔數(shù)量 (頁)。98gjuykIBM模型是靜態(tài)單變量模型。在此模型中,一般指一條機器指令為 一行源代碼。一個軟件的源代碼行數(shù)不包括程序注釋、作業(yè)命令、調(diào)試程序在內(nèi)。對于非機器指令編寫的源程序,例如匯編語言或高級語言程序,應(yīng)轉(zhuǎn)換成機器指令源代碼行數(shù)來考慮。99gjuyk轉(zhuǎn)換系數(shù)表定義: 轉(zhuǎn)換系數(shù)機器指令條數(shù)非機器語言執(zhí)行步數(shù)。100gjuykPutna
39、m 模型Putnam模型是一種動態(tài)多變量模型。適用于大型項目,但也可以應(yīng)用在一些較小的軟件項目中。它是假定在軟件開發(fā)的整個生存期中工作量有特定的分布。大型軟件項目的開發(fā)工作量分布可以用Rayleigh-Norden曲線表示。101gjuyk102gjuyk用Rayleigh-Norden曲線可以導(dǎo)出一個“軟件方程”td 是開發(fā)持續(xù)時間 (年), K是軟件開發(fā)與維護在內(nèi)的整個生存期所花費的工作量 (人年),L是源代碼行數(shù) (LOC),Ck是技術(shù)狀態(tài)常數(shù),因開發(fā)環(huán)境而異。103gjuyk技術(shù)狀態(tài)常數(shù)Ck的取值Ck的典型值開發(fā)環(huán)境開 發(fā) 環(huán) 境 舉 例2000差沒有系統(tǒng)的開發(fā)方法,缺乏文檔和復(fù)審,批
40、處理方式。8000好有合適的系統(tǒng)開發(fā)方法,有充分的文檔和復(fù)審,交互執(zhí)行方式。11000優(yōu)有自動開發(fā)工具和技術(shù)104gjuykCOCOMO模型 (COnstructive COst MOdel)結(jié)構(gòu)型成本估算模型是一種精確、易于使用的成本估算方法。DSI(源指令條數(shù))定義為代碼的源程序行數(shù)。若一行有兩個語句,則算做一條指令。它包括作業(yè)控制語句和格式語句,但不包括注釋語句。 KDSI1000DSI。105gjuykMM(度量單位為人月)表示開發(fā)工作量。TDEV(度量單位為月)表示開發(fā)進度。它由工作量決定。軟件開發(fā)項目的分類軟件開發(fā)項目的總體類型: 組織型 嵌入型 半獨立型106gjuykCOCOM
41、O模型的分類COCOMO模型按其詳細程度分成三級: 基本COCOMO模型 中間COCOMO模型 詳細COCOMO模型基本COCOMO模型是靜態(tài)單變量模型,用源代碼行數(shù)(LOC) 為自變量的經(jīng)驗函數(shù)計算軟件開發(fā)工作量。107gjuyk中間COCOMO模型在用LOC為自變量的函數(shù)計算軟件開發(fā)工作量(稱為名義工作量)的基礎(chǔ)上,用涉及產(chǎn)品、硬件、人員、項目等方面的影響因素調(diào)整工作量估算。詳細COCOMO模型包括中間COCO MO模型的所有特性,但用上述各種影響因素調(diào)整工作量估算時,還要考慮對軟件工程過程中每一步驟(分析、設(shè)計等)的影響。108gjuyk基本COCOMO模型基本COCOMO模型的工作量和
42、進度公式109gjuyk中間COCOMO模型進一步考慮15種影響軟件工作量的因素,通過定下乘法因子,修正COCO MO工作量公式和進度公式,可以更合理地估算軟件(各階段)的工作量和進度。中間COCOMO模型的名義工作量與進度公式如下所示。110gjuyk中間COCOMO模型名義工作量與進度公式111gjuyk15種影響軟件工作量的因素 fi產(chǎn)品因素:軟件可靠性、數(shù)據(jù)庫規(guī)模、產(chǎn)品復(fù)雜性硬件因素:執(zhí)行時間限制、存儲限制、虛擬機易變性、環(huán)境周轉(zhuǎn)時間人的因素:分析員能力、應(yīng)用領(lǐng)域?qū)嶋H經(jīng)驗、程序員能力、虛擬機使用經(jīng)驗、程序語言使用經(jīng)驗項目因素:現(xiàn)代程序設(shè)計技術(shù)、軟件工具的使用、開發(fā)進度限制112gjuy
43、k113gjuyk此時,工作量計算公式改成例1. 一個 32KDSI 的聲音輸入系統(tǒng)是一個輸入原型,或是一個可行性表演模型。所需可靠性非常低。把此模型看做半獨立型軟件。則有 MM 3.0(32)1.12 146又查表知 f10.75,其它 fi1.00,則最終有MM 1460.75 110.114gjuyk例14. 一個規(guī)模為10KDSI的商用微機遠程通信的嵌入型軟件,使用中間COCOMO模型進行成本估算。程序名義工作量 MM 2.8 (10)1.20 44.38(MM)程序?qū)嶋H工作量 MM 44.38 44.381.17 51.5(MM)115gjuyk116gjuyk開發(fā)所用時間 TDEV
44、 2.5 (51.5)0.32 8.9 (月)如果分析員與程序員的工資都按每月6,000美元計算,則該項目的開發(fā)人員的工資總額為 51.56,000 309,000 (美元)做為對比,現(xiàn)在用IBM模型計算: PM 5.2 (10)0.91 42.27 (人月) D 4.1 (10)0.38 9.84 (月) S 0.54 (42.27)0.60 5.1 (人)117gjuyk詳細COCOMO模型詳細COCOMO模型的名義工作量公式和進度公式與中間COCOMO模型相同。工作量因素分級表分層、分階段給出。針對每一個影響因素,按模塊層、子系統(tǒng)層、系統(tǒng)層,有三張工作量因素分級表,供不同層次的估算使用。
45、每一張表中工作量因素又按開發(fā)各個不同階段給出。118gjuyk例如,關(guān)于軟件可靠性(RELY)要求的工作量因素分級表(子系統(tǒng)層),如表所示。使用這些表格,可以比中間COCO MO模型更方便、更準確地估算軟件開發(fā)工作量。119gjuyk軟件可靠性工作量因素分級表(子系統(tǒng)層)120gjuyk成本效益分析成本效益分析的目的,是從經(jīng)濟角度評價開發(fā)一個新的軟件項目是否可行。成本效益分析首先估算新軟件系統(tǒng)的開發(fā)成本,然后與可能取得的效益 (有形的和無形的) 進行比較權(quán)衡。有形的效益可以用貨幣的時間價值、投資回收期、純收入等指標進行度量。無形的效益主要是從性質(zhì)上、心理上進行衡量。121gjuyk系統(tǒng)的經(jīng)濟效
46、益等于因使用新系統(tǒng)而增加的收入加上使用新系統(tǒng)可節(jié)省的運行費用。幾種度量效益的方法 貨幣的時間價值投資回收期純收入投資回收率 122gjuyk貨幣的時間價值成本估算的目的,是要求對項目投資。但投資在前,取得效益在后。因此要考慮貨幣的時間價值。通常用利率表示貨幣的時間價值。設(shè)年利率為 i,現(xiàn)已存入 P 元,則 n 年后可得錢數(shù)為 F = P ( 1 + i )n這就是 P 元錢在 n 年后的價值。123gjuyk反之,若 n 年后能收入 F 元,那么這些錢現(xiàn)在的價值是 例如,在工程設(shè)計中用CAD系統(tǒng)來取代大部分人工設(shè)計工作,每年可節(jié)省9.6萬元。若軟件生存期為 5 年,則 5 年可節(jié)省48萬元。開
47、發(fā)這個CAD系統(tǒng)共投資了20萬元。124gjuyk不能簡單地把20萬元與48萬元相比較。因為前者是現(xiàn)在投資的錢,而后者是5年內(nèi)相繼節(jié)省的錢。需要把5年內(nèi)每年預(yù)計節(jié)省的錢折合成現(xiàn)在的價值才能進行比較。設(shè)年利率是5,利用上面計算貨幣現(xiàn)在價值的公式,可以算出引入CAD系統(tǒng)后,每年預(yù)計節(jié)省的錢的現(xiàn)在價值,參看下表。 125gjuyk貨幣的時間價值 年份將來值(萬)(1+i)n現(xiàn)在值(萬)累計現(xiàn)在值(萬)19.61.059.14299.142929.61.10258.707517.851339.61.15768.292826.143249.61.21557.897934.041159.61.27637.
48、521941.5630126gjuyk投資回收期投資回收期就是使累計的經(jīng)濟效益等于最初的投資所需要的時間。投資回收期越短,就能越快獲得利潤。例如,引入CAD系統(tǒng)兩年以后,可以節(jié)省17.85萬元,比最初的投資還少2.15萬元,但第三年可以節(jié)省8.29萬元,則 2.15 / 8.29 = 0.259因此,投資回收期是2.259年。 127gjuyk純收入工程的純收入就是在整個生存期之內(nèi)系統(tǒng)的累計經(jīng)濟效益(折合成現(xiàn)在值)與投資之差。例如,引入CAD系統(tǒng)之后,5 年內(nèi)工程的純收入預(yù)計是 41.5632021.563(萬元)。這相當于比較投資一個待開發(fā)的軟件項目后預(yù)期可取得的效益和把錢存在銀行里(或貸款
49、給其它企業(yè))所取得的收益,到底孰優(yōu)孰劣。128gjuyk投資回收率用投資回收率來衡量投資效益的大小。已知現(xiàn)在的投資額 P,并且已經(jīng)估算出將來每年可以獲得的經(jīng)濟效益Fk,以及軟件的使用壽命 n,k = 1, 2, ., n。則投資回收率 j,可用如下的方程來計算: 129gjuyk這相當于把數(shù)額等于投資額的資金存入銀行,每年年底從銀行取回的錢等于系統(tǒng)每年預(yù)期可以獲得的效益。在時間等于系統(tǒng)壽命時,正好把在銀行中的錢全部取光。此時的年利率是多少呢? 就等于投資回收率。130gjuyk進度安排軟件開發(fā)項目的進度安排有兩種方式:系統(tǒng)最終交付日期已經(jīng)確定,軟件開發(fā)部門必須在規(guī)定期限內(nèi)完成;系統(tǒng)最終交付日期
50、只確定了大致的年限,最後交付日期由軟件開發(fā)部門確定。進度安排落空,會導(dǎo)致市場機會的喪失,使用戶不滿意,而且也會導(dǎo)致成本的增加。131gjuyk因此,在考慮進度安排時,要把工作量與花費時間聯(lián)系起來,合理分配工作量, 利用進度安排的有效分析方法嚴密監(jiān)控軟件開發(fā)的進展情況,使軟件開發(fā)進度不致拖延。132gjuyk軟件開發(fā)小組人數(shù)與軟件生產(chǎn)率的關(guān)系當幾個人共同承擔軟件開發(fā)項目中的某一任務(wù)時,人與人之間必須通過交流來解決各自承擔任務(wù)之間的接口問題,即所謂通信問題。通信需花費時間和代價,會引起軟件錯誤增加,降低軟件生產(chǎn)率。133gjuyk若兩個人間需要通信,則稱在這兩個人間存在一條通信路徑。如果一個軟件開
51、發(fā)小組有 n 個人,每兩人之間都需要通信,則總的通信路徑有 n(n-1)/2 (條)。四人之間所有通信路徑六人之間所有通信路徑134gjuyk設(shè)一個人單獨開發(fā)軟件,生產(chǎn)率是5000行人年。若 4 個人組成一個小組共同開發(fā)這個軟件,則需要 6條通信路徑。若在每條通信路徑上耗費的工作量是 250 行人年。則小組中每個人的軟件生產(chǎn)率降低為 500062504 5000375 = 4625 行人年。135gjuyk從上述分析可知,一個軟件任務(wù)由一 個人單獨開發(fā),生產(chǎn)率最高;而對于 一個稍大型的軟件項目,一個人單獨開發(fā),時間太長。因此軟件開發(fā)小組是必要的。但是,開發(fā)小組不宜太大,成員之間避免太多的通信路
52、徑。在開發(fā)進程中,切忌中途加人,避免太多的生產(chǎn)率損失。136gjuyk任務(wù)的確定與并行性當參加同一軟件工程項目的人數(shù)不止一人的時候,開發(fā)工作就會出現(xiàn)并行情形。軟件開發(fā)進程中設(shè)置許多里程碑。里程碑為管理人員提供了指示項目進度的可靠依據(jù)。軟件工程項目的并行性提出了一系列的進度要求。137gjuyk138gjuyk因為并行任務(wù)是同時發(fā)生的,所以進度計劃表必須決定任務(wù)之間的從屬關(guān)系,確定各個任務(wù)的先后次序和銜接,確定各個任務(wù)完成的持續(xù)時間。項目負責人應(yīng)注意構(gòu)成關(guān)鍵路徑的任務(wù),即若要保證整個項目能按進度要求完成,就必須保證這些任務(wù)要按進度要求完成。139gjuyk制定開發(fā)進度計劃402040規(guī)則在整個軟
53、件開發(fā)過程中,編碼工作量僅占 20,編碼前工作量占40,編碼后工作量占 40。 402040 規(guī)則只應(yīng)用來做為 一個指南。實際的工作量分配比例必須按照各項目的特點來決定。140gjuykCOCOMO模型開發(fā)進度TDEV與工作量MM的關(guān)系: TDEV a(MM)b 如果想要縮短開發(fā)時間,或想要保證開發(fā)進度,必須考慮影響工作量的因素。按可減小工作量的因素取值。 141gjuyk142gjuyk按此比例確定各個階段工作量的分配和所需的開發(fā)時間,然后在每個階段進行任務(wù)分解,對各個任務(wù)再進行工作量和開發(fā)時間的分配。進度安排的基本原則劃分任務(wù) 把軟件項目劃分為若干可管理的活動,用軟件過程模型定義,為此,需
54、對過程和產(chǎn)品進行分解。143gjuyk確定相互依賴性 確定各個活動和任務(wù)之間的相互依賴性。某些任務(wù)順序執(zhí)行、有些任務(wù)并行執(zhí)行。分配時間 為每個任務(wù)分配工作量,確定開始時間和結(jié)束時間。需考慮各任務(wù)間的相互關(guān)聯(lián)和人員參與情況。確認工作量 確保項目劃分中各任務(wù)的參加人員的數(shù)量和工作量,進行合理分配。定義責任 指定各個任務(wù)的責任者。144gjuyk定義可交付物 每個任務(wù)的輸出是一 個工作產(chǎn)品或工作產(chǎn)品的一部分,確定把哪些工作產(chǎn)品組合為可交付物。定義里程碑 為每個任務(wù)或每組任務(wù)指定一個項目里程碑??山桓段锝?jīng)過評審并確認后才能成為里程碑。在軟件工程項目中必須處理好進度與質(zhì)量之間的關(guān)系。在進度壓力下趕任務(wù),
55、其成果往往是以犧牲產(chǎn)品質(zhì)量為代價。145gjuyk各個任務(wù)的計劃開始時間,完成時間;各個任務(wù)完成標志(即文檔編寫和評審);各個任務(wù)與參與工作的人數(shù),各個任務(wù)與工作量之間的銜接情況;完成各個任務(wù)所需的物理資源和數(shù)據(jù)資源。進度控制的圖形工具146gjuyk(1) 甘特圖(Gantt Chart)在甘特圖中,每一任務(wù)完成的標準,不是以能否繼續(xù)下一階段任務(wù)為標準,而是以必須交付應(yīng)交付的文檔與通過評審為標準。因此在甘特圖中,文檔編制與評審是軟件開發(fā)進度的里程碑。147gjuyk148gjuyk(2) PERT技術(shù)和CPM方法PERT技術(shù)叫做計劃評審技術(shù),CPM方法叫做關(guān)鍵路徑法,它們都是安排開發(fā)進度,制
56、定軟件開發(fā)計劃的最常用的方法。它們都采用網(wǎng)絡(luò)圖來描述一個項目的任務(wù)網(wǎng)絡(luò),也就是從一個項目的開始到結(jié)束,把應(yīng)當完成的任務(wù)用圖或表的形式表示出來。149gjuyk三個模塊開發(fā)的網(wǎng)絡(luò)圖01286678889793456785BC組裝測試A測試A調(diào)試A編碼B編碼B測試C測試B調(diào)試C調(diào)試C理解C修改150gjuyk通常用兩張表來定義網(wǎng)絡(luò)圖。一張表給出與一特定軟件項目有關(guān)的所有任務(wù)(也稱為任務(wù)分解結(jié)構(gòu) WBS,WorkBreakdown Structure);另一張表給出應(yīng)當按照什么樣的次序來完成這些任務(wù)(有時稱為限制表RL, RestrictionList)。PERT技術(shù)和CPM方法為項目計劃人員提供了
57、一些定量的工具。151gjuyk 確定關(guān)鍵路徑,即決定項目開發(fā)時間的任務(wù)鏈。在關(guān)鍵路徑上的各個任務(wù)都是時間余量為零的關(guān)鍵任務(wù),不能有任何時間延誤。 應(yīng)用統(tǒng)計模型,對每一個單獨的任務(wù)確定最可能的開發(fā)持續(xù)時間的估算值。 計算邊界時間,以便為具體的任務(wù)定義時間窗口。152gjuyk軟件項目的組織與計劃制定計劃風險分析軟件項目組織的建立人員配備項目的追蹤與控制153gjuyk軟件計劃的類型針對不同工作目標,軟件計劃有: 項目實施計劃(軟件開發(fā)計劃) 這是軟件開發(fā)的綜合性計劃,包括任務(wù)、進度、人力、環(huán)境、資源、組織等多個方面。 質(zhì)量保證計劃 把軟件開發(fā)的質(zhì)量要求具體規(guī)定為每個開發(fā)階段可以檢查的質(zhì)量保證活
58、動。 軟件測試計劃 規(guī)定測試活動的任務(wù)、測試方法、進度、資源、人員職責等。154gjuyk 文檔編制計劃 規(guī)定所開發(fā)項目應(yīng)編制的文檔種類、內(nèi)容、進度、人員職責等。 用戶培訓(xùn)計劃 規(guī)定對用戶進行培訓(xùn)的目標、要求、進度、人員職責等。 綜合支持計劃 規(guī)定軟件開發(fā)過程中所需要的支持,以及如何獲取和利用這些支持。 軟件分發(fā)計劃 軟件開發(fā)項目完成后,如何提供給用戶。155gjuyk制定計劃軟件開發(fā)項目的計劃涉及到實施項目的各個環(huán)節(jié),帶有全局性質(zhì)。計劃的合理性和準確性往往關(guān)系著項目的成敗。計劃應(yīng)力求完備。要考慮到一些未知因素和不確定因素,考慮到可能的修改。計劃應(yīng)力求準確。盡可能提高所依據(jù)數(shù)據(jù)的可靠程度。15
59、6gjuyk制定計劃目標制定計劃的目的就是要回答: 這個軟件項目的范圍是什么? 需要哪些資源? 花費多少工作量? 要用的成本有多少? 以及進度如何安排 等等一系列問題。這步工作應(yīng)當以系統(tǒng)計劃為基礎(chǔ),以系統(tǒng)規(guī)格說明為依據(jù)。157gjuyk在開發(fā)工作未開始前,準確回答這些問題是十分困難的。需要通過以往的開發(fā)經(jīng)驗做出估算,很難達到準確。從估算出發(fā),項目必然帶有一定的風險。估算的準確性越差,風險也就越大。研制的軟件項目復(fù)雜性越高,規(guī)模越大,結(jié)構(gòu)化程度越低,資源、成本、進度等因素的不確定性越大,承擔這一項目所冒的風險也越大。158gjuyk組織軟件項目必須事先認清可能構(gòu)成風險的因素,并研究戰(zhàn)勝風險的對策
60、,只有這樣才能避免出現(xiàn)災(zāi)難性的后果,取得項目預(yù)期的成果。159gjuyk風險分析風險分析的主要活動有風險識別、風險估算、風險評價和風險管理。風險分項目風險、技術(shù)風險和商業(yè)風險。項目風險是指 潛在的預(yù)算、進度、人員和組織、資源、用戶、需求方面的問題,以及它們對軟件項目的影響。 項目的復(fù)雜性、規(guī)模、結(jié)構(gòu)的不確定性。160gjuyk技術(shù)風險是指 潛在的設(shè)計、實現(xiàn)、接口、檢驗和維護方面的問題。 規(guī)約的二義性、技術(shù)陳舊或太先進。商業(yè)風險有五種 建立的軟件雖然很優(yōu)秀但不是市場真正所想要的; 建立的軟件不符合公司整個產(chǎn)品戰(zhàn)略; 建立的軟件銷售部門不清楚如何推銷; 161gjuyk由于重點轉(zhuǎn)移或人員變動而失去
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 醫(yī)療手術(shù)合同范本
- 合開店合同范本
- 衛(wèi)生間裝修工人合同范本
- 進廠入職合同范本
- 合伙投資合同范本范本
- 個人之間擔保合同范本
- 合法會員合同范例
- 運行總工績效合同范本
- 2025年常溫遠紅外陶瓷及制品項目建議書
- 廚房人員用工合同范本
- 交通法律與交通事故處理培訓(xùn)課程與法律解析
- 廣西版四年級下冊美術(shù)教案
- 《換熱器及換熱原理》課件
- 兒童權(quán)利公約演示文稿課件
- UPVC排水管技術(shù)標準
- MSA-測量系統(tǒng)分析模板
- 血透室公休座談水腫的護理
- 急診預(yù)檢分診專家共識課件
- 廣州市海珠區(qū)事業(yè)單位考試歷年真題
- 2023年山西省太原市迎澤區(qū)校園招考聘用教師筆試題庫含答案詳解
- 2023中職27 嬰幼兒保育 賽題 模塊三 嬰幼兒早期學(xué)習支持(賽項賽題)
評論
0/150
提交評論