新聞中心
隨著軟件開(kāi)發(fā)日趨國(guó)際化,對(duì)軟件的質(zhì)量要求和管理也隨之增高。微軟看到了應(yīng)用程序生命周期管理在業(yè)界逐漸被接受認(rèn)可的趨勢(shì)。在微軟VS2010(Visual Studio 2010 Ultimate)中,可以利用各種工具輔助每個(gè)關(guān)鍵環(huán)節(jié)進(jìn)行管理(ALM)是其重要特性。Visual Studio經(jīng)過(guò)近十年左右的發(fā)展,已經(jīng)不再是僅僅面向某一個(gè)角色(開(kāi)發(fā)人員)的工具,而是要服務(wù)于軟件開(kāi)發(fā)過(guò)程中的所有不同的角色(開(kāi)發(fā)人員、測(cè)試人員、架構(gòu)師、項(xiàng)目經(jīng)理等),使其覆蓋在整個(gè)軟件開(kāi)發(fā)生命周期(SDLC)中,本文將重點(diǎn)講述VSTS2010架構(gòu)設(shè)計(jì)方面的新功能應(yīng)用。

創(chuàng)新互聯(lián)公司專業(yè)IDC數(shù)據(jù)服務(wù)器托管提供商,專業(yè)提供成都服務(wù)器托管,服務(wù)器租用,內(nèi)江服務(wù)器托管,內(nèi)江服務(wù)器托管,成都多線服務(wù)器托管等服務(wù)器托管服務(wù)。
VS2010建模概述
VS 2010在軟件應(yīng)用生命周期管理(ALM)中,在架構(gòu)方面則是通過(guò)新的架構(gòu)瀏覽器(Architecture Explorer)和架構(gòu)層圖(Architecture Layer Diagram),以圖形化的方式描述系統(tǒng)架構(gòu),從而使得項(xiàng)目中的技術(shù)人員或非技術(shù)人員都能以模型透過(guò)圖形化的方式進(jìn)行協(xié)作,以及定義企業(yè)與系統(tǒng)功能。另外,VSTS 2010也同時(shí)支持統(tǒng)一建模語(yǔ)言(UML,Unified Modeling Language)及特定領(lǐng)域語(yǔ)言(DSL,Domain Specific Language),架構(gòu)設(shè)計(jì)人員在VS2010中可以進(jìn)行架構(gòu)與建模設(shè)計(jì),從而擺脫了傳統(tǒng)使用非VS架構(gòu)設(shè)計(jì)工具,使得設(shè)計(jì)師可以更有效率的進(jìn)行.Net架構(gòu)設(shè)計(jì)工作。
微軟在最初的時(shí)候,項(xiàng)目中的技術(shù)人員使用一些單獨(dú)的開(kāi)發(fā)工具進(jìn)行軟件開(kāi)發(fā),例如架構(gòu)師使用Rose進(jìn)行架構(gòu)設(shè)計(jì),開(kāi)發(fā)人員則使用Visual Studio進(jìn)行編碼。同時(shí),項(xiàng)目中的非技術(shù)人員則使用一些通用的項(xiàng)目管理工具進(jìn)行項(xiàng)目管理,例如項(xiàng)目經(jīng)理使用Project,Excel等制定項(xiàng)目計(jì)劃,進(jìn)行任務(wù)劃分和分配等。所以,在VS2010中的各個(gè)功能之間,彼此相互關(guān)聯(lián)和互通也大大增強(qiáng)。
我們可以通過(guò)VS2010架構(gòu)泳道(swim-lane)圖,來(lái)對(duì)VS2010建模過(guò)程功能應(yīng)用更直觀的了解。如圖1所示。
在架構(gòu)建模設(shè)計(jì)過(guò)程中,同樣遵循ALM的過(guò)程定義(理解代碼、域理解、控制維護(hù)、擴(kuò)展性等)。我們可以根據(jù)產(chǎn)品所針對(duì)的問(wèn)題,將通過(guò)上圖中的4個(gè)主題的方式來(lái)分析VS2010建模功能過(guò)程。例如,“理解代碼”描述如何利用VS2010中的代碼分析和可視化技術(shù)幫助用戶分析理解已有的系統(tǒng)。最終,用戶可以利用這些技術(shù)在已有的代碼庫(kù)基礎(chǔ)上幫助客戶實(shí)現(xiàn)***的功能需求。
VS2010架構(gòu)分析工具
VS 2010全新的架構(gòu)工具可以讓我們了解應(yīng)用程序和功能設(shè)計(jì),并幫助驗(yàn)證設(shè)計(jì)與執(zhí)行過(guò)程中不偏離開(kāi)發(fā)目的。它除了支持一般系統(tǒng)分析設(shè)計(jì)流程(需求—>實(shí)體)外,也支持另一類的流程——逆向工程 (Reverse Engineering)。
通過(guò)逆向工程可以理解應(yīng)用程序之間的部分是重要的依賴,以確定可能會(huì)出現(xiàn)問(wèn)題。此外,直觀圖可以幫助我們找到***地方來(lái)執(zhí)行新的功能。DGML文件可以使解決方案產(chǎn)生的依賴矩陣和布局,每個(gè)視圖可以在項(xiàng)目結(jié)構(gòu)中提供一個(gè)不同的視圖。如圖2所示。
通過(guò)高級(jí)的視圖功能可以來(lái)分析模型的整體結(jié)構(gòu)。在一個(gè)區(qū)域中,可以根據(jù)需要修改15分鐘到一個(gè)小時(shí)之間的變化差異的依賴關(guān)系,也可以放大局部類之間的關(guān)系圖。
VS2010逆向工程類型可分為靜態(tài)與動(dòng)態(tài),靜態(tài)指的是整個(gè)程序代碼的靜態(tài)結(jié)構(gòu),如組件或類別間的關(guān)系;動(dòng)態(tài)則是程序代碼執(zhí)行的順序,如某個(gè)程序代碼區(qū)段相關(guān)方法調(diào)用與響應(yīng)順序。
靜態(tài)逆向工程(Static Reverse Engineering)
VS2010提供針對(duì)不同功能層面的分析工具來(lái)輔助程序代碼進(jìn)行逆向工程。Layer Diagram可從高階面來(lái)看架構(gòu);Architecture Explorer能從特定點(diǎn)切入,只探索我們所關(guān)心的部分;.net Class Diagram則可分析詳細(xì)部分的Class結(jié)構(gòu)。靜態(tài)的逆向工程,主要有三個(gè)工具:Architecture Explorer、Layer Diagram和Class Diagram。Layer Diagram可以讓我們以高層角度來(lái)分析整個(gè)軟件結(jié)構(gòu),細(xì)膩程度可以自由選擇,從項(xiàng)目、Namespace、Classs、到方法都可以。
動(dòng)態(tài)逆向工程(Dynamic Reverse Engineering)
在以前程序開(kāi)發(fā)等人員,當(dāng)分析程序代碼完全沒(méi)頭緒時(shí),需要從程序代碼中直接理解程序流程,這是一件困難且很痛苦的事。 VS2010新增架構(gòu)工具支持動(dòng)態(tài)逆向工程,主要有兩個(gè)工具:依賴圖(Dependency Graph)和Sequence Diagram(時(shí)序圖),使用這兩個(gè)工具會(huì)大大增強(qiáng)代碼分析的效率。依賴圖可以協(xié)助理解程序代碼的結(jié)構(gòu)與關(guān)系,可以透過(guò)架構(gòu)瀏覽器(Architecture Explore)來(lái)生成依賴圖。順序圖是用來(lái)表達(dá)程序流程的圖像工具,VS2010也用于對(duì)象導(dǎo)入系統(tǒng)設(shè)計(jì),可以手工直接繪制Sequence Diagram功能,也能通過(guò)逆向工程依選擇代碼段自動(dòng)生成圖形。如圖3所示。
VSTS 2010模型瀏覽器
在實(shí)際的項(xiàng)目開(kāi)發(fā)實(shí)踐中,大多數(shù)情況下都是在已有代碼的基礎(chǔ)上構(gòu)建新的系統(tǒng)。在這種情況下,架構(gòu)師或者開(kāi)發(fā)人員遇到的一個(gè)典型的問(wèn)題是:沒(méi)有好的工具可以幫助他們很好的理解現(xiàn)有代碼的架構(gòu),從而很難有效地在現(xiàn)有代碼的基礎(chǔ)上,添加新的功能以滿足新的需求。為了解決這個(gè)問(wèn)題,VSTS 2010提供了新的兩個(gè)重要的建模工具:UML模型瀏覽器(UML Model Explorer)和架構(gòu)瀏覽器(Architecture Explorer)。新的模型瀏覽器可以讓架構(gòu)師為已有代碼創(chuàng)建完整的架構(gòu)圖,并且能夠理解原有系統(tǒng)的各個(gè)組件是怎樣協(xié)作在一起的。這將為架構(gòu)師決定如何設(shè)計(jì)、使用、復(fù)用或者是否放棄現(xiàn)有代碼,提供了非常有價(jià)值參考信息。
UML模型瀏覽器(UML Model Explorer)
在VSTS 2010 Architecture和Ultimate版本中,新增加了一個(gè)新的工具窗(UML Model Explorer)來(lái)幫助用戶理解和使用所創(chuàng)建的UML模型。它是一個(gè)樹(shù)狀結(jié)構(gòu)的WPF組件,用來(lái)展示UML模型中的層次結(jié)構(gòu)。在這里,模型是指所創(chuàng)建Modeling Project(工程模板)中的內(nèi)容。通過(guò)這個(gè)工程模板可以創(chuàng)建模型工程,在模型工程中再創(chuàng)建UML圖。也就是說(shuō)UML類圖、活動(dòng)圖、用例圖、組件圖,只能在模型工程中才能創(chuàng)建,并且可以按照模型架構(gòu)進(jìn)行設(shè)計(jì)與創(chuàng)建層次。
Modeling Project是模型數(shù)據(jù)、圖表文件和其他用戶想要存儲(chǔ)的資源(比如Excel、Word文檔)的容器。用戶可以在任何新建的或者已有的解決方案中添加該工程,在解決方案中同樣支持不同程序工程(C#、VB、Web等等)。模型工程Modeling Project同樣也支持版本控制。一般來(lái)說(shuō),UML Model Explorer中的根節(jié)點(diǎn)用來(lái)表示Modeling Project本身。如圖4所示。
創(chuàng)建模型工程后,在Solution Explorer下有一個(gè)默認(rèn)創(chuàng)建的文件夾“ModelDefinition”下面的*.uml文件是建模工具自動(dòng)添加和維護(hù),不需要用戶任何手工干預(yù)。它們存儲(chǔ)了UML圖內(nèi)部所對(duì)應(yīng)的模型關(guān)系定義,這是整個(gè)模型工程的核心。uml文件和模型中Package對(duì)象是一一對(duì)應(yīng)的,當(dāng)創(chuàng)建好一個(gè)新的模型工程后,會(huì)有一個(gè)默認(rèn)ModelDefinition.uml文件被創(chuàng)建,它對(duì)應(yīng)了整個(gè)模型的根Package,也就是“UML Model Explorer”窗口中的根節(jié)點(diǎn)。
架構(gòu)瀏覽器(Architecture Explorer)
在Visual Studio 2010中,提供了構(gòu)架瀏覽器(Architecture Explorer)工具來(lái)輔助廣大開(kāi)發(fā)人員來(lái)分析和理解已有代碼或者編譯好的.Net Assembly。它能夠以Class View、Solution View和 File System的方式來(lái)瀏覽已有的系統(tǒng)代碼。Class View和Solution View支持對(duì)Visual C#和Visual Basic.Net工程的瀏覽,而File System -> Select Files方式則可以用來(lái)瀏覽任何基于.Net的編譯好的Assembly文件的內(nèi)容,類似Reflection反編譯工具的功能。如圖5所示。
另外,可以通過(guò)鼠標(biāo)拖拽的方式,直接把構(gòu)架瀏覽器中的內(nèi)容通過(guò)拖拽的方式添加到已有的依賴圖上。除了能瀏覽打開(kāi)的工程之外,構(gòu)架瀏覽器還可以直接瀏覽編譯好的Assembly文件中的名字空間、類型等,只是不能雙擊導(dǎo)向到相應(yīng)的代碼,其它都與直接瀏覽工程差不多。如圖6所示。
規(guī)格瀏覽器(Spec Explorer)
Spec Explorer是微軟發(fā)布的一款與Visual Studio 2010緊密整合的基于模型測(cè)試的工具,也是一個(gè)Visual Studio集成開(kāi)發(fā)環(huán)境的插件。它已經(jīng)被大量用于微軟內(nèi)部技術(shù)團(tuán)隊(duì)的測(cè)試,并已在Windows協(xié)議測(cè)試工程(超過(guò)兩百工程師參與并協(xié)同工作)。Spec Explore與VS整合工作環(huán)境是基于模型的測(cè)試(Model-Based Testing,MBT)技術(shù),它是一個(gè)輕量級(jí)的,形式化的驗(yàn)證軟件系統(tǒng)的方法,并可以對(duì)測(cè)試軟件系統(tǒng)(System Under Test,SUT)進(jìn)行形式化的建模,設(shè)計(jì)出機(jī)器可讀的模型;目前完全驗(yàn)證一致性的代價(jià)非常高,重量級(jí)的形式化方法往往難以被應(yīng)用到實(shí)際工程中,而基于模型的測(cè)試在這方面體現(xiàn)了優(yōu)勢(shì),并已被運(yùn)用到很多大型項(xiàng)目中。如圖7所示。
用戶可以通過(guò)Spec Explorer對(duì)一個(gè)軟件系統(tǒng)的期望行為進(jìn)行建模,并自動(dòng)生成能夠在Visual Studio的測(cè)試框架下運(yùn)行的測(cè)試代碼。模型可以用當(dāng)前主流的程序設(shè)計(jì)語(yǔ)言C#開(kāi)發(fā),然后通過(guò)Cord語(yǔ)言腳本對(duì)模型進(jìn)行配置和裁剪。
Spec Explorer工具可以自動(dòng)探索規(guī)格說(shuō)明(Specification,Spec)的所有潛在行為,并將其行為模型表示為狀態(tài)機(jī)。一次探索的輸出有可能非常大,所以Spec Explorer提供了Cord語(yǔ)言對(duì)輸出進(jìn)行裁剪,并選出測(cè)試中真正關(guān)心的場(chǎng)景。并能夠高效的解決狀態(tài)爆炸的問(wèn)題。
SpecExplorerVS2010.msi插件可以在
http://msdn.microsoft.com/en-us/devlabs/ee692301.aspx下載。
開(kāi)發(fā)設(shè)計(jì)模型
Visual Studio 2010 Ultimate的ALM涵蓋了系統(tǒng)設(shè)計(jì)到測(cè)試階段的工具。其中,在架構(gòu)方面包括新的架構(gòu)檢視工具(Architecture Explorer),增加對(duì)統(tǒng)一建模語(yǔ)言(UML)的支持,例如類圖、用例圖、活動(dòng)圖和時(shí)序圖等;以及架構(gòu)層圖(Architecture Layer Diagram),以圖形化的方式描述系統(tǒng)架構(gòu),從而使得項(xiàng)目中的技術(shù)人員或非技術(shù)人員都能以模型透過(guò)圖形化的方式進(jìn)行協(xié)作,以及定義企業(yè)與系統(tǒng)功能關(guān)系等。
VSTS 2010架構(gòu)功能組成,主要功能分為三部分:1)理解現(xiàn)有代碼;2)明確結(jié)構(gòu)設(shè)計(jì);3)團(tuán)隊(duì)合作。如圖8所示。
? 理解現(xiàn)有代碼。VSTS2010的Architecture目標(biāo)之一就是就是幫助理解現(xiàn)有的代碼。因?yàn)橹挥欣斫饬瞬拍軌蛘_地使用它。在實(shí)際的工作中,我們經(jīng)常會(huì)遇到這樣的問(wèn)題,只有了解現(xiàn)有代碼能夠做什么才能開(kāi)展后續(xù)的工作。
? 明確結(jié)構(gòu)設(shè)計(jì)。軟件人員經(jīng)常需要設(shè)計(jì)和描述軟件的構(gòu)架,并為某一個(gè)特定問(wèn)題定義名稱來(lái)描述它,然后使開(kāi)發(fā)團(tuán)隊(duì)內(nèi)的其它成員也能接受并理解它。VSTS2010 Architecture支持UML的模型,為此微軟增強(qiáng)了DSL工具,它支持VS2010中很多功能的關(guān)鍵技術(shù),VS2010 Architecture的所有的UML圖表都是通過(guò)DSL工具來(lái)建立,并運(yùn)行在DSL運(yùn)行庫(kù)之上。VSTS 2010中,支持5種UML圖表。
? 團(tuán)隊(duì)合作。在開(kāi)發(fā)項(xiàng)目中,我們經(jīng)常需要使建模的結(jié)果能夠成為整個(gè)軟件開(kāi)發(fā)周期中重要的一部分。VSTS 2010提供了多種方法可以讓模型和Team Foundation Server以及Visual Studio自身進(jìn)行交互,例如新引入的工程種類“Modeling Project”等。
新增VS2010的Architecture功能,可供軟件架構(gòu)師和開(kāi)發(fā)等人員使用模型圖可以幫助理解代碼和用戶需求,使軟件系統(tǒng)具有更好的質(zhì)量。例如,可以使用統(tǒng)一建模語(yǔ)言設(shè)計(jì)用戶需求的用例,活動(dòng)類和序列圖功能等,來(lái)描述和溝通用戶需求,從而增強(qiáng)ALM的周期管理控制。Architecture工具模板,如圖9所示。
當(dāng)在系統(tǒng)需求確定之后,我們便進(jìn)入基于UML的面向?qū)ο蟮脑O(shè)計(jì)(Object-Oriented Design,OOD)系統(tǒng)設(shè)計(jì)階段,在這個(gè)階段中,將通過(guò)以下UML圖來(lái)呈現(xiàn)VS2010在設(shè)計(jì)階段的支持和應(yīng)用。
VS2010的Architecture工具包括以下UML圖(參考圖9):
? 活動(dòng)圖(Activity Diagram):在參與者之間闡明業(yè)務(wù)用例實(shí)現(xiàn)的工作流程。
? 組件圖(Component Diagram):組件圖的主要目的是顯示系統(tǒng)組件間結(jié)構(gòu)或接口的關(guān)系。
? 類圖(Class Diagram):展示了系統(tǒng)的邏輯結(jié)構(gòu),類和接口的關(guān)系??梢杂糜诖鎯?chǔ)和系統(tǒng)之間的關(guān)系交換數(shù)據(jù)類型。
? 順序圖(Sequence Diagram):主要是顯示對(duì)象之間發(fā)送的消息的時(shí)間順序。
? 用例圖(Use Case Diagram):描述角色和用例之間的關(guān)系,著重展示系統(tǒng)必須實(shí)現(xiàn)的功能,用于在需求分析階段分析客戶需求。
此外,可以從已有代碼創(chuàng)建:層圖(Layer Diagram),代碼之間的不同部分依賴;類圖,
類型及其.NET關(guān)系代碼;順序圖,在方法調(diào)用.NET代碼順序。
UML 2.1.2規(guī)范定義了13種圖,Visual Studio 2010支持其中最常用的5種圖(類圖、用例圖、活動(dòng)圖、組件圖和順序圖)。它們的底層的Meta模型是完全符合UML2.1.2規(guī)范定義的模型關(guān)系。
分享名稱:VisualStudio2010架構(gòu)設(shè)計(jì)功能詳解
標(biāo)題來(lái)源:http://www.5511xx.com/article/dghhedh.html


咨詢
建站咨詢
