在軟件工程中,需求分析指的是在建立一個(gè)新的或改變一個(gè)現(xiàn)存的電腦系統(tǒng)時(shí)描寫(xiě)新系統(tǒng)的目的、范圍和定義時(shí)所要做的所有的工作。需求分析是軟件工程中的一個(gè)關(guān)鍵過(guò)程。
在這個(gè)過(guò)程中,系統(tǒng)分析員和軟件工程師確定顧客的需要。只有在確定了這些需要后他們才能夠分析和尋求新系統(tǒng)的解決方法。在軟件工程的歷史中,很長(zhǎng)時(shí)間里人們一直認(rèn)為需求分析是整個(gè)軟件工程中最簡(jiǎn)單的一個(gè)步驟,但在過(guò)去十年中越來(lái)越多的人認(rèn)識(shí)到它是整個(gè)過(guò)程中最關(guān)鍵的一個(gè)過(guò)程。假如在需求分析時(shí)分析者們未能正確地認(rèn)識(shí)到顧客的需要的話,那么最后的軟件實(shí)際上不可能達(dá)到顧客的需要,或者軟件無(wú)法在規(guī)定的時(shí)間里完工。
目錄
1 挑戰(zhàn)
1.1 主要困難
1.2 持有關(guān)鍵信息的人
1.3 軟件開(kāi)發(fā)者
1.4 解決方法
2 主要技術(shù)
2.1 采訪持重要信息的人
2.2 需求工作會(huì)
2.3 將需求列成合同式的文件
2.4 原型(Prototype)
2.5 用例(Use Case)
2.6 確認(rèn)持關(guān)鍵信息者
挑戰(zhàn)
順利地完成需求分析是一個(gè)艱巨的挑戰(zhàn)。首先要確認(rèn)所有持有關(guān)鍵信息的人本身就不容易,然后還要從這些人獲得可用的信息,把這些信息轉(zhuǎn)化為清晰的和完整的形式。同時(shí)分析者還要考慮到可能的限制。
除此之外他們還要考慮一個(gè)項(xiàng)目的
·是否可行
·是否在規(guī)定的時(shí)間里可以完成
·價(jià)格上是否負(fù)擔(dān)得起
·是否合法
·是否符合道德
一個(gè)新項(xiàng)目開(kāi)始的時(shí)候人們往往還非常興奮,往往試圖輕視需求分析的必要性。但對(duì)過(guò)去項(xiàng)目的分析證明一個(gè)徹底的和無(wú)情的需求分析可以降低一個(gè)項(xiàng)目的耗費(fèi)和降低其技術(shù)風(fēng)險(xiǎn)。
主要困難
隨著工程師越來(lái)越對(duì)需求分析的重視今天我們對(duì)需求分析的主要困難也理解得比較清楚: 需求分析需要由有充分的經(jīng)驗(yàn)、技術(shù)知識(shí)和語(yǔ)言技巧的專家來(lái)完成;顧客一開(kāi)始所提出的需要往往不完全、太樂(lè)觀以及過(guò)分受老的系統(tǒng)或過(guò)程的影響;使用復(fù)雜的工具和不同的技術(shù)來(lái)進(jìn)行需求分析往往會(huì)打消獲得一個(gè)完整的和細(xì)致的結(jié)果的希望。
持有關(guān)鍵信息的人
顧客有可能防止需求分析順利進(jìn)行有以下幾種可能性:
·顧客不明白他自己需要什么
·顧客不愿將他們的需要固定在一系列寫(xiě)在紙上的條例中
·在價(jià)格和時(shí)間確定后顧客堅(jiān)持要求新的需要
·分析者與顧客的通訊太緩慢
·顧客不參加回顧或無(wú)法參加回顧
·顧客缺乏技術(shù)上的知識(shí)
·顧客缺乏對(duì)軟件開(kāi)發(fā)的知識(shí)
軟件開(kāi)發(fā)者
但是軟件開(kāi)發(fā)者也有他們的責(zé)任。由于軟件開(kāi)發(fā)者收錢(qián)來(lái)開(kāi)發(fā)他們的軟件,他們的責(zé)任就更加不可推脫了。由軟件開(kāi)發(fā)者導(dǎo)致的困難有:
·軟件工程師與他們的顧客往往使用不同的詞匯。有時(shí)他們以為互相之間完全達(dá)成協(xié)議,但是在展示最終結(jié)果時(shí)卻發(fā)現(xiàn)并非如此。開(kāi)發(fā)者有義務(wù)克服這個(gè)困難,他們拿了顧客的錢(qián),因此有這個(gè)義務(wù)。
·軟件開(kāi)發(fā)者往往喜歡將顧客的需要改變得能使它們符合一個(gè)已存在的系統(tǒng)或模式,而不愿按照顧客的需要來(lái)發(fā)展一個(gè)新的系統(tǒng)。
·需求分析往往是由程序員完成的,而不是由作業(yè)分析員完成的。程序員往往缺乏理解實(shí)際事物的運(yùn)行過(guò)程和商業(yè)過(guò)程的技巧。
解決方法
解決這些困難的一個(gè)方法是使用專業(yè)的作業(yè)或系統(tǒng)分析員,這些專業(yè)人員通過(guò)專門(mén)訓(xùn)練來(lái)填補(bǔ)商業(yè)和電腦世界之間的鴻溝的。這個(gè)方法可以達(dá)到一定的效果,但從顧客方面來(lái)說(shuō)要找到相應(yīng)的有類(lèi)似技巧的人就相當(dāng)困難了。此外今天為需求分析所使用的方法依然還有很大的缺陷,它們還不夠有效。
1990年代以來(lái)新的技術(shù)有制作原