迷途書童

          敏感、勤學、多思
          隨筆 - 77, 文章 - 4, 評論 - 86, 引用 - 0
          數據加載中……

          Robustness Diagram - 從需求分析到架構設計

          轉載自:http://www.dotblogs.com.tw/jed/archive/2010/11/21/robustness_diagram.aspx 
          什么是Robustness Diagram

          Robustness Diagram是一種很特殊的圖形,介于Class Diagram與Activity Diagram之間,最早由Ivar Jacobson于1992年所提出,臺灣這邊翻成強韌圖、穩健圖,對岸則采譯音翻成魯棒圖。在需求分析領域,UML的Use Case Diagram已經被視為需求捕獲的重要工具,藉由Use Case及Use Case敘述文件,可以很清楚的將需求分解展開,但接下來該如何將Use Case的需求描述轉化成設計架構呢?以中小型的軟體系統來說,通常使用Use Case Diagram+ Class Diagram+ Sequence Diagram就能進行分析設計,而Use Case Diagram是站在使用者的角度來看系統全貌,Class Diagram及Sequence Diagram則分別代表了系統靜態結構及動態的交互關系,過去我使用這3個圖型進行開發就大致滿足所需 ​​了,也許會再依實際情況使用其他UML圖形,但隨著經驗累積及學習,漸漸感覺從分析跨越到設計之間存在著一道檻,領域模型的提煉,我們可以采用四色原型分析法或交易樣式,但系統架構的設計,要考慮到更多方方面面,Robustness Analysis Diagram正好可以幫助我們設計出一個基于需求且能繼續進行細部設計的初始架構。

           

          Robustness Diagram的基本元素及關系介紹

          image

          如上圖,主要的圖形就只有3種,Boundary(邊界)、Control(控制)及Entity(實體),這3個圖形分別代表了不同的職責。

          Boundary : 邊界物件,Use Case的主要元素之一就是Actor(參與者),Boundary的職責就是與Actor互動,它代表著一種外部元素與系統互動的關系。

          Control : 控制物件,代表系統的動態行為,描述Use Case中系統應具有的規則與處理邏輯。

          Entity : 實體物件,泛指系統會存取的資料,基本上是可以對應到領域物件。

          這3個元素之間有著基本的​​限制關系 :

          Boundary及Entity必須透過Control交談,Entity與Entity或Boundary與Boundary之間也必須透過Control。而Actor則只能與Bounday進行互動。

           

          實作范例

          接下來用一個簡單的例子來說明如何繪制Robustness Diagram,假設今天開發一套汽車檢驗記錄系統,經過需求訪談及分析后,獲得如下圖的Use Case Diagram。

          image

          接下來以驗車的Use Case為例,藉由三個元素的特性找出對應的職責,初步繪制出如下的Robustness Diagram

          image

          我們進一步思考,驗車會去讀寫客戶車籍資料,并且要​​寫入驗車歷史記錄,因此驗車還包含了查詢及驗證輸入的職責,基于OOD的SRP(單一職責原則),可以再拆分出2個Control物件(如下圖)。

          image

          繼續思考每一個元素所代表的職責之間的關系,初步的將系統拆分為幾個部份后,最終獲得如下的設計圖

          image

          初步的架構設計便完成了,順利的銜接Use Case之后的設計,我們已藉由Robustness Diagram識別出系統在驗車這個Use Case的各種職責,這對后續的細部設計非常重要,不論是要繪制Class Diagram、Activity Diagram,或是Sequence Diagram,都比較容易進行,但這不是設計的終點,只是起點而已。

          posted on 2012-03-24 04:10 迷途書童 閱讀(2118) 評論(1)  編輯  收藏 所屬分類: 隨感 、系統設計

          評論

          # re: Robustness Diagram - 從需求分析到架構設計  回復  更多評論   

          很好的想法啊
          2012-03-24 09:19 | tb
          主站蜘蛛池模板: 秦安县| 凤庆县| 民乐县| 固始县| 界首市| 松原市| 钦州市| 玉龙| 垣曲县| 巴东县| 丁青县| 克拉玛依市| 德阳市| 措勤县| 全州县| 安顺市| 海晏县| 云林县| 清河县| 普兰县| 洪湖市| 湘潭县| 莱芜市| 曲沃县| 灵山县| 周宁县| 迁安市| 潮州市| 临安市| 博湖县| 青川县| 宁都县| 海南省| 汪清县| 西峡县| 屏山县| 石柱| 沽源县| 建宁县| 西吉县| 丰宁|