ch9軟件工程管理
,,,,,單擊此處編輯母版文本樣式,,第二級(jí),,第三級(jí),,第四級(jí),,第五級(jí),,*,*,*,單擊此處編輯母版標(biāo)題樣式,,第9章 軟件工程管理,,軟件工程管理概述,,軟件規(guī)模估算,,進(jìn)度方案,,,軟件配置管理,,軟件質(zhì)量保證,,軟件工程標(biāo)準(zhǔn)與軟件文檔,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í)踐,2,,2.,軟件工程管理的重要性,,分階段管理策略,,涉及多學(xué)科,,軟件規(guī)模不斷增大,管理難度增加,管理不善的后果嚴(yán)重,3,,3.軟件工程管理的內(nèi)容,,包括對(duì)軟件開發(fā)本錢、控制、開發(fā)人員、組織機(jī)構(gòu)、用戶、軟件開發(fā)文檔、軟件質(zhì)量等方面的管理。,4,,軟件規(guī)模和開發(fā)工作量估算,,面向規(guī)模的度量(代碼行技術(shù)),,面向功能的度量(功能點(diǎn)技術(shù)),,CoCoMo,模型,5,,軟件工程估算,估算涉及到人、技術(shù)、環(huán)境、政策等多種因素,很難精確地估算出工程的開銷。,,常用四種估算方法,,參照已有類似工程估計(jì)待開發(fā)工程本錢和工作量,,將大的工程分解成若干子工程,分別估算出子工程本錢和工作量,再估算整個(gè)工程,,按軟件的生命期分別估算各階段的工作量和本錢,再匯總,從而估算出整個(gè)工程,,根據(jù)實(shí)驗(yàn)或歷史數(shù)據(jù)給出軟件工程工作量或本錢的經(jīng)驗(yàn)公式,,軟件工程代碼行和功能點(diǎn)估算是本錢和工作量估算的基礎(chǔ)。(規(guī)模),,LOC或FP的期望值:e=(a+4m+b)/6,6,,代碼行技術(shù),,用軟件工程的代碼行(LOC)數(shù)表示軟件工程的規(guī)模,,生產(chǎn)率P=L/E,E是軟件工程的工作量,用人月(PM)度量,L用千行代碼kLOC度量,,每行代碼的平均本錢C=S/L,S是軟件工程總的開銷,,文檔與代碼比D=Pd/L,Pd是軟件工程的文檔頁數(shù),,代碼出錯(cuò)率EQR=Ne/L,Ne是軟件工程的代碼錯(cuò)誤數(shù),7,,例:下表提供了一個(gè)國外典型的軟件工程記錄,,,,,,,利用這些數(shù)據(jù),可以求出:,,P=12.1kLOC/24PM=504LOC/PM,,C=168000美元/12.1kLOC=13.88美元/LOC,,D=365Pd/12.1kLOC=30.16Pd/kLOC,,EQR=29個(gè)/12.1kLOC=2.4個(gè)/kLOC,8,,用代碼行數(shù)估計(jì)軟件規(guī)模簡(jiǎn)單易行,,缺點(diǎn):,,代碼行數(shù)的估算依賴于程序設(shè)計(jì)語言的功能和表達(dá)能力;,,采用代碼行估算方法會(huì)對(duì)設(shè)計(jì)精巧的軟件工程產(chǎn)生不利影響;,,在軟件工程開發(fā)前或開發(fā)初期估算它的代碼行數(shù)十分困難;,,代碼行估算只適用于過程式程序設(shè)計(jì)語言,對(duì)非過程式的程序設(shè)計(jì)語言不太適用等,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ù)庫的一局部,可以是一個(gè)單獨(dú)的文件。,,外部接口數(shù):與系統(tǒng)中其他設(shè)備通過外部接口讀寫信息次數(shù)均應(yīng)計(jì)數(shù)。,10,,功能點(diǎn),FP (Function Point),。,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í)別決定,。,,11,,2.計(jì)算技術(shù)復(fù)雜因子TCF14種技術(shù)因素:技術(shù)因素、數(shù)據(jù)通信、分布式數(shù)據(jù)處理、性能標(biāo)準(zhǔn)、高負(fù)荷的硬件、高處理率、聯(lián)機(jī)數(shù)據(jù)輸入、終端用戶效率、聯(lián)機(jī)更新、復(fù)雜的計(jì)算、可重用性、安裝方便、操作方便、可移植性、可維護(hù)性。,12,,復(fù)雜性校正值,Fi,,1.,,系統(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ì)成,易修改,和,易使用,?,13,,計(jì)算技術(shù)因子對(duì)軟件規(guī)模的綜合影響程度,DI,:,,,,,技術(shù)復(fù)雜性因子,TCP,由下式計(jì)算:,,TCP = 0.65 + 0.01 × DI,,計(jì)算功能點(diǎn)數(shù),FP,,,FP = UFP ×TCP,14,,一旦計(jì)算出功能點(diǎn),就可仿照LOC的方式度量軟件的生產(chǎn)率、質(zhì)量和其它屬性:,,生產(chǎn)率 = FP/PM(人月) 質(zhì)量 = 錯(cuò)誤數(shù)/FP,,本錢 = 元/FP 文檔 = 文檔頁數(shù)/FP,,功能點(diǎn)度量是為了商用信息系統(tǒng)應(yīng)用而設(shè)計(jì)的。,15,,代碼行度量與功能點(diǎn)度量的比較,代碼行度量(依賴開發(fā)語言)與功能點(diǎn)度量(不依賴開發(fā)語言)的比較,,LOC/FP(平均):,,匯編語言=300,,FORTRAN=100,,pascal=90,,Ada=70,,面向?qū)ο笳Z言=30,,四代語言4GL=20,,代碼生成器=15,,一行Ada語言代碼的“功能〞平均是一行FORTRAN語言代碼“功能〞的1.4倍,一行四代語言代碼的“功能〞平均是一行傳統(tǒng)程序設(shè)計(jì)語言代碼“功能〞的3~5倍,16,,CoCoMo 模型,1981年Boehm提出“構(gòu)造性本錢模型〞(Constructive Cost Model),,該本錢估算模型是一種精確、易于使用的本錢估算方法,,COCOMO模型的分類(按其詳細(xì)程度,分三級(jí))根本模型、 中間模型、 詳細(xì)模型,,根本模型是靜態(tài)單變量模型,用源代碼行數(shù)(LOC) 為自變量的經(jīng)驗(yàn)函數(shù)計(jì)算軟件開發(fā)工作量。,,中間模型在用LOC為自變量的函數(shù)計(jì)算軟件開發(fā)工作量(稱為名義工作量)的基礎(chǔ)上,用涉及產(chǎn)品、硬件、人員、工程等方面的影響因素調(diào)整工作量估算。,,詳細(xì)COCOMO模型包括中間模型的所有特性,但用上述各種影響因素調(diào)整工作量估算時(shí),還要考慮對(duì)軟件工程過程中每一步驟(分析、設(shè)計(jì)等)的影響。,17,,根本的CoCoMo模型,公式,,,,其中:,,E 表示工作量(人月PM),,D 表示開發(fā)時(shí)間(月),,L 是工程的代碼行估計(jì)值(千行代碼),,18,,根本的CoCoMo模型參數(shù),a,b,c,d,常數(shù)取值,軟件類型,a,b,c,d,適用范圍,組織型,2.4,1.05,2.5,0.38,各類應(yīng)用程序,半獨(dú)立型,3.0,1.12,2.5,0.35,各類實(shí)用程序、編譯程序等,嵌入型,3.6,1.20,2.5,0.32,實(shí)時(shí)處理、控制程序、操作系統(tǒng),19,,中間的CoCoMo模型,以根本的CoCoMo模型為基礎(chǔ),工作量估計(jì)公式中乘以調(diào)節(jié)因子EAF,,,,E 表示工作量(人月PM),,L 是工程的代碼行估,,,進(jìn)一步考慮15種影響軟件工作量的因素,,軟件類型,a,b,組織型,3.2,1.05,半獨(dú)立型,3.0,1.12,嵌入型,2.8,1.20,20,,15,種影響軟件工作量的因素,,fi,產(chǎn)品因素:,,軟件可靠性、數(shù)據(jù)庫規(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)、程序語言使用經(jīng)驗(yàn);,,工程因素:,,現(xiàn)代程序設(shè)計(jì)技術(shù)、軟件工具的使用、開發(fā)進(jì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,23,,中間,CoCoMo,模型與各種開發(fā)方案對(duì)工作量的影響,建議參加工程的人數(shù),,,N 為人數(shù),D 為開發(fā)時(shí)間(月), E 為工作量(人月),,一般來說,由N個(gè)程序員組成的小組,實(shí)現(xiàn)相同的規(guī)模的程序,相互通信數(shù) ,,,設(shè)每次通信和交換意見的平均的工作量 ,則增加的通信開銷為,24,,一般情況下,由,N,個(gè)程序員組成的小組共同開發(fā)一個(gè)程序的工作量 ,滿足:,,,程序員小組的生產(chǎn)率:,,,單個(gè)程序員與程序員小組生產(chǎn)率的比為,,,,事實(shí):,盲目增加程序員人數(shù)會(huì)推遲軟件完成的日期,,,,25,,CoCoMo2模型,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ā)階段,,26,,COCOMO2模型把軟件開發(fā)工作量表示成代碼行(KLOC)的非線性函數(shù):其中,α是模型系數(shù),典型值為3.0,b是模型指數(shù),fi是本錢因素。,,,,COCOMO2模型使用了5個(gè)分級(jí)因素Wi(1≤i≤5),分別是:工程先例性、開發(fā)靈活性、風(fēng)險(xiǎn)排除度、工程組凝聚力和過程成熟度。,,其中每個(gè)本錢因素劃分為6個(gè)級(jí)別,每個(gè)級(jí)別的分級(jí)因素Wi取值如下:甚低Wi=5,低 Wi=4, 正常Wi=3,高Wi=2,甚高Wi=1,特高Wi=0。,,b的值:,27,,進(jìn)度方案,可以把用于一般開發(fā)工程的進(jìn)度安排的技術(shù)和工具應(yīng)用于軟件工程。,,為監(jiān)控軟件工程的進(jìn)度方案和工作的實(shí)際進(jìn)展情況,為表現(xiàn)各項(xiàng)任務(wù)之間進(jìn)度的相互依賴關(guān)系,需要采用圖示的方法。,,在圖示方法中,必須明確標(biāo)明:,,各個(gè)任務(wù)的方案開始時(shí)間,完成時(shí)間;,,各個(gè)任務(wù)完成標(biāo)志(即○文檔編寫和△評(píng)審);,,各個(gè)任務(wù)與參與工作的人數(shù),各個(gè)任務(wù)與工作量之間的銜接情況;,,完成各個(gè)任務(wù)所需的物理資源和數(shù)據(jù)資源,28,,甘特圖,Gantt Chart,29,,在甘特圖中,每一任務(wù)完成的標(biāo)準(zhǔn),不是以能否繼續(xù)下一階段任務(wù)為標(biāo)準(zhǔn),而是,以必須交付應(yīng)交付的文檔與通過評(píng)審為標(biāo)準(zhǔn),。因此在甘特圖中,文檔編制與評(píng)審是軟件開發(fā)進(jìn)度的里程碑。,,30,,31,,工程網(wǎng)絡(luò)技術(shù),,工程網(wǎng)絡(luò)技術(shù)PERT技術(shù) (Program Evaluation and Review Technique)叫做程序評(píng)估與審查技術(shù),CPM方法叫做關(guān)鍵路徑法,它們都是安排開發(fā)進(jìn)度,制定軟件開發(fā)方案的最常用的方法。,,它們都采用網(wǎng)絡(luò)圖來描述一個(gè)工程的任務(wù)網(wǎng)絡(luò),也就是從一個(gè)工程的開始到結(jié)束,把應(yīng)當(dāng)完成的任務(wù)用圖或表的形式表示出來。,,1. 計(jì)算最早時(shí)刻,,2. 計(jì)算最遲時(shí)刻,,3. 關(guān)鍵路徑,,4. 機(jī)動(dòng)時(shí)間,32,,33,,通常用兩張表來定義網(wǎng)絡(luò)圖。,,一張表給出與一特定軟件工程有關(guān)的所有任務(wù)(也稱為任務(wù)分解結(jié)構(gòu)WorkBreakdownStructure);,,另一張表給出應(yīng)當(dāng)按照什么樣的次序來完成這些任務(wù)(有時(shí)稱為限制表RestrictionList)。PERT技術(shù)和CPM方法都為工程方案人員提供了一些定量的工具。,,確定關(guān)鍵路徑,即決定工程開發(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í)間窗口。,34,,35,,上述例如工程中各項(xiàng)任務(wù)的進(jìn)度安排,可用Gantt圖畫出:(先安排關(guān)鍵路徑上的任務(wù)),路徑優(yōu)化,36,,人員組織,1.,開發(fā)人員,,2.,組織機(jī)構(gòu),,三種組織結(jié)構(gòu)模式,,按課題劃分的模式(,Project Format,),,按職能劃分的模式(,Functional Format,),,矩陣形模式(,Matrix Format,),,程序設(shè)計(jì)小組的組織形式有,3,種:,,主程序員組、民主制程序員組及層次式小組,,3.,用戶,,用戶的阻力和干擾:不積極配合、求全求快、功能的變化,37,,軟件工程組織的建立,,開發(fā)組織采用什么形式,要針對(duì)軟件工程的特點(diǎn)來決定,同時(shí)也與參與人員的素質(zhì)有關(guān)。,,組織原則,,( 1 ) 盡早落實(shí)責(zé)任: 在軟件工程工作開始時(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)力還大。,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ā)工程的軟件人員按任務(wù)的工作階段劃分成若干個(gè)專業(yè)小組。要開發(fā)的軟件產(chǎn)品在每個(gè)專業(yè)小組完成階段加工(即工序)以后,沿工序流水線向下傳遞。例如,分別建立方案組、需求分析組、設(shè)計(jì)組、實(shí)現(xiàn)組、系統(tǒng)測(cè)試組、質(zhì)量保證組、維護(hù)組等。各種文檔資料按工序在各組之間傳遞。,39,,3)矩陣形模式,,這種模式實(shí)際上是以上兩種模式的復(fù)合。一方面,按工作性質(zhì),成立一些專門組,如開發(fā)組、業(yè)務(wù)組、測(cè)試組等;另一方面,每一個(gè)工程又有它的經(jīng)理人員負(fù)責(zé)管理。每個(gè)軟件人員屬于某一個(gè) 專門組,又參加某一工程的工作。,40,,41,,程序設(shè)計(jì)小組的組織形式,,小組內(nèi)部人員的組織形式對(duì)生產(chǎn)率也有影響?,F(xiàn)有的組織形式有三種。,,(1)主程序員制小組,,小組的核心由一位主程序員(高級(jí)工程師)、二至五位技術(shù)員、一位后援工程師組成。主程序員負(fù)責(zé)小組全部技術(shù)活動(dòng)的方案、協(xié)調(diào)與審查,設(shè)計(jì)和實(shí)現(xiàn)工程中的關(guān)鍵局部。,42,,技術(shù)員負(fù)責(zé)工程的具體分析與開發(fā),文檔資料的編寫工作。后援工程師支持主程序員的工作,為主程序員提供咨詢,也做局部分析、設(shè)計(jì)和實(shí)現(xiàn)的工作。并在必要時(shí)能代替主程序員工作。,,主程序員制小組還可以由一些專家(如通信專家或數(shù)據(jù)庫設(shè)計(jì)專家)、輔助人員(如打字員和秘書)、軟件資料員協(xié)助工作。,,(2)民主制小組,,在民主制小組中,遇到問題,組內(nèi)成員之間可以平等地交換意見。工作目標(biāo)的制定及做出決定都由全體成員參加。雖然也有一位成員當(dāng)組長,但工作的討論、成果的檢驗(yàn)都公開進(jìn)行。這種組織形式強(qiáng)調(diào)發(fā)揮小組每個(gè)成員的積極性。有人認(rèn)為這種組織形式適合于研制時(shí)間長、開發(fā)難度大的工程。,43,,(3)層次式小組,,在層次式小組中,組內(nèi)人員分為 三級(jí):組長(工程負(fù)責(zé)人)一人負(fù)責(zé)全組工作,包括任務(wù)分配、技術(shù)評(píng)審和走查、掌握工作量和參加技術(shù)活動(dòng)。 他直接領(lǐng)導(dǎo)二至三名高級(jí)程序員,每位高級(jí)程序員通過基層小組,管理若干位程序員。,,這種組織結(jié)構(gòu)只允許必要的人際通信。比較適用于工程本身就是層次結(jié)構(gòu)的課題。因?yàn)檫@樣可以把工程按功能劃分成若干個(gè)子工程,把子工程分配給基層小組,由基層小組完成。,,這種組織方式比較適合于大型軟件工程的開發(fā)。,44,,45,,人員配備,,如何合理地配備人員,也是成功地完成軟件工程的切實(shí)保證。所謂合理地配備人員應(yīng)包括:,,按不同階段適時(shí)任用人員,,恰當(dāng)掌握用人標(biāo)準(zhǔn)。,,工程開發(fā)各階段所需人員,,一個(gè)工程完成的快慢,取決于參與開發(fā)人員的多少,,在開發(fā)過程中,多數(shù)軟件工程是以恒定人力配備的。,,實(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ì)量 軟件工程是技術(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ì)工程經(jīng)理人員的要求,,軟件經(jīng)理人員是工作的組織者,他的管理能力的強(qiáng)弱是工程成敗的關(guān)鍵。他應(yīng)具有以下能力:,,把用戶提出的非技術(shù)性要求加以整理提煉, 以技術(shù)說明書的形式轉(zhuǎn)告給分析員和測(cè)試員。,,能說服用戶放棄一些不切實(shí)際的要求, 以保證合理的要求得以滿足。,,能夠把外表上似乎無關(guān)的要求集中在一起, 歸結(jié)為 “需要什么〞, “要解決什么問題〞。這是一種綜合問題的能力。,,要懂得心理學(xué), 能說服上級(jí)領(lǐng)導(dǎo)和用戶,讓他們理解什么是不合理的要求。但又要使他們毫不勉強(qiáng), 樂 于接受,并受到啟發(fā)。,48,,評(píng)價(jià)人員的條件,,軟件工程中人的因素越來越受重視。在評(píng)價(jià)和任用軟件人員時(shí),必須掌握一定的標(biāo)準(zhǔn)。人員素質(zhì)的優(yōu)劣常常影響到工程的成敗。,,牢固掌握計(jì)算機(jī)軟件的根本知識(shí)和技能。,,善于分析和綜合問題,具有嚴(yán)密的邏輯思維能力。,,工作踏實(shí)、細(xì)致, 不靠碰運(yùn)氣,遵循標(biāo)準(zhǔn)和標(biāo)準(zhǔn),具有嚴(yán)格的科學(xué)作風(fēng)。,,工作中表現(xiàn)出有耐心、有毅力、有責(zé)任心。,,善于聽取別人的意見,善于與周圍人員團(tuán)結(jié)協(xié)作,建立良好的人際關(guān)系。,,具有良好的書面和口頭表達(dá)能力。,49,,軟件配置管理,軟件配置(,Software Configuration,)是軟件產(chǎn)品在軟件開發(fā)或運(yùn)行過程中產(chǎn)生的全部信息。,,軟件配置管理(,Software Configuration Management,)簡(jiǎn)稱,SCM,,是在軟件的整個(gè)生存周期內(nèi)管理變更的一組活動(dòng)。,,軟件配置管理,(Software Configuration Management,,簡(jiǎn)稱,SCM),的四項(xiàng)任務(wù),:,,(,1,),標(biāo)識(shí)變更,,(,2,),控制變更,,(,3,),配置審計(jì),,(,4,),配置狀態(tài)報(bào)告,50,,軟件配置管理概念,,軟件開發(fā)過程的最終結(jié)果包括三類信息:,,計(jì)算機(jī)程序(源程序和目標(biāo)程序);,,描述程序的文檔(面向技術(shù)人員和面向用戶);,,數(shù)據(jù)結(jié)構(gòu)(包括程序內(nèi)部和外部定義兩局部)。,,組成上述信息的所有工程構(gòu)成一個(gè)軟件配置,其中每一項(xiàng)稱為一個(gè)軟件配置項(xiàng)(Software Configuration Item,簡(jiǎn)稱SCI),它是配置管理的根本單位。一個(gè)SC中最早的SCI是系統(tǒng)規(guī)格說明書。,,SCM要解決的主要問題就是保證軟件的質(zhì)量。,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一旦成為基線,隨即被放入工程數(shù)據(jù)庫(project database)。此后,若開發(fā)小組中某位成員希望改動(dòng)SCI,首先要將它拷貝到私有工作區(qū)并在工程數(shù)據(jù)庫中鎖住,不允許他人使用。在私有工作區(qū)中完成修改控制過程并復(fù)審?fù)ㄟ^之后,再把修改后的SCI推出并回送到工程數(shù)據(jù)庫,同時(shí)解鎖。,52,,一般軟件配置需包括以下SCI:,,1.系統(tǒng)規(guī)格說明書,,2.軟件工程規(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ù)),53,,6.源代碼清單,,7.測(cè)試規(guī)格說明書,,1)測(cè)試方案和過程,,2)測(cè)試用例和實(shí)驗(yàn)結(jié)果,,8.操作和安裝手冊(cè),,9.可執(zhí)行程序,,1)每個(gè)模塊的可執(zhí)行代碼,,2)連接到一起的代碼,,10.?dāng)?shù)據(jù)庫描述,,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)和過程,54,,軟件配置管理任務(wù),,軟件配置管理,主要任務(wù),是控制軟件的修改,主要包括,:,,標(biāo)識(shí)軟件配置中各種對(duì)象;,,管理軟件的各種版本;,,控制對(duì)軟件的修改;,,審計(jì)配置;,,報(bào)告配置情況。,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è)“文本單元〞(unit of text)。,,例如,需求說明書中某一節(jié),某個(gè)模塊的源代碼,或按等價(jià)分類法制定的一套測(cè)試用例,,復(fù)合對(duì)象——由若干根本對(duì)象和復(fù)合對(duì)象組合而成的對(duì)象,是一個(gè)遞歸的概念。,,例如,“設(shè)計(jì)規(guī)格說明書〞是復(fù)合對(duì)象,它由“數(shù)據(jù)模塊〞和“模塊N〞等根本對(duì)象組合而成。,56,,每個(gè)配置對(duì)象都擁有名字、描述、資源列表和實(shí)際存在體四個(gè)局部:,,1. 對(duì)象名一般為無二義字符串;,,2. 對(duì)象描述包括若干數(shù)據(jù)項(xiàng),它們指明對(duì)象的類型(例如,文檔、程序還是數(shù)據(jù))、所屬工程工程的標(biāo)志及變動(dòng)和版本的有關(guān)信息;,,3. 資源列表給出該對(duì)象要求、引用、處理和提供的所有實(shí)體,如數(shù)據(jù)類型、特殊函數(shù)等,有時(shí)變量也被看作資源;,,4. 只有根本對(duì)象才有實(shí)際存在體,它是指向該對(duì)象“單元正文描述〞的一個(gè)指針;對(duì)于復(fù)合對(duì)象,此項(xiàng)取null值。,57,,除了標(biāo)識(shí)配置對(duì)象外,還必須指明對(duì)象之間的關(guān)系,一個(gè)對(duì)象可標(biāo)識(shí)為另一個(gè)復(fù)合對(duì)象的一局部,即此兩對(duì)象之間存在一個(gè)關(guān)系。若干關(guān)系可定義出對(duì)象之間的分層結(jié)構(gòu)。例如:,,“E?R圖〞“數(shù)據(jù)模型〞,,“數(shù)據(jù)模型〞“設(shè)計(jì)規(guī)格說明書〞,,因一個(gè)配置對(duì)象可能與其他多個(gè)對(duì)象有關(guān)系,所以SCI的分層結(jié)構(gòu)不一定是簡(jiǎn)單的樹狀結(jié)構(gòu),而是更一般的網(wǎng)狀結(jié)構(gòu)。,58,,版本控制,,為了適應(yīng)不同環(huán)境特點(diǎn)和滿足不同用戶的個(gè)性需求,往往一個(gè)工程保存多個(gè)版本。,,配置管理的版本控制主要解決以下問題:,,1)根據(jù)不同用戶的需要配置不同的系統(tǒng);,,2)保存系統(tǒng)老版本,為以后調(diào)查問題使用;,,3)建立一個(gè)系統(tǒng)新版本,使它包含某些決策而拋棄另一些;,,4)支持兩位以上工程師同時(shí)在一個(gè)工程中工作;,,5)高效存儲(chǔ)工程的多個(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è)部件組成。,60,,61,,修改控制,,在大型軟件開發(fā)過程中,無控制地修改會(huì)迅速導(dǎo)致混亂。所謂修改控制,即把人的努力與自開工具結(jié)合起來,建立一套機(jī)制,有意識(shí)地控制軟件修改。,,當(dāng)一個(gè)“修改申請(qǐng)〞提出后,開發(fā)者依據(jù)技術(shù)指標(biāo)和潛在的副作用,對(duì)其他配置對(duì)象和系統(tǒng)功能可能造成的影響以及工程本錢等諸多因素進(jìn)行評(píng)估。評(píng)估的結(jié)果將形成一個(gè)“修改報(bào)告單〞,提交給修改控制機(jī)構(gòu)(CCA)決策。,,CCA一旦同意修改,應(yīng)立即提供一個(gè)“工程變動(dòng)命令〞ECO(Engineering Change Order)。它指明修改任務(wù)、需遵守的限制和復(fù)審標(biāo)準(zhǔn)。然后從工程數(shù)據(jù)庫中“提出〞待修改對(duì)象,經(jīng)修改后再“推出〞更新版本。,,這一對(duì)動(dòng)作是工程數(shù)據(jù)庫訪問控制和同步控制要求的。訪問控制決定哪些人員有權(quán)訪問或修改某個(gè)配置對(duì)象;而同步控制則保證并行修改時(shí)不因互相重寫而造成喪失修改。,62,,63,,軟件開發(fā)人員根據(jù)ECO從工程數(shù)據(jù)庫中提出待修改對(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),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ā)布該版本,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是否已一并修改?,66,,配置狀況報(bào)告,,,建立并發(fā)布配置狀況報(bào)告(Configuration Status Reporting,簡(jiǎn)稱CSR)是軟件配置管理的一項(xiàng)任務(wù).,,CSR主要概述以下問題:發(fā)生了什么事情;誰做的;何時(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ù)庫中,供開發(fā)人員和維護(hù)人員隨時(shí)按關(guān)鍵字查詢,67,,軟件質(zhì)量保證,計(jì)算機(jī)軟件質(zhì)量是軟件的一些內(nèi)部特性及其組合,質(zhì)量不是在軟件產(chǎn)品中被測(cè)試出來的,而是在軟件開發(fā)和生產(chǎn)過程中形成的。,,軟件質(zhì)量(Software quality)的定義為:,,(1)軟件產(chǎn)品中能滿足給定需要的性質(zhì)和特性的總體。,,(2)軟件具有所期望的各種屬性的組合程度。,,(3)顧客和用戶覺得軟件滿足其綜合期望的程度。,,(4)確定軟件在使用中將滿足顧客預(yù)期要求的程度。,,為保證軟件充分滿足用戶要求而進(jìn)行的有方案、有組織的活動(dòng)稱為軟件質(zhì)量保證,其目的是生產(chǎn)高質(zhì)量的軟件。,68,,軟件質(zhì)量的特性,軟件質(zhì)量是指軟件滿足明確規(guī)定或隱含定義的需求的程度。,,軟件質(zhì)量的要點(diǎn):,,軟件功能必須滿足用戶規(guī)定的需求;,,軟件應(yīng)遵守規(guī)定標(biāo)準(zhǔn)所定義的一系列開發(fā)準(zhǔn)則;,,軟件應(yīng)滿足某些隱含的需求。如,可理解性、可維護(hù)性等。,69,,軟件質(zhì)量的特性:,,功能性:軟件的功能到達(dá)它的設(shè)計(jì)標(biāo)準(zhǔn)和能滿足用戶需求的程度,,可靠性:在規(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)行能力,70,,軟件質(zhì)量保證措施,軟件質(zhì)量保證是軟件工程管理的重要內(nèi)容。,,,包括以下措施:,,應(yīng)用好的技術(shù)方法,,測(cè)試軟件,,進(jìn)行正式的技術(shù)評(píng)審,,標(biāo)準(zhǔn)的實(shí)施,,控制變更,,程序正確性證明,,記錄、保存和報(bào)告軟件過程信息,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ù)水平;,,提高軟件人員之間的通信效率,減少過失和誤解;,,有利于軟件管理;,,有利于降低軟件產(chǎn)品的本錢和運(yùn)行維護(hù)本錢;,,有利于縮短軟件開發(fā)周期。,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)效勞的一系列活動(dòng)或操作有關(guān)。過程標(biāo)準(zhǔn)使用一組方法、工具和技術(shù),給出“誰來做〞、“做什么〞、“如何做〞、“何時(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è)行為標(biāo)準(zhǔn)。,,記法標(biāo)準(zhǔn)規(guī)定了在軟件工程行業(yè)范圍內(nèi),以唯一的方式進(jìn)行交流的方法,如術(shù)語、表示法、語言等。,,(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)。,73,,根據(jù)以上兩種分類方法,軟件工程標(biāo)準(zhǔn)可用一張二維表格來表示。,74,,75,,上述兩表給出了二維表的大致格式。其中,給出了GB/T 9385-1988、GB/T 1526-1989、GB/T 8566-1995這3個(gè)標(biāo)準(zhǔn)的例子,用于說明各個(gè)標(biāo)準(zhǔn)的類型及其作用。,,1. GB/T 9385-1988是原電子工業(yè)部批準(zhǔn)的《計(jì)算機(jī)軟件需求說明編制指南》,用于指導(dǎo)軟件需求規(guī)格說明書的編寫。,,2. GB/T 1526-1989是國家標(biāo)準(zhǔn)總局批準(zhǔn)的信息處理——數(shù)據(jù)流圖、程序流程圖、系統(tǒng)結(jié)構(gòu)圖、程序網(wǎng)絡(luò)圖、系統(tǒng)資源圖的文件編制符號(hào)及約定。,,3. GB/T 8566-1995是國家標(biāo)準(zhǔn)總局批準(zhǔn)的信息技術(shù)——軟件生存期過程標(biāo)準(zhǔn),它規(guī)定了在獲取、供給、開發(fā)、操作、維護(hù)軟件和固件的軟件局部時(shí),要實(shí)施的過程、活動(dòng)和任務(wù)。目的是為用戶提供一個(gè)公共的框架,使軟件從業(yè)人員可以使用“相同的語言〞創(chuàng)作和管理軟件。,76,,軟件工程標(biāo)準(zhǔn)編制的層次,,根據(jù)軟件工程標(biāo)準(zhǔn)制定的機(jī)構(gòu)和標(biāo)準(zhǔn)適用的范圍,可分為5個(gè)層次:國際標(biāo)準(zhǔn)、國家標(biāo)準(zhǔn)、行業(yè)標(biāo)準(zhǔn)、企業(yè)(機(jī)構(gòu))標(biāo)準(zhǔn)、工程(課題)標(biāo)準(zhǔn)。,,1. 國際標(biāo)準(zhǔn):由國際聯(lián)合機(jī)構(gòu)制定和公布的標(biāo)準(zhǔn),供各國參考。,,如ISO——國際標(biāo)準(zhǔn)化組織。,,2. 國家標(biāo)準(zhǔn):由政府或國家級(jí)的機(jī)構(gòu)制定或批準(zhǔn),適用于全國范圍。,,如GB——中國國標(biāo)、ANSI_美國國家標(biāo)準(zhǔn)協(xié)會(huì)、BS——英國國家標(biāo)準(zhǔn)、JIS——日本工業(yè)標(biāo)準(zhǔn)。,,3. 行業(yè)標(biāo)準(zhǔn):由行業(yè)機(jī)構(gòu)、學(xué)術(shù)團(tuán)體或國防等機(jī)構(gòu)制定,適用于某個(gè)業(yè)務(wù)領(lǐng)域。,,如IEEE——美國電氣和電子工程師學(xué)會(huì)、GJB——中國國家軍用標(biāo)準(zhǔn)。,,4. 企業(yè)標(biāo)準(zhǔn):企業(yè)因軟件工程工作的需要制定的適用于本企業(yè)的標(biāo)準(zhǔn)。,,如IBM通用產(chǎn)品部于1984年制定的《程序設(shè)計(jì)開發(fā)指南》。,,5. 工程標(biāo)準(zhǔn):由某一科研生產(chǎn)工程組織制定,僅為該工程任務(wù)效勞的軟件工程標(biāo)準(zhǔn)。,,如CIMS——計(jì)算機(jī)集成制造系統(tǒng)——軟件工程標(biāo)準(zhǔn)。,77,,中國的軟件標(biāo)準(zhǔn),,1983年起,我國陸續(xù)制定和發(fā)布了20余項(xiàng)軟件工程國家標(biāo)準(zhǔn)。這些標(biāo)準(zhǔn)可以分為以下四類:,,1. 基礎(chǔ)標(biāo)準(zhǔn):規(guī)定了信息加工處理和軟件工程領(lǐng)域的術(shù)語、符號(hào)、表示、構(gòu)造、分類級(jí)約定;,,2. 開發(fā)標(biāo)準(zhǔn):規(guī)定了軟件生存期過程、軟件支持環(huán)境、軟件記錄處理流程、軟件維護(hù)等的工作標(biāo)準(zhǔn);,,3. 文檔標(biāo)準(zhǔn):規(guī)定了軟件產(chǎn)品、需求、測(cè)試、管理等文檔的編制標(biāo)準(zhǔn);,,4. 管理標(biāo)準(zhǔn):規(guī)定了軟件配置管理方案、質(zhì)量保證方案、產(chǎn)品質(zhì)量特性、軟件可靠性和可維護(hù)性管理等的標(biāo)準(zhǔn)和工作要素。,,下表列出了我國局部軟件工程標(biāo)準(zhǔn)的名稱及其標(biāo)準(zhǔn)號(hào):,78,,類型,標(biāo)準(zhǔn)名稱,標(biāo)準(zhǔn)號(hào),,基,,礎(chǔ),,標(biāo),,準(zhǔn),軟件工程術(shù)語,GB/T 11457-1989,,信息處理,——,數(shù)據(jù)流程、程序流程圖、系統(tǒng)結(jié)構(gòu)圖、程序網(wǎng)絡(luò)圖、系統(tǒng)資源圖的文件編制符號(hào)及約定,GB/T 1526-1989,,軟件工程標(biāo)準(zhǔn)分類法,GB/T 15538-1995,,信息處理,——,程序構(gòu)造及其表示法的約定,GB/T 13502-1992,,信息處理,——,單命中判定表規(guī)范,GB/T 15535-1995(ISO 5806),,信息處理系統(tǒng),——,計(jì)算機(jī)系統(tǒng)配置圖符號(hào)及其約定,GB/T 14085-1993(ISO 8790),開,,發(fā),,標(biāo),,準(zhǔn),信息技術(shù),——,軟件生存期過程,GB/T 8566-1995,,軟件支持環(huán)境,GB/T 15853-1995,,信息處理,——,按記錄組處理順序文卷的程序流程,GB/T 15697-1995(ISO 6593),,軟件維護(hù)指南,GB/T 14079-1993,文,,檔,,標(biāo),,準(zhǔn),計(jì)算機(jī)軟件產(chǎn)品開發(fā)文檔編制指南,GB/T 8567-1988,,計(jì)算機(jī)軟件需求說明編制指南,GB/T 9385-1988,,計(jì)算機(jī)軟件測(cè)試文檔編制規(guī)范,GB/T 9386-1988,,軟件文檔管理指南,GB/T 16680-1996,管,,理,,標(biāo),,準(zhǔn),計(jì)算機(jī)軟件配置管理計(jì)劃規(guī)范,GB/T 12505-1990,,信息技術(shù),——,軟件產(chǎn)品評(píng)價(jià)質(zhì)量特性及其使用指南,GB/T 16260-1996,,計(jì)算機(jī)軟件質(zhì)量保證計(jì)劃規(guī)范,GB/T 12504-1990,,計(jì)算機(jī)軟件可靠性和可維護(hù)性管理,GB/T 14394-1993,79,,軟件工程標(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ā)起,撤銷,80,,1. 建議——擬定初步的建議方案,,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)加以完善。,81,,軟件文檔的分類,,國家標(biāo)準(zhǔn)局在1988年1月公布了《計(jì)算機(jī)軟件開發(fā)標(biāo)準(zhǔn)》和《計(jì)算機(jī)軟件產(chǎn)品開發(fā)文件編制指南》,作為軟件開發(fā)和文檔編制工作的準(zhǔn)則和規(guī)程。,,基于軟件生存期方法,可以從形式上將軟件文檔大致分成兩類:軟件開發(fā)過程中需要填寫的各種圖表,及應(yīng)編制的各種技術(shù)文件或管理資料。,,軟件文檔根據(jù)其產(chǎn)生和使用的范圍,主要?jiǎng)澐譃?大類:開發(fā)文檔、用戶文檔和管理文檔。,軟件文檔,開發(fā)文檔,用戶文檔,管理文檔,可行性研究報(bào)告,工程開發(fā)方案,軟件需求說明書,數(shù)據(jù)庫設(shè)計(jì)說明書,概要設(shè)計(jì)說明書,詳細(xì)設(shè)計(jì)說明書,用戶手冊(cè),操作手冊(cè),軟件需求說明書,數(shù)據(jù)要求說明書,工程開發(fā)方案,模塊開發(fā)卷宗,開發(fā)進(jìn)度月報(bào),測(cè)試方案,測(cè)試分析報(bào)告,工程開發(fā)總結(jié)報(bào)告,82,,1. 開發(fā)文檔,,開發(fā)文檔主要負(fù)責(zé)對(duì)軟件開發(fā)過程進(jìn)行描述和標(biāo)準(zhǔn)。開發(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í),管理者將失去跟蹤和控制軟件工程的重要工具;,,(4) 形成系統(tǒng)維護(hù)人員所要求的根本的軟件支持文檔,并構(gòu)成產(chǎn)品文檔 的一局部;,,(5) 記錄軟件開發(fā)的歷史。,83,,2. 用戶文檔,,用戶文檔主要負(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)推廣。,,用戶文檔的提供通常可以包括以下形式:產(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ā)策略和方案。,84,,3. 管理文檔,,管理文檔主要是對(duì)軟件開發(fā)過程的管理信息進(jìn)行描述。管理文檔除了前面列表內(nèi)容,還應(yīng)該包括被管理者的反應(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)定、方案、實(shí)施等工作的記錄。,85,,軟件文檔與使用者的關(guān)系,,,軟件開發(fā)中產(chǎn)生的各類文檔面向不同的用戶,而軟件用戶應(yīng)該得到的文檔也在商業(yè)合同中有明確規(guī)定。,軟件文檔的使用對(duì)象,開發(fā)人員,維護(hù)人員,管理人員,用 戶,可行性研究報(bào)告,工程開發(fā)方案,軟件需求說明書,數(shù)據(jù)要求說明書,概要設(shè)計(jì)說明書,詳細(xì)設(shè)計(jì)說明書,數(shù)據(jù)庫設(shè)計(jì)說明書,測(cè)試方案,測(cè)試分析報(bào)告,設(shè)計(jì)說明書,測(cè)試分析報(bào)告,模塊開發(fā)卷宗,可行性研究報(bào)告,工程開發(fā)方案,模塊開發(fā)卷宗,開發(fā)進(jìn)度月報(bào),工程開發(fā)總結(jié)報(bào)告,用戶手冊(cè),操作手冊(cè),86,,軟件文檔編制與軟件生存期的關(guān)系,,軟件文檔的編制是隨著軟件生存期各個(gè)階段工作的開展而適時(shí)進(jìn)行的。其中,有的僅反映某一階段的工作,有的則需要跨越多個(gè)階段的工作。,87,,軟件文檔最終需要答復(fù)讀者關(guān)心的以下問題:,,1. 為什么要開發(fā)、維護(hù)或修改這個(gè)軟件?(Why),,2. 工作目標(biāo)要滿足哪些需求?(What),,3. 需求應(yīng)如何實(shí)現(xiàn)?(How),,4. 開發(fā)、維護(hù)或修改的工作應(yīng)由誰來完成?(Who),,5. 開發(fā)工作的時(shí)間如何安排?(When),,6. 開發(fā)工作在什么環(huán)境中實(shí)現(xiàn),所需信息從何而來?(Where),88,,89,,