日韩AV电影观看|中文字幕视频成人|av网址在线播放|精品久久国产白浆|亚洲 同事 熟女|日本欧美乆乆免费|国产电影超碰在线|草草最新浮力影院|环亚无码av在线|亚洲日韩黄sei

返回首頁

如何理解需求分析的作用和重要性

90 2023-09-06 13:43 admin

如何理解需求分析的作用和重要性

需求分析是介于系統(tǒng)分析和軟件設(shè)計階段之間的橋梁。一方面,需求分析以系統(tǒng)規(guī)格說明和項目規(guī)劃作為分析活動的基本出發(fā)點(diǎn),并從軟件角度對它們進(jìn)行檢查與調(diào)整;另一方面,需求規(guī)格說明又是軟件設(shè)計、實現(xiàn)、測試直至維護(hù)的主要基礎(chǔ)。良好的分析活動有助于避免或盡早剔除早期錯誤,從而提高軟件生產(chǎn)率,降低開發(fā)成本,改進(jìn)軟件質(zhì)量。

我們應(yīng)當(dāng)怎樣做需求分析:功能角色分析與用例圖

在我們進(jìn)行一系列需求調(diào)研工作的同時,我們的需求分析工作也開始啟動了。需求調(diào)研與需求分析工作應(yīng)當(dāng)是相輔相伴共同進(jìn)行的。每次參加完需求調(diào)研回到公司,我們就應(yīng)當(dāng)對需求調(diào)研的成果進(jìn)行一次需求分析。當(dāng)下一次開始進(jìn)行需求調(diào)研時,我們應(yīng)當(dāng)首先將上次需求分析的結(jié)果與客戶進(jìn)行確認(rèn),同時對需求分析中提出的疑問交給客戶予以解答。這就是一個需求捕獲->需求整理->需求驗證->再需求捕獲的過程。

但是,當(dāng)我們經(jīng)過一番忙碌,將需求中的第一手資料從調(diào)研現(xiàn)場捕獲回來以后,我們應(yīng)當(dāng)怎樣進(jìn)行分析呢?不少團(tuán)隊對此都比較迷茫,沒有一個統(tǒng)一和有效的方法,往往采用想到哪里做到哪里的方式。一些問題想到了就做了,沒有想到則忽略掉了。實際上,需求分析不應(yīng)當(dāng)是太公釣魚,而應(yīng)當(dāng)是拉網(wǎng)排查。任何一個疏忽都可能對項目研發(fā)帶來風(fēng)險。因此,我們應(yīng)當(dāng)采用一套成熟而完整的分析方法,穩(wěn)步而有序地完成這部分工作。不同類型的軟件項目其分析方法可能存在差異,但一般來說,信息化管理類軟件項目通常從這幾個方面著手分析:功能角色分析、業(yè)務(wù)流程分析與業(yè)務(wù)領(lǐng)域分析。?

需求分析不是一項一蹴而就就可以完成的工作,它需要一個長期的過程,而這個過程是一個由粗到細(xì)的過程,它體現(xiàn)了人類認(rèn)識事物的客觀規(guī)律。在需求分析的初期,我們對需求的認(rèn)識往往是整體的、宏觀的,隨著分析工作的逐漸深入,一步步細(xì)化。按照這個思路,我們對需求的分析,首先應(yīng)當(dāng)從功能角色分析開始。所謂功能角色分析,就是從一個外部用戶的視角分析整個軟件系統(tǒng)能夠提供的功能,以及這些功能到底是提供給哪些角色使用。?

對一個系統(tǒng)進(jìn)行功能和角色方面的梳理和分析,可以采用的比較主流的方法之一就是繪制用例圖。用例圖是UML的4+1視圖中的一種,準(zhǔn)確地說就是那個“+1”。用例圖是貫穿整個面向?qū)ο蠓治?設(shè)計(OOA/D)的核心視圖,它描述的是系統(tǒng)到底為用戶提供了哪些功能,以及到底是哪些用戶在使用這些功能,是溝通用戶與技術(shù)人員的橋梁。運(yùn)用用例視圖對業(yè)務(wù)需求進(jìn)行分析、抽象、整理、提煉,進(jìn)而形成抽象模型的過程稱之為用例建模,而這個模型就是用例模型。?

一般地,在一個用例圖中通常有三種元素:參與者(Actor)、用例(Use Case)與系統(tǒng)邊界(Boundary)。用例描述的是系統(tǒng)為用戶提供的功能,也就是系統(tǒng)能為用戶做什么,通常被繪制成一個橢圓;參與者,我認(rèn)為稱為角色更加合適,也就是系統(tǒng)為哪些類型的用戶提供服務(wù),他們都各自承擔(dān)哪些不同的職責(zé),通常被繪制成一個小人兒;最后是系統(tǒng)邊界,也就是系統(tǒng)是對現(xiàn)實世界哪個范圍的內(nèi)容進(jìn)行的模擬,它涉及到軟件設(shè)計的工作范圍與工作量,通常被繪制成一個方框。但是,通常情況下系統(tǒng)邊界只是一個概念而不用真正繪制出來,因為被繪制成用例的必然是系統(tǒng)內(nèi)部的功能,被繪制成參與者的必然是系統(tǒng)外部事物。從這個意義上講,用例圖中的參與者不僅包括人,還包括那些外部系統(tǒng)和自動觸發(fā)器。根據(jù)這樣一個思路,我以往常常將外部系統(tǒng)和自動觸發(fā)器繪制成一個小人,這常常令客戶感到困惑。隨后我改變了思路,將外部系統(tǒng)和自動觸發(fā)器繪制成另一種表達(dá)形式——類元符號表示法,并在構(gòu)造型上標(biāo)注為Actor。?

上圖是一個考核系統(tǒng)中一個子模塊的用例圖。圖中的用例就是這個系統(tǒng)提供給用戶的各項功能。注意,這里僅僅是在羅列功能而不表示它們之間諸如流程調(diào)用等相互關(guān)系,這是一些初學(xué)者常常犯的毛病。參與者與用例通過實線關(guān)聯(lián)起來,代表的是一種使用關(guān)系。箭頭代表的是一種導(dǎo)航,即動作施與的方向。在這個用例圖中,普通用戶執(zhí)行查詢操作,查詢系統(tǒng)提供的“預(yù)警監(jiān)控單項查詢”、“預(yù)警監(jiān)控匯總查詢”等查詢報表;每日自動觸發(fā)器觸發(fā)自動考核功能,自動考核功能從“稅收征管系統(tǒng)”這樣一個外部系統(tǒng)中采集數(shù)據(jù)。?

在繪制用例圖時一個值得思考的細(xì)節(jié)是,用例是怎樣通過分析獲得的。這個問題,在一些客戶對信息化管理比較有經(jīng)驗的項目中不存在問題,因為在客戶提供給我們的需求文檔中就清晰地劃分出了一項一項的功能。這些功能可能會在日后的需求分析工作中有所調(diào)整,但它從整體上形成了一個雛形,成為我們進(jìn)行用例分析進(jìn)而形成用例的依據(jù)。?

有人說,我們繪制的用例圖拿給客戶看不懂。這樣一個清晰明了的用例圖,輔之以我們對圖形的描述,客戶怎么會看不懂呢?關(guān)鍵問題在于,我們沒有將用例圖的精髓弄明白,再加上出現(xiàn)一些常見問題,使得用例圖畫得不倫不類,客戶當(dāng)然就看不明白了?,F(xiàn)在我們看看用例繪制都有些什么常見問題。?

1. 沒有正確理解用例圖的視角。前面我反復(fù)強(qiáng)調(diào)了,用例圖的視角是用戶,也就是說,站在用戶的角度來觀察的我們需要設(shè)計的系統(tǒng)。從這個視角,用戶看到的系統(tǒng)是什么呢?當(dāng)然是一項一項的功能,這些功能是客戶能夠理解的、具體的、對客戶存在價值的功能。從這個意義上說,那些技術(shù)性的功能不應(yīng)當(dāng)出現(xiàn)在這里,或者應(yīng)當(dāng)描述為用戶可以理解的文字,比如“自動考核”。而那些應(yīng)當(dāng)繪制的用例,在取名時也應(yīng)當(dāng)站在用戶角度去取名。舉個簡單的例子,一個員工檔案信息系統(tǒng),以往我們總愛將用例取名為“添加員工信息”、“更新員工信息”、“刪除員工信息”,這就是典型的技術(shù)人員編寫的用例?!疤砑訂T工信息”對于用戶來講應(yīng)當(dāng)是做什么呢——填寫新員工資料;“更新員工信息”對于用戶來講又是做什么呢——更改員工資料;“刪除員工信息”又是什么呢——員工注銷。不論是“填寫新員工資料”、“更改員工資料”,還是“員工注銷”,對于客戶都是日常工作中需要完成的操作,將用例命名為這些名字必然為用戶所理解。同時,每一個用例對于用戶來說應(yīng)當(dāng)是有價值的,也就是說,用戶使用這個功能是要完成一項操作,或獲得什么信息。比如上圖的“自動考核”會產(chǎn)生一批考核結(jié)果,執(zhí)行“預(yù)警監(jiān)控單項查詢”可以獲得預(yù)警監(jiān)控結(jié)果數(shù)據(jù)。?

2. 圖形繪制雜亂無章。一個系統(tǒng),特別是一個大型系統(tǒng),提供給用戶的功能是繁雜的。如果你想將所有的功能,不管粗的細(xì)的,都試圖繪制在一個用例圖中,幾乎沒人看得懂。我們之所以將分析設(shè)計圖形化,是因為圖形能給人形象立體的感官,使人立即就明白了其中的意思,但前提是,這個圖形是主題清晰的、形象生動的。因此,我們繪制用例圖要學(xué)會拆分,由粗到細(xì)地一個一個繪制。先整體的繪制,再劃分成各個模塊一個一個詳細(xì)繪制,再進(jìn)一步細(xì)化。所以,描述一個系統(tǒng)應(yīng)當(dāng)有許許多多的用例圖。?

3. 用例是一個場景。在現(xiàn)實世界中,我們常常面對的是一個個長而復(fù)雜的操作流程,但在軟件世界里,我們要將它們拆分成一個個的用例,怎樣拆分?一個用例必須有一個場景,也就是時間相近、地點(diǎn)單一的一系列操作,并且這些操作最終應(yīng)當(dāng)有一個明確的結(jié)果。?

如上所示這個用例圖,“申辯申請”就是過錯責(zé)任人填寫了一張申辯申請單,最終的結(jié)果是將申辯申請單提交給考核管理員;“申辯受理”就是考核管理員接收了過錯責(zé)任人的申辯申請單并予以受理,當(dāng)然另一個結(jié)果是對其不予受理,該申請單被退回給過錯責(zé)任人。每個用例都有確定的場景,明確的目的和結(jié)果。?

功能角色分析是對系統(tǒng)宏觀的、整體的需求分析,它用簡短的圖形繪制出了一個系統(tǒng)的整體輪廓。但僅僅進(jìn)行功能角色分析是遠(yuǎn)遠(yuǎn)不夠的,我們還需要在它的基礎(chǔ)上做更加詳盡的分析。

頂一下
(0)
0%
踩一下
(0)
0%
相關(guān)評論
我要評論
用戶名: 驗證碼:點(diǎn)擊我更換圖片