UML,對大家來(lái)說(shuō)越來(lái)越熟悉了,隨著(zhù)我們對項目管理的日益重視,UML作為統一建模語(yǔ)言支撐著(zhù)“統一軟件開(kāi)發(fā)過(guò)程”(RUP)。編寫(xiě)需求說(shuō)明書(shū),幾乎每一個(gè)商業(yè)軟件中都必須經(jīng)歷的過(guò)程,雖然有國家標準,但是還是因為各個(gè)系統不一樣,寫(xiě)需求說(shuō)明書(shū)的人不一樣,需求說(shuō)明書(shū)寫(xiě)得也是各式各樣。在這里我不想詳細描述UML(有很多書(shū)您可以去看,一定比我寫(xiě)得好)或者是講解如何寫(xiě)需求說(shuō)明書(shū),我只是總結一下我在MIS項目的需求說(shuō)明書(shū)的撰寫(xiě)過(guò)程中關(guān)于畫(huà)UML圖的一點(diǎn)經(jīng)驗。
在《軟件需求說(shuō)明書(shū)編寫(xiě)規范》中,已經(jīng)給我們搭好了一個(gè)不錯的框架。作為系統分析人員,只要根據實(shí)際情況向這個(gè)骨架里填肉就可以了。在這里我們可能用到的UML圖有如下幾種:模型管理圖、對象圖、部署圖、部署和構建組合圖、用例圖、活動(dòng)圖和順序圖。如果你對這幾個(gè)圖還比較陌生,建議你還是先了解一下,因為這幾個(gè)圖各有特點(diǎn),從不同的角度說(shuō)明問(wèn)題,只有你對他們有一定的了解才能應用自如J
下面我們就來(lái)看看如何在需求說(shuō)明書(shū)中使用他們:
對于需求說(shuō)明書(shū)前面和結尾的那些死板的套話(huà)我們就不用費神了,讓我們直接來(lái)看“具體需求”,在這里才是UML圖的用武之地。
到這一步,《軟件需求說(shuō)明書(shū)編寫(xiě)規范》中直接就進(jìn)入了一個(gè)個(gè)“功能需求”的條目,但是我認為作為MIS系統,首先應該將即將開(kāi)發(fā)的系統的整體印象呈現給讀者,而且MIS系統,大多是多客戶(hù)端的分布式應用,所以在這里用UML中的部署圖將系統實(shí)現環(huán)境的硬件進(jìn)行建模,讓讀者一目了然系統將要運行的環(huán)境。如果調研做得好的話(huà),我們可以更深入一層,用UML中的部署和構建組合圖,用它來(lái)反映軟件之間的通信和硬件平臺之間的連接關(guān)系。當然這要有相當的經(jīng)驗。
完成了總體印象,我們還是不應急于進(jìn)入“功能需求”中。MIS系統中用戶(hù)常常會(huì )分為很多級別,信息流也就在這幾級用戶(hù)間傳來(lái)傳去。我們系統的目的也通常是為了讓幾條重要的信息流方便快捷的傳遞。所以不管什么“功能需求”都是為了這幾條信息流服務(wù)的。所以很有必要把幾條重要的信息流弄清楚。在這里用UML中的順序圖是個(gè)不錯的選擇,它的作用是用來(lái)表現隨著(zhù)時(shí)間推移發(fā)生在對象之間的交互情況,它的好處是表現范圍比較窄,可以描繪一個(gè)典型用例的場(chǎng)景,突出重點(diǎn),讓用戶(hù)知道你是否抓住了主要矛盾。這顯然是一個(gè)項目成敗的關(guān)鍵。
前面都是比較貼近于實(shí)際環(huán)境,距離我們的系統軟件部分稍遠了一點(diǎn),那么我們現在就把思路向回拉一拉。描述一下“系統的功能分布”,這可以說(shuō)是馬上要寫(xiě)的“功能需求”的總體概括。用UML中的模型管理圖,在這里把各個(gè)功能模塊之間的依賴(lài)關(guān)系表現出來(lái)應該是個(gè)不錯的選擇。
好了,前面的鋪墊做完了,我們可以心安理得的進(jìn)入“功能需求”了。這里可是真正反映系統分析員功底的時(shí)候了。如何用UML圖來(lái)配合功能模塊的IPO(輸入、處理、輸出)描述,我想各位大俠可以各顯神通,從不同的角度多方位勾勒。在這里再次強調需求調研一定要認真仔細,不然在這里,只能對著(zhù)電腦屏幕空想,對自己的每次決定都會(huì )問(wèn):“這能行嗎?”相信你做好了充分的準備。那么讓我們開(kāi)始吧!用例圖在這里可是不可缺的,它描述了參與者與系統之間的交互,展現用戶(hù)的需求。在“功能需求”的一開(kāi)始用用例圖作一個(gè)概括。后面更詳細的敘述就交給活動(dòng)圖來(lái)完成。由于活動(dòng)圖來(lái)源于流程圖,讀者更容易接受。我們可以利用活動(dòng)圖細致得刻畫(huà)出用戶(hù)在某一活動(dòng)中的操作,也可以敘述系統在某一處理中的流程。最好再用對象圖來(lái)為問(wèn)題領(lǐng)域模型建立一個(gè)例子,對于需求結束后的設計會(huì )有很大的幫助,而且對象圖還可以作為測試的用例,真是好處多多。但是要想畫(huà)出好的對象圖可不是一件容易的事,你必須對要描述的領(lǐng)域有很明白的認識,對相關(guān)對象的重要屬性有很好地把握。
OK,在“功能需求”中這些圖就足夠了,至于《軟件需求說(shuō)明書(shū)》中其他地方用UML圖就由你視情況靈活使用了。UML圖我們可以大膽的用,總之,我的原則就是在遵守規則的基礎上只要能說(shuō)明問(wèn)題就行。說(shuō)了這么多,僅供大家參考,本人水平有限,望多多指教。
聯(lián)系客服