国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

XDE中模式驅動的設計與開發(二)

2019-11-18 13:50:38
字體:
來源:轉載
供稿:網友


  摘要:


  軟件模式,非凡是設計模式在現今的軟件開發中越來越重要。在許多的標準,工具,以及開發方法中都引入了模式的概念。本文介紹了如何在UML中對軟件模式進行建模,并結合具體的工具Rational XDE,對如何定義,如何應用模式作了具體地介紹,并指出了一些相關的問題。

  第二部分:XDE中的模式機制

  1 概述

  在前一期的系列文章中,我們對模式,非凡是設計模式在UML中的建模方法作了簡要地,理論上的介紹。現在該要進行實踐了。現在支持模式建模并能夠基于模式進行應用程序開發的工具并不是很多。Rational XDE是其中最為聞名的一個,并且確實提供了極為優秀的功能。

  XDE的java版有兩種,一種是基于Eclipse內核的獨立運行版本(目前只支持Eclipse1.0)。另為一個是集成在WASD中的,作為WASD的一個插件同其以其運行(目前只支持WASD 4.0)。實際上WASD使用的就是Eclipse的內核,所以,這兩者在功能上(甚至外觀上)都沒有多大的區別。現在Rational已經被IBM所合并,所以有足夠的理由可以相信,在未來的WSAD中,XDE的功能會被更加完美的整合到其中。

  XDE最大的賣點有兩個,一個是分析設計同代碼編寫在是在同一個IDE中完成的,并可以進行正向-逆向工程,完美的實現迭代開發中所需要的模型-代碼的映射。另外一個就是這篇文章的主題:模式的定義和應用。你不僅可以使用XDE中預定義好了的23個經典的GoF設計模式,還可以自己定義模式,在開發中應用它們,或者導出供其他人使用。

  模式機制是XDE中實現重用的核心技術。你可以通過這個機制來實現模型元素和其它制品的重用。它提供了Model-to-Model和Model-to-Code的變換功能。這使得你能夠將一個涉及的模型作為來幫助一個特定的設計。它還是得你能夠將一個模式中的元素內容合并到已存的設計模型中。 2 XDE中的模式描述

  在XDE中,模式的描述基本上遵循了UML所定義的參數化協作標準。但是,由于UML中定義的只是如何來對模式建模,而對如何定義模式,應用模式,以及具體的代碼生成并沒有過多涉及。因而,XDE在UML的基礎上,作了一些合理的擴展。

  首先,我們來看一看Asset的概念。一個Asset是一些軟件制品的集合,它們被組織在一起以期能夠解決某一個問題。Asset能夠通過其定義的可變點(Variability Point)來進行擴展,在進行Asset重用的時候,開發者需要對這些可變點提供具體的內容來充實Asset,以完成Asset的重用。

XDE中模式驅動的設計與開發(二)(圖一)

  Rational現在推崇一種Asset Based Development過程方法,來作為其對RUP的一個補充,Asset就是其要害。這兒并不打算對Asset和Asset Based Development作過多地論述,那已經偏離了這篇文章的主題。從模式這個范疇而言,你可以簡單的把Asset看作是模式的定義,描述及其具體的實現。

  在XDE中, Asset表示為一個構造型為<<Asset>>的包。被申明為<<Asset>>的包可以被導出以利于在不同的開發者,甚至不同的工具中重用,只要它們都遵循Asset的規范Reusable Asset Specification。

  模式是一種Asset,但是Asset并不一定是模式。一個模型可以被包裝在一個Asset中,而其中并不帶有任何的模式描述。XDE能夠處理這兩種可重用項目。在XDE中,模式表示為包含在一個<<Asset>>包中的,帶有模板參數的合作圖。有很多種方法可以創建一個<<Asset>>包,但需要注重的是,創建一個UML的包并手工地將其版型設置為<<Asset>>并不會將這個包注冊為模式。

  在XDE中,<<Asset>>包可以被導出為一個.ras文件。一個.ras文件實際上就是一個zip文件,不過它有著自己的內容結構,這和J2EE中的.war文件很類似。它使用了rasset.xml和resource.xml這兩個xml文件來提供對這個壓縮文檔的描述。RASAsset.xsd文件是RAS的XML Schema,定義rasset.xml和resource.xml這兩個文檔的內容格式和含義。其它的文件是模型和文檔制品。

  在XDE中,模式由如下的一些部分組成:

   Asset

  在一個模式的底部是一個版型為<<Asset>>的包。模式中涉及到的所有內容都包含在這個包中,它也是用來導出符合RAS規范的可重用模式的邏輯單元(實際的物理封裝單元可是一個包,也可以是一個模型)。模式也可以不存在于Asset包中,但是因為模式的創建目標,就是希望能夠通過RAS規范來進行重用的,所以并不推薦使用這種方法。

   模板協作(Template Collaboration)

  在模式Asset中就是template collaboration,它是模式的核心。幾乎模式所涉及的所有內容都定義在其中。模版參數的屬性可以通過Pattern EXPlorer來查看。

   模板參數(Template Parameters)

  一個模板協作包含有一個或者多個模板參數,每一個定義一個特定的模式輸入。例如,假如你想有一個名為MyClassInput的參數,你可以使用那個名字創建一個模板參數。

   類型元素(Type Element)

  每一個模板參數都有一個類型,通過其Type屬性來定義。例如,假如模板參數的類型是class,那么這個模板參數就只接受類作為其參數值。這同在定義一個函數的參數時,需要指定其參數的類型(比如int)是一樣的。

   基礎上下文(Root Context)

  一個模式還有一個基礎上下文,在創建模式時所引入的其它元素被組織在這個地方。這些元素通常都會被直接創建,需要很少或者根本不需要參數來創建它們。比如在一個模式中會被用到的一個支撐類。缺省情況下,基礎上下文就是Asset包。你可以在Pattern Explorer中將其切換到其它的包中。

  實際上在模式所在的Asset包中,可以存在任何類型的元素,比如描述模式結構的類圖,描述模式中參與者之間的交互的順序圖,等等,都可以被放在基礎上下文中,在模式被擴展的時候一起被復制到擴展點處。

  為了提供對模型的可視化開發和表示,XDE在Eclipse的基礎上,添加了新的Model透視圖(Perspective)。實際上所有模型相關的內容,不僅僅是模式,都是在這個透視圖中實現的。而對模式,除了所有模型公用的Model Explorer外,還有一個Pattern Explorer和Pattern PRoperty視圖來提供對模式的定義和描述。對這些界面的使用都還比較簡單,要害的是要搞清楚那些屬性,設置值是來做什么的。除了上面的那些標準的Eclipse圖形元素外,XDE中還引入了Pattern Wizard來幫助你完成模式的應用。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 吴堡县| 习水县| 临城县| 诏安县| 嘉鱼县| 金门县| 崇文区| 卢湾区| 台中市| 乌拉特后旗| 甘洛县| 筠连县| 白水县| 克拉玛依市| 南昌县| 贵溪市| 新干县| 社会| 沧源| 马龙县| 永定县| 临潭县| 桐城市| 称多县| 伊通| 浮梁县| 饶河县| 莲花县| 孝义市| 固镇县| 思南县| 治多县| 保靖县| 蒙山县| 长垣县| 桦南县| 安多县| 商都县| 南漳县| 建水县| 于田县|