在前幾回文章中,已經介紹過VS2010所支援的活動圖初級概念,以及中級概念中的新元素,現在要回頭來看物件節點、活動參數節點、輸入栓與輸出栓,在這幾個初級概念中還有一些先前沒有提到的特性,也就是在初級概念中的中級概念特性。先從物件節點開始。
物件節點
在物件節點的性質表中,我們還留下了三個中級概念的特性還沒談,分別為:次序(Ordering)、選擇(Selection)和上界(Upper Bound)這三項,如所以,請你看到圖1所示。
圖1 物件節點的性質表
緊接著看到所以,請你看到圖2,這三個概念確實出現在UML母模中,先看到次序的概念,顯然UML定義了四種次序,分別為:先進先出(FIFO)、後進先出(LIFO)、有序(Ordered)、無序(Unordered)。
圖2 物件節點[UML母模]
特別注意到,雖然在所以,請你看到圖1的VS2010物件節點性質表中,次序的預設值是「無序」。但是,實際上,UML對於物件節點次序的預設值是「先進先出」的。簡單說明這四種次序,如下:
● 先進先出(FIFO):預設值。先進到物件節點的資料或物件,也會優先輸出給下一個活動節點使用。
● 後進先出(LIFO):後進到物件節點的資料或物件,卻優先輸出給下一個活動節點使用。
● 有序(Ordered):物件節點內資料或物件的進出,有依照特別的次序方法,但不是前面提到的先進先出,也不是後進先出方法,而是其他的次序方法。
● 無序(Unordered):物件節點內資料或物件的進出,並沒有依照特定的次序方法。
既然,物件節點有次序的特性,你大概就能推想的到,物件節點可以保存一個以上的資料或物件,因此才會有一個「上界」(Upper Bound)的特性,用來設定最多可以保存多少個資料或物件。物件節點上界的預設值是「多個」,UML使用星字號(*)來代表多個、無上限的數量。
當然,我們也可以指定一個上界數字,來代表最多只能保存這麼多數量的資料或物件。比方說,我們的教室最多只能坐下25位學員,所以我們招生的上限是25人,也就是說,我們最多只能保存25張報名表,而且是先報名者優先處理的先進先出次序,如所以,請你看到圖3所示。
圖3 報名表的性質表
圖4 上界是25個
不過,當我們設定完物件節點的性質之後,回頭來看活動圖,你會發現無法從圖面上看出報名表具有特殊的性質,如所以,請你看到圖4所示。
其實,軟體工具應該提供顯示或隱藏資訊的功能,我找不到VS2010中關於這方面的設定。我想透過另一套前面文章談過的UML工具Visual Paradigm for UML Community Edition,來展現這個簡單的功能。
請你看到所以,請你看到圖5,在Visual Paradigm中,可以讓我們選擇秀出物件節點的特性內容,而且這也是UML標準的表示法。
圖5 物件節點[Visual Paradigm]
由於,次序的預設值是先進先出,在沒有更改預設值的情況下,其實是不需要秀出次序的設定值。所以,在所以,請你看到圖5的右圖中,我們特別將次序改成「有序」,這時就會出現次序的設定值了。
倘若,把VS2010和Visual Paradigm簡單地兩相比較之下,我們可以發現,對於支援UML的課題上,VS2010其實還有許多值得我們期待的功能,在往後的改版中是指日可待的。
好吧,最後我們再來看物件節點的「選擇」(Selection)特性。其實,這個特性跟「有序」有關係,當我們設定了物件節點是有次序的,但不是先進先出、後進先出,而是某一種我們設計的次序方法時,就可以在「選擇」這個欄位中連結我們自行設計的排序方法。
除了連結自行設計的排序方法的活動圖外,更多時候,我們可能只需要說明排序方法,這時候可以增加一個標示為<
圖6 自訂的排序方法
所以,報名單的選擇方法是,之前保留訂金的延期生會優先訂位,剩下的位子才是依照先進先出的方式依序訂位。活動參數節點
還記得我們在前面有看過UML母模,活動參數節點是一種物件節點,所以可以推想得到,在活動參數節點的性質表中,應該也會出現次序、選擇、上界的特性。所以,現在就請你跟我一塊打開活動參數節點的性質表來查看一下,如所以,請你看到圖7所示。
圖7 活動參數節點的性質表
沒錯吧,而且針對活動參數節點,VS2010甚至沒有支援更多其他的特性。最後,我們回過頭來看UML母模,親眼確定一下,如所以,請你看到圖8所示。活動參數節點繼承了物件節點的一切,包含物件節點跟其他元素之間的關係。
圖8 活動參數節點[UML母模]
輸入栓與輸出栓
回憶一下,除了活動參數節點外,另一種重要的物件節點是什麼?就是輸入栓和輸出栓了。因此,我們打開輸入栓和輸出栓的性質表來查看一下,可以發現它們裡頭也理所當然地記錄了次序、選擇和上界的特性,如所以,請你看到圖9所示。所以,我們僅會繼續來談另外一項特性「個體數目」(Multiplicity)。
圖9 輸入栓和輸出栓的性質表
那我們就先來談輸入栓的個體數目吧。輸入栓暫時保管了動作需要消耗的物件或資料,但是有時候,我們會遇到動作一次需要多個物件或資料才能夠執行,一個物件或資料是不夠的,這時就會需要在輸入栓中設定個體數目的下限,意味著最少需要消耗的資料或物件數量。而且,如果有限制這個動作最多只能消耗多少數量的資料或物件的話,就可以設定個體數目的上限。
圖10 輸入栓的個體數目
但是,VS2010仍然無法讓我們在輸入埠的圖示旁顯示出重要的個體數目設定,雖然我們在輸入栓的性質表中,確實做了個體數目的限制,如所以,請你看到圖11所示。
圖11 輸入栓的個體數目
至於,輸出栓是用來暫時保存動作產出的資料或物件,所以輸出栓的個體數目下限可以用來限制該動作產出物件的最少數量,而上限則是用來限制最大產出數量的。此處,我就不舉例了,你可以自行練習想想可有什麼樣的情況,需要設定輸出栓的個體數目的。
最後,我們回過頭來學習一下,在UML模式的何處記載了關於栓的個體數目的,如所以,請你看到圖12。
圖12 學員輸入栓的性質表
開發專案在正式投入系統分析設計工作前,還有一小段了解企業現行或未來運作流程的工作要做,而這一小段工作一般稱之為「企業流程建模」(Business Process Modeling)。繪製企業流程圖是企業流程建模產出的重要工件之一,便是應用此處所學到的活動圖概念。價值
當然,並非所有軟體開發一開始都需要企業流程建模,但是如果能花些成本執行企業流程建模的話,確實可以帶來下列幾項好處:
1. 縮減企業目標與具體實現之間的差距:企業當然不會隨意就投入一堆預算來建構資訊系統,而是因為企業有它預想的目標需要達成。然而,企業目標總是在資訊系統具體實現之前就已經形成,如何縮減目標與實現兩者之間的差距呢?最好的方法之一是,花點時間釐清企業領域中的大小事。
2. 協助重要關係人(Stakeholder)了解並釐清企業運作:我過去輔導一個團隊,有個經驗。當時我們直接切入定義用例(Use Case),並沒有要求應用活動圖來繪製企業流程,但是團隊成員自動補上了企業流程圖。詢問之下才知道,團隊成員覺得大家對企業流程好像不太清晰,所以才想透過活動圖來具體呈現企業流程,一方面讓團隊成員有共識,另一方面也方便聚焦討論。
3. 提高創新流程的可行性:「創新」絕對是現代企業最關注的主題之一了,不創新則退。我們可以先透過活動圖描述企業現行的運作模式,瞭解企業組織的潛在問題,接著在紙上改版創新企業流程,得出另一版創新的企業流程圖。或許,這只是個低成本的小小創新,但是企業時時刻刻落實創新精神、做到創新工作,也就呈現了持續成長的景象了。
4. 萃取出可以支持企業運作的系統需求:資訊系統的需求來自於企業運作,不了解企業運作,如何能夠設計出令企業滿意、願意買單的資訊系統呢?所以,在軟體開發實務上,當然可以直接切入用例建模(Use Case Modeling)、描述系統功能性需求。但我還是會建議你投入一丁點的預算,優先執行企業流程建模,絕對不會令你失望的!
至此,我們差不多已經講完VS2010所支援的活動圖初級概念和中級概念,下一回我將用案例來說明如何運用活動圖,也分享我自己累積的活動圖最佳實務。
VS2010支援的UML初級概念與中級概念 |
● 動作(Action):動作是活動(Activity)中的一個步驟(single step),它具有不可分解的特性。 |
專欄作者
熱門新聞
2024-11-05
2024-11-05
2024-11-04
2024-11-07
2024-11-02
2024-11-06