顯示具有 softwareEngineering 標籤的文章。 顯示所有文章
顯示具有 softwareEngineering 標籤的文章。 顯示所有文章

2011年11月6日 星期日

[UML] Relationship

[一般化關係] (Generalization)
  • 透過類別定義屬性和操作,所以日後針對同類別的一群物件,就可以使用相同的方式對待它們。
  • 不過有時候,這些物件並不是全然相同,可能大部分的屬性和操作相同,但是少部分的屬性和操作卻不同。在這種情況下,類別之間的一般化關係就派上用場了。
  • 在一般化的過程中,我們將特殊類別裡頭通用的屬性和操作記錄到一般類別裡,因此透過一般化關係,特殊類別可以繼承(Inheritance)一般類別裡的通用屬性與操作。
    • 由於特殊類別透過繼承,可以直接重用(Reuse)一般類別裡的屬性、操作和方法,節省開發成本。
    • 變動發生需要改版時,也只需要改版一般類別,節省維護成本。

[結合關係] (Association)
  • 類別之間最常見的關係。
  • 可以透過檢核下列兩項要件,判斷是否採用結合關係:
    • 在企業領域的專業概念裡,兩種物件之間有一種固定不變且需要保存的靜態關係。
    • 在資訊化時,系統會用到這些靜態關係,而且必須將它們存到資料庫

[聚合關係] (Aggregation)
  • 是一種特殊的結合關係。
  • 繼承了結合關係的特質,而且還獨有「整體-部分」(Whole-Part) 的特質。
  • 可以透過檢核下列三項要件,判斷是否採用聚合關係:
    • 在企業領域的專業概念裡,兩種物件之間有一種固定不變且需要保存的靜態關係。(繼承自結合關係的要件)
    • 在資訊化時,系統會用到這些靜態關係,而且必須將它們存到資料庫。(繼承自結合關係的要件)
    • 在企業領域的專業概念裡,兩種物件之間有Whole-Part的靜態關係。(聚合關係獨有的要件)

[組合關係] (Composition)
  • 是一種特殊的聚合關係。
  • 繼承了結合關係,以及聚合關係的「整體-部分」(Whole-Part) 的特質,還獨有全然擁有Part物件的特質。(Existence-Part)
  • 可以透過檢核下列四項要件,判斷是否採用組合關係:
    • 在企業領域的專業概念裡,兩種物件之間有一種固定不變且需要保存的靜態關係。(繼承自結合關係的要件)
    • 在資訊化時,系統會用到這些靜態關係,而且必須將它們存到資料庫。(繼承自結合關係的要件)
    • 在企業領域的專業概念裡,兩種物件之間有Whole-Part的靜態關係。(繼承自聚合關係的要件)
    • Part物件只能連結一個Whole物件,且Whole物件被註銷(Destroy)時,Part物件必須一塊被註銷。(組合關係獨有的要件)

Summary
Association -> Aggregation -> Composition


* Reference
- UML Blog: 1.4.6-一般化關係
- UML Blog: 1.4.7-結合關係
- UML Blog: 1.4.8-聚合關係
- UML Blog: 1.4.9-組合關係

2011年2月22日 星期二

[UML] 繪圖注意事項

* element 應分類 (package)

* 內容的 element 的應由上而下,由左至右靠近核心層

* method 參數可略

* attribute and method 依其可視度順序,public、static、private

* 可為 model 加一致性的前置命名,如: CLS_、ACT_、SEQ_。

* astah 設定:
  1. Grid: 2
  2. image size: 100
  3. enable shadow
  4. no color
  5. using straight line
  6. 用 export 得到的圖為 32 bits,用複製貼上的圖為 24 bits

* 記得對齊橫向與直向元素,以及之間的線

* usage 的線可用間隔來計算,使每條線的間隔相同

* 縮小間距,以A4為評估範圍

* 字的位置保持一致

* 若屬性有 set/get method,則表示外面可以取得,可視為 public

* 圖片若是用「插入」的方式放置,word會自動將圖縮放到適當的大小;若是用「貼上」的則不會

圖要精要可視,圖若內容太多 可將頁面上功能再拆 為細項




Sequence Diagram default value references
取消 Frame Visibility、Message Parameter Visibility(Initial)、Message Parameter Type Visibility(Initial)、Message Parameter Direction Kind Visibility(Initial)、Message Return Value Variable Visibility(Initial)、Message Return Value Visibility(Initial)




# Update on 20120303


* 整張圖中 element 的分佈位置、空間分配(不要留太多空白浪費空間)

* astah 中用 bind 畫出 generic 關係

* 有繼承關係的 elements 盡量擺放為一般繼承圖示表示的方式

* 有關係的 elements 應拉近距離,讓'一張圖能以一區塊一區塊來看,清楚看出誰與誰是關係較緊密的

* In Word, Headline 1 and 2 (ex: 1 ... 1.1 ...) 都應換頁(enter + ctrl)


dependency:  A -> B =  a 會受 b 的改變影響


* 以 png 匯出圖 (jpg will loss data)

2011年2月12日 星期六

Case Tool

.是軟體工程的電腦輔助工具,它必需依循軟體工程裡特定的方法論

.譬如 IDEF 、 UML 等,進而將 SDLC (系統發展生命週期,System Development Life Cycle)各階段工作自動化的軟體,其中對階段的定義包含有 ( 以 IEEE STD 1012 對 SDLC 定義為例 ) :
-- 概念規劃
-- 需求分析
-- 設計
-- 程式建置
-- 測試
-- 安裝與簽出
-- 運作與維護等七個階段
.在上述的七個階段裡, CASE Tool 分別透過下列技術方法與管理機制,來達成 SDLC 工作自動化的目標:
-- 標準化的方式,來提高效率 ( 譬如:各種 Standard, Template)
-- 知識化的方式,來累積及分享,開發的經驗與知識 ( 譬如: Repository)
-- MDA(Model Driven Architecture 模型導向架構 ) 作為增長有效溝通的方法與工具
-- MDD(Model Driven Development 模型導向開發 ) 作為可重覆利用的開發方法與工具
-- 依所採用的方法論,檢測是否遵循方法論的遊戲規則
-- 提供不同型態的 SDLC 樣板,給各式不同型態的軟體專案使用
-- 變更管理的機制,來控管需求變更所衍生的相關程序與問題
-- 型態管理的機制,來管理 SDLC 各階段自動化整合的問題
-- 安全管理機制,來管理與監控任務與使用的權限
-- 各種業界標準,如 XML 等,來與它牌 CASE Tool 整合
綜觀以上, CASE Tool 的功能是非常寬廣的,簡單說來:『從需求產生到軟體下架停用為止』, CASE Tool 提供了我們,一個在 SDLC 各階段的自動化工作中,所需之技術與管理的平台,也可以當成是軟體發展的基礎工程


.Reference 1

[UML] UML 優點和組成

.優:
    -- 模型元素的統一
    -- 意義的統一
    -- 不限制於特定方便論
    -- 能涵蓋開發各個階段
    -- 容易討論問題點與解決方式

.UML的組成元素:
    -- view: 從各種視點觀察要塑模的對象
    -- diagram: 說明view的內容
    -- model element: diagram的組成元素

GQM

.Goal Question Metric(度量指標) 

.軟體度量 (software measurement)為確保軟體品質的一種方法,透過度量程式 (measurement program) 的輔助 

.方法主要 分為兩個過程:
-- 由上而下的過程主要是利用問題(questions)的方式,引導度量目標產生相關的度量指標;
-- 由下而上的過程則是根據度量指標所收集的資料,經過分析(analysis)與解讀 (interpretation),檢視其與度量目標之間的對應關係。GQM提供了一個可行的度量程式機制,透過GQM所提供的指導原則,軟體度量人員可以明確的制定度量計畫與目標,同時透過這些度量指標,管理與改善軟體開發流程與組織架構,達到評估與改善先前所訂定之目標。 

.Reference: Wiki