46
Visual Studio 2010 在 UML 在在在在在在在在在 在在在 在在在在在在在在 , K2

Visual Studio 2010 在 UML 上對開發人員的助益

Embed Size (px)

DESCRIPTION

Visual Studio 2010 在 UML 上對開發人員的助益. 彭靖灝 大中華區技術總監 , K2. 課程大綱. UML 二三事 VSTS 2010 二三事 在 VSTS 2010 上運用 UML. UML 二三事. 為什麼要塑模 (Modeling) ?. 展現學問 好玩 遵循規定 溝通. 溝通上可能的混淆. 摘自: Learning UML 2.0. 期望透過共通語言減少混淆. 摘自: Learning UML 2.0. UML 有什麼問題?. 別唱高調了 ( 不能成為成品的模型只是簡報的材料而已 ) 談 UML 等於高成本 - PowerPoint PPT Presentation

Citation preview

Page 1: Visual Studio 2010 在 UML 上對開發人員的助益

Visual Studio 2010 在UML 上對開發人員的助益

彭靖灝大中華區技術總監 , K2

Page 2: Visual Studio 2010 在 UML 上對開發人員的助益

課程大綱• UML 二三事• VSTS 2010 二三事• 在 VSTS 2010 上運用 UML

Page 3: Visual Studio 2010 在 UML 上對開發人員的助益

UML二三事

Page 4: Visual Studio 2010 在 UML 上對開發人員的助益

為什麼要塑模 (Modeling) ?• 展現學問• 好玩• 遵循規定•溝通

Page 5: Visual Studio 2010 在 UML 上對開發人員的助益

溝通上可能的混淆

摘自: Learning UML 2.0

Page 6: Visual Studio 2010 在 UML 上對開發人員的助益

期望透過共通語言減少混淆

摘自: Learning UML 2.0

Page 7: Visual Studio 2010 在 UML 上對開發人員的助益

UML 有什麼問題?• 別唱高調了 ( 不能成為成品的模型只是簡報

的材料而已 )• 談 UML 等於高成本• UML 很難懂,很難學 ( 那一個學校教過? )• 當焦點專注在成品時,如何反映回模型 ( 模

型和成品間真的不能保持同步嗎? )

•如何從模型到成品

Page 8: Visual Studio 2010 在 UML 上對開發人員的助益

為什麼現在談 UML ?• UML 的影響無遠弗屆 (use case, class

diagram…)• 技術的變化讓之前存在的一些應用障礙破

除• .NET 開發人員的技能有必要從「結果導

向」轉到「架構導向」

Page 9: Visual Studio 2010 在 UML 上對開發人員的助益

UML 101

Page 10: Visual Studio 2010 在 UML 上對開發人員的助益

Use Case Diagram( 做什麼 )

• 焦點:需求• 整個模型的核心,決定系統要做什麼• Use case 也可視為建立 test case 的起點• 成份

– Actor– Communication Line– Use case

• 構成 Use Case 的要素– 必然產出一些可衡量的成果給使用者或外部系統

Page 11: Visual Studio 2010 在 UML 上對開發人員的助益

範例案例名稱 Create a new BLOG Account

相關需求 需求 A.1

作業目標 新作者或既有作者向 Administrator 要求一個新的部落格帳號

前提 系統僅限於可辨識的作者操作,所以作者必須具備適當的識別身份

成功結束條件 為作者建立了新的部落格帳號

失敗結束條件 建立新部落格帳號的要求被拒絕

主要角色 Administrator

次要角色 Author Credentials Database

觸發時機 Administrator 要求 CMS 建立新的部落格帳號

主要流程 步驟 作業1 Administrator 要求系統建立新的部落格帳號2 Administrator 選擇帳號類型3 Administrator 輸入作者詳細資料4 作者詳細資料和 Author Credentials Database 做過驗證5 建立新的部落格帳號6 新部落格帳號的相關摘要資訊郵寄給作者

延伸作業 步驟 分支動作4.1 Author Credentials Database 未驗證作者的詳細資料4.2 作者的新部落格帳號要求被拒絕

Page 12: Visual Studio 2010 在 UML 上對開發人員的助益

範例

Page 13: Visual Studio 2010 在 UML 上對開發人員的助益

Activity Diagram( 如何做 )

• 焦點:作業流程• 決定系統如何完成作業• 適合描述商務流程

Page 14: Visual Studio 2010 在 UML 上對開發人員的助益

範例

Page 15: Visual Studio 2010 在 UML 上對開發人員的助益

Class Diagram( 有那些 )

• 焦點:系統的邏輯結構• 描述系統中所需要的具體成份• 是轉換成開發成果最直接的媒介

– 可直接對映到物件導向的各種概念• Attribute Property• Operation Method• Visibility Access• …

Page 16: Visual Studio 2010 在 UML 上對開發人員的助益

範例 (Visibility)

Page 17: Visual Studio 2010 在 UML 上對開發人員的助益

Sequence Diagram ( 何時做 )

• 焦點:互動的順序• 由一組參與者 (participants) 構成• 指明參與者間的互動關係和發生

順序

Page 18: Visual Studio 2010 在 UML 上對開發人員的助益

範例

Page 19: Visual Studio 2010 在 UML 上對開發人員的助益

範例─拆解 CMS

Page 20: Visual Studio 2010 在 UML 上對開發人員的助益

Package

• 焦點:決定類別的分組• 相當於 .NET 中的 Namespace• 不見得有 package diagram ,

可能直接表現在架構中• 也可以想像成架構圖中的單元

模組

Page 21: Visual Studio 2010 在 UML 上對開發人員的助益

範例

Page 22: Visual Studio 2010 在 UML 上對開發人員的助益

Component Diagram

• 焦點:系統的實際成份• 用以組織系統的成份,以便於管理、重複使用或替換

• Component 和 Class 之間的區別在於責任範圍涵蓋的規模

• 提供對外銜接的 port

Page 23: Visual Studio 2010 在 UML 上對開發人員的助益

範例

Page 24: Visual Studio 2010 在 UML 上對開發人員的助益

Deployment Diagram

• 焦點:系統部署• 處理在實際的環境中,各個成份

和硬體的關係及通訊的關係

Page 25: Visual Studio 2010 在 UML 上對開發人員的助益

範例

Page 26: Visual Studio 2010 在 UML 上對開發人員的助益

VSTS 2010 二三事

Page 27: Visual Studio 2010 在 UML 上對開發人員的助益

Visual Studio Team System 2008

Page 28: Visual Studio 2010 在 UML 上對開發人員的助益

Visual Studio Team System 2010Visual Studio Team System 2010

Page 30: Visual Studio 2010 在 UML 上對開發人員的助益

動機複雜度仍然是個嚴重的問題

• 到處都存在複雜度– 程式碼、需求、組織內的政治考量

• VSTS 2010 透過以下策略處理…–增進團隊成員間的共享資訊建立共識及理解– 提昇對於既有系統的瞭解程度–取得並維護控制權的能力

Page 31: Visual Studio 2010 在 UML 上對開發人員的助益

對象專注於架構設計師和開發人員

• 開發人員想要…–…嘗試瞭解既有程式碼–…專注於「對的修正」

• 架構設計師想要…–…嘗試瞭解領域以及對應實做關係–…做為團隊中的「解決方案」或「應用系統」

的架構設計師

Page 32: Visual Studio 2010 在 UML 上對開發人員的助益

內容產品能力

• 「瞭解領域」– UML 2.x Designers– Modeling Project 及 Explorer

• 「瞭解程式碼」– Architecture Explorer– Sequence Diagram Generation– DGML Graphs 及“ Standard” Graphs

• 「維持控制權」– Layer Diagram 及自訂MSBuild 工作– Work Item 的整合

• 擴充性

Page 33: Visual Studio 2010 在 UML 上對開發人員的助益

Layer Diagram

• 從架構面進行驗證以確保程式碼吻合期望的設計

• 充份呈現期望設計的細節

• 可以在圖中對映類別和命名空間到各個層次

Page 34: Visual Studio 2010 在 UML 上對開發人員的助益

Architecture Explorer

• 瞭解系統有助於避免蝴蝶效應 (今日的小變動成為明日臭蟲 )

• 協助發現並理解系統是如何運作的

• 對既有程式碼提供視覺化的資產分析並瞭解其中關聯

Page 35: Visual Studio 2010 在 UML 上對開發人員的助益

在 VSTS 2010上進行塑模

Page 36: Visual Studio 2010 在 UML 上對開發人員的助益

Model Project

• 塑模的主要起點• 各個 UML diagram 不一定只能出現在

model project• UML Model Explorer 只會顯示Model

Project 的內容

Page 37: Visual Studio 2010 在 UML 上對開發人員的助益

VSTS 2010 對 UML 的支援• 支援以下項目

– Use Case Diagram– Activity Diagram– Sequence Diagram– Component Diagram– Class Diagram– Package

Page 38: Visual Studio 2010 在 UML 上對開發人員的助益

UML Model Explorer

• 提供模型的「邏輯」檢視方案總管是「實體」檢視

• 每一個節點對應到一個塑模專案

• 提供使用成份的簡易操作能力

Page 40: Visual Studio 2010 在 UML 上對開發人員的助益

Component Diagram

Page 41: Visual Studio 2010 在 UML 上對開發人員的助益

Class Diagram

Page 42: Visual Studio 2010 在 UML 上對開發人員的助益

Sequence Diagram

Page 43: Visual Studio 2010 在 UML 上對開發人員的助益

Layer Diagram

Page 44: Visual Studio 2010 在 UML 上對開發人員的助益

特色• 充份善用 .NET metadata ,使架構設計

和程式碼間可以交互配合• 充份結合 VSTS其他功能

– Work Item– DSL

• 完善的說明文件

Page 45: Visual Studio 2010 在 UML 上對開發人員的助益

總結• 架構設計師和開發人員不應該在橋的兩邊

– 架構設計師是用戶和開發團隊的橋樑• VSTS 2010 讓軟體開發更透明• 可以考慮多花些時間在 UML 上面了

Page 46: Visual Studio 2010 在 UML 上對開發人員的助益

相關資源• Skinner's Blog :

http://blogs.msdn.com/camerons/default.aspx

• Chris Lovett's Blog : http://www.lovettsoftware.com/blogengine.net/

• Soma's Blog:http://blogs.msdn.com/somasegar/