我想看一级黄色大片_久久亚洲国产精品一区二区_久久精品免视看国产明星_91久久青青青国产免费

您的位置:網站首頁 > CAD新聞

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

時間:2011-02-25 10:06:18 來源:

  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 axis symbol>有兩種表示形式單線和雙線形式,兩種表示沒有區別,可選擇其一。< instance end symbol>用黑色矩形表示。三種圖形連接在一起表示一個實例的生存期。加粗部分為MSC保留關鍵詞。A is followed by B表示B跟隨A發生的關系。A is attached to B表示A依附于B,這種關系是可逆的,也就是說B也同時依附于A。大括號后加關鍵詞set表示一個集合,集合中使用的*表示可以出現0次或多次,類似于通配符概念。

  1. 3 MSC消息

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

  

  在MSC中實際上和實際上是依附在實例線上的點(描述中的)。< message symbol>表示為一個帶方向的直線。is associated with為MSC保留關鍵詞,它擴展了一個文本字符串加人中。

  1.4 MSC事件次序

  一個MSC中假設了一個全局時鐘,規定兩個規則:①不同實例MSC中假設輸出消息(產生消息)必須先于輸人消息(接收消息)產生;②沿著每個實例線事件從上到下依次發生。另外還規定消息圖中事件表示具有偏序關系(傳遞性、反對稱性、不可逆性)。消息次序示例如圖1所示。

  MSC中將一個消息的輸人和輸出分開表示,為了加以區分將輸人消息表示成in(mi)形式,輸出消息表示成out ( mi )形式。圖1中根據規則①得到順序為out( m2 )