成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Visual Studio 2010:架構師最怕程序員知道的新工具

原創
開發 后端
本文是Visual Studio進化史專題系列文章中,關于Visual Studio 2010的一篇。可以說VS 2010中最引人矚目的是架構設計方面的改進,是它讓Visual Studio 2010真正成為架構師的好伙伴,也是最怕程序員知道的新工具。

【51CTO獨家特稿】2010年4月12日是微軟Visual Studio 2010正式版發布的日子。作為Visual Studio的用戶,您是否還記得自己使用的***個Visual Studio版本?是否還記得CODE出***段代碼時的興奮?是否還記得那無數個尋找Bug的日日夜夜?51CTO開發頻道帶您一起走進Visual Studio歷史,今天我們要介紹的是——Visual Studio 2010。

Visual Studio 2010建模概述

在微軟Visual Studio 2010(Visual Studio 2010 Ultimate)中,應用程序生命周期(ALM)是其重要特性和SDLC實現方式之一。我們將一個軟件的生命周期(SDLC)劃分為幾個階段,而利用各種工具輔助每個關鍵環節進行管理,就稱為應用程序生命周期管理(ALM,Application Lifecycle Management)。微軟的Visual Studio 2010將會努力打造一個功能平等、共同分擔,易用便捷的平臺,以用于組織內的應用程序生命周期管理過程。在Visual Studio 2010的工具中,真正主角已經不在是作為編碼工具的Visual Studio IDE,而是ALM的核心TFS(Team Foundation Server)。

其中,在架構方面則是通過新的架構瀏覽器(Architecture Explorer)和架構層圖(Architecture Layer Diagram),以圖形化的方式描述系統架構,從而使得項目中的技術人員或非技術人員都能以模型透過圖形化的方式進行協作,以及定義企業與系統功能。另外,VSTS 2010也同時支持統一建模語言(UML,Unified Modeling Language)及特定領域語言(DSL,Domain Specific Language),架構設計人員在Visual Studio 2010中可以進行架構與建模設計,從而擺脫了傳統使用非VS架構設計工具,使得設計師可以更有效率的進行.NET架構設計工作。

微軟在最初的時候,項目中的技術人員使用一些單獨的開發工具進行軟件開發,例如架構師使用Rose進行架構設計,開發人員則使用Visual Studio進行編碼。同時,項目中的非技術人員則使用一些通用的項目管理工具進行項目管理,例如項目經理使用Project,Excel等制定項目計劃,進行任務劃分和分配等。Visual Studio經過近十年左右的發展,已經不再是僅僅面向某一個角色(開發人員)的工具,而是要服務于軟件開發過程中的所有不同的角色(開發人員、測試人員、架構師、項目經理等),使其覆蓋在整個軟件開發生命周期(SDLC)中,所以,在Visual Studio 2010中的各個功能之間,彼此相互關聯和互通也大大增強。

我們可以通過Visual Studio 2010架構泳道(swim-lane)圖,來對Visual Studio 2010建模過程功能應用更直觀的了解。如圖1所示。

架構泳道圖

圖1  Visual Studio 2010建模過程結構

在架構建模設計過程中,同樣遵循ALM的過程定義(理解代碼、域理解、控制維護、擴展性等)。我們可以根據產品所針對的問題,將通過上圖中的4個主題的方式來分析Visual Studio 2010建模功能過程。例如,“理解代碼”描述如何利用Visual Studio 2010中的代碼分析和可視化技術幫助用戶分析理解已有的系統。最終,用戶可以利用這些技術在已有的代碼庫基礎上幫助客戶實現***的功能需求。

Visual Studio 2010新增了UML Modeling Project,提供了對類圖,時序圖,用例圖等的支持,這也是基于VS.NET DSL來實現。如圖2所示。

VS中的DSL

圖2  DSL設計模型

VSTS2010架構分析工具

VSTS 2010全新的架構工具可以讓我們了解應用程序和功能設計,并幫助驗證設計與執行過程中不偏離開發目的。它除了支持一般系統分析設計流程(需求—>實體)外,也支持另一類的流程——逆向工程 (Reverse Engineering)。

通過逆向工程可以理解應用程序之間的部分是重要的依賴,以確定可能會出現問題。此外,直觀圖可以幫助我們找到***地方來執行新的功能。DGML文件可以使解決方案產生的依賴矩陣和布局,每個視圖可以在項目結構中提供一個不同的視圖。如圖3所示。

程序集關系分析

圖 3 程序集關系分析 

通過高級的視圖功能可以來分析模型的整體結構。在一個區域中,可以根據需要修改15分鐘到一個小時之間的變化差異的依賴關系,也可以放大局部類之間的關系圖。

VSTS2010逆向工程類型可分為靜態與動態,靜態指的是整個程序代碼的靜態結構,如組件或類別間的關系;動態則是程序代碼執行的順序,如某個程序代碼區段相關方法調用與響應順序。

靜態逆向工程(Static Reverse Engineering)

VSTS2010提供針對不同功能層面的分析工具來輔助程序代碼進行逆向工程。Layer Diagram可從高階面來看架構;Architecture Explorer能從特定點切入,只探索我們所關心的部分;.net Class Diagram則可分析詳細部分的Class結構。靜態的逆向工程,主要有三個工具:Architecture Explorer、Layer Diagram和Class Diagram。Layer Diagram可以讓我們以高層角度來分析整個軟件結構,細膩程度可以自由選擇,從項目、Namespace、Classs、到方法都可以。如圖4所示。

關系層圖

圖 4 關系層圖

我們可以定義每個Layer包含的工作產品(Artifact),并可以直接用相關文件對應到Layer,然后對Layer右鍵單擊選擇View Links,即可檢視此Layer相關工作產品。Layer Diagram基本上為快照(Snapshot)圖形,后續即使程序代碼有了變動,圖形并不會自動跟著更新,所以必須定期執行Validate Architecture。如圖5所示。

 

層瀏覽器 展現順序圖合并

圖 5  層瀏覽器

動態逆向工程(Dynamic Reverse Engineering)

在以前程序開發等人員,當分析程序代碼完全沒頭緒時,需要從程序代碼中直接理解程序流程,這是一件困難且很痛苦的事。 VSTS2010新增架構工具支持動態逆向工程,主要有兩個工具:依賴圖(Dependency Graph)和Sequence Diagram(時序圖),使用這兩個工具會大大增強代碼分析的效率。依賴圖可以協助理解程序代碼的結構與關系,可以透過架構瀏覽器(Architecture Explore)來生成依賴圖。順序圖是用來表達程序流程的圖像工具,VSTS2010也用于對象導入系統設計,可以手工直接繪制Sequence Diagram功能,也能通過逆向工程依選擇代碼段自動生成圖形。

展現順序圖合并 展現順序圖合并2

圖6 展現順序圖合并

如圖6所示,分組生命線(Lifeline Grouping)。在VSTS2010中,順序圖具有合并功能,可以通過Group功能把Lifeline合并起來,按“Ctrl”鍵選擇多個Lifeline后,右鍵單擊選“Collapse”,即可合并成LifelineGroup。例如,可以將兩個Class1合并起來,若要展開,右鍵單擊選“Expand”。

#p#

VSTS 2010模型瀏覽器

在實際的項目開發實踐中,大多數情況下都是在已有代碼的基礎上構建新的系統。在這種情況下,架構師或者開發人員遇到的一個典型的問題是:沒有好的工具可以幫助他們很好的理解現有代碼的架構,從而很難有效地在現有代碼的基礎上,添加新的功能以滿足新的需求。為了解決這個問題,VSTS 2010提供了新的兩個重要的建模工具:UML模型瀏覽器(UML Model Explorer)和架構瀏覽器(Architecture Explorer)。新的模型瀏覽器可以讓架構師為已有代碼創建完整的架構圖,并且能夠理解原有系統的各個組件是怎樣協作在一起的。這將為架構師決定如何設計、使用、復用或者是否放棄現有代碼,提供了非常有價值的參考信息。

UML模型瀏覽器(UML Model Explorer)

在VSTS 2010 Architecture和Ultimate版本中,新增加了一個新的工具窗(UML Model Explorer)來幫助用戶理解和使用所創建的UML模型。它是一個樹狀結構的WPF組件,用來展示UML模型中的層次結構。在這里,模型是指所創建Modeling Project(工程模板)中的內容。通過這個工程模板可以創建模型工程,在模型工程中再創建UML圖。也就是說UML類圖、活動圖、用例圖、組件圖,只能在模型工程中才能創建,并且可以按照模型架構進行設計與創建層次。

Modeling Project是模型數據、圖表文件和其他用戶想要存儲的資源(比如Excel、Word文檔)的容器。用戶可以在任何新建的或者已有的解決方案中添加該工程,在解決方案中同樣支持不同程序工程(C#、VB、Web等等)。模型工程Modeling Project同樣也支持版本控制。一般來說,UML Model Explorer中的根節點用來表示Modeling Project本身。如圖7所示。

構建 構建2

圖7 模型工程創建

創建模型工程后,在Solution Explorer下有一個默認創建的文件夾“ModelDefinition”下面的*.uml文件是建模工具自動添加和維護,不需要用戶任何手工干預。它們存儲了UML圖內部所對應的模型關系定義,這是整個模型工程的核心。uml文件和模型中Package對象是一一對應的,當創建好一個新的模型工程后,會有一個默認ModelDefinition.uml文件被創建,它對應了整個模型的根Package,也就是“UML Model Explorer”窗口中的根節點。

架構瀏覽器(Architecture Explorer)

在Visual Studio 2010中,提供了構架瀏覽器(Architecture Explorer)工具來輔助廣大開發人員來分析和理解已有代碼或者編譯好的.Net Assembly。它能夠以Class View、Solution View和 File System的方式來瀏覽已有的系統代碼。Class View和Solution View支持對Visual C#和Visual Basic.Net工程的瀏覽,而File System -> Select Files方式則可以用來瀏覽任何基于.Net的編譯好的Assembly文件的內容,類似Reflection反編譯工具的功能。如圖8所示。

架構瀏覽器

圖8  架構瀏覽器

另外,可以通過鼠標拖拽的方式,直接把構架瀏覽器中的內容通過拖拽的方式添加到已有的依賴圖上。除了能瀏覽打開的工程之外,構架瀏覽器還可以直接瀏覽編譯好的Assembly文件中的名字空間、類型等,只是不能雙擊導向到相應的代碼,其它都與直接瀏覽工程差不多。如圖9所示。

架構瀏覽器選擇類視圖生成依賴圖1架構瀏覽器選擇類視圖生成依賴圖2

圖10  架構瀏覽器選擇類視圖生成依賴圖

規格瀏覽器(Spec Explorer)

Spec Explorer是微軟發布的一款與Visual Studio 2010緊密整合的基于模型測試的工具,也是一個Visual Studio集成開發環境的插件。它已經被大量用于微軟內部技術團隊的測試,并已在Windows協議測試工程(超過兩百工程師參與并協同工作)。Spec Explore與VS整合工作環境是基于模型的測試(Model-Based Testing,MBT)技術,它是一個輕量級的,形式化的驗證軟件系統的方法,并可以對測試軟件系統(System Under Test,SUT)進行形式化的建模,設計出機器可讀的模型;目前完全驗證一致性的代價非常高,重量級的形式化方法往往難以被應用到實際工程中,而基于模型的測試在這方面體現了優勢,并已被運用到很多大型項目中。如圖11所示。

Spec Explore與VS整合基于模型測試

圖11  Spec Explore與VS整合基于模型測試

用戶可以通過Spec Explorer對一個軟件系統的期望行為進行建模,并自動生成能夠在Visual Studio的測試框架下運行的測試代碼。模型可以用當前主流的程序設計語言C#開發,然后通過Cord語言腳本對模型進行配置和裁剪。

Spec Explorer工具可以自動探索規格說明(Specification,Spec)的所有潛在行為,并將其行為模型表示為狀態機。一次探索的輸出有可能非常大,所以Spec Explorer提供了Cord語言對輸出進行裁剪,并選出測試中真正關心的場景。并能夠高效的解決狀態爆炸的問題。

SpecExplorerVisual Studio 2010.msi插件可以在

http://msdn.microsoft.com/en-us/devlabs/ee692301.aspx下載。

開發設計模型

Visual Studio 2010 Ultimate的ALM涵蓋了系統設計到測試階段的工具。其中,在架構方面包括新的架構檢視工具(Architecture Explorer),增加對統一建模語言(UML)的支持,例如類圖、用例圖、活動圖和時序圖等;以及架構層圖(Architecture Layer Diagram),以圖形化的方式描述系統架構,從而使得項目中的技術人員或非技術人員都能以模型透過圖形化的方式進行協作,以及定義企業與系統功能關系等。

VSTS 2010架構功能組成,主要功能分為三部分:1)理解現有代碼;2)明確結構設計;3)團隊合作。如圖12所示。

 VSTS2010架構功能模型

圖12  VSTS2010架構功能模型

新增Visual Studio 2010的Architecture功能,可供軟件架構師和開發等人員使用模型圖可以幫助理解代碼和用戶需求,使軟件系統具有更好的質量。例如,可以使用統一建模語言設計用戶需求的用例,活動類和序列圖功能等,來描述和溝通用戶需求,從而增強ALM的周期管理控制。Architecture工具模板,如圖13所示。

Architecture工具模板

圖13 Architecture工具模板

當在系統需求確定之后,我們便進入基于UML的面向對象的設計(Object-Oriented Design,OOD)系統設計階段,在這個階段中,將通過以下UML圖來呈現Visual Studio 2010在設計階段的支持和應用。

Visual Studio 2010的Architecture工具包括以下UML圖(參考圖9):

◆活動圖(Activity Diagram):在參與者之間闡明業務用例實現的工作流程。

◆組件圖(Component Diagram):組件圖的主要目的是顯示系統組件間結構或接口的關系。

◆類圖(Class Diagram):展示了系統的邏輯結構,類和接口的關系。可以用于存儲和系統之間的關系交換數據類型。

◆順序圖(Sequence Diagram):主要是顯示對象之間發送的消息的時間順序。

◆用例圖(Use Case Diagram):描述角色和用例之間的關系,著重展示系統必須實現的功能,用于在需求分析階段分析客戶需求。

此外,可以從已有代碼創建:層圖(Layer Diagram),代碼之間的不同部分依賴;類圖,

類型及其.NET關系代碼;順序圖,在方法調用.NET代碼順序。

UML 2.1.2規范定義了13種圖,Visual Studio 2010支持其中最常用的5種圖(類圖、用例圖、活動圖、組件圖和順序圖)。它們的底層的Meta模型是完全符合UML2.1.2規范定義的模型關系。

作者簡介

高陽,微軟MVP,51CTO駐站專家。連續兩屆微軟全球最有價值專家,微軟(北京).NET俱樂部講師。上海復旦大學軟件工程碩士,北京交通大學計算機科學學士。

【編輯推薦】

  1. 詳解Visual Studio 2010五大新特性
  2. 細數Visual Stuido 2010中VC++的新特征
  3. Visual Studio 2010鮮為人知的新特性
  4. 探究Visual Studio 2010中Parallel的使用
  5. 使用Visual Studio 2010 RC注意要點
責任編輯:彭凡 來源: 51CTO
相關推薦

2009-12-25 11:07:26

架構師

2009-12-30 16:49:03

架構師

2013-07-17 18:00:02

程序員禁忌程序員錯誤程序員bug

2011-07-19 10:43:10

Small Basic

2010-02-24 14:16:56

Visual Stud

2009-12-10 17:05:10

Visual Stud

2014-07-29 14:04:50

程序員

2011-12-26 10:17:07

Visual Stud

2017-11-14 11:00:53

程序員

2010-08-05 13:47:59

軟件架構師

2010-08-05 13:51:13

軟件架構師

2009-12-02 09:43:38

Visual Stud

2017-11-03 13:39:49

WOT峰會

2013-06-13 14:29:26

架構師程序員

2019-05-24 08:00:00

Visual StudVisual Stud程序員

2009-03-13 09:10:17

2013-01-28 10:23:12

軟件架構師架構師程序員

2009-06-04 16:37:20

SOA架構師業務流程

2010-09-25 08:50:00

Visual Stud

2015-06-18 05:57:42

程序員適應新工作
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 特黄特色大片免费视频观看 | 日韩成人一区 | 一级黄色片网址 | 在线黄| 日日夜夜天天 | 日韩一区二区三区在线 | 欧美在线小视频 | 99热这里只有精品8 激情毛片 | 视频一区二区在线观看 | 亚洲第一av| 欧美激情欧美激情在线五月 | 97精品超碰一区二区三区 | 亚洲毛片在线 | 欧美成人a | 欧美精品久久久久久久久老牛影院 | 精品日韩一区 | 日韩欧美在线播放 | 涩涩视频在线观看免费 | 一区二区av在线 | 久久久久久中文字幕 | 午夜无码国产理论在线 | 视频二区 | 国产精品美女久久久久aⅴ国产馆 | 亚洲精品久久久久国产 | 国产黄色在线观看 | 日韩一区二区三区av | 91精品国产综合久久久亚洲 | 亚洲成人免费观看 | 仙人掌旅馆在线观看 | 国产成人av电影 | 天天看天天爽 | 一区二区三区电影在线观看 | 成人免费视频 | 日韩一区在线播放 | 一级毛片大全免费播放 | 中文字幕在线第二页 | 欧美精品久久久久久 | 91精品国产色综合久久 | 日日草夜夜草 | www久久久| 国产91亚洲精品 |