察用語言規(guī)定的任何系統(tǒng)的功能和行為。(2)基于腳本的設(shè)計(jì)。腳本是用戶界面的原型。一個(gè)腳本用來模擬在系統(tǒng)運(yùn)行期間用戶經(jīng)歷的事件。它提供了輸入———處理———輸出的屏幕格式和有關(guān)對(duì)話的模型。因此,軟件開發(fā)者能夠給用戶顯示系統(tǒng)的逼真的視圖,使用戶得以判斷是否符合他的意圖。(3)自動(dòng)程序設(shè)計(jì)在程序自動(dòng)生成環(huán)境的支持下,利用計(jì)算機(jī)實(shí)現(xiàn)軟件的開發(fā)。它可以自動(dòng)地或半自動(dòng)地把用戶的非過程式問題規(guī)格說明轉(zhuǎn)換為某種高級(jí)語言程序。(4)專用語言。專用語言是應(yīng)用領(lǐng)域的模型化語言。在原型開發(fā)中使用專用語言,可方便用戶和軟件開發(fā)者對(duì)系統(tǒng)特性進(jìn)行交流。(5)可復(fù)用的軟件。利用可復(fù)用的模塊,通過適當(dāng)?shù)慕M合,構(gòu)造的原型系統(tǒng)。為了快速地構(gòu)造原型,這些模塊首先必須有簡(jiǎn)單而清晰的界面;其次它們應(yīng)當(dāng)盡量不依賴其它的模塊或數(shù)據(jù)結(jié)構(gòu);最后,它們應(yīng)具有一些通用的功能。(6)簡(jiǎn)化假設(shè)。 簡(jiǎn)化假設(shè)使設(shè)計(jì)者迅速得到一個(gè)簡(jiǎn)化的系統(tǒng)。盡管這些假設(shè)可能實(shí)際上并不能成立,但它們可以使開發(fā)者的注意力集中在一些主要的方面。在修改一個(gè)文件時(shí),可以假設(shè)這個(gè)文件確實(shí)存在。 在存取文件時(shí),待存取的記錄總是存在。一旦計(jì)劃中的系統(tǒng)滿足用戶所有的要求,就可以撤消這些假設(shè),并追加一些細(xì)節(jié)。
(四)原型分析優(yōu)點(diǎn)
原型分析優(yōu)點(diǎn)有:(1)增進(jìn)軟件開發(fā)者和用戶對(duì)需求的理解,使比較含糊的具有不確定性的軟件需求(主要功能性的需求)明確化。(2)軟件原型化方法提供了一種有力的學(xué)習(xí)手段。(3)使用原型化方法,可以容易地確定系統(tǒng)的性能,確認(rèn)系統(tǒng)主要服務(wù)的可應(yīng)用性,確認(rèn)系統(tǒng)設(shè)計(jì)的可行性,確認(rèn)系統(tǒng)最終作為產(chǎn)品。(4)軟件原型的最終版本,有的可以原封不動(dòng)地稱為產(chǎn)品,有的略加修改就可以成為最終系統(tǒng)的一個(gè)組成部分,這樣有利于建成最終系統(tǒng)。
四、需求變更
在開發(fā)項(xiàng)目過程中,用戶隨時(shí)會(huì)提出一些新的需求,要求開發(fā)人員解決,這些需求的提出,有時(shí)在開發(fā)階段中有時(shí)在開發(fā)階段后。這種在需求分析的兩個(gè)相鄰子階段中,或者在迭代周期的需求分析中,后一段或周期的需求分析結(jié)果與前一次不一致, 我們把這種不一致稱為需求變更。產(chǎn)生需求變更的原因主要有以下幾個(gè)方面:(1)在需求分析階段,開發(fā)人員與用戶的溝通不夠。在需求分析階段,開發(fā)方與用戶沒有很好的交流,開發(fā)方就根據(jù)用戶提供的大概信息,自己推導(dǎo)出用戶的需求。通過這種需求分析得出的需求往往會(huì)和用戶的實(shí)際需求相差甚遠(yuǎn),導(dǎo)致用戶提出更改需求。(2)項(xiàng)目的實(shí)施周期過長(zhǎng)。隨著時(shí)間的推移,用戶對(duì)整個(gè)系統(tǒng)的了解也越來越深入。他們會(huì)對(duì)模塊的界面、功能和性能方面提出更高更多的要求。(3)技術(shù)更新過快。由于技術(shù)的快速更新, 企業(yè)可能引進(jìn)一些新的設(shè)備, 而這些設(shè)備可能就會(huì)與我們的目標(biāo)系統(tǒng)有直接的關(guān)系, 由于這一變化可能發(fā)生在解決用戶原先問題之前或者之中, 那么開發(fā)人員不得不加入這一新的需求。
為了盡可能地避免發(fā)生需求變更,以及保證需求分析的高穩(wěn)定性,可以采用以下方法:(1)對(duì)開發(fā)人員進(jìn)行專業(yè)培訓(xùn)。因?yàn)?,開發(fā)人員對(duì)所開發(fā)系統(tǒng)的領(lǐng)域不一定了解,為了開發(fā)人員能更好理解用戶的需求,在做需求分析的初始階段對(duì)開發(fā)人員進(jìn)行該領(lǐng)域相關(guān)知識(shí)的培訓(xùn)。(2)開發(fā)方與用戶進(jìn)行協(xié)作和交流。在用戶提出需求變更時(shí)開發(fā)人員應(yīng)該認(rèn)真聽取用戶的要求并加以整理和分析。分析需求變更的原因并提出可行的替代方案;同時(shí)向用戶說明這些需求變更會(huì)對(duì)整個(gè)項(xiàng)目的開發(fā)帶來的不良后果。(3)合同約束。由于需求變更可能會(huì)對(duì)整個(gè)項(xiàng)(下接第85頁)(上接第77頁)目產(chǎn)生影響,所以,開發(fā)方和用戶在簽定項(xiàng)目合同時(shí),可以對(duì)需求變更增加一些相關(guān)的合同條款。(4)建立需求文檔并進(jìn)行版本控制。需求分