- 論壇徽章:
- 0
|
了解目標組織(將要在其中部署系統(tǒng)的組織)的結構及機制。了解目標組織中當前存在的問題并確定改進的可能性。確保客戶、最終用戶和開發(fā)人員就目標組織達成共識。導出支持目標組織所需的系統(tǒng)需求。 (來自RUPCN)
以上大家可以理解,我們有沒有更深的理解呢?我先從業(yè)務主角和業(yè)務角色說起業(yè)務建模,在業(yè)務建模中主要有業(yè)務主角(BUSINESS ACTOR)和業(yè)務角色(BUSINESS WORKER),對此我們有什么了解呢。我先做出定義:業(yè)務主角是服務對象,如對商店進行業(yè)務建模, 業(yè)務主角是顧客。業(yè)務角色是服務人員或系統(tǒng),如對商店進行業(yè)務建模,業(yè)務角色是售貨員。業(yè)務主角是為誰提供服務,產(chǎn)生了用例。業(yè)務角色是提供服務,完成了用例。可以仔細看看RUPCN。這兩個東西它們在ROSE中圖形的表示也不一樣。
但大家有沒有想過,業(yè)務建模更深的意義,我們在傳統(tǒng)的軟件工程來說并沒有類似業(yè)務建模這個概念,而RATIONAL公司又要將此放入,在軟件工程中,它又到底起了什么作用呢?
一般說來,我們做一個軟件項目基本上都是從需求調(diào)研后就到需求建模和需求分析了,沒怎么去想業(yè)務建模。而大家有沒有想過,我們對需求的處理比較表象,如界面、功能和數(shù)據(jù),對業(yè)務處理過程缺少規(guī)范的說明,而這正是開發(fā)必須的。你有沒有覺得你以前很多開發(fā)沒有準確反應需求,是否有一個原因,不是需求不清,而是對需求的實現(xiàn)過程不清,即沒有了解好業(yè)務,從RUP的角度來說,也就是缺少了業(yè)務建模這一關鍵環(huán)節(jié)。我曾經(jīng)思索過業(yè)務建模最主要解決什么問題,我的看法就是業(yè)務建模就是創(chuàng)建業(yè)務處理模型,是進行需求分析的依據(jù)。而需求分析的結果,將要確定一個開發(fā)規(guī)范,正確的實現(xiàn)業(yè)務處理過程應當是它的一個重要內(nèi)容,而我們在需求調(diào)研時,往往忽視了這一點。
那么,在需求調(diào)研中,需求建模與業(yè)務建模誰先誰后呢?個人認為,業(yè)務是本來就存在的,不管有沒有這個軟件或項目,它都存在,它都在按一定的模式運作,因此業(yè)務建模與需求調(diào)研、需求建模是無關的,立項之前業(yè)務模型就可以存在. 或是立項以前,業(yè)務建模就可以完成的。 然而,實際并非如此,用戶只知道如何處理業(yè)務,卻很少有一個完整的業(yè)務模型,當立項時,就需求承建方邦助客戶創(chuàng)建它。因為承建方不了解客戶的業(yè)務過程是不能建模的, 又必須了解客戶的業(yè)務。
對于軟件開發(fā)過程,從軟件工程的角度來說大多數(shù)人都清楚從需求調(diào)研,到需求建模,需求分析,系統(tǒng)分析,系統(tǒng)結構設計,系統(tǒng)代碼設計,系統(tǒng)測試,系統(tǒng)維護這一過程,我參與過的項目,讓我感到,有些項目失敗或是非常難做,不在于以上這些環(huán)節(jié)沒做好,而在于少了業(yè)務的環(huán)節(jié)。
很多人也許會說,業(yè)務不就是需求嗎,沒錯,但更多的時候我們關注的是界面、功能、和數(shù)據(jù),卻很少注意功能之間的聯(lián)系即業(yè)務過程。
有沒有想過,我們將軟件所有的功能做成菜單,讓用戶自己選擇他們要做什么,而沒有一個業(yè)務過程的概念,用戶要自己知道用了某個功能后下一個該用哪個。這樣的系統(tǒng)其實不是應用系統(tǒng),只是一個數(shù)據(jù)處理機或者說是一個比較復雜的計算機器。它把業(yè)務過程分解為一些獨立/分散的功能,而沒有把這些功能組織起來。因此,有必要將業(yè)務從需求中分離而進行強調(diào)。我想,這也就是RATIONAL 公司引入業(yè)務建模這個重要的概念吧,
無論是從我的經(jīng)驗、觀點和教訓來說,還是看了RUP的觀點來年,我個人認為新的軟件開發(fā)過程是:業(yè)務調(diào)研,業(yè)務建模(業(yè)務分析),(業(yè)務模型分析)需求調(diào)研(這時,已經(jīng)有一部分需求可從來務模型中獲得), 需求建模,需求分析……因為建模的過程也是分析的過程,所以業(yè)務建模和業(yè)務分析可能交叉在一起。如果遇到一個客戶,規(guī)范到已經(jīng)有了現(xiàn)成的業(yè)務模型,那么直接就拿來就可以了。如果業(yè)務建模與需求調(diào)研是同一班人,那么需求調(diào)研中的業(yè)務模型分析工作就比較容易了。
業(yè)務建模當中又要注意什么呢?我個人的看法是:千萬別把業(yè)務建模和需示分析混在一起啦。如網(wǎng)上訂單系統(tǒng),一個人下了訂單,當然此訂單是通過系統(tǒng)自動完成,并沒有后臺人員的支持,此時,業(yè)務主角當然是下訂單的人,那業(yè)務角色呢 是否是沒有,還是下訂單的人? 對于系統(tǒng)來說,業(yè)務主角當然是下訂單的人,而業(yè)務角色呢?不太可能是系統(tǒng)自已吧? 而我的看法是業(yè)務角色就是系統(tǒng)自已,那不是很矛盾嗎?其實,關鍵一點是業(yè)務建模你不能有需求分析的概念,在這里,系統(tǒng)并不是軟件系統(tǒng),而是完成業(yè)務主角的訂單,即一個用例的東西,根據(jù)業(yè)務建模的概念,完成了訂單這個用例只能是訂單系統(tǒng),那么業(yè)務角色也就是訂單系統(tǒng)。因為它是下訂單這一業(yè)務中。
無論業(yè)務角色還是業(yè)務主角,都是對角色的抽象,不能具體到某個人的。而一個具體的事務,可能會兼任兩個不同的角色,但此時,大部分發(fā)生了身份或崗位的轉移。
原文 http://www.javaeye.com/topic/164 |
|