国产精品日韩一区二区三区-国产精品日日摸夜夜添夜夜添1-国产精品入口免费视频-国产精品三级-亚洲国产欧美另类-亚洲国产欧美日韩

基于MSC的構件及組裝模式形式化描述研究

2013-06-08  by:廣州有限元分析、培訓中心-1CAE.COM  來源:仿真在線

在基于構件的軟件開發方法基礎上,本文提出使用組裝模式的方法進行構件的組裝,并應用擴展的MSC對構件及構件組裝模式進行描迷。最后介紹用Java語言實現一種構件及組裝模式描述工具。

作者: 楊成偉*李長英*曹寶香 來源: 萬方數據
關鍵字: 構件 MSC 構件組裝

0引言
   
近年來人們從傳統工業和計算機硬件的飛速發展的成功模式中獲得啟發,逐漸認識到要真正解決軟件危機,實現軟件的工業化生產是唯一可行的途徑。它們的成功均是采用了標準化的構件(Component )生產以及基于標準構件的產品生產模式。這種構件復用的思想應用到軟件開發中,被稱為軟件重用(Software Reuse)。
   
軟件重用是指在兩次或多次不同的軟件開發過程中重復使用相同或相近軟件元素的過程。軟件元素包括程序代碼、測試用例、設計文檔、設計過程、需求分析文檔甚至領域知識。或將這些可重用元素稱為軟構件(Software Component ),或簡稱為構件。由于軟構件大都經過了質量認證,并且經過實際運行環境的檢驗,所以使用軟構件元素開發的軟件具有良好的軟件質量。由于大量軟構件的存在以及能夠方便快捷地通過查詢得到所需的構件,所以軟件開發的速度大大提升,開發成本得到了有效控制。開發人員在獲得所需構件后,所要做的工作只是根據需求分析和設計階段得到的軟件架構模式(也可認為是一種軟構件),將構件按需要組裝在一起.并在必要時添加少量膠合代碼(Glue Code)使各個構件聯合在一起工作。同時組裝后的構件又可以作為一個粒度更大的軟構件被保存或者重用。于是產生了基于構件的軟件開發方法CBSD ( Component Based Software Devel-opment )。
   
不難看出在CBSD中,構件是基礎.重用是手段,組裝是核心。目前軟件構件的獲取相對比較容易。一方面目前Internet上存在大量免費的可重用構件,另外還可以通過購買中間件開發商的構件庫得到構件。也正是由于這種獲取的方便性以及目前構件標準的不完整性,給構件組裝方法的研究以及組裝工具(環境)的開發帶來了困難。
   
我們在對該問題進行分析后認為,為了有效解決該組裝難題,關鍵是要從更高的層次對構件進行描述。必須選擇一種通用的、直觀的、準確的描述語言,該語言描述應該類似自然語言(易于理解),有較嚴格的形式化語法(不能出現二義性),還要有豐富的語意。因此選擇消息序列圖MSC ( Message Sequence Chat)作為載體。從名字看,MSC是一種圖描述語言,實際上它具有文本描述(Textual Description)和圖形描述(Graphical Description)兩種形式。另外為T更好地完成構件組裝,提出了組裝模式(Composition Pattern)的概念,它可以被看作是一種用MSC描述的可復用的設計模式。它的描述方式與構件描述方式兼容,這是為了使構件的組裝按照模式匹配的思想完成。這似乎限制了構件復用的任意性,但另一方面任意性帶來了組裝的不兼容性。因此犧牲部分任意性來換取組裝兼容性是一種必要的手段。隨著構件數目以及組裝模式的增加,這種犧牲是可以忽略的。
   
    1基本MSC
   
    1 MSC優點

   
MSC是一種描述語言,它主要用于描述系統構件之間、系統構件與環境之間的行為交互事件。MSC不僅提供了一種直觀、透明的方式,還提供了兩種描述方式:圖形描述和文本描述。其中圖形描述提供了清晰易懂的圖形元素作為系統中實例交互以及事件發生的描述手段。文本方式以一種類似自然語言的方式進行描述,與多數架構描述語言(SDL)描述形式類似,采用層次化描述方式,使系統結構的描述更加清晰。文本描述符主要有三類:關鍵詞、終結符和非終結符。MSC已被作為國際電話電報聯合會(International Telecommunication Union)的一種推薦使用標準。
   
基于MSC提供的這些特性使其可以用于需求描述、接口描述、仿真與檢查、測試用例描述等多個方面。另外MSC也可以連接其它描述語言,如SQL等。MSC直觀的圖形表示方式以及豐富的語法表示形式使其具有對構件及構件組裝(交互)描述的先天優勢。具體表現在如下幾個方面:
   
(1)MSC是一種圖語言。因此可以通過二維圖描述構件內部實例之間的行為交互。MSC文本描述主要目的是為了完成自動化形式分析與實現工具之間的轉換。在構件組裝環境中可以利用文本描述提供構件間膠合代碼自動生成工作。
   
( 2 ) MSC支持結構化設計。一個簡單的MSC描述利用高層消息序列圖(HMSC)可以被組合成一個更復雜的系統描述。依靠這種分解和復用機制可以很容易地實現對遺留系統的構件提取和構件組裝的再工程。
   
( 3 ) MSC支持工程的全過程。形式化的描述和直觀的表示方式是它支持包括從領域分析到測試的整個工程領域。因此MSC可以很好地描述軟構件元素,并且適合于整個CBSD開發生命周期。
   
( 4 ) MSC可以被用來關聯其它描述語言如SDL和TTCN等。這使其具有靈活的可擴展性和兼容性。另外MSC可以等價地轉換為有限(非有限)自動機模型DFA(NDFA)。可以利用自動機模型的多種性質(如有限自動機匹配、有限自動機合并等)實現構件與構件模式匹配的方法。
   
    1.2 MSC實例
   
一個MSC圖由一些交互實例組成,實例之間通過方法調用或消息傳遞交互。實例頭部主要由實例名(Instance Name )、實例類型( Instance)及分解(decomposition)組成。其具體語法為:
在MSC的實例描述中<instance head symbol>用白色矩形表示。< instance axis symbol>有兩種表示形式單線和雙線形式,兩種表示沒有區別,可選擇其一。< instance end symbol>用黑色矩形表示。三種圖形連接在一起表示一個實例的生存期。加粗部分為MSC保留關鍵詞。A is followed by B表示B跟隨A發生的關系。A is attached to B表示A依附于B,這種關系是可逆的,也就是說B也同時依附于A。大括號后加關鍵詞set表示一個集合,集合中使用的*表示可以出現0次或多次,類似于通配符概念。
   

基于MSC的構件及組裝模式形式化描述研究+有限元項目服務資料圖圖片1

1. 3 MSC消息
   
消息是MSC中另一個重要概念。在MSC中消息表示輸人和輸出之間的關系。輸出可以來自于環境(通過門)、實例或者被found表示輸出丟失或不能確定輸人點)。輸人來自于環境(通過門)、實例或者被lost(表示輸人丟失或者不能確定輸出點)。實例間消息的交換被分成兩個部分:消息的輸出和消息的輸人。MSC文本描述使用關鍵詞before和after表示消息事件發生的順序。MSC圖形描述中,事件使用帶方向箭頭的直線表示。
   

基于MSC的構件及組裝模式形式化描述研究+有限元項目服務資料圖圖片2


在MSC中實際上<message out area>和<message in area>實際上是依附在實例線上的點(描述中的<void symbol>)。< message symbol>表示為一個帶方向的直線。is associated with為MSC保留關鍵詞,它擴展了一個文本字符串<msg identification>加人<message symbol>中。
   
    1.4 MSC事件次序
   
一個MSC中假設了一個全局時鐘,規定兩個規則:①不同實例MSC中假設輸出消息(產生消息)必須先于輸人消息(接收消息)產生;②沿著每個實例線事件從上到下依次發生。另外還規定消息圖中事件表示具有偏序關系(傳遞性、反對稱性、不可逆性)。消息次序示例如圖1所示。
   
MSC中將一個消息的輸人和輸出分開表示,為了加以區分將輸人消息表示成in(mi)形式,輸出消息表示成out ( mi )形式。圖1中根據規則①得到順序為out( m2 )<in(m2),in(m3)<out(m3),out(m4)<in(m4);根據規則②得到順序in ( ml ) < out ( m2 )<in(m3) <out(m4),in(m2)<out( m3)。

基于MSC的構件及組裝模式形式化描述研究+有限元項目服務資料圖圖片3


    
    2構件及其組裝模式
   
構件可以看做組成一個系統的獨立的功能實體。它應該具有下面幾點性質:
   
(1)具有獨立(相對獨立)的功能。通過封裝一些方法為外界使用者提供服務,完成某種任務。構件與構件間應保持低禍合性。
    (2)具有封裝性。在構件使用者眼中,構件是一個內部不可見的黑盒。使用者通過構件向外界公開的接口調用服務(方法)。
(3)具有清晰的接口。這些接口是使用者調用服務(方法)的唯一途徑,必須是公開的。
(4)與實現方法無關性。理想情況下,構件內部實現應該與具體的編程語言無關。使用者只需要了解構件提供的服務接口,不需要了解內部實現方式。在調用中可以先對構件接口使用包裝器進行包裝,使接口調用與實現無關。目前各種主流編程語言(C++,Java)都提供類似包裝方法。
   
根據構件特點,不難發現,要使構件復用效率提高,使用者必須對構件接口以及完成服務情況有相當的了解。對于一個從外界獲取的構件,這種理解是困難和不準確的。使用者可能對構件理解發生偏差與不完整,造成構件復用失敗。
   
MSC具有直觀的圖形表示和豐富的語意。所以提出使用MSC來描述構件和組裝模式,以直觀的圖形化方式描述接口之間的交互。
   
    2.1構件描述
   
基于MSC的構件描述,主要描述中心構件及其與作用環境之間的交互。作用環境可以是構件或包裝器、代理等與所描述構件發生交互關系的實體。構件與作用環境可能發生兩種交互關系:一種為構件從作用環境請求消息,另一種則為相反情況即作用環境從構件請求消息。第一種典型的情況是使用代理,構件與其代理之間產生禍合,必須從構件中調用代理內部函數。第二種典型的情況是使用包裝器,包裝器是對構件接口進行進一步封裝,其實際類或函數在構件中。為了使描述方便和無歧義性,構件描述中的構件用C表示,作用環境用Ei表示,調用方法用mi表示。構件描述中C為中心描述對象,所以C請求消息用out( m)表示,反之用in(m)表示。圖2是一個基于MSC的構件圖形表示及描述。
   

基于MSC的構件及組裝模式形式化描述研究+應用技術圖片圖片4

基于MSC的構件及組裝模式形式化描述研究+應用技術圖片圖片5

  2.2組裝模式描述
   
基于構件軟件開發CSSD可以分為兩大部分:一是獲取構件;二是組裝構件。構件的獲取可以通過自行開發或商業購買得到。通過對已有構件應用MSC進行描述后,使用者可以快速與準確地理解構件。之后的問題是如何進行合理有效的組裝。我們認為構件組裝是可行的,但需要滿足一定前提條件:
   
(1)獲得足夠可復用的構件。
(2)對構件有充分理解,特別是接口調用。
(3)能夠正確選取所需構件進行組裝。
(4)組裝后功能、性能方面的檢查。
   
前兩個前提條件通過MSC構件描述能夠解決。而對于構件選擇以及組裝后系統功能性能檢查,只有在組裝后才能進行。這樣如果組裝完成后系統出現問題,解決起來將相當困難,往往造成改一處而動全身的連鎖反映。因此提出組裝模式的概念,它是沿用目前流行的設計模式的思想。將構件組裝結構在組裝之前通過描述語言進行描述。這種方式不僅可以使構件組裝檢查在組裝之前進行,更重要的是它也可以作為一種可復用資源而存在。組裝模式沿用MSC語法,并加以擴展完成描述過程。圖3是組裝模式的描述示例。
   

基于MSC的構件及組裝模式形式化描述研究+應用技術圖片圖片6

基于MSC的構件及組裝模式形式化描述研究+應用技術圖片圖片7


    2. 3區別與聯系
   
利用MSC直觀的形式化描述方式描述構件與構件的組裝模式。兩者共同的特點是均使用了MSC語法,但是由于描述對象、目的的不同,均對基本MSC做了擴展來滿足具體需要。具體表現在幾個方面:
   
(1)描述對象。
   
構件描述主要描述的是中心構件與可能和它發生作用的構件之間的交互關系。目的主要是兩方面:幫助構件使用者了解構件接口方法和為在下一步工作中檢驗構件交互的情況(主要是接口交互)能否適用于組裝模式。
   
組裝模式的描述對象是系統中具體需要的構件之間交互和作用情況,可以被認為是一種系統設計描述。
   
(2)描述語法復雜度。
   
雖然構件描述和組裝模式的描述語法來自于MSC.但是相比較來看,構件描述注重接口交互描述,組裝模式描述則側重于描述組裝而成的系統或更大粒度的構件,因此后者的描述幾乎可以使用MSC所有語法(包括如異常、定時器等)。而前者則關心的是中心構件和作用環境交互的描述,其主要是消息以及交互的方向。
   
(3)與外部交互。
   
構件描述是以中心構件為核心描述交互情況,也就是說在構件描述中都應該是與中心構件發生交互的消息。其它不與其發生關系的消息實際上是不能確定的消息。
   
組裝模式中描述組裝構件之間實際交互情況,沒有中心構件概念,因此需要描述兩兩構件之間的每個交互消息。另外因為MSC支持部分圖組裝,也就是利用更高層的MSC抽象圖(實際上是部分圖作為描述對象的更高級別抽象圖),實現一個大系統描述的分步驟描述。因此在大系統組裝模式圖中出現了消息與env的交互箭頭。它的含義實際上是發出消息到另一個MSC圖(或接收來自其它MSC圖的消息)。
   
    3應用與實現
   
基于MSC的組裝描述工具是基于Java語言實現,同時應用XML作為MSC描述的存儲載體。XML語法簡單,并能很好地描述MSC的文本語法。在前臺用Java圖形建模的MSC圖形被轉換為文本描述存儲在XML文件中。
   
為了更好地管理構件接口方法(消息),將構件接口(方法)集中管理,形成樹形結構,每個節點的所有葉子節點表示該構件的所有接口描述,各個層次的節點為構件路徑。如此該命名空間對不同構件中的同名接口可以區別管理。
   
    圖4和圖5是構件組裝的概念模型描述和MSC構件及組裝模式描述工具的實現。
   

基于MSC的構件及組裝模式形式化描述研究+應用技術圖片圖片8

基于MSC的構件及組裝模式形式化描述研究+應用技術圖片圖片9


    4結束語
   
本文提出了模式化方法組裝系統的思想,與傳統的CBSD開發方法不同。應用組裝模式組裝構件或系統,可以在組裝前設計并檢查系統可行性。這樣就大大減少了組裝的風險性,同時在描述工具的支持下,組裝模式的設計被作為可復用資源保存。
   
目前在MSC描述工具的支持下,構件的組裝和選取工作均是基于手工選擇和組裝完成的。下一步研究工作,將放在MSC構件描述與組裝模式中構件匹配上,完成構件自動選擇、匹配和組裝的全部過程。


開放分享:優質有限元技術文章,助你自學成才

相關標簽搜索:基于MSC的構件及組裝模式形式化描述研究 Fluent、CFX流體分析 HFSS電磁分析 Ansys培訓 Abaqus培訓 Autoform培訓 有限元培訓 Solidworks培訓 UG模具培訓 PROE培訓 運動仿真 

編輯
在線報名:
  • 客服在線請直接聯系我們的客服,您也可以通過下面的方式進行在線報名,我們會及時給您回復電話,謝謝!
驗證碼

全國服務熱線

1358-032-9919

廣州公司:
廣州市環市中路306號金鷹大廈3800
電話:13580329919
          135-8032-9919
培訓QQ咨詢:點擊咨詢 點擊咨詢
項目QQ咨詢:點擊咨詢
email:kf@1cae.com




主站蜘蛛池模板: 99久久精品免费看国产高清 | 天天干成人网 | 天天摸天天添 | 黄色日屁| 久久艹精品 | 看免费人成va视频全 | 欧美xxxx喷水| 日本三级韩国三级香港三级网站 | 在线观看日韩视频 | 亚洲第一成人在线 | 天天色天天色天天色 | 国产一区二区自拍视频 | 九九热在线精品 | 国产特黄特色a级在线视 | 黄色片 720p| 九色国产在线 | 在线观看人成午夜影片 | 国产国语特级一级aa毛片 | 色婷婷天天综合在线 | 久操精品在线观看 | 亚洲成a人在线播放www | 日韩一级片免费观看 | 国产精品人人做人人爽人人添 | 在线观看日韩视频 | 精品国产系列在线观看 | 日本内谢69xxxx免费播放 | 欧美级| 人人看人人草 | www.日本xxx| xxx视频在线观看 | 亚洲高清在线看 | 日本综合久久 | 中文字幕一区二区在线播放 | 中文字幕免费在线看线人动作大片 | 免费视频一区二区性色 | 国产在线精品二区韩国演艺界 | 亚洲综合久久成人69 | 亚洲日本va午夜中文字幕 | 青草| 日本黄大片在线观看 | 欧美特黄a级高清免费看片 欧美特黄高清免费观看的 欧美特黄三级成人 |