版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第9章軟件工程管理軟件工程管理概述軟件規(guī)模估算進(jìn)度計(jì)劃人員組織軟件配置管理軟件質(zhì)量保證軟件工程標(biāo)準(zhǔn)與軟件文檔第9章軟件工程管理1軟件工程管理概述1.軟件產(chǎn)品的特點(diǎn)軟件是邏輯產(chǎn)品,具有高度的抽象性同一功能的軟件可以有多樣性軟件生產(chǎn)過程復(fù)雜,具有易錯(cuò)性軟件開發(fā)與維護(hù)主要是根據(jù)用戶需求“定制”的,其過程具有復(fù)雜性和易變性軟件的開發(fā)和運(yùn)行經(jīng)常受到計(jì)算機(jī)系統(tǒng)環(huán)境的限制,因而軟件有安全性和可移植性等問題軟件生產(chǎn)有許多新技術(shù)需要軟件工程師進(jìn)一步研究和實(shí)踐軟件工程管理概述1.軟件產(chǎn)品的特點(diǎn)22.軟件工程管理的重要性分階段管理策略涉及多學(xué)科軟件規(guī)模不斷增大,管理難度增加,管理不善的后果嚴(yán)重2.軟件工程管理的重要性33.軟件工程管理的內(nèi)容包括對(duì)軟件開發(fā)成本、控制、開發(fā)人員、組織機(jī)構(gòu)、用戶、軟件開發(fā)文檔、軟件質(zhì)量等方面的管理。3.軟件工程管理的內(nèi)容4軟件規(guī)模和開發(fā)工作量估算面向規(guī)模的度量(代碼行技術(shù))面向功能的度量(功能點(diǎn)技術(shù))CoCoMo模型軟件規(guī)模和開發(fā)工作量估算5軟件項(xiàng)目估算估算涉及到人、技術(shù)、環(huán)境、政策等多種因素,很難精確地估算出項(xiàng)目的開銷。常用四種估算方法參照已有類似項(xiàng)目估計(jì)待開發(fā)項(xiàng)目成本和工作量將大的項(xiàng)目分解成若干子項(xiàng)目,分別估算出子項(xiàng)目成本和工作量,再估算整個(gè)項(xiàng)目按軟件的生命期分別估算各階段的工作量和成本,再匯總,從而估算出整個(gè)項(xiàng)目根據(jù)實(shí)驗(yàn)或歷史數(shù)據(jù)給出軟件項(xiàng)目工作量或成本的經(jīng)驗(yàn)公式軟件項(xiàng)目代碼行和功能點(diǎn)估算是成本和工作量估算的基礎(chǔ)。(規(guī)模)LOC或FP的期望值:e=(a+4m+b)/6軟件項(xiàng)目估算估算涉及到人、技術(shù)、環(huán)境、政策等多種因素,很難精6代碼行技術(shù)用軟件項(xiàng)目的代碼行(LOC)數(shù)表示軟件項(xiàng)目的規(guī)模生產(chǎn)率P=L/E,E是軟件項(xiàng)目的工作量,用人月(PM)度量,L用千行代碼kLOC度量每行代碼的平均成本C=S/L,S是軟件項(xiàng)目總的開銷文檔與代碼比D=Pd/L,Pd是軟件項(xiàng)目的文檔頁(yè)數(shù)代碼出錯(cuò)率EQR=Ne/L,Ne是軟件項(xiàng)目的代碼錯(cuò)誤數(shù)代碼行技術(shù)7例:下表提供了一個(gè)國(guó)外典型的軟件項(xiàng)目記錄利用這些數(shù)據(jù),可以求出:P=12.1kLOC/24PM=504LOC/PMC=168000美元/12.1kLOC=13.88美元/LOCD=365Pd/12.1kLOC=30.16Pd/kLOCEQR=29個(gè)/12.1kLOC=2.4個(gè)/kLOC例:下表提供了一個(gè)國(guó)外典型的軟件項(xiàng)目記錄8用代碼行數(shù)估計(jì)軟件規(guī)模簡(jiǎn)單易行缺點(diǎn):代碼行數(shù)的估算依賴于程序設(shè)計(jì)語(yǔ)言的功能和表達(dá)能力;采用代碼行估算方法會(huì)對(duì)設(shè)計(jì)精巧的軟件項(xiàng)目產(chǎn)生不利影響;在軟件項(xiàng)目開發(fā)前或開發(fā)初期估算它的代碼行數(shù)十分困難;代碼行估算只適用于過程式程序設(shè)計(jì)語(yǔ)言,對(duì)非過程式的程序設(shè)計(jì)語(yǔ)言不太適用等用代碼行數(shù)估計(jì)軟件規(guī)模簡(jiǎn)單易行9功能點(diǎn)技術(shù)
依據(jù)對(duì)軟件信息域特性和軟件復(fù)雜性的評(píng)估結(jié)果,估算軟件規(guī)模
5個(gè)信息域特性為:用戶輸入數(shù):各個(gè)用戶輸入是面向不同應(yīng)用的輸入數(shù)據(jù)(參數(shù),不含查詢數(shù))個(gè)數(shù)。用戶輸出數(shù):各個(gè)用戶輸出是面向應(yīng)用的輸出信息個(gè)數(shù),包括報(bào)告,屏幕信息,錯(cuò)誤信息等。用戶查詢數(shù):查詢是一種聯(lián)機(jī)的交互操作,統(tǒng)計(jì)查詢/響應(yīng)的總計(jì)數(shù)。文件數(shù):每一個(gè)邏輯主文件都應(yīng)計(jì)數(shù)。邏輯主文件是指邏輯上的一組數(shù)據(jù),可以是一個(gè)大數(shù)據(jù)庫(kù)的一部分,可以是一個(gè)單獨(dú)的文件。外部接口數(shù):與系統(tǒng)中其他設(shè)備通過外部接口讀寫信息次數(shù)均應(yīng)計(jì)數(shù)。功能點(diǎn)技術(shù)
依據(jù)對(duì)軟件信息域特性和軟件復(fù)雜性的評(píng)估結(jié)果,估算10
功能點(diǎn)FP(FunctionPoint)。
FP=UFP×(0.65+0.01×SUM(Fi))
估算功能點(diǎn)的步驟
1.計(jì)算未調(diào)整的功能點(diǎn)數(shù)UFP
UFP=a1×Inp+a2×Out+a3×Inq+a4×Maf+a5×Inf
其中,ai(1≤i≤5)是信息域特性系數(shù),值由相應(yīng)特性的復(fù)雜級(jí)別決定。
功能點(diǎn)FP(FunctionPoint)。
112.計(jì)算技術(shù)復(fù)雜因子TCF
14種技術(shù)因素:技術(shù)因素、數(shù)據(jù)通信、分布式數(shù)據(jù)處理、性能標(biāo)準(zhǔn)、高負(fù)荷的硬件、高處理率、聯(lián)機(jī)數(shù)據(jù)輸入、終端用戶效率、聯(lián)機(jī)更新、復(fù)雜的計(jì)算、可重用性、安裝方便、操作方便、可移植性、可維護(hù)性。2.計(jì)算技術(shù)復(fù)雜因子TCF
14種技術(shù)因素:技術(shù)因素、數(shù)據(jù)12復(fù)雜性校正值Fi1.
系統(tǒng)是否需要可靠的備份和恢復(fù)?2.
是否需要數(shù)據(jù)通信?3.
是否有分布處理的功能?4.
是否性能成為關(guān)鍵?5.
系統(tǒng)是否運(yùn)行在既存的高度實(shí)用化的操作環(huán)境中?6.
系統(tǒng)是否需要聯(lián)機(jī)數(shù)據(jù)項(xiàng)?7.
聯(lián)機(jī)數(shù)據(jù)項(xiàng)是否需要建立多重窗口顯示和操作,以處理輸入處理。8.
主文件是否聯(lián)機(jī)更新?9.
輸入、輸出、文件、查詢是否復(fù)雜?10.
內(nèi)部處理過程是否復(fù)雜?11.
程序代碼是否可復(fù)用?12.
設(shè)計(jì)中是否包括了轉(zhuǎn)移和安裝?13.
系統(tǒng)是否設(shè)計(jì)成可以重復(fù)安裝在不同機(jī)構(gòu)中14.
系統(tǒng)是否設(shè)計(jì)成易修改和易使用?復(fù)雜性校正值Fi13計(jì)算技術(shù)因子對(duì)軟件規(guī)模的綜合影響程度DI:技術(shù)復(fù)雜性因子TCP由下式計(jì)算:TCP=0.65+0.01×DI計(jì)算功能點(diǎn)數(shù)FP
FP=UFP×TCP計(jì)算技術(shù)因子對(duì)軟件規(guī)模的綜合影響程度DI:14一旦計(jì)算出功能點(diǎn),就可仿照LOC的方式度量軟件的生產(chǎn)率、質(zhì)量和其它屬性:生產(chǎn)率=FP/PM(人月)質(zhì)量=錯(cuò)誤數(shù)/FP
成本=元/FP文檔=文檔頁(yè)數(shù)/FP功能點(diǎn)度量是為了商用信息系統(tǒng)應(yīng)用而設(shè)計(jì)的。一旦計(jì)算出功能點(diǎn),就可仿照LOC的方式度量軟件的生產(chǎn)率、質(zhì)量15代碼行度量與功能點(diǎn)度量的比較代碼行度量(依賴開發(fā)語(yǔ)言)與功能點(diǎn)度量(不依賴開發(fā)語(yǔ)言)的比較
LOC/FP(平均):匯編語(yǔ)言=300FORTRAN=100pascal=90Ada=70面向?qū)ο笳Z(yǔ)言=30四代語(yǔ)言4GL=20代碼生成器=15一行Ada語(yǔ)言代碼的“功能”平均是一行FORTRAN語(yǔ)言代碼“功能”的1.4倍,一行四代語(yǔ)言代碼的“功能”平均是一行傳統(tǒng)程序設(shè)計(jì)語(yǔ)言代碼“功能”的3~5倍 代碼行度量與功能點(diǎn)度量的比較代碼行度量(依賴開發(fā)語(yǔ)言)與功能16CoCoMo模型1981年Boehm提出“構(gòu)造性成本模型”(ConstructiveCostModel)該成本估算模型是一種精確、易于使用的成本估算方法COCOMO模型的分類(按其詳細(xì)程度,分三級(jí))基本模型、中間模型、詳細(xì)模型基本模型是靜態(tài)單變量模型,用源代碼行數(shù)(LOC)為自變量的經(jīng)驗(yàn)函數(shù)計(jì)算軟件開發(fā)工作量。中間模型在用LOC為自變量的函數(shù)計(jì)算軟件開發(fā)工作量(稱為名義工作量)的基礎(chǔ)上,用涉及產(chǎn)品、硬件、人員、項(xiàng)目等方面的影響因素調(diào)整工作量估算。詳細(xì)COCOMO模型包括中間模型的所有特性,但用上述各種影響因素調(diào)整工作量估算時(shí),還要考慮對(duì)軟件工程過程中每一步驟(分析、設(shè)計(jì)等)的影響。CoCoMo模型1981年Boehm提出“構(gòu)造性成本模型”17基本的CoCoMo模型公式其中:
E表示工作量(人月PM)
D表示開發(fā)時(shí)間(月)
L是項(xiàng)目的代碼行估計(jì)值(千行代碼)基本的CoCoMo模型公式18基本的CoCoMo模型參數(shù)a,b,c,d常數(shù)取值軟件類型abcd適用范圍組織型2.41.052.50.38各類應(yīng)用程序半獨(dú)立型3.01.122.50.35各類實(shí)用程序、編譯程序等嵌入型3.61.202.50.32實(shí)時(shí)處理、控制程序、操作系統(tǒng)基本的CoCoMo模型參數(shù)a,b,c,d常數(shù)取值軟件類型a19中間的CoCoMo模型以基本的CoCoMo模型為基礎(chǔ),工作量估計(jì)公式中乘以調(diào)節(jié)因子EAFE表示工作量(人月PM)
L是項(xiàng)目的代碼行估進(jìn)一步考慮15種影響軟件工作量的因素軟件類型ab組織型3.21.05半獨(dú)立型3.01.12嵌入型2.81.20中間的CoCoMo模型以基本的CoCoMo模型為基礎(chǔ),工作量2015種影響軟件工作量的因素
fi產(chǎn)品因素:軟件可靠性、數(shù)據(jù)庫(kù)規(guī)模、產(chǎn)品復(fù)雜性;硬件因素:執(zhí)行時(shí)間限制、存儲(chǔ)限制、虛擬機(jī)易變性、環(huán)境周轉(zhuǎn)時(shí)間;人的因素:分析員能力、應(yīng)用領(lǐng)域?qū)嶋H經(jīng)驗(yàn)、程序員能力、虛擬機(jī)使用經(jīng)驗(yàn)、程序語(yǔ)言使用經(jīng)驗(yàn);項(xiàng)目因素:現(xiàn)代程序設(shè)計(jì)技術(shù)、軟件工具的使用、開發(fā)進(jìn)度限制。15種影響軟件工作量的因素fi產(chǎn)品因素:21軟件工程管理課件22例一個(gè)規(guī)模為10KLOC的商用微機(jī)遠(yuǎn)程通信的嵌入型軟件,使用中間COCOMO模型進(jìn)行成本估算。名義工作量E1=2.8×(10)1.20
=44.38實(shí)際工作量E=44.38×1.17=51.9例一個(gè)規(guī)模為10KLOC的商用微機(jī)遠(yuǎn)程通信的嵌入型軟件,使23中間CoCoMo模型與各種開發(fā)方案對(duì)工作量的影響建議參加項(xiàng)目的人數(shù)N為人數(shù),D為開發(fā)時(shí)間(月),E為工作量(人月)一般來說,由N個(gè)程序員組成的小組,實(shí)現(xiàn)相同的規(guī)模的程序,相互通信數(shù),
設(shè)每次通信和交換意見的平均的工作量,則增加的通信開銷為中間CoCoMo模型與各種開發(fā)方案對(duì)工作量的影響建議參加項(xiàng)目24一般情況下,由N個(gè)程序員組成的小組共同開發(fā)一個(gè)程序的工作量,滿足:程序員小組的生產(chǎn)率:?jiǎn)蝹€(gè)程序員與程序員小組生產(chǎn)率的比為事實(shí):盲目增加程序員人數(shù)會(huì)推遲軟件完成的日期
一般情況下,由N個(gè)程序員組成的小組共同開發(fā)一個(gè)程序的工作量25CoCoMo2模型1997年Boehm對(duì)CoCoMo模型進(jìn)行了擴(kuò)充,稱為CoCoMo2.COCOMO2模型分成三個(gè)層次應(yīng)用系統(tǒng)組成模型:用于估算構(gòu)建原型的工作量,這種模型考慮到大量使用已有構(gòu)件的情況早期設(shè)計(jì)模型:用于軟件結(jié)構(gòu)設(shè)計(jì)階段后期設(shè)計(jì)模型:用于軟件開發(fā)階段CoCoMo2模型1997年Boehm對(duì)CoCoMo模型進(jìn)行26COCOMO2模型把軟件開發(fā)工作量表示成代碼行(KLOC)的非線性函數(shù):其中,α是模型系數(shù),典型值為3.0,b是模型指數(shù),fi是成本因素。COCOMO2模型使用了5個(gè)分級(jí)因素Wi(1≤i≤5),分別是:項(xiàng)目先例性、開發(fā)靈活性、風(fēng)險(xiǎn)排除度、項(xiàng)目組凝聚力和過程成熟度。其中每個(gè)成本因素劃分為6個(gè)級(jí)別,每個(gè)級(jí)別的分級(jí)因素Wi取值如下:甚低Wi=5,低Wi=4,正常Wi=3,高Wi=2,甚高Wi=1,特高Wi=0。b的值:COCOMO2模型把軟件開發(fā)工作量表示成代碼行(KLOC)的27進(jìn)度計(jì)劃可以把用于一般開發(fā)項(xiàng)目的進(jìn)度安排的技術(shù)和工具應(yīng)用于軟件項(xiàng)目。為監(jiān)控軟件項(xiàng)目的進(jìn)度計(jì)劃和工作的實(shí)際進(jìn)展情況,為表現(xiàn)各項(xiàng)任務(wù)之間進(jìn)度的相互依賴關(guān)系,需要采用圖示的方法。在圖示方法中,必須明確標(biāo)明:各個(gè)任務(wù)的計(jì)劃開始時(shí)間,完成時(shí)間;各個(gè)任務(wù)完成標(biāo)志(即○文檔編寫和△評(píng)審);各個(gè)任務(wù)與參與工作的人數(shù),各個(gè)任務(wù)與工作量之間的銜接情況;完成各個(gè)任務(wù)所需的物理資源和數(shù)據(jù)資源進(jìn)度計(jì)劃可以把用于一般開發(fā)項(xiàng)目的進(jìn)度安排的技術(shù)和工具應(yīng)用于軟28甘特圖GanttChart甘特圖GanttChart29在甘特圖中,每一任務(wù)完成的標(biāo)準(zhǔn),不是以能否繼續(xù)下一階段任務(wù)為標(biāo)準(zhǔn),而是以必須交付應(yīng)交付的文檔與通過評(píng)審為標(biāo)準(zhǔn)。因此在甘特圖中,文檔編制與評(píng)審是軟件開發(fā)進(jìn)度的里程碑。在甘特圖中,每一任務(wù)完成的標(biāo)準(zhǔn),不是以能否繼續(xù)下一階段任務(wù)為30軟件工程管理課件31工程網(wǎng)絡(luò)技術(shù)工程網(wǎng)絡(luò)技術(shù)PERT技術(shù)(ProgramEvaluationandReviewTechnique)叫做程序評(píng)估與審查技術(shù),CPM方法叫做關(guān)鍵路徑法,它們都是安排開發(fā)進(jìn)度,制定軟件開發(fā)計(jì)劃的最常用的方法。它們都采用網(wǎng)絡(luò)圖來描述一個(gè)項(xiàng)目的任務(wù)網(wǎng)絡(luò),也就是從一個(gè)項(xiàng)目的開始到結(jié)束,把應(yīng)當(dāng)完成的任務(wù)用圖或表的形式表示出來。1.計(jì)算最早時(shí)刻2.計(jì)算最遲時(shí)刻3.關(guān)鍵路徑4.機(jī)動(dòng)時(shí)間工程網(wǎng)絡(luò)技術(shù)32軟件工程管理課件33通常用兩張表來定義網(wǎng)絡(luò)圖。一張表給出與一特定軟件項(xiàng)目有關(guān)的所有任務(wù)(也稱為任務(wù)分解結(jié)構(gòu)WorkBreakdownStructure);另一張表給出應(yīng)當(dāng)按照什么樣的次序來完成這些任務(wù)(有時(shí)稱為限制表RestrictionList)。
PERT技術(shù)和CPM方法都為項(xiàng)目計(jì)劃人員提供了一些定量的工具。
確定關(guān)鍵路徑,即決定項(xiàng)目開發(fā)時(shí)間的任務(wù)鏈。在關(guān)鍵路徑上的各個(gè)任務(wù)都是時(shí)間余量為零的關(guān)鍵任務(wù),不能有任何時(shí)間延誤。
應(yīng)用統(tǒng)計(jì)模型,對(duì)每一個(gè)單獨(dú)的任務(wù)確定最可能的開發(fā)持續(xù)時(shí)間的估算值。
計(jì)算邊界時(shí)間,以便為具體的任務(wù)定義時(shí)間窗口。通常用兩張表來定義網(wǎng)絡(luò)圖。34軟件工程管理課件35上述示例工程中各項(xiàng)任務(wù)的進(jìn)度安排,可用Gantt圖畫出:(先安排關(guān)鍵路徑上的任務(wù))
路徑優(yōu)化上述示例工程中各項(xiàng)任務(wù)的進(jìn)度安排,可用Gantt圖畫出:(先36人員組織
1.開發(fā)人員2.組織機(jī)構(gòu)三種組織結(jié)構(gòu)模式按課題劃分的模式(ProjectFormat)按職能劃分的模式(FunctionalFormat)矩陣形模式(MatrixFormat)程序設(shè)計(jì)小組的組織形式有3種:主程序員組、民主制程序員組及層次式小組3.用戶用戶的阻力和干擾:不積極配合、求全求快、功能的變化人員組織
1.開發(fā)人員37軟件項(xiàng)目組織的建立開發(fā)組織采用什么形式,要針對(duì)軟件項(xiàng)目的特點(diǎn)來決定,同時(shí)也與參與人員的素質(zhì)有關(guān)。組織原則
(1)盡早落實(shí)責(zé)任:在軟件項(xiàng)目工作開始時(shí),要盡早指定專人負(fù)責(zé),使他有權(quán)進(jìn)行管理,并對(duì)任務(wù)的完成負(fù)全責(zé)。
(2)減少接口:一個(gè)組織的生產(chǎn)率隨完成任務(wù)中存在的通信路徑數(shù)目增加而降低。要有合理的人員分工、好的組織結(jié)構(gòu)、有效的通信,減少不必要的生產(chǎn)率的損失。
(3)責(zé)權(quán)均衡:軟件經(jīng)理人員所負(fù)的責(zé)任不應(yīng)比委任給他的權(quán)力還大。軟件項(xiàng)目組織的建立38組織結(jié)構(gòu)的模式1)按課題劃分的模式
把軟件開發(fā)人員按課題組成小組,小組成員自始至終參加所承擔(dān)課題的各項(xiàng)任務(wù)。他們應(yīng)負(fù)責(zé)完成軟件產(chǎn)品的定義、設(shè)計(jì)、實(shí)現(xiàn)、測(cè)試、復(fù)查、文檔編制、甚至包括維護(hù)在內(nèi)的全過程。2)按職能劃分的模式
把參加開發(fā)項(xiàng)目的軟件人員按任務(wù)的工作階段劃分成若干個(gè)專業(yè)小組。要開發(fā)的軟件產(chǎn)品在每個(gè)專業(yè)小組完成階段加工(即工序)以后,沿工序流水線向下傳遞。例如,分別建立計(jì)劃組、需求分析組、設(shè)計(jì)組、實(shí)現(xiàn)組、系統(tǒng)測(cè)試組、質(zhì)量保證組、維護(hù)組等。各種文檔資料按工序在各組之間傳遞。組織結(jié)構(gòu)的模式393)矩陣形模式這種模式實(shí)際上是以上兩種模式的復(fù)合。一方面,按工作性質(zhì),成立一些專門組,如開發(fā)組、業(yè)務(wù)組、測(cè)試組等;另一方面,每一個(gè)項(xiàng)目又有它的經(jīng)理人員負(fù)責(zé)管理。每個(gè)軟件人員屬于某一個(gè)專門組,又參加某一項(xiàng)目的工作。3)矩陣形模式40軟件工程管理課件41程序設(shè)計(jì)小組的組織形式小組內(nèi)部人員的組織形式對(duì)生產(chǎn)率也有影響?,F(xiàn)有的組織形式有三種。
(1)主程序員制小組
小組的核心由一位主程序員(高級(jí)工程師)、二至五位技術(shù)員、一位后援工程師組成。主程序員負(fù)責(zé)小組全部技術(shù)活動(dòng)的計(jì)劃、協(xié)調(diào)與審查,設(shè)計(jì)和實(shí)現(xiàn)項(xiàng)目中的關(guān)鍵部分。程序設(shè)計(jì)小組的組織形式42技術(shù)員負(fù)責(zé)項(xiàng)目的具體分析與開發(fā),文檔資料的編寫工作。后援工程師支持主程序員的工作,為主程序員提供咨詢,也做部分分析、設(shè)計(jì)和實(shí)現(xiàn)的工作。并在必要時(shí)能代替主程序員工作。
主程序員制小組還可以由一些專家(如通信專家或數(shù)據(jù)庫(kù)設(shè)計(jì)專家)、輔助人員(如打字員和秘書)、軟件資料員協(xié)助工作。
(2)民主制小組在民主制小組中,遇到問題,組內(nèi)成員之間可以平等地交換意見。工作目標(biāo)的制定及做出決定都由全體成員參加。雖然也有一位成員當(dāng)組長(zhǎng),但工作的討論、成果的檢驗(yàn)都公開進(jìn)行。這種組織形式強(qiáng)調(diào)發(fā)揮小組每個(gè)成員的積極性。有人認(rèn)為這種組織形式適合于研制時(shí)間長(zhǎng)、開發(fā)難度大的項(xiàng)目。技術(shù)員負(fù)責(zé)項(xiàng)目的具體分析與開發(fā),文檔資料的編寫工作。后援工43
(3)層次式小組在層次式小組中,組內(nèi)人員分為三級(jí):組長(zhǎng)(項(xiàng)目負(fù)責(zé)人)一人負(fù)責(zé)全組工作,包括任務(wù)分配、技術(shù)評(píng)審和走查、掌握工作量和參加技術(shù)活動(dòng)。他直接領(lǐng)導(dǎo)二至三名高級(jí)程序員,每位高級(jí)程序員通過基層小組,管理若干位程序員。這種組織結(jié)構(gòu)只允許必要的人際通信。比較適用于項(xiàng)目本身就是層次結(jié)構(gòu)的課題。因?yàn)檫@樣可以把項(xiàng)目按功能劃分成若干個(gè)子項(xiàng)目,把子項(xiàng)目分配給基層小組,由基層小組完成。這種組織方式比較適合于大型軟件項(xiàng)目的開發(fā)。(3)層次式小組44軟件工程管理課件45人員配備如何合理地配備人員,也是成功地完成軟件項(xiàng)目的切實(shí)保證。所謂合理地配備人員應(yīng)包括:按不同階段適時(shí)任用人員恰當(dāng)掌握用人標(biāo)準(zhǔn)。項(xiàng)目開發(fā)各階段所需人員一個(gè)項(xiàng)目完成的快慢,取決于參與開發(fā)人員的多少在開發(fā)過程中,多數(shù)軟件項(xiàng)目是以恒定人力配備的。實(shí)際人力需求與開發(fā)進(jìn)度的關(guān)系如下圖中的曲線所示。按此曲線,需要的人力隨開發(fā)進(jìn)展逐漸增加,在編碼與單元測(cè)試階段達(dá)到高峰,以后又逐漸減少。如果恒定地配備人力,在開發(fā)初期將會(huì)有部分人力資源用不上而浪費(fèi)掉。在開發(fā)中期,需要人力不夠,造成進(jìn)度的延誤。在開發(fā)后期就需要增加人力以趕進(jìn)度。恒定地配備人力將浪費(fèi)人力資源。人員配備46配備人員的原則重質(zhì)量軟件項(xiàng)目是技術(shù)性很強(qiáng)的工作,要任用少量有實(shí)踐經(jīng)驗(yàn)、有能力的人員去完成關(guān)鍵性的任務(wù)。重培訓(xùn)
培養(yǎng)所需技術(shù)人員和管理人員是有效解決人員問題的好方法。雙階梯提升人員提升應(yīng)分別按技術(shù)職務(wù)和管理職務(wù)進(jìn)行,不能混在一起。配備人員的原則47對(duì)項(xiàng)目經(jīng)理人員的要求軟件經(jīng)理人員是工作的組織者,他的管理能力的強(qiáng)弱是項(xiàng)目成敗的關(guān)鍵。他應(yīng)具有以下能力:
把用戶提出的非技術(shù)性要求加以整理提煉,以技術(shù)說明書的形式轉(zhuǎn)告給分析員和測(cè)試員。
能說服用戶放棄一些不切實(shí)際的要求,以保證合理的要求得以滿足。
能夠把表面上似乎無關(guān)的要求集中在一起,歸結(jié)為“需要什么”,“要解決什么問題”。這是一種綜合問題的能力。
要懂得心理學(xué),能說服上級(jí)領(lǐng)導(dǎo)和用戶,讓他們理解什么是不合理的要求。但又要使他們毫不勉強(qiáng),樂于接受,并受到啟發(fā)。對(duì)項(xiàng)目經(jīng)理人員的要求48評(píng)價(jià)人員的條件軟件項(xiàng)目中人的因素越來越受重視。在評(píng)價(jià)和任用軟件人員時(shí),必須掌握一定的標(biāo)準(zhǔn)。人員素質(zhì)的優(yōu)劣常常影響到項(xiàng)目的成敗。
牢固掌握計(jì)算機(jī)軟件的基本知識(shí)和技能。
善于分析和綜合問題,具有嚴(yán)密的邏輯思維能力。
工作踏實(shí)、細(xì)致,不靠碰運(yùn)氣,遵循標(biāo)準(zhǔn)和規(guī)范,具有嚴(yán)格的科學(xué)作風(fēng)。
工作中表現(xiàn)出有耐心、有毅力、有責(zé)任心。
善于聽取別人的意見,善于與周圍人員團(tuán)結(jié)協(xié)作,建立良好的人際關(guān)系。
具有良好的書面和口頭表達(dá)能力。評(píng)價(jià)人員的條件49軟件配置管理
軟件配置(SoftwareConfiguration)是軟件產(chǎn)品在軟件開發(fā)或運(yùn)行過程中產(chǎn)生的全部信息。軟件配置管理(SoftwareConfigurationManagement)簡(jiǎn)稱SCM,是在軟件的整個(gè)生存周期內(nèi)管理變更的一組活動(dòng)。軟件配置管理(SoftwareConfigurationManagement,簡(jiǎn)稱SCM)的四項(xiàng)任務(wù):(1)標(biāo)識(shí)變更(2)控制變更(3)配置審計(jì)(4)配置狀態(tài)報(bào)告軟件配置管理
軟件配置(SoftwareConfigura50軟件配置管理概念
軟件開發(fā)過程的最終結(jié)果包括三類信息:計(jì)算機(jī)程序(源程序和目標(biāo)程序);描述程序的文檔(面向技術(shù)人員和面向用戶);數(shù)據(jù)結(jié)構(gòu)(包括程序內(nèi)部和外部定義兩部分)。組成上述信息的所有項(xiàng)目構(gòu)成一個(gè)軟件配置,其中每一項(xiàng)稱為一個(gè)軟件配置項(xiàng)(SoftwareConfigurationItem,簡(jiǎn)稱SCI),它是配置管理的基本單位。一個(gè)SC中最早的SCI是系統(tǒng)規(guī)格說明書。SCM要解決的主要問題就是保證軟件的質(zhì)量。
軟件配置管理概念軟件開發(fā)過程的最終結(jié)果包括三類信息:51基線技術(shù)
基線(baseline)的原意是棒球場(chǎng)的邊線,在軟件開發(fā)過程中,為了有效地控制變動(dòng),軟件配置管理引入基線的概念。IEEE組織對(duì)于基線的定義——“已經(jīng)通過正式復(fù)審和批準(zhǔn)的某規(guī)約或產(chǎn)品,它因此可以作為進(jìn)一步開發(fā)的基礎(chǔ),并且只能遵循正式的變化控制過程得到改變”。根據(jù)這個(gè)定義,基線標(biāo)志軟件開發(fā)過程的各個(gè)里程碑,任一SCI,一旦形成文檔并復(fù)審?fù)ㄟ^,即成為一個(gè)基線,它標(biāo)志開發(fā)過程中一個(gè)階段的結(jié)束。對(duì)于已成為基線的SCI,雖然可以修改,但必須按照一個(gè)特殊的、正式的過程進(jìn)行評(píng)估,確認(rèn)每一處修改。相反,對(duì)于未成為基線的SCI,可以進(jìn)行非正式修改。某個(gè)SCI一旦成為基線,隨即被放入項(xiàng)目數(shù)據(jù)庫(kù)(projectdatabase)。此后,若開發(fā)小組中某位成員希望改動(dòng)SCI,首先要將它拷貝到私有工作區(qū)并在項(xiàng)目數(shù)據(jù)庫(kù)中鎖住,不允許他人使用。在私有工作區(qū)中完成修改控制過程并復(fù)審?fù)ㄟ^之后,再把修改后的SCI推出并回送到項(xiàng)目數(shù)據(jù)庫(kù),同時(shí)解鎖?;€技術(shù)基線(baseline)的原意是棒球場(chǎng)的邊線,在軟52一般軟件配置需包括下列SCI:1.系統(tǒng)規(guī)格說明書2.軟件項(xiàng)目規(guī)劃3.需求分析結(jié)果
1)軟件需求規(guī)格說明書
2)可執(zhí)行的或“紙樣”原型4.初步用戶手冊(cè)5.設(shè)計(jì)規(guī)格說明書
1)數(shù)據(jù)設(shè)計(jì)描述
2)總體結(jié)構(gòu)設(shè)計(jì)描述
3)模塊設(shè)計(jì)描述
4)界面設(shè)計(jì)描述
5)對(duì)象描述(若采用面向?qū)ο蠹夹g(shù))一般軟件配置需包括下列SCI:536.源代碼清單7.測(cè)試規(guī)格說明書
1)測(cè)試計(jì)劃和過程
2)測(cè)試用例和實(shí)驗(yàn)結(jié)果8.操作和安裝手冊(cè)9.可執(zhí)行程序
1)每個(gè)模塊的可執(zhí)行代碼
2)連接到一起的代碼10.?dāng)?shù)據(jù)庫(kù)描述
1)數(shù)據(jù)模型和文件結(jié)構(gòu)
2)初始化映象11.聯(lián)機(jī)用戶手冊(cè)12.維護(hù)文檔
1)軟件問題報(bào)告單
2)維護(hù)申請(qǐng)單
3)預(yù)計(jì)變動(dòng)的順序13.軟件工程的標(biāo)準(zhǔn)和過程6.源代碼清單54軟件配置管理任務(wù)
軟件配置管理主要任務(wù)是控制軟件的修改,主要包括:標(biāo)識(shí)軟件配置中各種對(duì)象;管理軟件的各種版本;控制對(duì)軟件的修改;審計(jì)配置;報(bào)告配置情況。軟件配置管理任務(wù)軟件配置管理主要任務(wù)是控制軟件的修改,主要55標(biāo)識(shí)配置對(duì)象
所有SCI都應(yīng)按面向?qū)ο蟮姆绞矫⒔M織起來。對(duì)象命名是為了能夠根據(jù)名稱提取對(duì)象;而通過組織對(duì)象并描述其間的關(guān)系則著眼于在對(duì)象變更時(shí)能夠清楚地了解變更的影響范圍?;緦?duì)象——在分析、設(shè)計(jì)、編碼或測(cè)試階段由開發(fā)人員創(chuàng)建的某個(gè)“文本單元”(unitoftext)。例如,需求說明書中某一節(jié),某個(gè)模塊的源代碼,或按等價(jià)分類法制定的一套測(cè)試用例復(fù)合對(duì)象——由若干基本對(duì)象和復(fù)合對(duì)象組合而成的對(duì)象,是一個(gè)遞歸的概念。例如,“設(shè)計(jì)規(guī)格說明書”是復(fù)合對(duì)象,它由“數(shù)據(jù)模塊”和“模塊N”等基本對(duì)象組合而成。
標(biāo)識(shí)配置對(duì)象所有SCI都應(yīng)按面向?qū)ο蟮姆绞矫⒔M織起來。56每個(gè)配置對(duì)象都擁有名字、描述、資源列表和實(shí)際存在體四個(gè)部分:1.對(duì)象名一般為無二義字符串;2.對(duì)象描述包括若干數(shù)據(jù)項(xiàng),它們指明對(duì)象的類型(例如,文檔、程序還是數(shù)據(jù))、所屬工程項(xiàng)目的標(biāo)志及變動(dòng)和版本的有關(guān)信息;3.資源列表給出該對(duì)象要求、引用、處理和提供的所有實(shí)體,如數(shù)據(jù)類型、特殊函數(shù)等,有時(shí)變量也被看作資源;4.只有基本對(duì)象才有實(shí)際存在體,它是指向該對(duì)象“單元正文描述”的一個(gè)指針;對(duì)于復(fù)合對(duì)象,此項(xiàng)取null值。每個(gè)配置對(duì)象都擁有名字、描述、資源列表和實(shí)際存在體四個(gè)部分:57除了標(biāo)識(shí)配置對(duì)象外,還必須指明對(duì)象之間的關(guān)系,一個(gè)對(duì)象可標(biāo)識(shí)為另一個(gè)復(fù)合對(duì)象的一部分,即此兩對(duì)象之間存在一個(gè)<part?of>關(guān)系。若干<part?of>關(guān)系可定義出對(duì)象之間的分層結(jié)構(gòu)。例如:“E?R圖”<part?of>“數(shù)據(jù)模型”“數(shù)據(jù)模型”<part?of>“設(shè)計(jì)規(guī)格說明書”因一個(gè)配置對(duì)象可能與其他多個(gè)對(duì)象有關(guān)系,所以SCI的分層結(jié)構(gòu)不一定是簡(jiǎn)單的樹狀結(jié)構(gòu),而是更一般的網(wǎng)狀結(jié)構(gòu)。除了標(biāo)識(shí)配置對(duì)象外,還必須指明對(duì)象之間的關(guān)系,一個(gè)對(duì)象可標(biāo)識(shí)58版本控制
為了適應(yīng)不同環(huán)境特點(diǎn)和滿足不同用戶的個(gè)性需求,往往一個(gè)項(xiàng)目保存多個(gè)版本。配置管理的版本控制主要解決下列問題:1)根據(jù)不同用戶的需要配置不同的系統(tǒng);2)保存系統(tǒng)老版本,為以后調(diào)查問題使用;3)建立一個(gè)系統(tǒng)新版本,使它包含某些決策而拋棄另一些;4)支持兩位以上工程師同時(shí)在一個(gè)項(xiàng)目中工作;5)高效存儲(chǔ)項(xiàng)目的多個(gè)版本。版本控制為了適應(yīng)不同環(huán)境特點(diǎn)和滿足不同用戶的個(gè)性需求,往往59版本控制系統(tǒng)都為配置對(duì)象的每個(gè)版本設(shè)置一組屬性,這組屬性既可以是簡(jiǎn)單的版本號(hào),也可以是一串復(fù)雜的布爾變量(即開關(guān)值),用以說明該版本功能上的變化。進(jìn)化圖可用于描述一個(gè)軟件系統(tǒng)的不同版本。圖中每個(gè)結(jié)點(diǎn)都是軟件的一個(gè)完整版本,它由所有協(xié)調(diào)一致的軟件配置項(xiàng)組成(源代碼,文檔和數(shù)據(jù))。此外,一個(gè)版本還允許有多種變形(Variant)。 例如,一個(gè)程序的某個(gè)版本由A、B、C、D、E五個(gè)部件組成,部件D僅在系統(tǒng)配有彩色顯示器時(shí)使用,部件E則適用于單顯,那么該版本就有兩種變形,一種由A、B、C、D四個(gè)部件組成,另一種由A、B、C、E四個(gè)部件組成。版本控制系統(tǒng)都為配置對(duì)象的每個(gè)版本設(shè)置一組屬性,這組屬性既可60軟件工程管理課件61修改控制
在大型軟件開發(fā)過程中,無控制地修改會(huì)迅速導(dǎo)致混亂。所謂修改控制,即把人的努力與自動(dòng)工具結(jié)合起來,建立一套機(jī)制,有意識(shí)地控制軟件修改。當(dāng)一個(gè)“修改申請(qǐng)”提出后,開發(fā)者依據(jù)技術(shù)指標(biāo)和潛在的副作用,對(duì)其他配置對(duì)象和系統(tǒng)功能可能造成的影響以及項(xiàng)目成本等諸多因素進(jìn)行評(píng)估。評(píng)估的結(jié)果將形成一個(gè)“修改報(bào)告單”,提交給修改控制機(jī)構(gòu)(CCA)決策。CCA一旦同意修改,應(yīng)立即提供一個(gè)“工程變動(dòng)命令”ECO(EngineeringChangeOrder)。它指明修改任務(wù)、需遵守的限制和復(fù)審標(biāo)準(zhǔn)。然后從項(xiàng)目數(shù)據(jù)庫(kù)中“提出”待修改對(duì)象,經(jīng)修改后再“推出”更新版本。這一對(duì)動(dòng)作是項(xiàng)目數(shù)據(jù)庫(kù)訪問控制和同步控制要求的。訪問控制決定哪些人員有權(quán)訪問或修改某個(gè)配置對(duì)象;而同步控制則保證并行修改時(shí)不因互相重寫而造成丟失修改。
修改控制在大型軟件開發(fā)過程中,無控制地修改會(huì)迅速導(dǎo)致混亂。62軟件工程管理課件63軟件開發(fā)人員根據(jù)ECO從項(xiàng)目數(shù)據(jù)庫(kù)中提出待修改對(duì)象,訪問控制機(jī)構(gòu),核實(shí)該開發(fā)人員是否有此特權(quán),而同步控制機(jī)構(gòu)則及時(shí)鎖住待修改對(duì)象,不允許其他開發(fā)人員再做修改,直至該對(duì)象的新版本推出。加鎖期間,其他工程人員仍可提取該對(duì)象的副本(稱為提取版本)使用。上圖所示的修改控制用于已交給用戶的軟件產(chǎn)品,稱為正式修改控制。若欲修改的SCI雖已為基線版本,但尚未交付用戶,此時(shí)修改控制稱為工程級(jí)的修改控制,它除了不涉及用戶外,其他步驟與正式的修改控制大致相同。若SCI并未成為基線版本,只需進(jìn)行非正式的修改控制,則在不影響系統(tǒng)需求的前提下,該SCI的開發(fā)者可隨意改動(dòng)軟件開發(fā)人員根據(jù)ECO從項(xiàng)目數(shù)據(jù)庫(kù)中提出待修改對(duì)象,訪問控制64變更控制過程來自用戶的CR工作量評(píng)估遞交CR表格CCA審查評(píng)估CR被否決同意CR,給人員分配任務(wù)SCM檢出配置項(xiàng)更改審計(jì)并檢入更改內(nèi)容建立基線測(cè)試,執(zhí)行QA和測(cè)試活動(dòng)提交改變到下一個(gè)Release通知用戶構(gòu)造適當(dāng)?shù)陌姹静徲?jì)所有配置項(xiàng)新版本中引入變化,并發(fā)布該版本變更控制過程來自用戶的CR工作量評(píng)估遞交CR表格CCA審查評(píng)65配置審計(jì)
對(duì)于變更工作,必須通過正式的技術(shù)復(fù)審和軟件配置審計(jì)工作來驗(yàn)證被核準(zhǔn)進(jìn)行變更的對(duì)象是否進(jìn)行了必要的、正確的變更,并得到了重新的配置。正式的技術(shù)復(fù)審著重考慮所修改對(duì)象在技術(shù)上的正確性,復(fù)審人員應(yīng)對(duì)該對(duì)象是否與其他SCI協(xié)調(diào)以及在修改中可能產(chǎn)生的疏忽和副作用進(jìn)行全面的評(píng)估。軟件配置審計(jì)作為正式復(fù)審的一種補(bǔ)充措施,主要考慮下列在正式技術(shù)復(fù)審中未被考慮的因素:工程變動(dòng)命令中指定的修改是否都已完成?有無進(jìn)行未經(jīng)指定的其他附加變更?是否做過正式技術(shù)復(fù)審?是否嚴(yán)格遵守軟件工程標(biāo)準(zhǔn)?是否對(duì)修改過的SCI進(jìn)行了強(qiáng)調(diào)說明?修改的日期和執(zhí)行修改的人員是否已經(jīng)注明?該SCI的屬性是否能夠反映本次修改的結(jié)果?是否遵循了標(biāo)注變更、記錄變更和報(bào)告變更的SCM工作規(guī)程?所有相關(guān)的SCI是否已一并修改?配置審計(jì)對(duì)于變更工作,必須通過正式的技術(shù)復(fù)審和軟件配置審計(jì)66配置狀況報(bào)告
建立并發(fā)布配置狀況報(bào)告(ConfigurationStatusReporting,簡(jiǎn)稱CSR)是軟件配置管理的一項(xiàng)任務(wù).CSR主要概述下列問題:發(fā)生了什么事情;誰(shuí)做的;何時(shí)發(fā)生的;有什么影響。CSR的時(shí)機(jī)與上圖所述過程緊密相關(guān):
當(dāng)某個(gè)SCI被賦予新標(biāo)記或更新標(biāo)記時(shí);或修改控制機(jī)構(gòu)CCA批準(zhǔn)一項(xiàng)修改申請(qǐng)(產(chǎn)生一個(gè)工程變動(dòng)命令ECO)時(shí);或配置審計(jì)完成時(shí)。CSR的輸出可放在聯(lián)機(jī)數(shù)據(jù)庫(kù)中,供開發(fā)人員和維護(hù)人員隨時(shí)按關(guān)鍵字查詢配置狀況報(bào)告
建立并發(fā)布配置狀況報(bào)告(Configurat67軟件質(zhì)量保證
計(jì)算機(jī)軟件質(zhì)量是軟件的一些內(nèi)部特性及其組合,質(zhì)量不是在軟件產(chǎn)品中被測(cè)試出來的,而是在軟件開發(fā)和生產(chǎn)過程中形成的。軟件質(zhì)量(Softwarequality)的定義為:(1)軟件產(chǎn)品中能滿足給定需要的性質(zhì)和特性的總體。(2)軟件具有所期望的各種屬性的組合程度。(3)顧客和用戶覺得軟件滿足其綜合期望的程度。(4)確定軟件在使用中將滿足顧客預(yù)期要求的程度。為保證軟件充分滿足用戶要求而進(jìn)行的有計(jì)劃、有組織的活動(dòng)稱為軟件質(zhì)量保證,其目的是生產(chǎn)高質(zhì)量的軟件。軟件質(zhì)量保證
計(jì)算機(jī)軟件質(zhì)量是軟件的一些內(nèi)部特性及其組合,質(zhì)68軟件質(zhì)量的特性
軟件質(zhì)量是指軟件滿足明確規(guī)定或隱含定義的需求的程度。軟件質(zhì)量的要點(diǎn):軟件功能必須滿足用戶規(guī)定的需求;軟件應(yīng)遵守規(guī)定標(biāo)準(zhǔn)所定義的一系列開發(fā)準(zhǔn)則;軟件應(yīng)滿足某些隱含的需求。如,可理解性、可維護(hù)性等。軟件質(zhì)量的特性
軟件質(zhì)量是指軟件滿足明確規(guī)定或隱含定義的需求69軟件質(zhì)量的特性:功能性:軟件的功能達(dá)到它的設(shè)計(jì)規(guī)范和能滿足用戶需求的程度可靠性:在規(guī)定的時(shí)間和規(guī)定的條件下,軟件能夠?qū)崿F(xiàn)所要求的功能的能力以及不引起系統(tǒng)失效的概率易使用性:用戶學(xué)習(xí)、操作、準(zhǔn)備輸入和理解輸出的難易程度效率:軟件實(shí)現(xiàn)某種功能所需計(jì)算機(jī)資源的多少及執(zhí)行其功能時(shí)使用資源的持續(xù)時(shí)間的多少可維護(hù)性:進(jìn)行必要修改的難易程度可移植性:軟件從一個(gè)計(jì)算機(jī)環(huán)境轉(zhuǎn)移到另一個(gè)計(jì)算機(jī)環(huán)境下的運(yùn)行能力軟件質(zhì)量的特性:70軟件質(zhì)量保證措施
軟件質(zhì)量保證是軟件工程管理的重要內(nèi)容。包括以下措施:應(yīng)用好的技術(shù)方法測(cè)試軟件進(jìn)行正式的技術(shù)評(píng)審標(biāo)準(zhǔn)的實(shí)施控制變更程序正確性證明記錄、保存和報(bào)告軟件過程信息軟件質(zhì)量保證措施
軟件質(zhì)量保證是軟件工程管理的重要內(nèi)容。71軟件工程標(biāo)準(zhǔn)與軟件文檔
軟件工程標(biāo)準(zhǔn)軟件工程標(biāo)準(zhǔn)化的定義對(duì)軟件生存期內(nèi)的所有開發(fā)、維護(hù)和管理工作逐步建立起標(biāo)準(zhǔn)軟件工程標(biāo)準(zhǔn)化的意義提高軟件的可靠性、可維護(hù)性和可移植性;提高軟件的生產(chǎn)率和軟件人員的技術(shù)水平;提高軟件人員之間的通信效率,減少差錯(cuò)和誤解;有利于軟件管理;有利于降低軟件產(chǎn)品的成本和運(yùn)行維護(hù)成本;有利于縮短軟件開發(fā)周期。軟件工程標(biāo)準(zhǔn)與軟件文檔
軟件工程標(biāo)準(zhǔn)72軟件工程標(biāo)準(zhǔn)化的類型參照其它工程領(lǐng)域?qū)こ虡?biāo)準(zhǔn)劃分的方法,軟件工程標(biāo)準(zhǔn)主要有兩種:按標(biāo)準(zhǔn)的類型劃分和按標(biāo)準(zhǔn)的范圍劃分。(1)按標(biāo)準(zhǔn)的類型劃分主要有過程標(biāo)準(zhǔn)、產(chǎn)品標(biāo)準(zhǔn)、行業(yè)標(biāo)準(zhǔn)、記法標(biāo)準(zhǔn)等。過程標(biāo)準(zhǔn)與開發(fā)一個(gè)產(chǎn)品或從事一項(xiàng)服務(wù)的一系列活動(dòng)或操作有關(guān)。過程標(biāo)準(zhǔn)使用一組方法、工具和技術(shù),給出“誰(shuí)來做”、“做什么”、“如何做”、“何時(shí)做”、“何地做”及在軟件工程活動(dòng)中進(jìn)行的不同層次工作的過程模型。產(chǎn)品標(biāo)準(zhǔn)則涉及軟件工程事務(wù)的格式和內(nèi)容。軟件開發(fā)和維護(hù)活動(dòng)文檔化的結(jié)果就是軟件產(chǎn)品,軟件文檔是軟件工程活動(dòng)進(jìn)一步開展的基礎(chǔ)。軟件開發(fā)作為一種行業(yè),其行業(yè)標(biāo)準(zhǔn)涉及軟件工程的所有方面,如執(zhí)業(yè)認(rèn)證、職業(yè)培訓(xùn)、產(chǎn)品許可等。行業(yè)標(biāo)準(zhǔn)可以等同于行業(yè)行為規(guī)范。記法標(biāo)準(zhǔn)規(guī)定了在軟件工程行業(yè)范圍內(nèi),以唯一的方式進(jìn)行交流的方法,如術(shù)語(yǔ)、表示法、語(yǔ)言等。(2)按標(biāo)準(zhǔn)的范圍劃分主要是根據(jù)軟件的任務(wù)功能和軟件生存期進(jìn)行比較、判定、評(píng)價(jià)和確定軟件工程標(biāo)準(zhǔn)的范圍和內(nèi)容。任務(wù)功能可以表示軟件工程過程,可以劃分為產(chǎn)品工程功能、驗(yàn)證與確認(rèn)功能以及技術(shù)管理功能3個(gè)部分。產(chǎn)品工程功能包括定義、生產(chǎn)和支持最終產(chǎn)品所必須的過程。驗(yàn)證和確認(rèn)功能是檢查產(chǎn)品質(zhì)量的活動(dòng)。技術(shù)管理功能是構(gòu)造和控制產(chǎn)品工程的過程。這3個(gè)部分并不集中在單個(gè)的軟件生存周期里,而是并行進(jìn)行的生產(chǎn)、檢查和控制活動(dòng)。軟件工程標(biāo)準(zhǔn)化的類型73根據(jù)以上兩種分類方法,軟件工程標(biāo)準(zhǔn)可用一張二維表格來表示。標(biāo)準(zhǔn)范圍標(biāo)準(zhǔn)類型軟件生存期概念需求設(shè)計(jì)實(shí)現(xiàn)測(cè)試制造安裝與檢驗(yàn)運(yùn)行/維護(hù)引退過程方法技術(shù)度量產(chǎn)品需求GB/T9385-1988設(shè)計(jì)部件描述計(jì)劃報(bào)告行業(yè)職業(yè)道德準(zhǔn)則認(rèn)證特許課程記法術(shù)語(yǔ)表示法GB/T1526-1989語(yǔ)言根據(jù)以上兩種分類方法,軟件工程標(biāo)準(zhǔn)可用一張二維表格來74標(biāo)準(zhǔn)范圍標(biāo)準(zhǔn)類型過程管理產(chǎn)品管理資源管理評(píng)審與審計(jì)產(chǎn)品分析測(cè)試過程方法GB/T8566-1995技術(shù)度量產(chǎn)品需求設(shè)計(jì)部件描述計(jì)劃報(bào)告行業(yè)職業(yè)道德準(zhǔn)則認(rèn)證特許課程記法術(shù)語(yǔ)表示法語(yǔ)言標(biāo)準(zhǔn)范圍過程管理產(chǎn)品管理資源管理評(píng)審與審計(jì)產(chǎn)品分析75
上述兩表給出了二維表的大致格式。其中,給出了GB/T9385-1988、GB/T1526-1989、GB/T8566-1995這3個(gè)標(biāo)準(zhǔn)的例子,用于說明各個(gè)標(biāo)準(zhǔn)的類型及其作用。
1.GB/T9385-1988是原電子工業(yè)部批準(zhǔn)的《計(jì)算機(jī)軟件需求說明編制指南》,用于指導(dǎo)軟件需求規(guī)格說明書的編寫。
2.GB/T1526-1989是國(guó)家標(biāo)準(zhǔn)總局批準(zhǔn)的信息處理——數(shù)據(jù)流圖、程序流程圖、系統(tǒng)結(jié)構(gòu)圖、程序網(wǎng)絡(luò)圖、系統(tǒng)資源圖的文件編制符號(hào)及約定。
3.GB/T8566-1995是國(guó)家標(biāo)準(zhǔn)總局批準(zhǔn)的信息技術(shù)——軟件生存期過程標(biāo)準(zhǔn),它規(guī)定了在獲取、供應(yīng)、開發(fā)、操作、維護(hù)軟件和固件的軟件部分時(shí),要實(shí)施的過程、活動(dòng)和任務(wù)。目的是為用戶提供一個(gè)公共的框架,使軟件從業(yè)人員可以使用“相同的語(yǔ)言”創(chuàng)作和管理軟件。上述兩表給出了二維表的大致格式。其中,給出了GB/T76軟件工程標(biāo)準(zhǔn)編制的層次
根據(jù)軟件工程標(biāo)準(zhǔn)制定的機(jī)構(gòu)和標(biāo)準(zhǔn)適用的范圍,可分為5個(gè)層次:國(guó)際標(biāo)準(zhǔn)、國(guó)家標(biāo)準(zhǔn)、行業(yè)標(biāo)準(zhǔn)、企業(yè)(機(jī)構(gòu))標(biāo)準(zhǔn)、項(xiàng)目(課題)標(biāo)準(zhǔn)。1.國(guó)際標(biāo)準(zhǔn):由國(guó)際聯(lián)合機(jī)構(gòu)制定和公布的標(biāo)準(zhǔn),供各國(guó)參考。如ISO——國(guó)際標(biāo)準(zhǔn)化組織。2.國(guó)家標(biāo)準(zhǔn):由政府或國(guó)家級(jí)的機(jī)構(gòu)制定或批準(zhǔn),適用于全國(guó)范圍。如GB——中國(guó)國(guó)標(biāo)、ANSI_美國(guó)國(guó)家標(biāo)準(zhǔn)協(xié)會(huì)、BS——英國(guó)國(guó)家標(biāo)準(zhǔn)、JIS——日本工業(yè)標(biāo)準(zhǔn)。3.行業(yè)標(biāo)準(zhǔn):由行業(yè)機(jī)構(gòu)、學(xué)術(shù)團(tuán)體或國(guó)防等機(jī)構(gòu)制定,適用于某個(gè)業(yè)務(wù)領(lǐng)域。如IEEE——美國(guó)電氣和電子工程師學(xué)會(huì)、GJB——中國(guó)國(guó)家軍用標(biāo)準(zhǔn)。4.企業(yè)規(guī)范:企業(yè)因軟件工程工作的需要制定的適用于本企業(yè)的規(guī)范。如IBM通用產(chǎn)品部于1984年制定的《程序設(shè)計(jì)開發(fā)指南》。5.項(xiàng)目規(guī)范:由某一科研生產(chǎn)項(xiàng)目組織制定,僅為該項(xiàng)目任務(wù)服務(wù)的軟件工程規(guī)范。如CIMS——計(jì)算機(jī)集成制造系統(tǒng)——軟件工程規(guī)范。軟件工程標(biāo)準(zhǔn)編制的層次77中國(guó)的軟件標(biāo)準(zhǔn)
1983年起,我國(guó)陸續(xù)制定和發(fā)布了20余項(xiàng)軟件工程國(guó)家標(biāo)準(zhǔn)。這些標(biāo)準(zhǔn)可以分為以下四類:1.基礎(chǔ)標(biāo)準(zhǔn):規(guī)定了信息加工處理和軟件工程領(lǐng)域的術(shù)語(yǔ)、符號(hào)、表示、構(gòu)造、分類級(jí)約定;2.開發(fā)標(biāo)準(zhǔn):規(guī)定了軟件生存期過程、軟件支持環(huán)境、軟件記錄處理流程、軟件維護(hù)等的工作規(guī)范;3.文檔標(biāo)準(zhǔn):規(guī)定了軟件產(chǎn)品、需求、測(cè)試、管理等文檔的編制規(guī)范;4.管理標(biāo)準(zhǔn):規(guī)定了軟件配置管理計(jì)劃、質(zhì)量保證計(jì)劃、產(chǎn)品質(zhì)量特性、軟件可靠性和可維護(hù)性管理等的規(guī)范和工作要素。下表列出了我國(guó)部分軟件工程標(biāo)準(zhǔn)的名稱及其標(biāo)準(zhǔn)號(hào):中國(guó)的軟件標(biāo)準(zhǔn)78類型標(biāo)準(zhǔn)名稱標(biāo)準(zhǔn)號(hào)基礎(chǔ)標(biāo)準(zhǔn)軟件工程術(shù)語(yǔ)GB/T11457-1989信息處理——數(shù)據(jù)流程、程序流程圖、系統(tǒng)結(jié)構(gòu)圖、程序網(wǎng)絡(luò)圖、系統(tǒng)資源圖的文件編制符號(hào)及約定GB/T1526-1989軟件工程標(biāo)準(zhǔn)分類法GB/T15538-1995信息處理——程序構(gòu)造及其表示法的約定GB/T13502-1992信息處理——單命中判定表規(guī)范GB/T15535-1995(ISO5806)信息處理系統(tǒng)——計(jì)算機(jī)系統(tǒng)配置圖符號(hào)及其約定GB/T14085-1993(ISO8790)開發(fā)標(biāo)準(zhǔn)信息技術(shù)——軟件生存期過程GB/T8566-1995軟件支持環(huán)境GB/T15853-1995信息處理——按記錄組處理順序文卷的程序流程GB/T15697-1995(ISO6593)軟件維護(hù)指南GB/T14079-1993文檔標(biāo)準(zhǔn)計(jì)算機(jī)軟件產(chǎn)品開發(fā)文檔編制指南GB/T8567-1988計(jì)算機(jī)軟件需求說明編制指南GB/T9385-1988計(jì)算機(jī)軟件測(cè)試文檔編制規(guī)范GB/T9386-1988軟件文檔管理指南GB/T16680-1996管理標(biāo)準(zhǔn)計(jì)算機(jī)軟件配置管理計(jì)劃規(guī)范GB/T12505-1990信息技術(shù)——軟件產(chǎn)品評(píng)價(jià)質(zhì)量特性及其使用指南GB/T16260-1996計(jì)算機(jī)軟件質(zhì)量保證計(jì)劃規(guī)范GB/T12504-1990計(jì)算機(jī)軟件可靠性和可維護(hù)性管理GB/T14394-1993類型標(biāo)準(zhǔn)名稱標(biāo)準(zhǔn)號(hào)軟件工程術(shù)語(yǔ)GB/T11457-198979軟件工程標(biāo)準(zhǔn)的制定與推行
軟件工程標(biāo)準(zhǔn)的制定與推行通常要經(jīng)歷一個(gè)環(huán)狀生命周期,如下圖所示。從最初的制定一項(xiàng)標(biāo)準(zhǔn)的初步設(shè)想,經(jīng)發(fā)起后,沿著環(huán)狀生命期,順時(shí)針經(jīng)歷以下步驟:審核修訂建議開發(fā)咨詢審批公布培訓(xùn)實(shí)施發(fā)起撤銷軟件工程標(biāo)準(zhǔn)的制定與推行審核修訂建議開發(fā)咨詢審批公布培訓(xùn)實(shí)施801.建議——擬定初步的建議方案2.開發(fā)——制定標(biāo)準(zhǔn)的具體內(nèi)容3.咨詢——征求并吸收有關(guān)人員的意見4.審批——由管理部門決定能否推出5.公布——公布發(fā)布,使標(biāo)準(zhǔn)生效6.培訓(xùn)——為推行標(biāo)準(zhǔn)準(zhǔn)備人員條件7.實(shí)施——投入使用,需經(jīng)歷相當(dāng)期限8.審核——檢驗(yàn)實(shí)施效果,決定修改或撤銷9.修訂——修改其中不適當(dāng)?shù)牟糠?,形成?biāo)準(zhǔn)的新版本,進(jìn)入新的周期事實(shí)上,幾乎所有的標(biāo)準(zhǔn)都有一個(gè)逐步的成熟,在環(huán)狀生命期上循環(huán)數(shù)次的經(jīng)歷,這就需要標(biāo)準(zhǔn)的制定者和使用者付出大量的勞動(dòng),來對(duì)標(biāo)準(zhǔn)加以完善。1.建議——擬定初步的建議方案81軟件文檔的分類國(guó)家標(biāo)準(zhǔn)局在1988年1月頒布了《計(jì)算機(jī)軟件開發(fā)規(guī)范》和《計(jì)算機(jī)軟件產(chǎn)品開發(fā)文件編制指南》,作為軟件開發(fā)和文檔編制工作的準(zhǔn)則和規(guī)程?;谲浖嫫诜椒?,可以從形式上將軟件文檔大致分成兩類:軟件開發(fā)過程中需要填寫的各種圖表,及應(yīng)編制的各種技術(shù)文件或管理資料。軟件文檔根據(jù)其產(chǎn)生和使用的范圍,主要?jiǎng)澐譃?大類:開發(fā)文檔、用戶文檔和管理文檔。軟件文檔開發(fā)文檔用戶文檔管理文檔可行性研究報(bào)告項(xiàng)目開發(fā)計(jì)劃軟件需求說明書數(shù)據(jù)庫(kù)設(shè)計(jì)說明書概要設(shè)計(jì)說明書詳細(xì)設(shè)計(jì)說明書用戶手冊(cè)操作手冊(cè)軟件需求說明書數(shù)據(jù)要求說明書項(xiàng)目開發(fā)計(jì)劃模塊開發(fā)卷宗開發(fā)進(jìn)度月報(bào)測(cè)試計(jì)劃測(cè)試分析報(bào)告項(xiàng)目開發(fā)總結(jié)報(bào)告軟件文檔的分類軟件文檔開發(fā)文檔用戶文檔管理文檔可行性研究報(bào)告821.開發(fā)文檔
開發(fā)文檔主要負(fù)責(zé)對(duì)軟件開發(fā)過程進(jìn)行描述和規(guī)范。開發(fā)文檔除了前面列表的內(nèi)容,還包括軟件的詳細(xì)技術(shù)描述,如程序邏輯、程序間相互關(guān)系、數(shù)據(jù)格式、存儲(chǔ)等。開發(fā)文檔主要可以發(fā)揮以下幾個(gè)方面的作用:(1)作為軟件生存期個(gè)階段之間的通信工具,記錄生成軟件需求、設(shè)計(jì)、編碼、測(cè)試等的詳細(xì)規(guī)定和說明;(2)描述開發(fā)小組的工作職責(zé)。通過規(guī)定軟件規(guī)劃設(shè)計(jì)、主題腳本編制、文檔編制、質(zhì)量保證等人員的角色,來定義“如何做”和“何時(shí)做”;(3)用作檢驗(yàn)點(diǎn),而允許管理者評(píng)估開發(fā)進(jìn)度。如果開發(fā)文檔缺失或過時(shí),管理者將失去跟蹤和控制軟件項(xiàng)目的重要工具;(4)形成系統(tǒng)維護(hù)人員所要求的基本的軟件支持文檔,并構(gòu)成產(chǎn)品文檔的一部分;(5)記錄軟件開發(fā)的歷史。1.開發(fā)文檔832.用戶文檔用戶文檔主要負(fù)責(zé)對(duì)軟件產(chǎn)品的安裝、配置、使用、維護(hù)等信息進(jìn)行描述。包括系統(tǒng)安裝配置手冊(cè)、用戶操作手冊(cè)、軟件需求說明書、數(shù)據(jù)要求說明書等。用戶文檔主要發(fā)揮以下作用:(1)為使用和運(yùn)行軟件產(chǎn)品的用戶提供培訓(xùn)和運(yùn)行參考信息;(2)為產(chǎn)品維護(hù)工程師提供必要的信息;(3)促進(jìn)和方便軟件產(chǎn)品的市場(chǎng)推廣。用戶文檔的提供通??梢园ㄒ韵滦问剑寒a(chǎn)品的市場(chǎng)宣傳資料、適合管理者的產(chǎn)品指南和相關(guān)資料、提供給潛在用戶的較深入的產(chǎn)品技術(shù)資料、產(chǎn)品使用所需的完整的操作和技術(shù)資料等。用戶文檔的涉眾通常包括以下人員:一般潛在用戶、具有決策權(quán)的潛在用戶、最終用戶、產(chǎn)品維護(hù)人員等。最基本的用戶文檔通常包括以下幾類:產(chǎn)品培訓(xùn)手冊(cè)、產(chǎn)品操作手冊(cè)、產(chǎn)品安裝配置手冊(cè)、產(chǎn)品支持手冊(cè)、產(chǎn)品信息廣告等。用戶文檔的分發(fā)按照涉眾的類型j進(jìn)行。不同類型的涉眾可以獲得不同的用戶文檔。用戶文檔在分發(fā)前應(yīng)該制定合適的分發(fā)策略和計(jì)劃。2.用戶文檔843.管理文檔
管理文檔主要是對(duì)軟件開發(fā)過程的管理信息進(jìn)行描述。管理文檔除了前面列表內(nèi)容,還應(yīng)該包括被管理者的反饋信息,如各色表格、工作總結(jié)、開發(fā)體會(huì)、產(chǎn)品建議等。管理文檔主要有以下主要:(1)軟件初期定義、規(guī)劃、商務(wù)等與客戶互動(dòng)結(jié)果的記錄;(2)開發(fā)過程每個(gè)階段的進(jìn)度和進(jìn)度變更的記錄;(3)軟件開發(fā)人員的組織、管理和變更的記錄;(4)軟件需求、規(guī)劃、設(shè)計(jì)等的變更控制的記錄;(5)開發(fā)過程發(fā)生的各種審查、審核、評(píng)估等情況的記錄;(6)驗(yàn)收、培訓(xùn)、移交、安裝等相關(guān)工作的實(shí)施記錄;(7)維護(hù)需求的提出、認(rèn)定、計(jì)劃、實(shí)施等工作的記錄。3.管理文檔85軟件文檔與使用者的關(guān)系
軟件開發(fā)中產(chǎn)生的各類文檔面向不同的用戶,而軟件用戶應(yīng)該得到的文檔也在商業(yè)合同中有明確規(guī)定。軟件文檔的使用對(duì)象開發(fā)人員維護(hù)人員管理人員用戶可行性研究報(bào)告項(xiàng)目開發(fā)計(jì)劃軟件需求說明書數(shù)據(jù)要求說明書概要設(shè)計(jì)說明書詳細(xì)設(shè)計(jì)說明書數(shù)據(jù)庫(kù)設(shè)計(jì)說明書測(cè)試計(jì)劃測(cè)試分析報(bào)告設(shè)計(jì)說明書測(cè)試分析報(bào)告模塊開發(fā)卷宗可行性研究報(bào)告項(xiàng)目開發(fā)計(jì)劃模塊開發(fā)卷宗開發(fā)進(jìn)度月報(bào)項(xiàng)目開發(fā)總結(jié)報(bào)告用戶手冊(cè)操作手冊(cè)軟件文檔與使用者的關(guān)系軟件文檔的使用對(duì)象開發(fā)人員維護(hù)人員管理86軟件文檔編制與軟件生存期的關(guān)系軟件文檔的編制是隨著軟件生存期各個(gè)階段工作的開展而適時(shí)進(jìn)行的。其中,有的僅反映某一階段的工作,有的則需要跨越多個(gè)階段的工作。可行性研究與計(jì)劃需求分析軟件設(shè)計(jì)編碼與單元測(cè)試集成與測(cè)試運(yùn)行與維護(hù)可行性研究報(bào)告√項(xiàng)目開發(fā)計(jì)劃√√軟件需求說明書√數(shù)據(jù)要求說明書√測(cè)試計(jì)劃√√概要設(shè)計(jì)說明書√詳細(xì)設(shè)計(jì)說明書√數(shù)據(jù)庫(kù)設(shè)計(jì)說明書√模塊開發(fā)卷宗√√用戶手冊(cè)√√√操作手冊(cè)√√測(cè)試分析報(bào)告√開發(fā)進(jìn)度月報(bào)√√√√√項(xiàng)目總結(jié)報(bào)告√維護(hù)和修改建議√軟件文檔編制與軟件生存期的關(guān)系可行性研究與計(jì)劃需求分析軟件設(shè)87軟件文檔最終需要回答讀者關(guān)心的下列問題:1.為什么要開發(fā)、維護(hù)或修改這個(gè)軟件?(Why)2.工作目標(biāo)要滿足哪些需求?(What)3.需求應(yīng)如何實(shí)現(xiàn)?(How)4.開發(fā)、維護(hù)或修改的工作應(yīng)由誰(shuí)來完成?(Who)5.開發(fā)工作的時(shí)間如何安排?(When)6.開發(fā)工作在什么環(huán)境中實(shí)現(xiàn),所需信息從何而來?(Where)軟件文檔最終需要回答讀者關(guān)心的下列問題:88為什么(Why)做什么(What)怎么做(How)誰(shuí)來做(Who)何時(shí)做(When)何處做(Where)可行性研究報(bào)告√√項(xiàng)目開發(fā)計(jì)劃√√√軟件需求說明書√√數(shù)據(jù)要求說明書√√測(cè)試計(jì)劃√√√概要設(shè)計(jì)說明書√詳細(xì)設(shè)計(jì)說明書√數(shù)據(jù)庫(kù)設(shè)計(jì)說明書√模塊開發(fā)卷宗√用戶手冊(cè)√操作手冊(cè)√測(cè)試分析報(bào)告√開發(fā)進(jìn)度月報(bào)√√項(xiàng)目總結(jié)報(bào)告√維護(hù)和修改建議√√√√√為什么做什么怎么做誰(shuí)來做何時(shí)做何處做可行性研究報(bào)告√√項(xiàng)目開89演講完畢,謝謝觀看!演講完畢,謝謝觀看!90第9章軟件工程管理軟件工程管理概述軟件規(guī)模估算進(jìn)度計(jì)劃人員組織軟件配置管理軟件質(zhì)量保證軟件工程標(biāo)準(zhǔn)與軟件文檔第9章軟件工程管理91軟件工程管理概述1.軟件產(chǎn)品的特點(diǎn)軟件是邏輯產(chǎn)品,具有高度的抽象性同一功能的軟件可以有多樣性軟件生產(chǎn)過程復(fù)雜,具有易錯(cuò)性軟件開發(fā)與維護(hù)主要是根據(jù)用戶需求“定制”的,其過程具有復(fù)雜性和易變性軟件的開發(fā)和運(yùn)行經(jīng)常受到計(jì)算機(jī)系統(tǒng)環(huán)境的限制,因而軟件有安全性和可移植性等問題軟件生產(chǎn)有許多新技術(shù)需要軟件工程師進(jìn)一步研究和實(shí)踐軟件工程管理概述1.軟件產(chǎn)品的特點(diǎn)922.軟件工程管理的重要性分階段管理策略涉及多學(xué)科軟件規(guī)模不斷增大,管理難度增加,管理不善的后果嚴(yán)重2.軟件工程管理的重要性933.軟件工程管理的內(nèi)容包括對(duì)軟件開發(fā)成本、控制、開發(fā)人員、組織機(jī)構(gòu)、用戶、軟件開發(fā)文檔、軟件質(zhì)量等方面的管理。3.軟件工程管理的內(nèi)容94軟件規(guī)模和開發(fā)工作量估算面向規(guī)模的度量(代碼行技術(shù))面向功能的度量(功能點(diǎn)技術(shù))CoCoMo模型軟件規(guī)模和開發(fā)工作量估算95軟件項(xiàng)目估算估算涉及到人、技術(shù)、環(huán)境、政策等多種因素,很難精確地估算出項(xiàng)目的開銷。常用四種估算方法參照已有類似項(xiàng)目估計(jì)待開發(fā)項(xiàng)目成本和工作量將大的項(xiàng)目分解成若干子項(xiàng)目,分別估算出子項(xiàng)目成本和工作量,再估算整個(gè)項(xiàng)目按軟件的生命期分別估算各階段的工作量和成本,再匯總,從而估算出整個(gè)項(xiàng)目根據(jù)實(shí)驗(yàn)或歷史數(shù)據(jù)給出軟件項(xiàng)目工作量或成本的經(jīng)驗(yàn)公式軟件項(xiàng)目代碼行和功能點(diǎn)估算是成本和工作量估算的基礎(chǔ)。(規(guī)模)LOC或FP的期望值:e=(a+4m+b)/6軟件項(xiàng)目估算估算涉及到人、技術(shù)、環(huán)境、政策等多種因素,很難精96代碼行技術(shù)用軟件項(xiàng)目的代碼行(LOC)數(shù)表示軟件項(xiàng)目的規(guī)模生產(chǎn)率P=L/E,E是軟件項(xiàng)目的工作量,用人月(PM)度量,L用千行代碼kLOC度量每行代碼的平均成本C=S/L,S是軟件項(xiàng)目總的開銷文檔與代碼比D=Pd/L,Pd是軟件項(xiàng)目的文檔頁(yè)數(shù)代碼出錯(cuò)率EQR=Ne/L,Ne是軟件項(xiàng)目的代碼錯(cuò)誤數(shù)代碼行技術(shù)97例:下表提供了一個(gè)國(guó)外典型的軟件項(xiàng)目記錄利用這些數(shù)據(jù),可以求出:P=12.1kLOC/24PM=504LOC/PMC=168000美元/12.1kLOC=13.88美元/LOCD=365Pd/12.1kLOC=30.16Pd/kLOCEQR=29個(gè)/12.1kLOC=2.4個(gè)/kLOC例:下表提供了一個(gè)國(guó)外典型的軟件項(xiàng)目記錄98用代碼行數(shù)估計(jì)軟件規(guī)模簡(jiǎn)單易行缺點(diǎn):代碼行數(shù)的估算依賴于程序設(shè)計(jì)語(yǔ)言的功能和表達(dá)能力;采用代碼行估算方法會(huì)對(duì)設(shè)計(jì)精巧的軟件項(xiàng)目產(chǎn)生不利影響;在軟件項(xiàng)目開發(fā)前或開發(fā)初期估算它的代碼行數(shù)十分困難;代碼行估算只適用于過程式程序設(shè)計(jì)語(yǔ)言,對(duì)非過程式的程序設(shè)計(jì)語(yǔ)言不太適用等用代碼行數(shù)估計(jì)軟件規(guī)模簡(jiǎn)單易行99功能點(diǎn)技術(shù)
依據(jù)對(duì)軟件信息域特性和軟件復(fù)雜性的評(píng)估結(jié)果,估算軟件規(guī)模
5個(gè)信息域特性為:用戶輸入數(shù):各個(gè)用戶輸入是面向不同應(yīng)用的輸入數(shù)據(jù)(參數(shù),不含查詢數(shù))個(gè)數(shù)。用戶輸出數(shù):各個(gè)用戶輸出是面向應(yīng)用的輸出信息個(gè)數(shù),包括報(bào)告,屏幕信息,錯(cuò)誤信息等。用戶查詢數(shù):查詢是一種聯(lián)機(jī)的交互操作,統(tǒng)計(jì)查詢/響應(yīng)的總計(jì)數(shù)。文件數(shù):每一個(gè)邏輯主文件都應(yīng)計(jì)數(shù)。邏輯主文件是指邏輯上的一組數(shù)據(jù),可以是一個(gè)大數(shù)據(jù)庫(kù)的一部分,可以是一個(gè)單獨(dú)的文件。外部接口數(shù):與系統(tǒng)中其他設(shè)備通過外部接口讀寫信息次數(shù)均應(yīng)計(jì)數(shù)。功能點(diǎn)技術(shù)
依據(jù)對(duì)軟件信息域特性和軟件復(fù)雜性的評(píng)估結(jié)果,估算100
功能點(diǎn)FP(FunctionPoint)。
FP=UFP×(0.65+0.01×SUM(Fi))
估算功能點(diǎn)的步驟
1.計(jì)算未調(diào)整的功能點(diǎn)數(shù)UFP
UFP=a1×Inp+a2×Out+a3×Inq+a4×Maf+a5×Inf
其中,ai(1≤i≤5)是信息域特性系數(shù),值由相應(yīng)特性的復(fù)雜級(jí)別決定。
功能點(diǎn)FP(FunctionPoint)。
1012.計(jì)算技術(shù)復(fù)雜因子TCF
14種技術(shù)因素:技術(shù)因素、數(shù)據(jù)通信、分布式數(shù)據(jù)處理、性能標(biāo)準(zhǔn)、高負(fù)荷的硬件、高處理率、聯(lián)機(jī)數(shù)據(jù)輸入、終端用戶效率、聯(lián)機(jī)更新、復(fù)雜的計(jì)算、可重用性、安裝方便、操作方便、可移植性、可維護(hù)性。2.計(jì)算技術(shù)復(fù)雜因子TCF
14種技術(shù)因素:技術(shù)因素、數(shù)據(jù)102復(fù)雜性校正值Fi1.
系統(tǒng)是否需要可靠的備份和恢復(fù)?2.
是否需要數(shù)據(jù)通信?3.
是否有分布處理的功能?4.
是否性能成為關(guān)鍵?5.
系統(tǒng)是否運(yùn)行在既存的高度實(shí)用化的操作環(huán)境中?6.
系統(tǒng)是否需要聯(lián)機(jī)數(shù)據(jù)項(xiàng)?7.
聯(lián)機(jī)數(shù)據(jù)項(xiàng)是否需要建立多重窗口顯示和操作,以處理輸入處理。8.
主文件是否聯(lián)機(jī)更新?9.
輸入、輸出、文件、查詢是否復(fù)雜?10.
內(nèi)部處理過程是否復(fù)雜?11.
程序代碼是否可復(fù)用?12.
設(shè)計(jì)中是否包括了轉(zhuǎn)移和安裝?13.
系統(tǒng)是否設(shè)計(jì)成可以重復(fù)安裝在不同機(jī)構(gòu)中14.
系統(tǒng)是否設(shè)計(jì)成易修改和易使用?復(fù)雜性校正值Fi103計(jì)算技術(shù)因子對(duì)軟件規(guī)模的綜合影響程度DI:技術(shù)復(fù)雜性因子TCP由下式計(jì)算:TCP=0.65+0.01×DI計(jì)算功能點(diǎn)數(shù)FP
FP=UFP×TCP計(jì)算技術(shù)因子對(duì)軟件規(guī)模的綜合影響程度DI:104一旦計(jì)算出功能點(diǎn),就可仿照LOC的方式度量軟件的生產(chǎn)率、質(zhì)量和其它屬性:生產(chǎn)率=FP/PM(人月)質(zhì)量=錯(cuò)誤數(shù)/FP
成本=元/FP文檔=文檔頁(yè)數(shù)/FP功能點(diǎn)度量是為了商用信息系統(tǒng)應(yīng)用而設(shè)計(jì)的。一旦計(jì)算出功能點(diǎn),就可仿照LOC的方式度量軟件的生產(chǎn)率、質(zhì)量105代碼行度量與功能點(diǎn)度量的比較代碼行度量(依賴開發(fā)語(yǔ)言)與功能點(diǎn)度量(不依賴開發(fā)語(yǔ)言)的比較
LOC/FP(平均):匯編語(yǔ)言=300FORTRAN=100pascal=90Ada=70面向?qū)ο笳Z(yǔ)言=30四代語(yǔ)言4GL=20代碼生成器=15一行Ada語(yǔ)言代碼的“功能”平均是一行FORTRAN語(yǔ)言代碼“功能”的1.4倍,一行四代語(yǔ)言代碼的“功能”平均是一行傳統(tǒng)程序設(shè)計(jì)語(yǔ)言代碼“功能”的3~5倍 代碼行度量與功能點(diǎn)度量的比較代碼行度量(依賴開發(fā)語(yǔ)言)與功能106CoCoMo模型1981年Boehm提出“構(gòu)造性成本模型”(ConstructiveCostModel)該成本估算模型是一種精確、易于使用的成本估算方法COCOMO模型的分類(按其詳細(xì)程度,分三級(jí))基本模型、中間模型、詳細(xì)模型基本模型是靜態(tài)單變量模型,用源代碼行數(shù)(LOC)為自變量的經(jīng)驗(yàn)函數(shù)計(jì)算軟件開發(fā)工作量。中間模型在用LOC為自變量的函數(shù)計(jì)算軟件開發(fā)工作量(稱為名義工作量)的基礎(chǔ)上,用涉及產(chǎn)品、硬件、人員、項(xiàng)目等方面的影響因素調(diào)整工作量估算。詳細(xì)COCOMO模型包括中間模型的所有特性,但用上述各種影響因素調(diào)整工作量估算時(shí),還要考慮對(duì)軟件工程過程中每一步驟(分析、設(shè)計(jì)等)的影響。CoCoMo模型1981年Boehm提出“構(gòu)造性成本模型”107基本的CoCoMo模型公式其中:
E表示工作量(人月PM)
D表示開發(fā)時(shí)間(月)
L是項(xiàng)目的代碼行估計(jì)值(千行代碼)基本的CoCoMo模型公式108基本的CoCoMo模型參數(shù)a,b,c,d常數(shù)取值軟件類型abcd適用范圍組織型2.41.052.50.38各類應(yīng)用程序半獨(dú)立型3.01.122.50.35各類實(shí)用程序、編譯程序等嵌入型3.61.202.50.32實(shí)時(shí)處理、控制程序、操作系統(tǒng)基本的CoCoMo模型參數(shù)a,b,c,d常數(shù)取值軟件類型a109中間的CoCoMo模型以基本的CoCoMo模型為基礎(chǔ),工作量估計(jì)公式中乘以調(diào)節(jié)因子EAFE表示工作量(人月PM)
L是項(xiàng)目的代碼行估進(jìn)一步考慮15種影響軟件工作量的因素軟件類型ab組織型3.21.05半獨(dú)立型3.01.12嵌入型2.81.20中間的CoCoMo模型以基本的CoCoMo模型為基礎(chǔ),工作量11015種影響軟件工作量的因素
fi產(chǎn)品因素:軟件可靠性、數(shù)據(jù)庫(kù)規(guī)模、產(chǎn)品復(fù)雜性;硬件因素:執(zhí)行時(shí)間限制、存儲(chǔ)限制、虛擬機(jī)易變性、環(huán)境周轉(zhuǎn)時(shí)間;人的因素:分析員能力、應(yīng)用領(lǐng)域?qū)嶋H經(jīng)驗(yàn)、程序員能力、虛擬機(jī)使用經(jīng)驗(yàn)、程序語(yǔ)言使用經(jīng)驗(yàn);項(xiàng)目因素:現(xiàn)代程序設(shè)計(jì)技術(shù)、軟件工具的使用、開發(fā)進(jìn)度限制。15種影響軟件工作量的因素fi產(chǎn)品因素:111軟件工程管理課件112例一個(gè)規(guī)模為10KLOC的商用微機(jī)遠(yuǎn)程通信的嵌入型軟件,使用中間COCOMO模型進(jìn)行成本估算。名義工作量E1=2.8×(10)1.20
=44.38實(shí)際工作量E=44.38×1.17=51.9例一個(gè)規(guī)模為10KLOC的商用微機(jī)遠(yuǎn)程通信的嵌入型軟件,使113中間CoCoMo模型與各種開發(fā)方案對(duì)工作量的影響建議參加項(xiàng)目的人數(shù)N為人數(shù),D為開發(fā)時(shí)間(月),E為工作量(人月)一般來說,由N個(gè)程序員組成的小組,實(shí)現(xiàn)相同的規(guī)模的程序,相互通信數(shù),
設(shè)每次通信和交換意見的平均的工作量,則增加的通信開銷為中間CoCoMo模型與各種開發(fā)方案對(duì)工作量的影響建議參加項(xiàng)目114一般情況下,由N個(gè)程序員組成的小組共同開發(fā)一個(gè)程序的工作量,滿足:程序員小組的生產(chǎn)率:?jiǎn)蝹€(gè)程序員與程序員小組生產(chǎn)率的比為事實(shí):盲目增加程序員人數(shù)會(huì)推遲軟件完成的日期
一般情況下,由N個(gè)程序員組成的小組共同開發(fā)一個(gè)程序的工作量115CoCoMo2模型1997年Boehm對(duì)CoCoMo模型進(jìn)行了擴(kuò)充,稱為CoCoMo2.COCOMO2模型分成三個(gè)層次應(yīng)用系統(tǒng)組成模型:用于估算構(gòu)建原型的工作量,這種模型考慮到大量使用已有構(gòu)件的情況早期設(shè)計(jì)模型:用于軟件結(jié)構(gòu)設(shè)計(jì)階段后期設(shè)計(jì)模型:用于軟件開發(fā)階段CoCoMo2模型1997年Boehm對(duì)CoCoMo模型進(jìn)行116COCOMO2模型把軟件開發(fā)工作量表示成代碼行(KLOC)的非線性函數(shù):其中,α是模型系數(shù),典型值為3.0,b是模型指數(shù),fi是成本因素。COCOMO2模型使用了5個(gè)分級(jí)因素Wi(1≤i≤5),分別是:項(xiàng)目先例性、開發(fā)靈活性、風(fēng)險(xiǎn)排除度、項(xiàng)目組凝聚力和過程成熟度。其中每個(gè)成本因素劃分為6個(gè)級(jí)別,每個(gè)級(jí)別的分級(jí)因素Wi取值如下:甚低Wi=5,低Wi=4,正常Wi=3,高Wi=2,甚高Wi=1,特高Wi=0。b的值:COCOMO2模型把軟件開發(fā)工作量表示成代碼行(KLOC)的117進(jìn)度計(jì)劃可以把用于一般開發(fā)項(xiàng)目的進(jìn)度安排的技術(shù)和工具應(yīng)用于軟件項(xiàng)目。為監(jiān)控軟件項(xiàng)目的進(jìn)度計(jì)劃和工作的實(shí)際進(jìn)展情況,為表現(xiàn)各項(xiàng)任務(wù)之間進(jìn)度的相互依賴關(guān)系,需要采用圖示的方法。在圖示方法中,必須明確標(biāo)明:各個(gè)任務(wù)的計(jì)劃開始時(shí)間,完成時(shí)間;各個(gè)任務(wù)完成標(biāo)志(即○文檔編寫和△評(píng)審);各個(gè)任務(wù)與參與工作的人數(shù),各個(gè)任務(wù)與工作量之間的銜接情況;完成各個(gè)任務(wù)所需的物理資源和數(shù)據(jù)資源進(jìn)度計(jì)劃可以把用于一般開發(fā)項(xiàng)目的進(jìn)度安排的技術(shù)和工具應(yīng)用于軟118甘特圖GanttChart甘特圖GanttChart119在甘特圖中,每一任務(wù)完成的標(biāo)準(zhǔn),不是以能否繼續(xù)下一階段任務(wù)為標(biāo)準(zhǔn),而是以必須交付應(yīng)交付的文檔與通過評(píng)審為標(biāo)準(zhǔn)。因此在甘特圖中,文檔編制與評(píng)審是軟件開發(fā)進(jìn)度的里程碑。在甘特圖中,每一任務(wù)完成的標(biāo)準(zhǔn),不是以能否繼續(xù)下一階段任務(wù)為120軟件工程管理課件121工程網(wǎng)絡(luò)技術(shù)工程網(wǎng)絡(luò)技術(shù)PERT技術(shù)(ProgramEvaluationandReviewTechnique)叫做程序評(píng)估與審查技術(shù),CPM方法叫做關(guān)鍵路徑法,它們都是安排開發(fā)進(jìn)度,制定軟件開發(fā)計(jì)劃的最常用的方法。它們都采用網(wǎng)絡(luò)圖來描述一個(gè)項(xiàng)目的任務(wù)網(wǎng)絡(luò),也就是從一個(gè)項(xiàng)目的開始到結(jié)束,把應(yīng)當(dāng)完成的任務(wù)用圖或表的形式表示出來。1.計(jì)算最早時(shí)刻2.計(jì)算最遲時(shí)刻3.關(guān)鍵路徑4.機(jī)動(dòng)時(shí)間工程網(wǎng)絡(luò)技術(shù)122軟件工程管理課件123通常用兩張表來定義網(wǎng)絡(luò)圖。一張表給出與一特定軟件項(xiàng)目有關(guān)的所有任務(wù)(也稱為任務(wù)分解結(jié)構(gòu)WorkBreakdownStructure);另一張表給出應(yīng)當(dāng)按照什么樣的次序來完成這些任務(wù)(有時(shí)稱為限制表RestrictionList)。
PERT技術(shù)和CPM方法都為項(xiàng)目計(jì)劃人員提供了一些定量的工具。
確定關(guān)鍵路徑,即決定項(xiàng)目開發(fā)時(shí)間的任務(wù)鏈。在關(guān)鍵路徑上的各個(gè)任務(wù)都是時(shí)間余量為零的關(guān)鍵任務(wù),不能有任何時(shí)間延誤。
應(yīng)用統(tǒng)計(jì)模型,對(duì)每一個(gè)單獨(dú)的任務(wù)確定最可能的開發(fā)持續(xù)時(shí)間的估算值。
計(jì)算邊界時(shí)間,以便為具體的任務(wù)定義時(shí)間窗口。通常用兩張表來定義網(wǎng)絡(luò)圖。124軟件工程管理課件125上述示例工程中各項(xiàng)任務(wù)的進(jìn)度安排,可用Gantt圖畫出:(先安排關(guān)鍵路徑上的任務(wù))
路徑優(yōu)化上述示例工程中各項(xiàng)任務(wù)的進(jìn)度安排,可用Gantt圖畫出:(先126人員組織
1.開發(fā)人員2.組織機(jī)構(gòu)三種組織結(jié)構(gòu)模式按課題劃分的模式(ProjectFormat)按職能劃分的模式(FunctionalFormat)矩陣形模式(MatrixFormat)程序設(shè)計(jì)小組的組織形式有3種:主程序員組、民主制程序員組及層次式小組3.用戶用戶的阻力和干擾:不積極配合、求全求快、功能的變化人員組織
1.開發(fā)人員127軟件項(xiàng)目組織的建立開發(fā)組織采用什么形式,要針對(duì)軟件項(xiàng)目的特點(diǎn)來決定,同時(shí)也與參與人員的素質(zhì)有關(guān)。組織原則
(1)盡早落實(shí)責(zé)任:在軟件項(xiàng)目工作開始時(shí),要盡早指定專人負(fù)責(zé),使他有權(quán)進(jìn)行管理,并對(duì)任務(wù)的完成負(fù)全責(zé)。
(2)減少接口:一個(gè)組織的生產(chǎn)率隨完成任務(wù)中存在的通信路徑數(shù)目增加而降低。要有合理的人員分工、好的組織結(jié)構(gòu)、有效的通信,減少不必要的生產(chǎn)率的損失。
(3)責(zé)權(quán)均衡:軟件經(jīng)理人員所負(fù)的責(zé)任不應(yīng)比委任給他的權(quán)力還大。軟件項(xiàng)目組織的建立128組織結(jié)構(gòu)的模式1)按課題劃分的模式
把軟件開發(fā)人員按課題組成小組,小組成員自始至終參加所承擔(dān)課題的各項(xiàng)任務(wù)。他們應(yīng)負(fù)責(zé)完成軟件產(chǎn)品的定義、設(shè)計(jì)、實(shí)現(xiàn)、測(cè)試、復(fù)查、文檔編制、甚至包括維護(hù)在內(nèi)的全過程。2)按職能劃分的模式
把參加開發(fā)項(xiàng)目的軟件人員按任務(wù)的工作階段劃分成若干個(gè)專業(yè)小組。要開發(fā)的軟件產(chǎn)品在每個(gè)專業(yè)小組完成階段加工(即工序)以后,沿工序流水線向下傳遞。例如,分別建立計(jì)劃組、需求分析組、設(shè)計(jì)組、實(shí)現(xiàn)組、系統(tǒng)測(cè)試組、質(zhì)量保證組、維護(hù)組等。各種文檔資料按工序在各組之間傳遞。組織結(jié)構(gòu)的模式1293)矩陣形模式這種模式實(shí)際上是以上兩種模式的復(fù)合。一方面,按工作性質(zhì),成立一些專門組,如開發(fā)組、業(yè)務(wù)組、測(cè)試組等;另一方面,每一個(gè)項(xiàng)目又有它的經(jīng)理人員負(fù)責(zé)管理。每個(gè)軟件人員屬于某一個(gè)專門組,又參加某一項(xiàng)目的工作。3)矩陣形模式130軟件
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 亞運(yùn)會(huì)應(yīng)急預(yù)案
- 肺性腦病的業(yè)務(wù)學(xué)習(xí)
- 移動(dòng)設(shè)備管理與安全
- 銀行述職報(bào)告2024年
- 皮膚科護(hù)士述職報(bào)告
- 高中生物人類遺傳病試題
- 機(jī)器人安全培訓(xùn)
- 糖尿病飲食資料
- 社交渠道規(guī)劃
- 初中美術(shù)教案反思
- 磁共振MRI對(duì)比劑
- 2024年江蘇地區(qū)“三新”供電服務(wù)公司招聘320人(第二批)高頻難、易錯(cuò)點(diǎn)500題模擬試題附帶答案詳解
- 2024秋期國(guó)家開放大學(xué)《可編程控制器應(yīng)用實(shí)訓(xùn)》一平臺(tái)在線形考(形成任務(wù)4)試題及答案
- 維修電工題庫(kù)(300道)
- 期中考試卷(試題)-2024-2025學(xué)年蘇教版二年級(jí)數(shù)學(xué)上冊(cè)
- 2023年江蘇省普通高中信息技術(shù)學(xué)業(yè)水平考試題庫(kù)試題7
- 粵教板2019高中信息技術(shù)必修一全冊(cè)練習(xí)附答案
- 研究生學(xué)術(shù)表達(dá)能力培養(yǎng)智慧樹知到答案2024年西安建筑科技大學(xué)、清華大學(xué)、同濟(jì)大學(xué)、山東大學(xué)、河北工程大學(xué)、《環(huán)境工程》英文版和《環(huán)境工程》編輯部
- 中國(guó)骨關(guān)節(jié)炎診療指南(2024版)解讀
- 職業(yè)院校技能大賽《植物病蟲害防治》賽項(xiàng)賽題及答案
- 第六單元測(cè)試卷(單元卷)-2024-2025學(xué)年六年級(jí)上冊(cè)統(tǒng)編版語(yǔ)文
評(píng)論
0/150
提交評(píng)論