日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

需求分析之Wiki定義

 伊蓮 2007-01-30
作者:Wendy 來(lái)源:賽迪網(wǎng)社區(qū) 發(fā)布時(shí)間:2005.10.20

在軟件工程中,需求分析指的是在建立一個(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ǔ)言技巧的專(zhuān)家來(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è)方法是使用專(zhuān)業(yè)的作業(yè)或系統(tǒng)分析員,這些專(zhuān)業(yè)人員通過(guò)專(zhuān)門(mén)訓(xùn)練來(lái)填補(bǔ)商業(yè)和電腦世界之間的鴻溝的。這個(gè)方法可以達(dá)到一定的效果,但從顧客方面來(lái)說(shuō)要找到相應(yīng)的有類(lèi)似技巧的人就相當(dāng)困難了。此外今天為需求分析所使用的方法依然還有很大的缺陷,它們還不夠有效。

1990年代以來(lái)新的技術(shù)有制作原型、統(tǒng)一建模語(yǔ)言、用例和敏捷軟件開(kāi)發(fā)等方法。

主要技術(shù)

需求分析有可能在一個(gè)項(xiàng)目中成為一個(gè)漫長(zhǎng)、艱巨的工作。需求分析專(zhuān)家與他們的顧客交談、記錄他們的交談結(jié)果、分析他們收集的信息,從中提取互相矛盾的地方,總結(jié)出一個(gè)總體觀念,然后再與顧客交談他們發(fā)現(xiàn)的問(wèn)題。這個(gè)過(guò)程可以不斷重復(fù),在有些項(xiàng)目中這個(gè)過(guò)程可以伴隨著整個(gè)在有些項(xiàng)目中這個(gè)過(guò)程可以伴隨著整個(gè)生命周期。

 
新系統(tǒng)很可能改變?nèi)酥g的關(guān)系和人的工作環(huán)境,因此認(rèn)定誰(shuí)是重要的信息持有者是非常重要得。只有這樣在需求分析的過(guò)程中才能夠?qū)㈩櫩退械男枰技o(jì)錄下來(lái),只有這樣才能保證他們認(rèn)識(shí)到新的系統(tǒng)對(duì)他們來(lái)說(shuō)帶來(lái)怎樣的變化。出于下述原因這個(gè)要求往往達(dá)不到:
 
   

·與顧客的交談不夠多和不夠徹底,一些重要的需求被忽視;

·顧客的反應(yīng)不說(shuō)明問(wèn)題,顧客對(duì)新系統(tǒng)的特征不滿。

·為了使所有這些討論有條理、有組織和有效地被記錄下來(lái),這些討論的過(guò)程和其內(nèi)容的演化也必須被記錄下來(lái)。

分析員可以使用不同的技術(shù)來(lái)從顧客手中獲得需求。比較老的方式有采訪顧客,或者與顧客一起開(kāi)座談會(huì),列舉顧客的需求。比較新的技術(shù)有建立模型和使用用例。在最佳狀態(tài)下在采納了不同的技術(shù)后他們可以完全理解顧客的需要和與持重要信息的人建立了必要的聯(lián)系。

采訪持重要信息的人

采訪持重要信息的人是需求分析中一個(gè)必不可少的過(guò)程。但在一個(gè)大的系統(tǒng)中許多人必須被采訪,這需要許多時(shí)間和金錢(qián),但最重要的是這個(gè)過(guò)程最可能顯示現(xiàn)有的業(yè)務(wù)流程與新系統(tǒng)中的業(yè)務(wù)流程之間的差別。不同的顧客有可能有不同的或甚至相對(duì)的需求,在這種情況下分析員必須協(xié)調(diào)各方的需要。

需求工作會(huì)

出于上述原因一般假如一個(gè)系統(tǒng)非常復(fù)雜的話需求分析最常用的方法是召開(kāi)需求工作會(huì),在需求工作會(huì)上分析員和持重要信息的人一起分析系統(tǒng)的需要和發(fā)展解決方案。

這樣的工作會(huì)最好不要再采訪對(duì)象的工作場(chǎng)進(jìn)行,這樣采訪對(duì)象不會(huì)被打擾。工作會(huì)有一個(gè)負(fù)責(zé)人來(lái)保持會(huì)議的進(jìn)程,一個(gè)記錄員來(lái)記錄會(huì)議的討論,投影儀和相應(yīng)的軟件是常用的工具。一般需要進(jìn)行多次會(huì)議后才能得到最終結(jié)果。

一般認(rèn)為需求工作會(huì)可以節(jié)省不少時(shí)間,因此是一個(gè)非常有用的工具,但是往往很難同時(shí)將所有的持重要信息的人聚集到一起。

 
一個(gè)常見(jiàn)的缺陷是一些持重要信息者在這樣的會(huì)議上不十分積極,因此他們的需求沒(méi)有獲得必要的重視。這樣得到的解決方案必然有限。此外需求工作會(huì)是一個(gè)很好的分析現(xiàn)有系統(tǒng)的工具,但用它來(lái)尋求解決方案就不是十分有用了。
 

將需求列成合同式的文件

最常見(jiàn)的紀(jì)錄需求分析的方式是將顧客需求列入一個(gè)合同式的表。一個(gè)復(fù)雜的系統(tǒng)的文件可以數(shù)百頁(yè)長(zhǎng)?,F(xiàn)代的分析員不愿使用這樣的列表,因?yàn)樗鼈儽蛔C明相當(dāng)無(wú)用,但它們依然相當(dāng)常見(jiàn)。

優(yōu)點(diǎn):

·提供一份需求的清單。

·提供一份顧客和開(kāi)發(fā)者間的合同。

·對(duì)一個(gè)大的系統(tǒng)來(lái)說(shuō)它提供了一份高級(jí)的描寫(xiě)。

缺點(diǎn):

·這些列表可以長(zhǎng)達(dá)上百頁(yè),實(shí)際上沒(méi)有人能夠完整地閱讀這樣的文件來(lái)獲得一個(gè)完整的系統(tǒng)理解。

·列表中的需求一般都很抽象和缺乏列出的需求互相之間的關(guān)聯(lián)

·這樣的列表一般表示不出列出的需求之間怎樣組成一個(gè)整體。

·從列表中很難看出哪些需求更重要。

·抽象后的列表為讀者提供了許多理解的余地,因此不同的讀者對(duì)文件的理解可能不同。一個(gè)項(xiàng)目越大,讀者越多,理解的方式就越多。

·從抽象后的列表中很難看出它是否完全。它們往往忽視了許多細(xì)節(jié)。

·顧客和開(kāi)發(fā)者對(duì)這個(gè)列表的理解往往完全不同。

·這樣的合同式的列表給顧客一個(gè)錯(cuò)誤的安全的感覺(jué),好像他們的要求都已列入了。但是由于這些列表本身對(duì)細(xì)節(jié)問(wèn)題不能細(xì)述因此許多關(guān)鍵的細(xì)節(jié)問(wèn)題實(shí)際上并未列出和解決。這些問(wèn)題一直到后來(lái)軟件開(kāi)發(fā)時(shí)才被發(fā)現(xiàn)。那時(shí)開(kāi)發(fā)者一般要與顧客再次討論這些問(wèn)題并試圖按他們的意愿和條件來(lái)解決這些問(wèn)題。

·這個(gè)列表對(duì)此后的系統(tǒng)設(shè)計(jì)不提供任何幫助,它們的結(jié)構(gòu)無(wú)法直接進(jìn)入新軟件。

 
原型(Prototype)

從1980年代中開(kāi)始,越來(lái)越多的人將作原型看作是解決需求分析的困難的辦法。原型模擬最終軟件的屏幕顯示,這樣用戶可以看到最終軟件將是什么樣,而實(shí)際上在這些屏幕顯示的背后還一切都空著呢。這樣顧客可以在系統(tǒng)還沒(méi)有建立之前就做出設(shè)計(jì)決定。當(dāng)原型首次被使用的時(shí)候它們的效果被視為非常驚人。引入原型往往提高顧客與開(kāi)發(fā)者之間的信息交換。原型的屏幕顯示后來(lái)往往很少被改變,因此可以大大地降低費(fèi)用。

但此后十多年的實(shí)際應(yīng)用證明雖然原型是一種有用的技術(shù),但它也有它的缺陷:

·經(jīng)理人員在看到原型后往往不理解為什么到還要一段時(shí)間后最終設(shè)計(jì)才能完成。

·設(shè)計(jì)師往往將拼湊在一起的原型碼用到后來(lái)真正的系統(tǒng)中,因?yàn)樗麄兣略谠俅尉幋a時(shí)“浪費(fèi)時(shí)間”。

·原型幫助解決設(shè)計(jì)決定和用戶界面的設(shè)計(jì),但是它們并不提供任何關(guān)于需求的信息。

·設(shè)計(jì)師和顧客有可能花費(fèi)太多的時(shí)間和精力來(lái)設(shè)計(jì)用戶界面,而忽視對(duì)作業(yè)過(guò)程的關(guān)心。

用例(Use Case)

用例是一種紀(jì)錄新系統(tǒng)或軟件更換時(shí)的需求的技術(shù)。每個(gè)用例包含一個(gè)系統(tǒng)在作業(yè)時(shí)與用戶或與其它系統(tǒng)之間交換信息的場(chǎng)景。一般用例避免使用術(shù)語(yǔ),而盡量使用顧客、用戶或他們的專(zhuān)家的語(yǔ)言。一般用例由軟件開(kāi)發(fā)者和顧客一起寫(xiě)成。

在1990年代中用例很快地成為了紀(jì)錄需求分析的最主要的方式。尤其在它的發(fā)源地,在面向?qū)ο蟮某绦蛟O(shè)計(jì)中它的普及性非常高。但用例不僅可以用在面向?qū)ο蟮某绦蛟O(shè)計(jì)系統(tǒng)中,實(shí)際上用例本身并非面向?qū)ο蟮摹?

每個(gè)用例集中于描寫(xiě)如何來(lái)完成一個(gè)作業(yè)目標(biāo)或任務(wù)。對(duì)傳統(tǒng)的軟件工程來(lái)說(shuō)每個(gè)用例描寫(xiě)系統(tǒng)的一個(gè)特點(diǎn)。對(duì)大多數(shù)軟件項(xiàng)目來(lái)說(shuō)一個(gè)新的系統(tǒng)有多個(gè)(往往十幾個(gè))用例。不同的軟件項(xiàng)目的格式或項(xiàng)目的進(jìn)展都可能影響用例的細(xì)節(jié)性。

用例描述系統(tǒng)在運(yùn)行時(shí)與外部執(zhí)行者之間的信息交換。外部執(zhí)行者是任何系統(tǒng)外的、與系統(tǒng)交換信息的物件或人物。它們可以是用戶、用戶的角色或其它系統(tǒng)。

用例將系統(tǒng)當(dāng)作一個(gè)“黑匣子”,它從外部來(lái)看與系統(tǒng)之間的信息交換(包括系統(tǒng)的回答)。這樣它簡(jiǎn)化對(duì)系統(tǒng)的需求的描寫(xiě)而且防止對(duì)系統(tǒng)的工作方式作任何過(guò)早的假設(shè)。

每個(gè)用例應(yīng)該符合下述條件:

·描寫(xiě)完成作業(yè)目標(biāo)的作業(yè)任務(wù)

·不包含任何編程碼

·有一定的細(xì)致性

·足夠短,一個(gè)程序員應(yīng)該可以在一個(gè)版本的工作中獨(dú)立完成這個(gè)用例所描寫(xiě)的作業(yè)過(guò)程。

 
·在描寫(xiě)功能需求時(shí)
 
 

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類(lèi)似文章 更多