利用Rational對.NET程序進行建模
本文面向那些對利用 IBM Rational Modeling Extension for Microsoft .NET 來對基于 C# 語言的 .NET 應(yīng)用程序進行建模、設(shè)計,及開發(fā)感興趣的開發(fā)人員和架構(gòu)師。本文假定您已經(jīng)對 IBM Rational 建模工具(IBM Rational Software Modeler、IBM? Rational Systems Developer、IBM Rational Application Developer,或者 IBM Rational Software Architect)以及在 Eclipse 環(huán)境中進行程序設(shè)計有了基本的了解。
IBM Rational 建模工具
Rational Software Modeler、Rational Application Developer、Rational Systems Developer 和 Rational Software Architect —— 這些全都是 Rational 建模工具 —— 構(gòu)建于 Eclipse 集成開發(fā)環(huán)境(integrated development environment,IDE)之上。它們提供可視化的繪圖工具,以幫助您了解現(xiàn)有應(yīng)用程序,或者更容易地創(chuàng)建和理解新的應(yīng)用程序。
擴展了 Rational Modeling Extension for Microsoft .NET(簡稱 Rational Modeling Extension)的 Rational Software Modeler(或者 Rational Systems Developer 或者 Rational Software Architect)提供由 UML 模型生成 C# 代碼的功能。它還提供代碼繪圖工具,以幫助您了解現(xiàn)有的 Microsoft .NET 應(yīng)用程序。本文將介紹如何在 Rational Software Modeler(或者 Rational Systems Developer 或者 Rational Software Architect)中處理 Microsoft .NET 解決方案,以及如何利用代碼建模技術(shù)從現(xiàn)有的 C# 代碼和 .NET 匯編生成各種圖(Class、Sequence 和 Browse Diagrams)。本文沒有涉及到從 UML 模型生成 C# 代碼的內(nèi)容。以下,Rational Modeling Extension 指的是安裝在 Rational Software Modeler 里面的 Rational Modeling Extension。
Code Modeling(代碼建模)是什么?
我們所稱的code modeling(代碼建模)簡單地說就是 IBM Rational 建模工具中的一種技術(shù),它可以幫助您利用 UML Notation,并且在不依賴于本別地保留的 UML 語義(抽象語法)的情況下,圖形化地描述代碼級概念。用 UML 表示代碼元素有很多好處。最重要的是,UML 是開放的標準,并且是軟件開發(fā)團體所知道的。通過創(chuàng)建可視地表示系統(tǒng)的內(nèi)部構(gòu)件的圖和視圖,可以很容易地了解任何復(fù)雜的系統(tǒng)。在 3GL 領(lǐng)域,例如,Java 和 C++,利用代碼建模技術(shù)很容易做到這件事。
代碼建模與像 IBM Rational Rose 或 IBM Rational XDE? 這樣的產(chǎn)品所提供的傳統(tǒng)的雙向工程(Round Trip Engineering,RTE)是不同的,因為它具有以下特征:
◆使用 UML 標記(具體語法)
◆不需要了解 UML 語義(抽象語法)
◆不需要了解 3GL 語義如何映射到 UML 語義
◆與傳統(tǒng)的 RTE 相比較,消除了 3GL-to-UML 映射同步的開銷
總是如實,并即刻地用 UML 標記描述代碼,將變更映射到代碼,并且當通過圖進行編輯時,可以馬上對代碼進行更新
與傳統(tǒng) RTE 相比較,大大地簡化了團隊工作流
能夠用于 Mixed-Modeling(混合建模),就是依靠真正的 UML 語義元素,以及 DDL(表)描述,和其他語義范疇來描述代碼元素
Rational Modeling Extension for Microsoft .NET 簡介
Rational Modeling Extension 用來補充 Microsoft Visual Studio? 2005 的功能,以及 Visual Studio 中的 Class Designer 特性的功能(Class Designer 也是上面描述的代碼建模的一種實現(xiàn))。Rational Modeling Extension 不是要代替 Class Designer 特性。所以,Rational Modeling Extension 不提供完整的可視代碼編輯功能,就像 Rational Systems Developer、Rational Application Developer,或 Rational Software Architect 中的 Java 或 C++ 代碼建模支持。
在 .NET 中,這是 Class Designer 的工作,Rational Modeling Extension 只是提供 C#(基于源代碼文件)和 CTS 類型(基于匯編中包含的二進制碼)的只讀的可視化表示。通過用 Class Designer 不支持的可視化特性來補充 Class Designer,已經(jīng)足夠提供重要的價值了。
雖然 Rational Modeling Extension 允許您像 Class Designer 那樣使用類圖來可視地描述 C#(Classes、Interfaces、Structs、Delegates,等),但是它還支持您通過觀察 Browse 和 Topic 圖中的各種 .NET 元素之間的關(guān)系來審閱應(yīng)用程序的結(jié)構(gòu)。此外,它還能讓您在序列圖中描述 .NET 類之間的典型或者 what if 的交互。Class Designer 不支持 Topic、Browse,或序列圖。
在 Rational Modeling Extension 中處理 Microsoft Visual Studio 工程
對于絕大多數(shù) .NET 開發(fā)人員來說,Microsoft Visual Studio 是編寫和調(diào)試 C# 代碼的*** IDE。Rational Software Modeler、Rational Systems Developer,和 Rational Software Architect 代表用 UML2 設(shè)計應(yīng)用程序的市場導(dǎo)向的解決方案。Rational Modeling Extension 的設(shè)計預(yù)計到了這一點,并且提供了用戶可以在 Rational Software Modeler(或者 Rational Systems Developer 或者 Rational Software Architect)中處理 Visual Studio 工程的方法。利用 Rational Modeling Extension,用戶可以用 UML 可視地設(shè)計他們的 .NET 應(yīng)用程序,然后使用轉(zhuǎn)換來生成 Visual Studio 工程中的代碼,并且由此,利用 Visual Studio(包括 Class Designer 特性)和 Rational Modeling Extension 中的代碼可視化功能繼續(xù)進行代碼開發(fā)和調(diào)試。
從技術(shù)上說,Rational Modeling Extension 使用 Visual Studio 可擴展 API,從關(guān)于其內(nèi)容(像工程所引用的 C# 文件和匯編)的 Visual Studio C# 工程中獲得信息。Visual Studio 可擴展 API 只能從打開的解決方案中查詢并返回信息。由于這一限制,只要 Rational Modeling Extension 在使用中,包含了將要在 Rational Modeling Extension 中進行建模的 C# 工程的解決方案就應(yīng)該在 Visual Studio 中是打開的。
【編輯推薦】