軟件工程與項(xiàng)目管理(第2版) 課件 (王素芬)第3、4章 可行性與計(jì)劃研究、需求分析_第1頁
軟件工程與項(xiàng)目管理(第2版) 課件 (王素芬)第3、4章 可行性與計(jì)劃研究、需求分析_第2頁
軟件工程與項(xiàng)目管理(第2版) 課件 (王素芬)第3、4章 可行性與計(jì)劃研究、需求分析_第3頁
軟件工程與項(xiàng)目管理(第2版) 課件 (王素芬)第3、4章 可行性與計(jì)劃研究、需求分析_第4頁
軟件工程與項(xiàng)目管理(第2版) 課件 (王素芬)第3、4章 可行性與計(jì)劃研究、需求分析_第5頁
已閱讀5頁,還剩77頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

3.1軟件項(xiàng)目立項(xiàng)方法

3.2可行性研究

3.3系統(tǒng)流程圖

3.4軟件項(xiàng)目規(guī)模成本估算

3.5成本—效益分析

3.6制訂軟件開發(fā)計(jì)劃

3.7軟件項(xiàng)目立項(xiàng)文檔

3.8軟件項(xiàng)目團(tuán)隊(duì)的建立3.1軟件項(xiàng)目立項(xiàng)方法3.1.1委托開發(fā)項(xiàng)目委托開發(fā)項(xiàng)目即用戶為實(shí)現(xiàn)某一特定目標(biāo)而委托軟件開發(fā)單位所完成的軟件開發(fā)。委托開發(fā)項(xiàng)目又可分為公開招標(biāo)項(xiàng)目和定向委托項(xiàng)目兩種。委托開發(fā)項(xiàng)目一般是通過招標(biāo)、投標(biāo)的形式開始的,作為軟件的客戶(需求方)根據(jù)自己的需要,提出軟件的基本需求,并編寫招標(biāo)書,同時(shí)將招標(biāo)書以各種方式傳遞給競標(biāo)方,所有的競標(biāo)方都會(huì)認(rèn)真地編寫建議書。每一個(gè)競標(biāo)方都會(huì)思考如何以較低的費(fèi)用和較高的質(zhì)量來解決客戶的問題,然后都會(huì)交付一份對(duì)問題理解的說明書以及相應(yīng)的解決方案,同時(shí)也會(huì)附上一些資質(zhì)證明和自己參與類似項(xiàng)目的經(jīng)驗(yàn)介紹,以向客戶強(qiáng)調(diào)各自的資歷和能力。有時(shí),為了最后中標(biāo),競標(biāo)單位會(huì)花大力氣開發(fā)一個(gè)系統(tǒng)原型去競標(biāo)。在眾多能夠較好滿足客戶需要的投標(biāo)書中,客戶會(huì)選擇一個(gè)競標(biāo)方。其間,競標(biāo)方會(huì)與客戶進(jìn)行各種公開和私下的討論以及各種公關(guān)活動(dòng),這是售前的任務(wù)。此時(shí),作為競標(biāo)方的項(xiàng)目經(jīng)理已經(jīng)參與其中的工作,經(jīng)過幾個(gè)回合的切磋,如果得到用戶的認(rèn)可,并獲得中標(biāo)后,則開始著手合同書的編寫等相關(guān)事宜,這時(shí),就有質(zhì)量保證人員和相關(guān)的法律人員介入。合同簽訂是一個(gè)重要的里程碑,也表明競標(biāo)方跨過了一個(gè)非常重要的溝壑(GAP)。軟件項(xiàng)目合同主要是技術(shù)合同,技術(shù)合同是法人與法人之間、法人和公民之間、公民與公民之間以技術(shù)開發(fā)、技術(shù)轉(zhuǎn)讓、技術(shù)咨詢和技術(shù)服務(wù)為內(nèi)容,明確相互權(quán)利義務(wù)關(guān)系所達(dá)成的協(xié)議。3.1.2自主開發(fā)項(xiàng)目自主開發(fā)項(xiàng)目即為軟件開發(fā)單位根據(jù)市場需求或科學(xué)研究需要而開發(fā)的具有自主知識(shí)產(chǎn)權(quán)的軟件項(xiàng)目。自主開發(fā)軟件項(xiàng)目或產(chǎn)品必須先立項(xiàng),然后才能開發(fā)或施工。立項(xiàng)的具體表現(xiàn)形式是在市場調(diào)研的基礎(chǔ)上,分析立項(xiàng)的必要性(是否有市場前景)和可能性(是否有能力實(shí)現(xiàn)),并具體列出系統(tǒng)的功能、性能、接口、運(yùn)行環(huán)境等方面的需求,當(dāng)前客戶群和潛在客戶群的情況,以及投入產(chǎn)出分析。然后再按照編寫參考指南書寫立項(xiàng)建議書,并對(duì)其進(jìn)行評(píng)審,評(píng)審?fù)ㄟ^以后才算正式立項(xiàng)。立項(xiàng)后應(yīng)有項(xiàng)目任務(wù)書或項(xiàng)目合同書作為項(xiàng)目開發(fā)的輸入項(xiàng)。3.2可?行?性?研?究3.2.1可行性研究的內(nèi)容可行性研究一般可從技術(shù)可行性、經(jīng)濟(jì)可行性、社會(huì)可行性及方案可行性4個(gè)方面進(jìn)行。(1)技術(shù)可行性:對(duì)要開發(fā)的項(xiàng)目的功能、性能、限制條件進(jìn)行分析,確定在現(xiàn)有的資源條件下,技術(shù)風(fēng)險(xiǎn)有多大,項(xiàng)目是否能實(shí)現(xiàn)。技術(shù)可行性是最難解決的,它一般要包括:①開發(fā)的風(fēng)險(xiǎn):在給出的限制范圍內(nèi),能否設(shè)計(jì)出系統(tǒng)并實(shí)現(xiàn)必需的功能和性能。②資源的有效性:人力資源以及用于建立系統(tǒng)的其他資源是否具備。③技術(shù):目前的技術(shù)水平能否支持這個(gè)系統(tǒng)。④開發(fā)人員在評(píng)估技術(shù)可行性時(shí),一旦估計(jì)錯(cuò)誤,將會(huì)出現(xiàn)災(zāi)難性后果。(2)經(jīng)濟(jì)可行性:進(jìn)行開發(fā)成本的估算以及了解取得效益的評(píng)估,確定要開發(fā)的項(xiàng)目是否值得投資開發(fā)。(3)社會(huì)可行性:又被稱為法律可行性,即要開發(fā)的項(xiàng)目是否存在任何侵犯、妨礙等責(zé)任問題,要開發(fā)項(xiàng)目的運(yùn)行方式在用戶組織內(nèi)是否行得通,現(xiàn)有管理制度、人員素質(zhì)、操作方式是否可行。(4)方案可行性:提出并評(píng)價(jià)實(shí)現(xiàn)系統(tǒng)的各種開發(fā)方案并從中選出一種最優(yōu)方案。3.2.2可行性研究的步驟典型的可行性分析有下列步驟:(1)確定項(xiàng)目規(guī)模和目標(biāo)。(2)研究正在運(yùn)行的系統(tǒng)。(3)建立新系統(tǒng)的高層邏輯模型。(4)導(dǎo)出和評(píng)價(jià)各種方案。(5)推薦可行的方案。(6)編寫可行性研究報(bào)告。3.3系?統(tǒng)?流?程?圖系統(tǒng)分析員在進(jìn)行可行性研究時(shí)需要了解和分析現(xiàn)有的系統(tǒng),并以概括的形式表達(dá)對(duì)現(xiàn)有系統(tǒng)的認(rèn)識(shí)。而在進(jìn)入設(shè)計(jì)階段以后還需將設(shè)想的新系統(tǒng)的邏輯模型轉(zhuǎn)變成物理模型,因此需要描繪未來的物理系統(tǒng)的概貌。系統(tǒng)流程圖是概括地描繪物理系統(tǒng)的傳統(tǒng)工具。它的基本思想是用圖形符號(hào)以黑盒子形式描繪組成系統(tǒng)的每個(gè)部件(程序、文檔、數(shù)據(jù)庫、人工過程等)。系統(tǒng)流程圖表達(dá)的是數(shù)據(jù)在系統(tǒng)各部件之間流動(dòng)的情況,而不是對(duì)數(shù)據(jù)進(jìn)行加工處理的控制過程,因此盡管系統(tǒng)流程圖的某些符號(hào)和程序流程圖的符號(hào)形式相同,但是它表示的是物理數(shù)據(jù)流圖而不是程序流程圖。1.系統(tǒng)流程圖的符號(hào)系統(tǒng)流程圖的圖形符號(hào)比較簡單,也較容易理解。一個(gè)圖形符號(hào)代表一種物理部件,這些部件可以是程序、文件、數(shù)據(jù)庫、表格、人工過程等。系統(tǒng)流程圖的基本符號(hào)如表3.1所示。3.4軟件項(xiàng)目規(guī)模成本估算3.4.1代碼行估算技術(shù)代碼行估算技術(shù)是一種簡單而直觀的軟件規(guī)模估算方法,它從過去開發(fā)類似產(chǎn)品的經(jīng)驗(yàn)和歷史數(shù)據(jù)出發(fā),估算出所開發(fā)軟件的代碼行數(shù)。開發(fā)人員需要給出軟件的范圍描述,并進(jìn)一步將軟件分解成一些盡量小且可分別獨(dú)立估算的子功能,通過估算每一個(gè)子功能并將其代碼行數(shù)累加得到整個(gè)系統(tǒng)的代碼行數(shù)。估算時(shí),要求評(píng)估人員給出樂觀的(a)、可能的(m)、悲觀的(b)?3種情況,并采用以下公式計(jì)算估算結(jié)果,其中L是軟件的代碼行數(shù),單位是行代碼LOC或千行代碼KLOC。計(jì)算代碼行應(yīng)遵循以下原則:(1)保證每個(gè)計(jì)算的“源代碼行”只包含一個(gè)源語句;(2)計(jì)算所有交付的、可執(zhí)行的語句;(3)數(shù)據(jù)定義只計(jì)算一次;(4)計(jì)算注釋行;(5)不計(jì)算測試行、測試用例、開發(fā)工具、原型工具等使用的調(diào)試代碼或臨時(shí)代碼;(6)在每一個(gè)出現(xiàn)的地方,每條宏的調(diào)用、激活或包含都作為源代碼的一部分。3.4.2功能點(diǎn)估算法功能點(diǎn)估算法是一種在需求分析階段基于系統(tǒng)功能的規(guī)模估計(jì)方法。通過研究初始應(yīng)用需求來確定各種輸入、輸出、計(jì)算和數(shù)據(jù)庫需求的數(shù)量和特性。這種方法的計(jì)算公式是:功能點(diǎn)?=?信息處理規(guī)模?×?技術(shù)復(fù)雜度信息處理規(guī)模包括各種輸入、輸出、查詢、內(nèi)部邏輯文件數(shù)、外部接口文件數(shù)等。技術(shù)復(fù)雜度包括性能復(fù)雜度、配置項(xiàng)目復(fù)雜度、數(shù)據(jù)通信復(fù)雜度、分布式處理復(fù)雜度、在線更新復(fù)雜度等。功能點(diǎn)技術(shù)采用軟件執(zhí)行功能的數(shù)量和復(fù)雜程度來衡量軟件規(guī)模,適合于度量信息系統(tǒng)。這種方法根據(jù)軟件信息域的基本特征和對(duì)軟件復(fù)雜性的估計(jì)進(jìn)行估算,其計(jì)算過程如下:(1)計(jì)算每一個(gè)類別中的功能數(shù)量;(2)應(yīng)用復(fù)雜度權(quán)重因子計(jì)算未調(diào)整的功能點(diǎn);(3)應(yīng)用環(huán)境因素計(jì)算復(fù)雜度調(diào)整因子;(4)計(jì)算調(diào)整后的功能點(diǎn);(5)將最后得出的功能點(diǎn)轉(zhuǎn)化為代碼行數(shù)。功能點(diǎn)技術(shù)的優(yōu)點(diǎn)是與開發(fā)語言無關(guān),考慮了應(yīng)用環(huán)境因素的影響,它可以在開發(fā)初期進(jìn)行估算;其缺點(diǎn)是在判斷信息域的復(fù)雜等級(jí)和技術(shù)因素的影響程度時(shí)通常存在較大的主觀性,不太適用于非信息系統(tǒng)。3.4.3類比估算法類比估算法也被稱為自上而下的估算,是一種通過比照已完成的類似項(xiàng)目的實(shí)際成本,去估算出新項(xiàng)目成本的方法,估算人員根據(jù)以往完成類似項(xiàng)目所消耗的總成本(或工作量)來推算將要開發(fā)的軟件的總成本(或工作量),然后按比例將它分配到各個(gè)開發(fā)任務(wù)單元中,是一種自上而下的估算形式。通常在項(xiàng)目的初期或信息不足時(shí)(例如在合同期和市場招標(biāo)時(shí))采用此方法。它的特點(diǎn)是簡單易行、花費(fèi)少,但是具有一定的局限性,準(zhǔn)確性差,可能導(dǎo)致項(xiàng)目出現(xiàn)困難。3.4.4自下而上估算法自下而上估算法是利用任務(wù)分解結(jié)構(gòu)圖,對(duì)各個(gè)具體工作包進(jìn)行詳細(xì)的成本估算,然后將結(jié)果累加起來得出項(xiàng)目總成本。用這種方法估算的準(zhǔn)確度較好,通常是在項(xiàng)目開始以后或者WBS(工作分解結(jié)構(gòu))已經(jīng)確定的開發(fā)階段等需要進(jìn)行準(zhǔn)確估算的時(shí)候采用。這種方法的特點(diǎn)是估算準(zhǔn)確。它的準(zhǔn)確度來源于每個(gè)任務(wù)的估算情況。但是這種方法非常費(fèi)時(shí)費(fèi)力,因?yàn)楣浪惚旧硪残枰杀局С?,而且可能發(fā)生虛報(bào)現(xiàn)象。3.4.5專家估算法專家估算法依靠一個(gè)或多個(gè)專家對(duì)項(xiàng)目做出估算,其精度主要取決于專家對(duì)估算項(xiàng)目的定性參數(shù)的了解程度和他們的經(jīng)驗(yàn)。一般情況下,專家估算法是由多位專家進(jìn)行成本估算,一位專家可能會(huì)有偏見,最好由多位專家進(jìn)行估算,取得多個(gè)估算值,最后得出綜合的估算值。其中最著名的是Deiphi方法,其基本步驟如下:(1)組織者發(fā)給每位專家一份軟件系統(tǒng)的規(guī)格說明和一張記錄估算值的表格,請(qǐng)專家估算。(2)專家詳細(xì)研究軟件規(guī)格說明后,對(duì)該軟件提出3個(gè)規(guī)模的估算值:①最小值ai;②最可能值mi;③最大值bi。(3)組織者對(duì)專家表格中的答復(fù)進(jìn)行整理,計(jì)算每位專家的平均值Ei?=?(a?+?4mi?+?b)/6,然后計(jì)算出期望值:E?=?E1?+?E2?+?…?+?En/n。(4)綜合結(jié)果后,再組織專家無記名填表格,比較估算偏差,并查找原因。(5)上述過程重復(fù)多次,最終可以獲得一個(gè)由多數(shù)專家認(rèn)可的軟件規(guī)模。3.5成本—效益分析成本—效益分析的目的是從經(jīng)濟(jì)角度分析開發(fā)一個(gè)特定的新系統(tǒng)是否劃算,從而幫助客戶組織的負(fù)責(zé)人正確地做出是否投資于這項(xiàng)開發(fā)工程的決定。成本—效益分析首先估算將要開發(fā)的系統(tǒng)的開發(fā)成本,然后與可能取得的效益進(jìn)行比較和權(quán)衡。效益分為有形效益和無形效益兩種。有形效益可以用貨幣的時(shí)間價(jià)值、投資回收期、純收入等經(jīng)濟(jì)指標(biāo)來衡量;無形效益無法進(jìn)行定量的分析,主要從性質(zhì)上、心理上進(jìn)行衡量和比較。系統(tǒng)的經(jīng)濟(jì)效益等于因使用新的系統(tǒng)而增加的收入加上使用新的系統(tǒng)可以節(jié)省的運(yùn)行費(fèi)用。運(yùn)行費(fèi)用包括操作人員數(shù)、工作時(shí)間、消耗的物資等。下面主要進(jìn)行有形效益的分析。1.貨幣的時(shí)間價(jià)值通常以利率形式表示貨幣的時(shí)間價(jià)值。假設(shè)年利率為i,如果現(xiàn)在存入P元,則n年后可得到的錢數(shù)為F就是P元錢在n年后的價(jià)值。反之,如果n年后能收入F元錢,那么這些錢現(xiàn)在的價(jià)值是

2.投資回收期所謂投資回收期,就是工程累計(jì)經(jīng)濟(jì)效益等于最初投資所需要的時(shí)間。顯然,投資回收期越短獲得的利潤越快,這項(xiàng)工程就值得投資。3.純收入衡量工程價(jià)值的另一項(xiàng)經(jīng)濟(jì)指標(biāo)是工程的純收入,也就是在整個(gè)生存周期內(nèi)新系統(tǒng)的累計(jì)經(jīng)濟(jì)效益與投資之差。這相當(dāng)于比較投資開發(fā)一個(gè)軟件系統(tǒng)和把錢存入銀行這兩種方案的優(yōu)劣。但是開發(fā)一個(gè)系統(tǒng)要冒風(fēng)險(xiǎn),因此從經(jīng)濟(jì)觀點(diǎn)來看這項(xiàng)工程可能是不值得投資的。如果純收入小于等于零,則單從經(jīng)濟(jì)觀點(diǎn)來看,這項(xiàng)工程不值得投資。4.投資回收率利用工程投資回收率,可以衡量投資效益的大小,并且可以將它和年利率相比較。假定已知現(xiàn)在的投資額,并已估計(jì)出將來每年可以獲得的經(jīng)濟(jì)效益,給定軟件的使用壽命,如何計(jì)算投資回收率呢?設(shè)想把數(shù)量等于投資額的資金存入銀行,每年從銀行取回的錢等于系統(tǒng)每年可以獲得的效益,在時(shí)間等于系統(tǒng)壽命時(shí),正好把銀行中的存款全部取完,那么,年利率等于多少呢?這個(gè)假想的年利率就等于投資的回收率。根據(jù)上述條件不難列出下面的方程式:其中,P是現(xiàn)在的投資額,F(xiàn)i是第i年年底的效益(i?=?1,2,3,…,n),n是系統(tǒng)的使用壽命,j是投資回收率。解出上述方程式就可求出投資回收率。3.6制訂軟件開發(fā)計(jì)劃3.6.1軟件項(xiàng)目開發(fā)計(jì)劃書的內(nèi)容根據(jù)項(xiàng)目管理知識(shí)體系(PMBOK)PMBOK2000,軟件項(xiàng)目開發(fā)計(jì)劃書可以包含如下要素:(1)項(xiàng)目范圍說明。項(xiàng)目范圍說明闡述進(jìn)行這個(gè)項(xiàng)目的原因或意義,形成項(xiàng)目的基本框架,使項(xiàng)目所有者或項(xiàng)目管理者能夠系統(tǒng)地、邏輯地分析項(xiàng)目關(guān)鍵問題及項(xiàng)目形成中的相互作用要素,使項(xiàng)目干系人在項(xiàng)目開始實(shí)施前或項(xiàng)目相關(guān)文檔編寫以前,能夠就項(xiàng)目的基本內(nèi)容和結(jié)構(gòu)達(dá)成一致;項(xiàng)目范圍說明應(yīng)當(dāng)形成項(xiàng)目成果核對(duì)清單,作為項(xiàng)目評(píng)估的依據(jù),在項(xiàng)目終止以后或項(xiàng)目最終報(bào)告完成以前進(jìn)行評(píng)估,以此作為評(píng)價(jià)項(xiàng)目成敗的依據(jù);項(xiàng)目范圍說明還可以作為項(xiàng)目整個(gè)生命周期監(jiān)控和考核項(xiàng)目實(shí)施情況的基礎(chǔ)以及項(xiàng)目其他相關(guān)計(jì)劃的基礎(chǔ)。(2)項(xiàng)目進(jìn)度計(jì)劃。項(xiàng)目進(jìn)度計(jì)劃是說明項(xiàng)目中各項(xiàng)工作的開展順序、開始時(shí)間、完成時(shí)間及相互依賴銜接關(guān)系的計(jì)劃。通過進(jìn)度計(jì)劃的編制,使項(xiàng)目實(shí)施形成一個(gè)有機(jī)的整體。項(xiàng)目進(jìn)度計(jì)劃是進(jìn)度控制和管理的依據(jù),可以分為項(xiàng)目進(jìn)度控制計(jì)劃和項(xiàng)目狀態(tài)報(bào)告計(jì)劃。在項(xiàng)目進(jìn)度控制計(jì)劃中,要確定應(yīng)該監(jiān)督哪些工作,何時(shí)進(jìn)行監(jiān)督,監(jiān)督負(fù)責(zé)人是誰,用什么樣的方法收集和處理項(xiàng)目進(jìn)度信息,怎樣按時(shí)檢查工作進(jìn)展和采取什么調(diào)整措施,并把這些控制工作所需的時(shí)間和人員、技術(shù)、物資資源等列入項(xiàng)目總計(jì)劃中。項(xiàng)目進(jìn)度計(jì)劃常用的編制方法有甘特圖與網(wǎng)絡(luò)計(jì)劃法,下面著重介紹甘特圖。①甘特圖及其特點(diǎn)。甘特圖(GanttChart)由亨利·甘特于1910年開發(fā),他通過條狀圖來顯示項(xiàng)目、進(jìn)度和其他時(shí)間相關(guān)的系統(tǒng)進(jìn)展的內(nèi)在關(guān)系隨著時(shí)間進(jìn)展的情況。其中,橫軸表示時(shí)間,縱軸表示活動(dòng)(項(xiàng)目)。線條表示在整個(gè)期間計(jì)劃和實(shí)際活動(dòng)完成的情況。甘特圖可以直觀地表明任務(wù)計(jì)劃在什么時(shí)候進(jìn)行及實(shí)際進(jìn)展與計(jì)劃要求的對(duì)比。管理者由此可以非常便利地弄清每一項(xiàng)任務(wù)(項(xiàng)目)還剩下哪些工作要做,并可評(píng)估工作是提前還是滯后,抑或正常進(jìn)行。除此以外,甘特圖還有簡單、醒目、便于編制等特點(diǎn)。②制作甘特圖的方法。甘特圖中的符號(hào)及其含義如圖3.2所示。(3)項(xiàng)目質(zhì)量計(jì)劃。項(xiàng)目質(zhì)量計(jì)劃針對(duì)具體待定的項(xiàng)目,安排質(zhì)量監(jiān)控人員及相關(guān)資源,規(guī)定使用哪些制度、規(guī)范、程序和標(biāo)準(zhǔn)。項(xiàng)目質(zhì)量計(jì)劃應(yīng)當(dāng)包括保證與控制項(xiàng)目質(zhì)量有關(guān)的所有活動(dòng)。項(xiàng)目質(zhì)量計(jì)劃的目的是確保項(xiàng)目的質(zhì)量目標(biāo)都能達(dá)到。根據(jù)ISO9001要求和PMBOK2000,為實(shí)現(xiàn)質(zhì)量目標(biāo),組織應(yīng)遵循以顧客為中心、領(lǐng)導(dǎo)作用、全員參與、過程方法、管理的系統(tǒng)方法、持續(xù)改進(jìn)、基于事實(shí)的決策方法、互利的供方關(guān)系這8項(xiàng)質(zhì)量管理原則。(4)項(xiàng)目資源計(jì)劃。有了項(xiàng)目范圍計(jì)劃和進(jìn)度計(jì)劃后,項(xiàng)目資源計(jì)劃就是決定在項(xiàng)目中的每一項(xiàng)工作中用什么樣的資源(人、材料、設(shè)備、信息、資金等),在各個(gè)階段使用多少資源。(5)項(xiàng)目溝通計(jì)劃。項(xiàng)目溝通計(jì)劃就是制訂項(xiàng)目過程中項(xiàng)目干系人之間信息交流的內(nèi)容、人員范圍、溝通方式、溝通時(shí)間或頻率等溝通要求的約定。(6)風(fēng)險(xiǎn)對(duì)策計(jì)劃。風(fēng)險(xiǎn)對(duì)策計(jì)劃是為了降低項(xiàng)目風(fēng)險(xiǎn)的損害而分析風(fēng)險(xiǎn)、制訂風(fēng)險(xiǎn)應(yīng)對(duì)策略方案的過程,包括識(shí)別風(fēng)險(xiǎn)、量化風(fēng)險(xiǎn)、編制風(fēng)險(xiǎn)應(yīng)對(duì)策略方案等過程。(7)項(xiàng)目采購計(jì)劃。項(xiàng)目采購計(jì)劃過程就是識(shí)別哪些項(xiàng)目需求可通過從本企業(yè)外部采購產(chǎn)品或設(shè)備來得到滿足。如果是軟件開發(fā)工作的采購,也就是外包,則應(yīng)當(dāng)同時(shí)制訂對(duì)外包的進(jìn)度監(jiān)控和質(zhì)量控制的計(jì)劃。(8)變更控制、配置管理計(jì)劃。由于項(xiàng)目計(jì)劃無法保證一開始就預(yù)測得非常準(zhǔn)確,在項(xiàng)目進(jìn)行過程中也不能保證準(zhǔn)確有力的控制,導(dǎo)致項(xiàng)目計(jì)劃與項(xiàng)目實(shí)際情況不符的情況經(jīng)常發(fā)生,因此必須有效處理項(xiàng)目的變更。變更控制計(jì)劃主要是規(guī)定變更的步驟、程序,配置管理計(jì)劃就是確定項(xiàng)目的配置項(xiàng)和基線,控制配置項(xiàng)的變更,維護(hù)基線的完整性,向項(xiàng)目干系人提供配置項(xiàng)的準(zhǔn)確狀態(tài)和當(dāng)前配置數(shù)據(jù)。3.6.2軟件項(xiàng)目開發(fā)計(jì)劃書的編制過程由于軟件開發(fā)的手工性、個(gè)體性特征,軟件項(xiàng)目開發(fā)計(jì)劃不可能是一個(gè)靜態(tài)的計(jì)劃,因此在項(xiàng)目啟動(dòng)時(shí),可以先制訂一個(gè)顆粒度相對(duì)比較粗的項(xiàng)目計(jì)劃,先確定項(xiàng)目高層活動(dòng)和預(yù)期里程碑。粗顆粒度的項(xiàng)目計(jì)劃需要不斷地更新迭代,根據(jù)項(xiàng)目的大小和性質(zhì)以及項(xiàng)目的進(jìn)展情況進(jìn)行迭代和調(diào)整。迭代和調(diào)整的周期也是根據(jù)項(xiàng)目的情況進(jìn)行制訂的,一般短到一周,長到2個(gè)月左右。經(jīng)過不斷地進(jìn)行計(jì)劃制訂、調(diào)整、修訂等工作,項(xiàng)目計(jì)劃從最初的粗粒度,變得非常詳細(xì)。這樣的計(jì)劃將一直延續(xù)到項(xiàng)目結(jié)束,延續(xù)到項(xiàng)目的成果出現(xiàn)。制訂計(jì)劃的過程就是一個(gè)對(duì)項(xiàng)目逐漸了解掌握的過程,通過認(rèn)真地制訂計(jì)劃,項(xiàng)目經(jīng)理可以知道哪些要素是明確的,哪些要素是要逐漸明確的,通過漸進(jìn)明細(xì)不斷完善項(xiàng)目計(jì)劃。階段計(jì)劃中包含的工作匯報(bào)和下一階段工作安排是掌握項(xiàng)目進(jìn)度的依據(jù),從階段計(jì)劃對(duì)照總體計(jì)劃,才能一目了然地看出工作的進(jìn)展情況。制訂計(jì)劃的過程,也是在進(jìn)度、資源、范圍之間尋求一種平衡的過程。制訂計(jì)劃的精髓不在于寫出一份好看的文檔,而在于運(yùn)用你的智慧去應(yīng)對(duì)各種問題和面臨風(fēng)險(xiǎn)并盡可能做出前瞻性的思考。一旦計(jì)劃被負(fù)責(zé)任地完成,它就可以給你一個(gè)和管理層或客戶交流與協(xié)商的基礎(chǔ),幫助你在項(xiàng)目過程中防范各種問題的出現(xiàn),幫助你保證項(xiàng)目按時(shí)完成。企業(yè)確定要開始某個(gè)項(xiàng)目時(shí),一般會(huì)下達(dá)一個(gè)立項(xiàng)的文件,被稱為“項(xiàng)目立項(xiàng)文件”,主要內(nèi)容是遵照的合同或相關(guān)協(xié)議,項(xiàng)目的大致范圍,項(xiàng)目結(jié)束的截止時(shí)間和一些關(guān)鍵時(shí)間,指定項(xiàng)目經(jīng)理和部分項(xiàng)目成員等。接下來的軟件項(xiàng)目開發(fā)計(jì)劃書的編寫一般要按照以下過程執(zhí)行:(1)成立項(xiàng)目團(tuán)隊(duì)。相關(guān)部門收到經(jīng)過審批后的“項(xiàng)目立項(xiàng)文件”和相關(guān)資料后,在“項(xiàng)目立項(xiàng)文件”中指定的項(xiàng)目經(jīng)理正式組織項(xiàng)目團(tuán)隊(duì),成員可以隨著項(xiàng)目的進(jìn)展在不同時(shí)間加入項(xiàng)目團(tuán)隊(duì),也可以隨著分配的工作完成而退出項(xiàng)目團(tuán)隊(duì)。但最好都能在項(xiàng)目啟動(dòng)時(shí)參加項(xiàng)目啟動(dòng)會(huì)議,了解總體目標(biāo)、計(jì)劃,特別是自己的目標(biāo)職責(zé)、加入時(shí)間等。(2)項(xiàng)目開發(fā)準(zhǔn)備。項(xiàng)目經(jīng)理組織前期加入的項(xiàng)目團(tuán)隊(duì)成員準(zhǔn)備項(xiàng)目工作所需要的規(guī)范、工具和環(huán)境,如開發(fā)工具、源代碼管理工具、配置環(huán)境、數(shù)據(jù)庫環(huán)境等。前期加入的項(xiàng)目團(tuán)隊(duì)成員主要由計(jì)劃經(jīng)理、系統(tǒng)分析員等組成,但快要制訂好的項(xiàng)目計(jì)劃一定要盡可能經(jīng)過所有項(xiàng)目團(tuán)隊(duì)成員和項(xiàng)目干系人之間的充分溝通。如果項(xiàng)目中存在一些關(guān)鍵的(會(huì)影響項(xiàng)目成敗)技術(shù)風(fēng)險(xiǎn),則在這一階段項(xiàng)目經(jīng)理應(yīng)組織人員進(jìn)行預(yù)研。預(yù)研的結(jié)果應(yīng)留下書面結(jié)論以備評(píng)審。說明:軟件項(xiàng)目開發(fā)計(jì)劃書必須在相應(yīng)階段對(duì)項(xiàng)目目標(biāo)、階段目標(biāo)和各項(xiàng)任務(wù)進(jìn)行精確的定義,也就是要在相應(yīng)階段進(jìn)一步進(jìn)行項(xiàng)目目標(biāo)的細(xì)化工作,特別是在概要設(shè)計(jì)完成,詳細(xì)設(shè)計(jì)或編碼實(shí)現(xiàn)開始之前應(yīng)該對(duì)下一階段的目標(biāo)任務(wù)進(jìn)行細(xì)化。應(yīng)當(dāng)充分調(diào)查并掌握影響項(xiàng)目計(jì)劃的一切內(nèi)部和外部影響因素;應(yīng)當(dāng)盡可能充分地分析項(xiàng)目工作分解結(jié)構(gòu),通過分析項(xiàng)目工作分解結(jié)構(gòu),不僅可以獲得項(xiàng)目的靜態(tài)結(jié)構(gòu),而且通過邏輯分析,可以獲得項(xiàng)目各工作任務(wù)之間動(dòng)態(tài)的工作流程;應(yīng)當(dāng)將項(xiàng)目目標(biāo)、任務(wù)進(jìn)行分解,制訂詳細(xì)的實(shí)施方案。(3)項(xiàng)目信息收集。項(xiàng)目經(jīng)理組織項(xiàng)目團(tuán)隊(duì)成員通過分析接收的項(xiàng)目相關(guān)文檔,進(jìn)一步與用戶溝通等途徑,在規(guī)定的時(shí)間內(nèi)盡可能全面收集項(xiàng)目信息。項(xiàng)目信息收集要講究充分的、有效率的溝通,并要達(dá)成共識(shí)。通過電子郵件等方式溝通的效率不高,且不夠充分,因此重要的內(nèi)容需要開會(huì)進(jìn)行問與答(Q&A)討論,確保所有重要問題都得到理解,最終達(dá)成共識(shí)。討論會(huì)上達(dá)成共識(shí)的應(yīng)當(dāng)記錄成文字落實(shí)在具體的文檔中。(4)編寫《軟件項(xiàng)目計(jì)劃書》。項(xiàng)目經(jīng)理負(fù)責(zé)組織編寫《軟件項(xiàng)目計(jì)劃書》?!盾浖?xiàng)目計(jì)劃書》是項(xiàng)目策劃活動(dòng)的核心輸出文檔,它包括主體計(jì)劃書和以附件形式存在的其他相關(guān)計(jì)劃,如配置管理計(jì)劃等。《軟件項(xiàng)目計(jì)劃書》的編制參考《GB/T8567-2006計(jì)算機(jī)軟件產(chǎn)品開發(fā)文件編制指南》的項(xiàng)目開發(fā)計(jì)劃規(guī)范。各企業(yè)在建立ISO9001質(zhì)量管理體系或CMM過程中也會(huì)建立相應(yīng)的《軟件開發(fā)項(xiàng)目計(jì)劃書規(guī)范》。編制項(xiàng)目計(jì)劃的過程應(yīng)當(dāng)分為以下幾個(gè)步驟:①確定項(xiàng)目的應(yīng)交付成果。這里的項(xiàng)目的應(yīng)交付成果不僅是指項(xiàng)目的最終產(chǎn)品,也包括項(xiàng)目的中間產(chǎn)品。②任務(wù)分解。從項(xiàng)目目標(biāo)開始,從上到下,層層分解,確定實(shí)現(xiàn)項(xiàng)目目標(biāo)必須要做的各項(xiàng)工作,并畫出完整的工作分解結(jié)構(gòu)圖。軟件開發(fā)項(xiàng)目剛開始可能只能從階段的角度劃分,如需求分析工作、架構(gòu)設(shè)計(jì)工作、編碼工作、測試工作等,當(dāng)規(guī)模較大時(shí),也可把需求、設(shè)計(jì)拆分成不同的任務(wù)。特別是在概要設(shè)計(jì)完成時(shí),可以對(duì)下一階段的目標(biāo)任務(wù)進(jìn)行橫向的細(xì)化。③在資源獨(dú)立的假設(shè)前提下確定各個(gè)任務(wù)之間的相互依賴關(guān)系,以確定各個(gè)任務(wù)開始和結(jié)束時(shí)間的先后順序;獲得項(xiàng)目各工作任務(wù)之間動(dòng)態(tài)的工作流程。④確定每個(gè)任務(wù)所需的時(shí)間,即根據(jù)經(jīng)驗(yàn)或應(yīng)用相關(guān)方法給任務(wù)分配需要耗費(fèi)的時(shí)間;確定每個(gè)任務(wù)所需的人力資源要求,如需要什么技術(shù)、技能、知識(shí)、經(jīng)驗(yàn)、熟練程度等。⑤確定項(xiàng)目團(tuán)隊(duì)成員可以支配的時(shí)間,即每個(gè)項(xiàng)目成員具體花在項(xiàng)目中的確切時(shí)間;確定每個(gè)項(xiàng)目團(tuán)隊(duì)成員的角色構(gòu)成、職責(zé)、相互關(guān)系和溝通方式。⑥確定管理工作。管理工作是貫穿項(xiàng)目生命周期的,如項(xiàng)目管理、項(xiàng)目會(huì)議、編寫階段報(bào)告等。確定項(xiàng)目團(tuán)隊(duì)成員之間的溝通時(shí)間,項(xiàng)目團(tuán)隊(duì)成員和其他項(xiàng)目干系人之間的溝通時(shí)間也比較容易被忽視,而溝通時(shí)間也比較不容易被固定地量化和日程化。但這些工作在計(jì)劃中都應(yīng)當(dāng)充分地被考慮進(jìn)去,這會(huì)使項(xiàng)目計(jì)劃更加合理,更有效地減少因?yàn)橛?jì)劃的不合理而導(dǎo)致的項(xiàng)目進(jìn)度延期。⑦根據(jù)以上結(jié)果編制《項(xiàng)目總體進(jìn)度計(jì)劃》?!俄?xiàng)目總體進(jìn)度計(jì)劃》應(yīng)當(dāng)體現(xiàn)任務(wù)名稱、責(zé)任人、開始時(shí)間、結(jié)束時(shí)間以及應(yīng)提交的可檢查的工作成果。⑧考慮項(xiàng)目的費(fèi)用預(yù)算、可能的風(fēng)險(xiǎn)分析及其對(duì)策、需要公司內(nèi)部或客戶或其他方面協(xié)調(diào)或支持的事宜。(5)《軟件項(xiàng)目計(jì)劃書》評(píng)審、批準(zhǔn)。進(jìn)行《軟件項(xiàng)目計(jì)劃書》的評(píng)審、批準(zhǔn)是為了使相關(guān)人員達(dá)成共識(shí),減少不必要的錯(cuò)誤,使項(xiàng)目計(jì)劃更合理、更有效。項(xiàng)目經(jīng)理完成《軟件項(xiàng)目計(jì)劃書》后,首先組織項(xiàng)目團(tuán)隊(duì)內(nèi)部的項(xiàng)目團(tuán)隊(duì)負(fù)責(zé)人、測試負(fù)責(zé)人、系統(tǒng)分析負(fù)責(zé)人、設(shè)計(jì)負(fù)責(zé)人、質(zhì)量監(jiān)督員等對(duì)《軟件項(xiàng)目計(jì)劃書》進(jìn)行評(píng)審,評(píng)審可采取電子或會(huì)議方式,并進(jìn)行階段成果項(xiàng)目團(tuán)隊(duì)內(nèi)評(píng)閱記錄。應(yīng)當(dāng)要求所有相關(guān)人員在收到《軟件項(xiàng)目計(jì)劃書》后的一個(gè)約定時(shí)間內(nèi)反饋對(duì)計(jì)劃書的意見。項(xiàng)目經(jīng)理確保與所有人員就《軟件項(xiàng)目計(jì)劃書》中所列內(nèi)容達(dá)成一致。這種一致性是要求所有項(xiàng)目團(tuán)隊(duì)成員對(duì)項(xiàng)目計(jì)劃的內(nèi)容進(jìn)行承諾,無法承諾或者說是無法達(dá)成一致的,要么修改項(xiàng)目計(jì)劃去適應(yīng)某些項(xiàng)目團(tuán)隊(duì)成員,要么是由某些項(xiàng)目團(tuán)隊(duì)成員采取妥協(xié)措施,去適應(yīng)項(xiàng)目計(jì)劃的要求。項(xiàng)目經(jīng)理將已經(jīng)達(dá)成一致的《軟件項(xiàng)目計(jì)劃書》提交項(xiàng)目高層分管領(lǐng)導(dǎo)或其授權(quán)人員進(jìn)行審批,審批完成時(shí)間不能超過預(yù)先約定的時(shí)間。對(duì)于意義重大的項(xiàng)目,由過程控制部門(如質(zhì)量管理部)和項(xiàng)目分管領(lǐng)導(dǎo)同時(shí)對(duì)《軟件項(xiàng)目計(jì)劃書》進(jìn)行審批。批準(zhǔn)后的《軟件項(xiàng)目計(jì)劃書》作為項(xiàng)目活動(dòng)開展的依據(jù)和本企業(yè)進(jìn)行項(xiàng)目控制和檢查的依據(jù),并在必要時(shí)根據(jù)項(xiàng)目進(jìn)展情況實(shí)施計(jì)劃變更。項(xiàng)目質(zhì)量監(jiān)督員根據(jù)《軟件項(xiàng)目計(jì)劃書》和《軟件開發(fā)項(xiàng)目質(zhì)量計(jì)劃書規(guī)范》編制軟件開發(fā)項(xiàng)目質(zhì)量計(jì)劃。大型的項(xiàng)目應(yīng)當(dāng)編制單獨(dú)的《軟件開發(fā)項(xiàng)目質(zhì)量計(jì)劃書》;規(guī)模較小的可以在《軟件項(xiàng)目計(jì)劃書》的某個(gè)章節(jié)說明“軟件開發(fā)項(xiàng)目質(zhì)量計(jì)劃”,也可單獨(dú)編制類似《軟件開發(fā)項(xiàng)目質(zhì)量控制表》的文檔。配置管理員以《軟件項(xiàng)目計(jì)劃書》中的階段成果為依據(jù),根據(jù)《配置管理計(jì)劃規(guī)范》編制《配置管理計(jì)劃》。項(xiàng)目經(jīng)理審批《配置管理計(jì)劃》,并對(duì)該計(jì)劃的有效性予以負(fù)責(zé)。當(dāng)項(xiàng)目策劃工作完畢且《軟件項(xiàng)目計(jì)劃書》通過評(píng)審后,一般情況下,對(duì)軟件開發(fā)項(xiàng)目來說,工作將轉(zhuǎn)入需求分析階段。3.6.3項(xiàng)目計(jì)劃內(nèi)容確定項(xiàng)目計(jì)劃內(nèi)容的確定一般要按照以下過程進(jìn)行。(1)確定項(xiàng)目概貌:合同項(xiàng)目以合同和招投標(biāo)文件為依據(jù),非合同項(xiàng)目以可行性研究報(bào)告或項(xiàng)目前期調(diào)研成果為依據(jù),明確項(xiàng)目范圍和約束條件,并以同樣的依據(jù),明確項(xiàng)目的交付成果。進(jìn)一步明確項(xiàng)目的工作范圍和項(xiàng)目參與各方的責(zé)任。(2)確定項(xiàng)目團(tuán)隊(duì):確定項(xiàng)目團(tuán)隊(duì)的組織結(jié)構(gòu)和與項(xiàng)目開發(fā)相關(guān)的職能機(jī)構(gòu),包括管理、開發(fā)、測試、QA(質(zhì)量保證)、評(píng)審、驗(yàn)收等;確定項(xiàng)目團(tuán)隊(duì)人員及分工;與相關(guān)人員協(xié)商,確定項(xiàng)目團(tuán)隊(duì)人員構(gòu)成,如果內(nèi)部不能滿足人員需求,則提出人員支援申請(qǐng)。(3)明確項(xiàng)目團(tuán)隊(duì)內(nèi)、外的協(xié)作溝通:明確與用戶單位的溝通方法;明確最終用戶、直接用戶及其所在企業(yè)/部門名稱和聯(lián)系電話。用戶更多參與是項(xiàng)目成功的重要推動(dòng)力量,加強(qiáng)在開發(fā)過程中與用戶方的項(xiàng)目經(jīng)理或配合人員的主動(dòng)溝通,將有助于加強(qiáng)用戶參與項(xiàng)目的程度。建議采用周報(bào)或月報(bào)的方式通告項(xiàng)目的進(jìn)展情況、下一階段計(jì)劃以及出現(xiàn)的需要客戶協(xié)調(diào)或了解的問題。當(dāng)項(xiàng)目團(tuán)隊(duì)需要與外部單位協(xié)作開發(fā)時(shí),應(yīng)明確與協(xié)作單位的溝通方式。確定協(xié)作單位的名稱、負(fù)責(zé)人姓名、承擔(dān)的工作內(nèi)容以及實(shí)施人的姓名、聯(lián)系電話。明確本企業(yè)內(nèi)部協(xié)作開發(fā)的部門名稱、經(jīng)理姓名、承擔(dān)的工作內(nèi)容以及工作實(shí)施責(zé)任人的姓名、聯(lián)系電話。明確項(xiàng)目團(tuán)隊(duì)溝通活動(dòng)。項(xiàng)目團(tuán)隊(duì)成員規(guī)模在3人以上的項(xiàng)目應(yīng)該組織項(xiàng)目團(tuán)隊(duì)人員的周例會(huì),項(xiàng)目團(tuán)隊(duì)采用統(tǒng)一的交流系統(tǒng)建立項(xiàng)目團(tuán)隊(duì)的交流空間。(4)規(guī)劃開發(fā)環(huán)境和規(guī)范:說明系統(tǒng)開發(fā)所采用的各種工具、開發(fā)環(huán)境、測試環(huán)境等。列出項(xiàng)目開發(fā)要遵守的開發(fā)技術(shù)規(guī)范和行業(yè)標(biāo)準(zhǔn)規(guī)范。對(duì)于本企業(yè)還沒有規(guī)范的開發(fā)技術(shù)的情況,項(xiàng)目經(jīng)理應(yīng)組織人員制訂出在本項(xiàng)目中將遵守的規(guī)則。(5)編制工作進(jìn)度計(jì)劃:根據(jù)本企業(yè)規(guī)定和項(xiàng)目實(shí)際情況,確定項(xiàng)目的工作流程。編制項(xiàng)目的工作計(jì)劃,此計(jì)劃為高層計(jì)劃,各階段的工作時(shí)間安排要包括完成階段文檔成果、文檔成果提交評(píng)審及進(jìn)行修改的時(shí)間,各階段結(jié)束的標(biāo)志是階段成果發(fā)布。最終用一張時(shí)間表格來完整說明整個(gè)工作計(jì)劃;對(duì)于迭代開發(fā)的項(xiàng)目,應(yīng)編制出第一階段的階段計(jì)劃。階段內(nèi)的任務(wù)分割以2~5天為合適,特殊任務(wù)的時(shí)間跨度在兩個(gè)星期內(nèi);在項(xiàng)目的進(jìn)行過程中,項(xiàng)目經(jīng)理編制雙周工作計(jì)劃,指導(dǎo)成員的具體工作。(6)編制項(xiàng)目的監(jiān)控計(jì)劃:說明進(jìn)度控制、質(zhì)量控制、版本控制、預(yù)算控制等。(7)編制項(xiàng)目的風(fēng)險(xiǎn)計(jì)劃:分析項(xiàng)目過程中可能出現(xiàn)的風(fēng)險(xiǎn)以及相應(yīng)的風(fēng)險(xiǎn)對(duì)策。對(duì)于大型項(xiàng)目,建議以附件方式編制,便于不斷更新。(8)制訂輔助工作計(jì)劃:根據(jù)項(xiàng)目需要,編制培訓(xùn)計(jì)劃、招聘計(jì)劃等。(9)規(guī)劃開發(fā)支持工作:編制供方管理計(jì)劃等。(10)規(guī)劃項(xiàng)目驗(yàn)收:制訂項(xiàng)目的驗(yàn)收計(jì)劃。此項(xiàng)工作可以視需要進(jìn)行裁減。(11)規(guī)劃項(xiàng)目收尾與交接活動(dòng):制定項(xiàng)目的驗(yàn)收、培訓(xùn)和項(xiàng)目進(jìn)入維護(hù)階段與技術(shù)支持部的交接工作。3.7軟件項(xiàng)目團(tuán)隊(duì)的建立3.7.1團(tuán)隊(duì)定義團(tuán)隊(duì)是由一定數(shù)量的個(gè)體組成的集合,這個(gè)團(tuán)隊(duì)包括公司內(nèi)部的人、供應(yīng)商、承包商、客戶等。通過將不同潛質(zhì)的人組合在一起,形成一個(gè)具有高效團(tuán)隊(duì)精神的隊(duì)伍來進(jìn)行軟件項(xiàng)目的開發(fā)。團(tuán)隊(duì)開發(fā)先發(fā)掘作為個(gè)體的個(gè)人能力,然后發(fā)掘作為團(tuán)隊(duì)的集體能力。當(dāng)一組人稱為團(tuán)隊(duì)的時(shí)候,他們應(yīng)該承諾為一個(gè)共同的目標(biāo)工作,每個(gè)人的努力必須協(xié)調(diào)一致,而且能夠愉快地在一起合作,從而開發(fā)出高質(zhì)量的軟件產(chǎn)品。要開發(fā)一個(gè)項(xiàng)目,就要組建一個(gè)團(tuán)隊(duì)來實(shí)施,而作為團(tuán)隊(duì)的核心,首先是要確定這個(gè)項(xiàng)目的總負(fù)責(zé)人,即項(xiàng)目經(jīng)理。由項(xiàng)目經(jīng)理來全權(quán)負(fù)責(zé)項(xiàng)目的重要事項(xiàng),對(duì)項(xiàng)目進(jìn)行合理的安排。3.7.2項(xiàng)目組織形式為了能夠順利地執(zhí)行已制訂的計(jì)劃任務(wù),需要建立相應(yīng)的軟件項(xiàng)目組織。項(xiàng)目組織是為完成項(xiàng)目而建立的組織,一般也稱為項(xiàng)目班子、項(xiàng)目管理班子、項(xiàng)目組等。由于項(xiàng)目管理工作量很大,因此,項(xiàng)目組織專門履行管理功能,具體的技術(shù)工作由他人或其他組織承擔(dān)。而有些項(xiàng)目由于管理工作量不大,沒有必要單獨(dú)設(shè)立履行管理職責(zé)的班子,因此,其具體技術(shù)性工作和管理職能均由項(xiàng)目組織成員承擔(dān)。這樣的項(xiàng)目組織負(fù)責(zé)人除了管理之外,還要承擔(dān)具體的系統(tǒng)設(shè)計(jì)、程序編制或研究工作。項(xiàng)目組織的具體職責(zé)、組織結(jié)構(gòu)、人員構(gòu)成、人數(shù)配備等會(huì)因項(xiàng)目性質(zhì)、復(fù)雜程度、規(guī)模大小、持續(xù)時(shí)間長短等有所不同。項(xiàng)目組織可以是另外一個(gè)組織的下屬單位或機(jī)構(gòu),也可以是單獨(dú)的一個(gè)組織。項(xiàng)目組織的一般職責(zé)是項(xiàng)目規(guī)劃、組織、指揮、協(xié)調(diào)和控制。項(xiàng)目組織要對(duì)項(xiàng)目的范圍、費(fèi)用、時(shí)間、質(zhì)量、采購、風(fēng)險(xiǎn)、人力資源、溝通等多方面進(jìn)行管理。目前常見的軟件項(xiàng)目組織結(jié)構(gòu)類型有:工作隊(duì)式項(xiàng)目組織、部門控制式項(xiàng)目組織、項(xiàng)目型組織、矩陣式組織和直線職能式組織。第一種組織結(jié)構(gòu)是工作隊(duì)式項(xiàng)目組織,由項(xiàng)目經(jīng)理在企業(yè)內(nèi)抽調(diào)職能部門的人員組成管理機(jī)構(gòu)。項(xiàng)目管理班子成員在項(xiàng)目工作過程中,由項(xiàng)目經(jīng)理領(lǐng)導(dǎo),原單位領(lǐng)導(dǎo)只負(fù)責(zé)業(yè)務(wù)指導(dǎo),不能干預(yù)其工作或調(diào)回人員。在項(xiàng)目結(jié)束后機(jī)構(gòu)撤銷,所有人員仍回原部門。這種組織結(jié)構(gòu)形式適用于大型項(xiàng)目,工期要求緊,要求多工種、多部門密切配合的項(xiàng)目。其優(yōu)點(diǎn)是能發(fā)揮各方面專家的特長和作用,各專業(yè)人才集中辦公,減少了扯皮和等待時(shí)間,辦事效率高,解決問題快。其缺點(diǎn)是各類人員來自不同部門,配合不默契。第二種組織結(jié)構(gòu)是部門控制式項(xiàng)目組織,其主要特征是:按職能原則建立項(xiàng)目組織,把項(xiàng)目委托給某一職能部門,由職能部門主管負(fù)責(zé),在本單位選人組成項(xiàng)目組織。這種組織結(jié)構(gòu)形式一般適用于小型的、專業(yè)性較強(qiáng)、不需要涉及眾多部門的項(xiàng)目。它的優(yōu)點(diǎn)是人事關(guān)系容易協(xié)調(diào),從接受任務(wù)到組織運(yùn)轉(zhuǎn)的啟動(dòng)時(shí)間短、人員職能專一、關(guān)系簡單。其主要缺點(diǎn)是不適應(yīng)大項(xiàng)目的管理需要。第三種組織結(jié)構(gòu)是項(xiàng)目型組織,其主要特征是:企業(yè)中所有的人都按項(xiàng)目劃分,幾乎不再存在職能部門。在項(xiàng)目型組織里,每個(gè)項(xiàng)目就如同一個(gè)微型公司那樣運(yùn)作,完成每個(gè)項(xiàng)目目標(biāo)所需的所有資源完全分配給這個(gè)項(xiàng)目,專門為這個(gè)項(xiàng)目服務(wù),專職的項(xiàng)目經(jīng)理對(duì)項(xiàng)目組擁有完全的項(xiàng)目權(quán)力和行政權(quán)力。項(xiàng)目型組織的設(shè)置能迅速、有效地對(duì)項(xiàng)目目標(biāo)和客戶的需要做出反應(yīng)。其缺點(diǎn)是資源不能共享,成本高,項(xiàng)目組織之間缺乏信息交流。第四種組織結(jié)構(gòu)是矩陣式組織,其主要特征是:項(xiàng)目組織與職能部門同時(shí)存在,既能發(fā)揮職能部門的縱向優(yōu)勢,又能發(fā)揮項(xiàng)目組織的橫向優(yōu)勢。項(xiàng)目經(jīng)理對(duì)項(xiàng)目的結(jié)果負(fù)責(zé),而職能經(jīng)理則負(fù)責(zé)為項(xiàng)目的成功提供所需資源。矩陣型組織結(jié)構(gòu)能夠充分利用人力和物力資源,適用于同時(shí)承擔(dān)多個(gè)項(xiàng)目的企業(yè)。其缺點(diǎn)是雙重領(lǐng)導(dǎo),可能導(dǎo)致下屬無所適從,在各項(xiàng)目之間、項(xiàng)目與職能部門之間容易發(fā)生矛盾。第五種組織結(jié)構(gòu)是直線職能式組織。這是一種傳統(tǒng)式的組織結(jié)構(gòu)形式,目前我國傳統(tǒng)企業(yè)常采用直線職能式進(jìn)行項(xiàng)目工作。直線職能式組織是一種層次型的組織結(jié)構(gòu),按專業(yè)化的原則設(shè)置一系列職能部門,這種項(xiàng)目的組織是按照職能部門組成的,將項(xiàng)目按職能分為不同的子項(xiàng)目。例如,當(dāng)進(jìn)行新產(chǎn)品開發(fā)項(xiàng)目時(shí),項(xiàng)目前期論證作為“論證項(xiàng)目”由計(jì)劃部門負(fù)責(zé),產(chǎn)品設(shè)計(jì)工作作為“設(shè)計(jì)項(xiàng)目”由設(shè)計(jì)或技術(shù)部門完成,生產(chǎn)產(chǎn)品作為“生產(chǎn)項(xiàng)目”由生產(chǎn)部門完成,銷售產(chǎn)品作為“銷售項(xiàng)目”由銷售部門完成。其優(yōu)點(diǎn)與部門控制式組織結(jié)構(gòu)相同,缺點(diǎn)是項(xiàng)目時(shí)間長,各部門協(xié)調(diào)困難。在選擇了合理的組織結(jié)構(gòu)形式以后,需要考慮如何合理地配備組織的成員。在項(xiàng)目開發(fā)的各個(gè)階段,項(xiàng)目組織所需要的人員數(shù)量和結(jié)構(gòu)是不同的。如果把人員分為高級(jí)技術(shù)人員、初級(jí)技術(shù)人員和管理人員三類,則通常在軟件計(jì)劃、需求分析階段需要更多的管理人員和高級(jí)技術(shù)人員。隨著開發(fā)進(jìn)入總體設(shè)計(jì)、詳細(xì)設(shè)計(jì)、編碼階段,管理人員和高級(jí)技術(shù)人員的需求量則大幅減少,同時(shí)這些階段要求越來越多的初級(jí)技術(shù)人員加入。隨后,在單元測試、集成測試、確認(rèn)測試階段,對(duì)管理人員、高級(jí)技術(shù)人員的需求量又逐漸增加,初級(jí)技術(shù)人員的需求量逐漸減少。因此,根據(jù)實(shí)際需要來配備人員數(shù)量和結(jié)構(gòu)可以減少人力資源的浪費(fèi),又能確保項(xiàng)目的進(jìn)度和質(zhì)量。3.7.3團(tuán)隊(duì)建設(shè)創(chuàng)建團(tuán)隊(duì)首先要選擇項(xiàng)目人員,項(xiàng)目人員的選擇一般是根據(jù)項(xiàng)目的需要,參考項(xiàng)目計(jì)劃進(jìn)行人員編制,必要時(shí)招聘相應(yīng)崗位的人員,對(duì)他們進(jìn)行相應(yīng)的培訓(xùn),然后將他們放到合理的崗位,對(duì)他們在各自的崗位上的工作進(jìn)行業(yè)績考評(píng),并將考評(píng)的結(jié)果與他們的報(bào)酬和升遷聯(lián)系在一起。人是項(xiàng)目中最重要的資源,一個(gè)項(xiàng)目成功與否常常取決于工作人員的才干。軟件項(xiàng)目是由不同角色的人共同協(xié)作完成的,每種角色都必須有明確的職責(zé)定義,因此,選拔和培養(yǎng)適合角色職責(zé)的人才是首要的因素??梢酝ㄟ^合適的渠道選擇合適的人員,而且要根據(jù)項(xiàng)目的需要進(jìn)行,高中低不同層次的人員都需要進(jìn)行合理的安排,明確項(xiàng)目需要的人員技能。有效的軟件項(xiàng)目團(tuán)隊(duì)由擔(dān)當(dāng)各種角色的人員組成。每位成員扮演一個(gè)或多個(gè)角色,可能一個(gè)人專門負(fù)責(zé)項(xiàng)目管理,而另一些人積極地參與系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)。常見的一些項(xiàng)目角色包括:項(xiàng)目經(jīng)理、系統(tǒng)分析員、系統(tǒng)設(shè)計(jì)員、數(shù)據(jù)庫管理員、支持工程師、程序員、質(zhì)量保證工程師、業(yè)務(wù)專家(用戶)、測試人員、維護(hù)人員以及其他人員。項(xiàng)目團(tuán)隊(duì)組成人員的多少和比例要根據(jù)具體項(xiàng)目來決定。組建項(xiàng)目團(tuán)隊(duì)時(shí)首先需要定崗,就是確定項(xiàng)目需要完成什么目標(biāo),完成這些目標(biāo)需要哪些職能崗位,然后選擇合適的人員組成。項(xiàng)目組內(nèi)各類人員的比例應(yīng)當(dāng)協(xié)調(diào),那種認(rèn)為編碼人員(軟件工程師)占比例越大越好的觀念是極端錯(cuò)誤的,因?yàn)槲覀兊哪康氖峭瓿绍浖?,而不是完成任意多的程序編碼。項(xiàng)目也應(yīng)該配備相應(yīng)的文檔編制人員、質(zhì)量保證人員等。項(xiàng)目組內(nèi)的組織結(jié)構(gòu)宜采用程序員小組制,具體人數(shù)根據(jù)任務(wù)劃分的大小而定,根據(jù)項(xiàng)目任務(wù)分解結(jié)構(gòu),對(duì)項(xiàng)目的各項(xiàng)活動(dòng)進(jìn)行歸類,作為設(shè)置程序員小組的依據(jù),從而使得小組的任務(wù)明確。項(xiàng)目經(jīng)理對(duì)于小組長要給予適當(dāng)?shù)氖跈?quán),授權(quán)的大小依項(xiàng)目的階段和小組長的成熟度而定。一般而言,項(xiàng)目的前面幾個(gè)階段由于涉及項(xiàng)目的技術(shù)方案等重大問題,因此對(duì)小組長的技術(shù)方面的授權(quán)要適度;項(xiàng)目的后期變化通常是局部的,因此在技術(shù)方面可以給小組長足夠的權(quán)限,而當(dāng)小組長的成熟度高、技術(shù)能力強(qiáng)時(shí),可對(duì)其授予較大的權(quán)限,有時(shí)甚至是全權(quán)。項(xiàng)目組組建后要及時(shí)通過正規(guī)的溝通方式(如會(huì)議討論)將項(xiàng)目目標(biāo)貫徹到全體組員中,以達(dá)成項(xiàng)目目標(biāo)共識(shí),形成群體目標(biāo)。項(xiàng)目計(jì)劃也要充分吸收骨干組員的意見,一方面使得計(jì)劃更符合實(shí)際,另一方面通過參與的形式達(dá)成共識(shí),增強(qiáng)他們的歸屬感和使命感。4.1需求分析概述

4.2軟件需求的概念與層次

4.3獲取需求的目的和獲取需求常用的方法

4.4需求分析的目標(biāo)和任務(wù)

4.5需求分析的過程

4.6需求分析的原則

4.7需求分析階段常見的問題及需求分析的技巧

4.8需求分析的方法

4.9軟件需求分析文檔4.1需求分析概述4.1.1需求因素對(duì)項(xiàng)目成敗的影響需求處理是軟件工程的起始階段,設(shè)計(jì)、實(shí)現(xiàn)等后繼階段的正確性都以它的正確性為前提。如果在需求處理過程中有錯(cuò)誤未能解決,則其后的所有階段都會(huì)受到影響,因此與需求有關(guān)的錯(cuò)誤修復(fù)代價(jià)較高,需求問題對(duì)軟件成敗的影響較大。人們應(yīng)對(duì)需求分析階段的工作有足夠的認(rèn)識(shí)。StandishGroup在1995年報(bào)告中公布的導(dǎo)致項(xiàng)目成功或失敗的因素的相關(guān)數(shù)據(jù)如表4.1~表4.3所示。4.1.2需求問題的高代價(jià)性統(tǒng)計(jì)表明,在需求階段發(fā)生的錯(cuò)誤,如到了運(yùn)行維護(hù)階段才發(fā)現(xiàn),則在運(yùn)行維護(hù)階段進(jìn)行修復(fù)的代價(jià)可以高達(dá)需求階段修復(fù)代價(jià)的100~200倍(如圖4.1所示)。這種遞增效應(yīng)也說明了需求問題的高代價(jià)性。4.1.3常見的需求定義錯(cuò)誤在實(shí)踐和研究過程中,人們發(fā)現(xiàn)關(guān)于需求定義的錯(cuò)誤是需求工程中一類非常常見和重要的問題,具體的錯(cuò)誤主要有以下幾種:(1)需求并沒有反映用戶的真實(shí)需要。(2)模糊和歧義的需求。(3)信息遺漏。(4)不必要的需求。(5)不切實(shí)際的期望(UnrealisticExpectations)。2002年,Young也調(diào)查了常見的需求定義錯(cuò)誤,并進(jìn)行了分類,具體如圖4.2所示。4.1.4應(yīng)用領(lǐng)域知識(shí)對(duì)需求分析人員的重要性由于計(jì)算機(jī)的專業(yè)知識(shí)是用來服務(wù)于社會(huì)的各個(gè)應(yīng)用領(lǐng)域的,是要解決用戶工作中的實(shí)際問題的,因此,如何能正確理解用戶的實(shí)際需求僅有計(jì)算機(jī)專業(yè)知識(shí)是遠(yuǎn)遠(yuǎn)不夠的,還必須對(duì)相應(yīng)的應(yīng)用領(lǐng)域知識(shí)有所涉獵。為了啟發(fā)出客戶的要求,需求小組的成員必須熟悉該應(yīng)用領(lǐng)域,即熟悉目標(biāo)軟件產(chǎn)品通常在哪些領(lǐng)域使用。因此,每個(gè)需求分析組成員最初的任務(wù)就是熟悉應(yīng)用領(lǐng)域,除非需求分析組成員已經(jīng)在那個(gè)領(lǐng)域有過一些經(jīng)歷。當(dāng)與客戶和目標(biāo)軟件的潛在用戶交流時(shí),特別重要的一點(diǎn)是使用正確的術(shù)語。畢竟,這一點(diǎn)很難引起工作在某一特定領(lǐng)域的人的重視,除非訪談?wù)呤褂眠m于該領(lǐng)域的術(shù)語。更重要的是,使用不合適的術(shù)語會(huì)導(dǎo)致曲解,甚至?xí)桓兑粋€(gè)有錯(cuò)誤的軟件產(chǎn)品。如果需求小組的成員不理解該領(lǐng)域術(shù)語的細(xì)微差別,則可能會(huì)產(chǎn)生同樣的問題。專業(yè)的計(jì)算機(jī)人員希望在根據(jù)某一程序做決定前,每個(gè)程序的輸入由人工來仔細(xì)地檢查。但是對(duì)計(jì)算機(jī)越來越普遍的信任意味著依賴這類檢查的必然性顯然是不明智的。因此,對(duì)術(shù)語的誤解會(huì)造成軟件開發(fā)人員的疏忽,這不是危言聳聽。解決術(shù)語問題的一個(gè)辦法是建立一個(gè)術(shù)語表,術(shù)語表由該領(lǐng)域應(yīng)用的技術(shù)詞匯列表和對(duì)應(yīng)的解釋組成。當(dāng)小組成員正忙于盡可能學(xué)習(xí)應(yīng)用領(lǐng)域的相關(guān)知識(shí)時(shí),就將初始的詞條插入術(shù)語表中。然后,需求小組成員一遇到新的術(shù)語就將該術(shù)語表更新。適當(dāng)時(shí)還可打印出該術(shù)語表并分發(fā)給小組成員或下載到PDA(PersonalDigitalAssistant)。這樣的術(shù)語表不僅減少了客戶與開發(fā)者之間的誤解,而且對(duì)減少開發(fā)者之間的誤解也是很有必要的。一旦需求小組成員熟悉了該應(yīng)用領(lǐng)域后,下一步就是建立業(yè)務(wù)模型。4.2軟件需求的概念與層次4.2.1軟件需求的概念軟件需求是指用戶對(duì)軟件的功能和性能的要求,就是用戶希望軟件能做什么事情,完成什么樣的功能,達(dá)到什么樣的性能。軟件人員要準(zhǔn)確地理解用戶的要求,進(jìn)行細(xì)致的調(diào)查分析,將用戶非形式的需求陳述轉(zhuǎn)化為完整的需求定義,再由需求定義轉(zhuǎn)化為相應(yīng)形式的需求規(guī)格說明。對(duì)于軟件項(xiàng)目的需求,首先要理解用戶的要求,要澄清模糊的需求,與用戶達(dá)成共識(shí)。4.2.2需求的層次需求可分解為四個(gè)層次:業(yè)務(wù)需求、用戶需求、功能需求和非功能需求。業(yè)務(wù)需求反映了組織機(jī)構(gòu)或客戶對(duì)系統(tǒng)、產(chǎn)品高層次的目標(biāo)要求,由管理人員或市場分析人員確定。用戶需求描述了用戶通過使用本軟件產(chǎn)品必須要完成的任務(wù),一般是用戶協(xié)助提供。功能需求定義了開發(fā)人員必須實(shí)現(xiàn)的軟件功能,使得用戶通過使用此軟件能完成他們的任務(wù),從而滿足業(yè)務(wù)需求。對(duì)一個(gè)復(fù)雜產(chǎn)品來說,功能需求也許只是系統(tǒng)需求的一個(gè)子集。非功能需求是對(duì)功能需求的補(bǔ)充。它可分為兩類:一類是用戶關(guān)心的一些重要屬性,例如有效性、效率、靈活性、完整性、互操作性、可靠性、健壯性、可用性等。另一類是對(duì)開發(fā)者來說很重要的質(zhì)量屬性,例如可維護(hù)性、可移植性、可復(fù)用性、可測試性等。軟件需求各組成部分之間的關(guān)系如圖4.3所示。4.3獲取需求的目的和獲取需求常用的方法4.3.1獲取需求的目的需求獲取的目的是從項(xiàng)目的戰(zhàn)略規(guī)劃開始建立最初的原始需求。為此,它需要研究系統(tǒng)將來的應(yīng)用環(huán)境,確定系統(tǒng)的涉眾,了解現(xiàn)有的問題,建立新系統(tǒng)的目標(biāo),獲取為支持新系統(tǒng)目標(biāo)而需要的業(yè)務(wù)過程細(xì)節(jié)和具體的用戶需求。4.3.2獲取需求常用的方法需求分析是軟件開發(fā)中最重要的環(huán)節(jié),需求分析做得正確與否決定著軟件開發(fā)的成敗。要做好需求分析,最首要的是有正確的獲取需求的渠道和方法。常用的獲取需求的方法有訪談、問卷調(diào)查、情景分析、實(shí)地考察、構(gòu)造原型等。(1)訪談。訪談是最早開始使用的獲取用戶需求的方法,也是目前仍廣泛使用的需求分析技術(shù)。訪談?dòng)袃煞N基本形式,即正式訪談和非正式訪談。正式訪談時(shí),系統(tǒng)分析員將提出一些事先準(zhǔn)備好的具體問題。而非正式訪談中,分析員可提出一些用戶可以自由回答的開放性問題。采用訪談方式時(shí),分析員的主要任務(wù)是問題的設(shè)計(jì),包括探討功能、非功能、例外情況的問題,甚至是一些看起來似乎很“愚蠢”的問題。必須把所有的討論記錄下來,同時(shí)還要做一定的整理,并請(qǐng)參與討論的用戶評(píng)論并更正。(2)問卷調(diào)查。問卷調(diào)查即把需要調(diào)查的內(nèi)容制成表格交給用戶填寫。該方法在需要調(diào)查大量人員的意見時(shí),十分有效。此方法的優(yōu)點(diǎn)是用戶有較寬裕的考慮時(shí)間和回答時(shí)間。經(jīng)過仔細(xì)考慮寫出的書面回答可能比被訪者對(duì)問題的口頭回答更準(zhǔn)確,從而可以得到對(duì)提出的問題較為準(zhǔn)確細(xì)致的回答。分析員仔細(xì)閱讀收回的調(diào)查表,然后再有針對(duì)性地訪問一些用戶,以便向他們詢問在分析調(diào)查表時(shí)發(fā)現(xiàn)的新問題。采用問卷調(diào)查方法的關(guān)鍵是調(diào)查表的設(shè)計(jì)。在開發(fā)的早期用戶與開發(fā)者之間缺乏共同語言,用戶可能對(duì)表格中的內(nèi)容存在理解上的偏差。因此調(diào)查表的設(shè)計(jì)應(yīng)簡潔、易懂、易填寫,同時(shí)還要注意用戶的特點(diǎn)和調(diào)查的策略。(3)情景分析。所謂情景分析就是對(duì)目標(biāo)系統(tǒng)解決某個(gè)具體問題的方法和結(jié)果,給出可能的情景描述,以獲知用戶的具體需求。在訪談?dòng)脩舻倪^程中使用情景分析技術(shù)往往是非常有效的,該技術(shù)的優(yōu)點(diǎn)主要體現(xiàn)在下述兩個(gè)方面。①它能在某種程度上演示目標(biāo)系統(tǒng)的行為,便于用戶理解,從而進(jìn)一步揭示出一些分析員目前還不知道的需求。②需求分析的目標(biāo)是獲知用戶的真實(shí)需求,而這一信息的唯一來源是用戶。因此,讓用戶起積極主動(dòng)的作用對(duì)需求分析工作獲得成功是至關(guān)重要的。由于情景分析較易被用戶所理解,因此使得用戶在需求分析過程中能夠始終扮演一個(gè)積極主動(dòng)的角色。(4)實(shí)地考察。分析人員到用戶工作現(xiàn)場,實(shí)際觀察用戶的手工操作過程也是一種行之有效的獲取需求的方法。在實(shí)際觀察過程中,分析人員必須注意,系統(tǒng)開發(fā)的目標(biāo)不是手工操作過程的模擬,而是必須考慮最好的經(jīng)濟(jì)效益、最快的處理速度、最合理的操作流程、最友好的用戶界面等因素。因此,分析人員在接受用戶關(guān)于應(yīng)用問題及背景的知識(shí)的同時(shí),應(yīng)結(jié)合自己的軟件開發(fā)和軟件應(yīng)用經(jīng)驗(yàn),主動(dòng)地剔除不合理的、一些暫時(shí)行為的用戶需求,從系統(tǒng)角度改進(jìn)操作流程或規(guī)范,提出新的潛在的用戶需求。(5)構(gòu)造原型。在系統(tǒng)開發(fā)的早期,以對(duì)用戶所進(jìn)行的簡單需求分析為基礎(chǔ),快速建立目標(biāo)系統(tǒng)的原型。用戶可以通過原型進(jìn)行評(píng)估并提出修改意見,從而使用戶明確需求??焖僭头椒瓤舍槍?duì)整個(gè)系統(tǒng),也可針對(duì)系統(tǒng)的某部分功能。4.3獲取需求的目的和獲取需求常用的方法軟件需求分析的目標(biāo)是深入描述軟件的功能和性能,確定軟件設(shè)計(jì)的約束和軟件同其他系統(tǒng)元素的接口細(xì)節(jié),定義軟件的其他有效性需求。需求分析階段研究的對(duì)象是軟件項(xiàng)目的用戶要求。一方面,必須全面理解用戶的各項(xiàng)要求,但又不能全盤接受所有的要求;另一方面,要準(zhǔn)確地表達(dá)被接受的用戶要求。只有經(jīng)過確切描述的軟件需求才能成為軟件設(shè)計(jì)的基礎(chǔ)。通常軟件開發(fā)項(xiàng)目是要實(shí)現(xiàn)目標(biāo)系統(tǒng)的物理模型。作為目標(biāo)系統(tǒng)的參考,需求分析的任務(wù)就是借助于當(dāng)前系統(tǒng)的邏輯模型導(dǎo)出目標(biāo)系統(tǒng)的邏輯模型,解決目標(biāo)系統(tǒng)“做什么”的問題。其實(shí)現(xiàn)步驟如圖4.4所示。需求分析階段所要完成的任務(wù)并不是如何去編制程序,做具體的工作,而是要確定系統(tǒng)必須完成哪些工作,實(shí)現(xiàn)哪些功能,也就是對(duì)目標(biāo)系統(tǒng)提出完整、準(zhǔn)確、具體、清晰的要求。即以軟件計(jì)劃階段的軟件工作范圍為指南,通過分析綜合建立分析模型,編制出軟件需求規(guī)格說明書。需求分析階段的具體任務(wù)如下:(1)確定對(duì)系統(tǒng)的綜合要求,具體要求如下:①系統(tǒng)界面要求,描述軟件系統(tǒng)的外部特性,即系統(tǒng)從外部輸入哪些數(shù)據(jù),又向外部輸出哪些數(shù)據(jù);②系統(tǒng)功能要求,列出軟件系統(tǒng)必須完成的所有功能;③系統(tǒng)性能要求,如響應(yīng)時(shí)間、吞吐量、處理時(shí)間、對(duì)主存和外存的限制等;④安全性、保密性和可靠性要求;⑤系統(tǒng)的運(yùn)行要求,如對(duì)硬件、支持軟件、數(shù)據(jù)通信接口等的要求;⑥異常處理要求,在運(yùn)行過程中出現(xiàn)異常情況(如臨時(shí)性或永久性的資源故障、不合法或超出范圍的輸入數(shù)據(jù)、非法操作、數(shù)組越界等)時(shí)應(yīng)采取的行動(dòng)以及希望顯示的信息;⑦將來可能提出的要求,應(yīng)該明確地列出那些雖然不屬于當(dāng)前系統(tǒng)開發(fā)范疇,但是據(jù)分析將來可能會(huì)提出來的要求,其目的是為將來可能的擴(kuò)充和修改做準(zhǔn)備,便于需要時(shí)較容易地進(jìn)行這種擴(kuò)充和修改。(2)分析系統(tǒng)的數(shù)據(jù)要求。任何一個(gè)軟件從本質(zhì)上來說都是信息處理系統(tǒng),必然要與各種數(shù)據(jù)打交道。系統(tǒng)的數(shù)據(jù)要求包括基本數(shù)據(jù)元素,數(shù)據(jù)元素之間的邏輯關(guān)系、數(shù)據(jù)量、峰值等。常用的數(shù)據(jù)描述手段是實(shí)體-關(guān)系模型。(3)導(dǎo)出系統(tǒng)的邏輯模型。根據(jù)以上分析可導(dǎo)出詳細(xì)的邏輯模型。在結(jié)構(gòu)化分析方法中常用數(shù)據(jù)流圖來描述。(4)修正項(xiàng)目開發(fā)計(jì)劃。在明確了用戶的真正需求后,可以更準(zhǔn)確地估算軟件的成本和進(jìn)度,從而對(duì)以前提出的軟件項(xiàng)目計(jì)劃進(jìn)行必要的修正。(5)開發(fā)原型系統(tǒng)。對(duì)一些需求不夠明確的軟件,可以先開發(fā)一個(gè)原型系統(tǒng),以驗(yàn)證用戶的需求。目前已有一些較好的工具可供快速建立軟件的原型系統(tǒng)使用,這就為在軟件開發(fā)中采用樣機(jī)策略奠定了必要的物質(zhì)基礎(chǔ)。原型法近年來已逐漸發(fā)展成為開發(fā)軟件的一種重要方法。4.5需求分析的過程需求分析階段的工作,可以分成問題識(shí)別、分析與綜合、編制需求分析階段的文檔、需求分析評(píng)審4個(gè)方面。具體的分析流程如圖4.5所示。4.6需求分析的原則目前,軟件需求分析的方法有很多,雖然各種方法都有其獨(dú)特的描述方法,

但這些方法都有它們共同適用的基本原則。

(1)必須能夠表達(dá)和理解問題的數(shù)據(jù)域和功能域。所有軟件定義與開發(fā)工作最終是為了解決數(shù)據(jù)處理問題,就是將一種形式的數(shù)據(jù)轉(zhuǎn)換成另一種形式的數(shù)據(jù)。其轉(zhuǎn)換過程必定經(jīng)歷輸入數(shù)據(jù)、加工數(shù)據(jù)和產(chǎn)生結(jié)果數(shù)據(jù)等步驟。

對(duì)于計(jì)算機(jī)程序處理的數(shù)據(jù),其數(shù)據(jù)域應(yīng)包括數(shù)據(jù)流、數(shù)據(jù)內(nèi)容和數(shù)據(jù)結(jié)構(gòu)。

數(shù)據(jù)流即數(shù)據(jù)通過一個(gè)系統(tǒng)時(shí)的變化方式。輸入數(shù)據(jù)首先轉(zhuǎn)換成中間數(shù)據(jù),

然后轉(zhuǎn)換成輸出結(jié)果數(shù)據(jù)。在此期間可以從已有的數(shù)據(jù)存儲(chǔ)(如磁盤文件或內(nèi)存緩沖區(qū))中引入附加數(shù)據(jù)。對(duì)數(shù)據(jù)進(jìn)行轉(zhuǎn)換是程序中應(yīng)有的功能或子功能。兩個(gè)轉(zhuǎn)換功能之間的數(shù)據(jù)傳遞就確定了功能間的接口。

數(shù)據(jù)內(nèi)容即數(shù)據(jù)項(xiàng)。例如,學(xué)生名冊包含了班級(jí)、人數(shù)、每個(gè)學(xué)生的學(xué)號(hào)、姓名、性別、各科成績等。學(xué)生名冊的內(nèi)容由它所包含的項(xiàng)定義。為了理解對(duì)學(xué)生名冊的處理,必須要理解它的數(shù)據(jù)內(nèi)容。

數(shù)據(jù)結(jié)構(gòu)即各種數(shù)據(jù)項(xiàng)的邏輯組織。數(shù)據(jù)是組織成表格,還是組織成有層次的樹型結(jié)構(gòu)?在結(jié)構(gòu)中數(shù)據(jù)項(xiàng)與其他哪些數(shù)據(jù)項(xiàng)相關(guān)?所有數(shù)據(jù)是在一個(gè)數(shù)據(jù)結(jié)構(gòu)中,還是在幾個(gè)數(shù)據(jù)結(jié)構(gòu)中?一個(gè)結(jié)構(gòu)中的數(shù)據(jù)與其他結(jié)構(gòu)中的數(shù)據(jù)如何聯(lián)系?這些問題都由數(shù)據(jù)結(jié)構(gòu)分析來解決。

(2)必須按自頂向下、逐層分解的方式對(duì)問題進(jìn)行分解和不斷細(xì)化。通常如果將軟件要處理的問題作為一個(gè)整體來看,則會(huì)顯得太大、太復(fù)雜、很難理解??梢园褑栴}以某種方式分解為幾個(gè)較易理解的部分,并確定各部分間的接口,從而實(shí)現(xiàn)整體功能。

在需求分析階段,軟件的功能域和信息域都能做進(jìn)一步的分解。這種分解可以是同一層次上的,稱為橫向分解;也可以是多層次的縱向分解。例如,把一個(gè)功能分解成幾個(gè)子功能,并確定這些子功能與父功能的接口,就屬于橫向分解。但如果繼續(xù)分解,把某些子功能又分解為小的子功能,某個(gè)小的子功能又分解為更小的子功能,則屬于縱向分解。

(3)要給出系統(tǒng)的邏輯視圖和物理視圖。

給出系統(tǒng)的邏輯視圖(邏輯模型)和物理視圖(物理模型),這對(duì)系統(tǒng)滿足處理需求所提出的邏輯限制條件和系統(tǒng)中其他成分提出的物理限制條件是必不可少的。軟件需求的邏輯視圖給出軟件要達(dá)到的功能和將要處理數(shù)據(jù)之間的關(guān)系,而不是實(shí)現(xiàn)的細(xì)節(jié)。例如,一個(gè)學(xué)校的教材處理系統(tǒng)要從學(xué)生那里獲取訂單,系統(tǒng)讀取訂單的功能并不關(guān)心訂單數(shù)據(jù)的物理形式和用什么設(shè)備讀入,也就是說無須關(guān)心輸入的機(jī)制,只是讀取顧客的訂單而已。類似地,系統(tǒng)中檢查庫存的功能只關(guān)心庫存文件的數(shù)據(jù)結(jié)構(gòu),而不關(guān)心庫存文件在計(jì)算機(jī)中的具體存儲(chǔ)方式。軟件需求的邏輯描述是軟件設(shè)計(jì)的基礎(chǔ)。

軟件需求的物理視圖給出處理功能和數(shù)據(jù)結(jié)構(gòu)的實(shí)際表示形式,這往往是由設(shè)備決定的。如一些軟件靠終端鍵盤輸入數(shù)據(jù),另一些軟件靠模-數(shù)轉(zhuǎn)換設(shè)備提供數(shù)據(jù)。分析員必須弄清系統(tǒng)元素對(duì)軟件的限制,并考慮功能和信息結(jié)構(gòu)的物理表示。4.7需求分析階段常見的問題及需求分析的技巧4.7.1需求分析階段常見的問題捕捉真正的需求是困難的。需求分析中最具有挑戰(zhàn)性的問題是如何捕獲真正的需求,如圖4.6所示。對(duì)需求的誤解將會(huì)直接影響著后期的開發(fā)工作,一旦需求分析中出現(xiàn)了漏洞或偏差,將會(huì)導(dǎo)致較大的風(fēng)險(xiǎn)。一些國外企業(yè)的業(yè)務(wù)較規(guī)范,需求很清楚,但國內(nèi)企業(yè)或組織往往不能清楚地描述自己的需求,造成軟件項(xiàng)目管理的難度加大,甚至項(xiàng)目失敗。4.7.2軟件需求分析技巧在實(shí)際應(yīng)用中,進(jìn)行需求分析需要一些技巧,主要包括如下幾項(xiàng):(1)需求分析是分析師與用戶雙方進(jìn)行配合的項(xiàng)目,需要密切交流合作。(2)在微觀上/宏觀上都應(yīng)以流程為主。(3)注重事實(shí),堅(jiān)持客觀調(diào)研及主見,不應(yīng)偏聽偏信。(4)構(gòu)建需求金字塔。決策層提出宏觀上的統(tǒng)計(jì)、查詢、決策需求,管理層提出業(yè)務(wù)管理和作業(yè)控制需求,操作層提出錄入、修改、提交、處理、打印、界面、傳輸、通信、時(shí)間、速度等方面的操作需求。(5)注重主動(dòng)征求各層次的意見和建議,一般需求分析過程需要集中匯報(bào)征求意見2次或3次。4.8需求分析的方法4.8.1結(jié)構(gòu)化分析方法結(jié)構(gòu)化分析(StructuredAnalysis,SA)是面向數(shù)據(jù)流進(jìn)行需求分析的方法。結(jié)構(gòu)化分析方法適合于數(shù)據(jù)處理類型軟件的需求分析。由于結(jié)構(gòu)化分析方法利用圖形來表達(dá)需求,因此顯得清晰、簡明,易于學(xué)習(xí)和掌握。具體來說,結(jié)構(gòu)化分析方法就是用抽象模型的概念,按照軟件內(nèi)部數(shù)據(jù)傳遞、變換的關(guān)系,自頂向下逐層分解,直到找到滿足功能要求的所有可實(shí)現(xiàn)的軟件為止。在問題域中,一個(gè)龐大而又復(fù)雜的問題在整體上往往很難被完全理解,為此,人們常常把一個(gè)復(fù)雜問題分解成若干個(gè)子問題,如果問題被分解后,還不足以被理解,則又把子問題再進(jìn)一步分解,直到問題能被完全理解為止。在軟件工程中,大型軟件往往非常復(fù)雜,控制軟件復(fù)雜性的基本手段是“分解”。SA方法正是把軟件系統(tǒng)自上向下逐層分解、逐步細(xì)化的一種方法,它能較好地控制系統(tǒng)的復(fù)雜性,按照這種方法,無論系統(tǒng)有多么大,總可以有計(jì)劃地把它分解為足夠小的子問題。即隨著系統(tǒng)的增大,分析工作的復(fù)雜程度并不會(huì)增大,只是工作量增大而已。簡單地說,復(fù)雜性不會(huì)隨系統(tǒng)的增大而增大。結(jié)構(gòu)化分析方法主要使用以下幾種工具:數(shù)據(jù)流圖、數(shù)據(jù)詞典、結(jié)構(gòu)化英語、判定表和判定樹。1.數(shù)據(jù)流圖SA方法使用數(shù)據(jù)流圖從數(shù)據(jù)傳遞和加工的角度,以圖形的方式刻畫數(shù)據(jù)流從輸入到輸出的傳輸變換過程。數(shù)據(jù)流圖是結(jié)構(gòu)化系統(tǒng)分析的主要工具,它表示了系統(tǒng)內(nèi)部信息的流向,并表示了系統(tǒng)的邏輯處理的功能,是一種功能模型。數(shù)據(jù)流圖(DataFlowDiagram,DFD)的基本圖形元素有4種,如圖4.8所示。在數(shù)據(jù)流圖中,如果有兩個(gè)以上的數(shù)據(jù)流指向一個(gè)加工,或是從一個(gè)加工中引出兩個(gè)以上的數(shù)據(jù)流,則這些數(shù)據(jù)流之間往往存在一定的關(guān)系。為表達(dá)這些關(guān)系,可以在這些數(shù)據(jù)流的加工處標(biāo)上不同的標(biāo)記符號(hào)。所用符號(hào)及其含意在圖4.9中給出。為了表達(dá)數(shù)據(jù)處理過程的數(shù)據(jù)加工情況,用一個(gè)數(shù)據(jù)流圖是不夠的。稍微復(fù)雜的實(shí)際問題,在數(shù)據(jù)流圖上常常出現(xiàn)十幾個(gè)甚至幾十個(gè)加工。這樣的數(shù)據(jù)流圖看起來很不清楚。層次結(jié)構(gòu)的數(shù)據(jù)流圖能很好地解決這一問題。按照系統(tǒng)的層次結(jié)構(gòu)進(jìn)行逐步分解,并以分層的數(shù)據(jù)流圖反映這種結(jié)構(gòu)關(guān)系,能清楚地表達(dá)和容易理解整個(gè)系統(tǒng)。(1)分層的數(shù)據(jù)流圖。先把整個(gè)數(shù)據(jù)處理過程暫且看成一個(gè)加工,它的輸入數(shù)據(jù)和輸出數(shù)據(jù)實(shí)際上反映了系統(tǒng)與外界環(huán)境的接口。這就是分層數(shù)據(jù)流圖的頂層。但僅此一圖并未表明數(shù)據(jù)的加工要求,需要進(jìn)一步細(xì)化。圖4.10給出分層數(shù)據(jù)流圖的示例。畫數(shù)據(jù)流圖的基本步驟概括地說,就是自外向內(nèi),自頂向下,逐層細(xì)化,完善求精。檢查和修改的原則如下:①數(shù)據(jù)流圖上所有圖形符號(hào)只限于前述四種基本圖形元素。②頂層數(shù)據(jù)流圖必須包括前述四種基本元素,缺一不可。③頂層數(shù)據(jù)流圖上的數(shù)據(jù)流必須封閉在外部實(shí)體之間。④每個(gè)加工至少有一個(gè)輸入數(shù)據(jù)流和一個(gè)輸出數(shù)據(jù)流。⑤在數(shù)據(jù)流圖中,需按層給加工框編號(hào)。編號(hào)表明該加工處在哪一層,以及上下層的父圖與子圖的對(duì)應(yīng)關(guān)系。⑥規(guī)定任何一個(gè)數(shù)據(jù)流子圖必須與它上一層的一個(gè)加工對(duì)應(yīng),兩者的輸入數(shù)據(jù)流和輸出數(shù)據(jù)流必須一致。此即父圖與子圖的平衡。⑦可以在數(shù)據(jù)流圖中加入物質(zhì)流,以幫助用戶理解數(shù)據(jù)流圖。⑧圖上每個(gè)元素都必須有名字。數(shù)據(jù)流和數(shù)據(jù)文件的名字應(yīng)當(dāng)是“名詞”或“名詞性短語”,表明流動(dòng)的數(shù)據(jù)是什么。加工的名字應(yīng)當(dāng)是“名詞?+?賓語”,表明做什么事情。⑨數(shù)據(jù)流圖中不可夾帶控制流。⑩初畫時(shí)可以忽略瑣碎的細(xì)節(jié),以集中精力于主要數(shù)據(jù)流。(2)加工規(guī)格說明。加工規(guī)格說明用來說明DFD中的數(shù)據(jù)加工的加工細(xì)節(jié)。加工規(guī)格說明描述了數(shù)據(jù)加工的輸入,實(shí)現(xiàn)加工的算法以及產(chǎn)生的輸出。另外,加工規(guī)格說明指明了加工(功能)的約束和限制,與加工相關(guān)的性能要求,以及影響加工的實(shí)現(xiàn)方式的設(shè)計(jì)約束。必須注意,書寫加工規(guī)格說明的主要目的是要表達(dá)“做什么”,而不是“怎樣做”。因此它應(yīng)描述數(shù)據(jù)加工實(shí)現(xiàn)加工的策略而不是實(shí)現(xiàn)加工的細(xì)節(jié)。2.數(shù)據(jù)詞典分析模型中包含了對(duì)數(shù)據(jù)對(duì)象、功能和控制的表示。在每一種表示中,數(shù)據(jù)對(duì)象和控制項(xiàng)都扮演一定的角色。為表示每個(gè)數(shù)據(jù)對(duì)象和控制項(xiàng)的特性,建立了數(shù)據(jù)詞典。數(shù)據(jù)詞典精確地、嚴(yán)格地定義了每一個(gè)與系統(tǒng)相關(guān)的數(shù)據(jù)元素,并以字典式順序?qū)⑺鼈兘M織起來,使得用戶和分析員對(duì)所有的輸入、輸出、存儲(chǔ)成分和中間計(jì)算有共同的理解。詞條描述及內(nèi)容描述方法如下所述:(1)詞條描述。在數(shù)據(jù)詞典的每一個(gè)詞條中應(yīng)包含以下信息:①名稱:數(shù)據(jù)對(duì)象或控制項(xiàng)、數(shù)據(jù)存儲(chǔ)或外部實(shí)體的名字。②別名或編號(hào)。③分類:包括數(shù)據(jù)對(duì)象、加工、數(shù)據(jù)流、數(shù)據(jù)文件、外部實(shí)體、控制項(xiàng)(事件∕狀態(tài))。④描述:描述內(nèi)容或數(shù)據(jù)結(jié)構(gòu)等。⑤何處使用:使用該詞條(數(shù)據(jù)或控制項(xiàng))的加工。(2)內(nèi)容描述。在數(shù)據(jù)詞典的編制中,分析員最常用的描述內(nèi)容或數(shù)據(jù)結(jié)構(gòu)的符號(hào)如表4.4所示。數(shù)據(jù)流及數(shù)據(jù)存儲(chǔ)的表示方法如下:①數(shù)據(jù)流表示。采用自上而下、逐層分解的方式對(duì)每一條數(shù)據(jù)流進(jìn)行定義。在數(shù)據(jù)流的定義式中,通常采用下述符號(hào)(以大學(xué)教務(wù)管理中的成績管理子系統(tǒng)問題數(shù)據(jù)流圖中的數(shù)據(jù)流的定義為例):(D01)學(xué)號(hào)?=?入學(xué)年份?+?專業(yè)編號(hào)?+?班級(jí)編號(hào)?+?序號(hào)(D02)成績單編號(hào)?=?學(xué)年?+?課程編號(hào)?+?班級(jí)編號(hào)(d01.1)學(xué)號(hào)?=?"00000001".."99999999"(d01.2)密碼?=?"000001".."999999"(d02.2)課程號(hào)?=?1{"英文字母"}4?+?"0001".."9999"②數(shù)據(jù)存儲(chǔ)表示。有兩種類型的數(shù)據(jù)存儲(chǔ),一種是文件形式,另一種是數(shù)據(jù)庫形式。對(duì)于文件形式,其定義包括定義文件的組成數(shù)據(jù)項(xiàng)和文件的組織方式兩項(xiàng)內(nèi)容,其中文件組成數(shù)據(jù)項(xiàng)的定義方式與數(shù)據(jù)流的定義方式相同。3.結(jié)構(gòu)化語言結(jié)構(gòu)化語言是一種介于自然語言和形式化語言之間的半形式化語言,它是在自然語言的基礎(chǔ)上加入了一定的限制,通過使用有限的詞匯和有限的語句來較為嚴(yán)格地描述加工邏輯。描述加工邏輯時(shí)可以使用的詞匯包括:數(shù)據(jù)字典中定義的名字、基本控制結(jié)構(gòu)中的關(guān)鍵詞、自然語言中具有明確意義的動(dòng)詞、少量的自定義詞匯等。盡量不使用形容詞或副詞,可以使用一些簡單的算術(shù)或邏輯運(yùn)算符。結(jié)構(gòu)化語言中的三種基本結(jié)構(gòu)的描述方法如下:(1)順序結(jié)構(gòu):由自然語言中的簡單祈使語句序列構(gòu)成。(2)選擇結(jié)構(gòu):?通常采用IF…THEN…ELSE…ENDIF和CASE…OF…ENDCASE結(jié)構(gòu)。(3)循環(huán)結(jié)構(gòu):通常采用DOWHILE…ENDDO和REPEAT…UNTIL結(jié)構(gòu)。4.判定表判定表用于描述一些結(jié)構(gòu)化語言不易表達(dá)清楚的加工邏輯,這種表達(dá)方式簡單明了,如圖4.14所示。5.判定樹判定樹以圖形的方式描述加工邏輯,它結(jié)構(gòu)簡單,易讀易懂。加工邏輯可以用結(jié)構(gòu)化語言、判定表、判定樹等多種形式表示,也可將它們結(jié)合起來表示。4.8.2原型分析方法傳統(tǒng)的軟件工程方法強(qiáng)調(diào)自頂向下分階段開發(fā),要求在進(jìn)入實(shí)際開發(fā)期之前必須預(yù)先對(duì)需求嚴(yán)格定義。但實(shí)踐表明,在系統(tǒng)建立起來之前很難僅僅依靠分析就確定出一套完整、一致、有效的應(yīng)用需求,并且這種預(yù)先定義的策略更不能適應(yīng)用戶需求不斷變化的情況。由此,原型分析法應(yīng)運(yùn)而生,它一反傳統(tǒng)的自頂向下的開發(fā)模式,是目前較流行的開發(fā)模式。1.原型的概念原型最早使用在制造業(yè)和機(jī)械產(chǎn)品設(shè)計(jì)中,先做出產(chǎn)品的基本模型,然后進(jìn)行完善和改進(jìn),最后得到符合要求的產(chǎn)品。在軟件工程中,原型是指要開發(fā)的軟件系統(tǒng)的原始模型,是一個(gè)軟件早期的可運(yùn)行的版本,它反映最終系統(tǒng)的某些重要特性(如軟件界面與布局、功能等)。在獲得一組最基本的需求說明后,通過分析構(gòu)造出一個(gè)小型的簡約軟件系統(tǒng),滿足用戶的基本要求,然后不斷演化得到較高質(zhì)量的產(chǎn)品。原型法克服了傳統(tǒng)軟件生命周期法的一些弊端,具有快速靈活、交互式等特點(diǎn),方法的核心是用交互、快速建立起來的原型取代了不太明確的需求規(guī)格說明,用戶通過在計(jì)算機(jī)上實(shí)際運(yùn)行和試用原型系統(tǒng)得到親身感受并受到啟發(fā),通過反應(yīng)和評(píng)價(jià)向開發(fā)者提供真實(shí)的反饋意見。然后開發(fā)者根據(jù)用戶的意見對(duì)原型加以改進(jìn),通過“原型構(gòu)造—試用運(yùn)行—評(píng)價(jià)反饋—分析修改”的多次反復(fù),從而提高最終產(chǎn)品的質(zhì)量。圖4.16是原型生存期的圖示。原型分析方法的具體實(shí)現(xiàn)步驟如下:(1)快速分析:在分析者和用戶的緊密配合下,快速確定軟件系統(tǒng)的基本要求。(2)構(gòu)造原型:在快速分析基礎(chǔ)上,根據(jù)基本需求,盡快實(shí)現(xiàn)一個(gè)可運(yùn)行的系統(tǒng)。(3)運(yùn)行和評(píng)價(jià)原型:用戶在開發(fā)者指導(dǎo)下試用原型,在試用的過程中考核評(píng)價(jià)原型的特性,分析其運(yùn)行結(jié)果是否滿足規(guī)格說明的要求,以及規(guī)格說明描述是否滿足用戶愿望。(4)修正和改進(jìn):根據(jù)修改意見進(jìn)行修改。如果用修改原型的過程代替快速分析,就形成了原型開發(fā)的迭代過程。開發(fā)者和用戶在一次次的迭代過程中不斷將原型完善,以接近系統(tǒng)的最終要求。(5)判定原型完成:如果經(jīng)過修改或改進(jìn)的原型,得到參與者一致的認(rèn)可,則原型開發(fā)的迭代過程可以結(jié)束。為此,應(yīng)判斷是否已經(jīng)掌握有關(guān)應(yīng)用的實(shí)質(zhì),是否可以結(jié)束迭代周期等。判定的結(jié)果有兩個(gè)不同的轉(zhuǎn)向,一是繼續(xù)迭代驗(yàn)證,二是進(jìn)行詳細(xì)說明。(6)判斷原型細(xì)部是否說明:判斷組成原型的細(xì)部是否需要嚴(yán)格地加以說明。原型化方法允許對(duì)系統(tǒng)必要成分或不能通過模型進(jìn)行說明的成分進(jìn)行嚴(yán)格的詳細(xì)的說明。(7)原型細(xì)部的說明:對(duì)于那些不能通過原型說明的項(xiàng)目,仍需通過文件加以說明。嚴(yán)格說明的成分要作為原型化方法的模型編入詞典。(8)判定原型效果:考察用戶新加入的需求信息和細(xì)部說明信息,看其對(duì)模型效果有什么影響?是否會(huì)影響模塊的有效性?如果模型效果受到影響,甚至導(dǎo)致模型失效,則要進(jìn)行修正和改進(jìn)。(9)整理原型和提供文檔??傊?,利用原型化技術(shù),可為軟件的開發(fā)提供一種完整的、靈活的、近似動(dòng)態(tài)的規(guī)格說明方法。2.原型的類型由于建立原型的目的不同,因此實(shí)現(xiàn)原型的途徑也有所不同,通常有以下三種類型:(1)探索型。這種原型目的是要弄清客戶對(duì)目標(biāo)系統(tǒng)的要求,確定所希望的特性,并探討多種方案的可行性。(2)實(shí)驗(yàn)型。這種原型用于大規(guī)模開發(fā)和實(shí)現(xiàn)之前,考核方案是否合適,規(guī)格說明是否可靠。(3)進(jìn)化型。這種原型的目的不在于改進(jìn)規(guī)格說明,而是將系統(tǒng)建造得容易處理變化,在改進(jìn)原型的過程中,逐步將原型進(jìn)化成最終系統(tǒng)。它將原型方法的思想擴(kuò)展到軟件開發(fā)的全過程,適于滿足需求的變動(dòng)。由于運(yùn)用原型的目的和方式不同,因此在使用原型時(shí)可采取以下兩種不同的策略:(1)廢棄策略。先構(gòu)造一個(gè)功能簡單而且質(zhì)量要求不高的模型系統(tǒng),針對(duì)這個(gè)模型系統(tǒng)反復(fù)進(jìn)行分析修改,形成比較好的設(shè)計(jì)思想,據(jù)此設(shè)計(jì)出較完整、準(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)論