• 
    <ul id="o6k0g"></ul>
    <ul id="o6k0g"></ul>

    生成關于模型的約束表達式的方法以及約束語言編輯器技術

    技術編號:3779259 閱讀:200 留言:0更新日期:2012-04-11 18:40
    一種用于在約束語言編輯器中幫助生成針對導航的約束語言代碼的方法和導航幫助器,其中約束語言編輯器用于根據所加載的模型/實例和相關約束,生成關于模型/實例的約束表達式,導航是實現約束的路徑,包括模型/實例元素的序列,所述方法包括:解析所加載的模型/實例;通過模型/實例中與導航有關的元素的類型,計算與元素有關的可能的關聯;以及通過關聯計算出可能的導航路徑。一種用于在約束語言編輯器中幫助生成約束語言代碼的方法和約束語言編輯器,所述方法包括:加載模型/實例;加載用于存儲參數和約束代碼模板的約束模式;根據約束模式中存儲的參數類型,調用相應的幫助器,以基于模型/實例來幫助生成參數;根據所生成的參數和約束代碼模板,生成約束代碼。

    【技術實現步驟摘要】

    本專利技術 一般地涉及計算機建模及相應的約束語言的領域,并且具體而 言涉及一種用于生成關于模型的約束表達式的方法以及約束語言編輯器
    技術介紹
    計算機建模,特別是軟件建模主要是指在軟件工程領域(諸如,統一建模語言UML、 Eclipse建模框架EMF)中的對象建模,它從較高的層次 來描述應用程序,進而可以部分或全部地生成該應用的實現代碼。絕大多 數模型是由許多方框箭頭圖和一些附隨的文本所組成,這樣的模型所傳達 的信息是不夠完整的,非正式的和不夠精確的,甚至有些時候自相矛盾。 模型中的許多缺陷都是由于所使用的圖形表達能力有限而造成的。僅僅通 過圖形有時無法表達一些條件陳述,而該陳述本應該是一個完整的規約的 一部分。例如,假定對航班與乘客的關系進行UML建模,則航班與乘客 之間的關聯可以表示一次航班的乘客是確定的一組人,這個一對多的關聯 是多重關系,這意味著乘客的數目是無限的。但是實際上,乘客的數目不 可能超過執行這個航班的飛機上座位的數目。然而,在UML圖上無法表 達這個約束。這時,需要向其中添加約束語言,諸如OCL(對象約束語言, Object Constraint Language ) 、 Schematron等。以OCL為例,在OCL規范中提到,UML圖(例如類圖)通常不夠 精細,無法提供與規范有關的所有相關部分。這其中就需要描述模型中關 于對象的附加約束。這些約束常常用自然語言描述。而實踐表明,這樣做 經常造成歧義。為了寫出無歧義的約束,已經開發出幾種所謂的"形式語 言,,。傳統的形式語言的缺點是,僅適用于有相當數學背景的人員,而普7通的商務或系統建模者則難以使用。OCL即為填補這一空白而開發。它是 一種保留了易讀易寫特點的形式語言。OCL通過提供表達式來支持UML,難。使用諸如OCL的基于數學的、精確的語言寫的表達式為圖形表達的 系統模型提供了許多額外的利處,例如,這種表達式不會被不同的角色(諸 如分析員和程序員)理解為不同的意思。它們是明確的,并且使得模型更 為精確和詳細。這些表達式也可以被自動化工具所檢查,以保證它們是正 確的,并且與模型中的其它元素一致,使得代碼生成變得更加有效。然而, 單純使用表達式這種方式描述的模型常常是難于理解的。例如,盡管源代 碼可以被認為是軟件最終的模型,但是大多數人在第一次和系統打交道的 時候更希望看到一個圖形化的模型,線框箭頭圖的好處在于,其含義可以 很容易理解。對于軟件開發者來說,結合使用UML和OCL使得兩方面相 得益彰。大量的不同的圖形和OCL表達式可以被結合起來表示模型。注 意,對于一個完整的模型,圖形和OCL表達式都是不可缺少的。沒有OCL 表達式,模型可能會不夠完善;沒有UML圖,OCL表達式可能引用不存 在的元素模型一一因為OCL中沒有一種機制來表示類和關聯。因此,只 有結合圖形和約束,才能完整地表達一個模型。Jos Warmer, Anneke Kleppe在其著作"Object Constraint Language, Getting Your Models Ready for MDA, Second Edition"中詳細介紹了 OCL 的4個特性。1. OCL是查詢(Query)語言也是約束(Constraint)語言。一個約束就是對一個(或部分的)面向對象模型或者系統的一個或多 個值的限制。UML類圖中的所有值都可以被約束,而表達這些約束的方法 就是OCL。在UML2標準中,OCL不僅用來寫約束,還能夠用來對UML圖中 的任何元素寫表達式。每個OCL表達式都能指出系統中的一個值或者對 象。因為OCL表達式能夠求出一個系統中的任何值或者值的集合,因此、、/也義歧語炎式達所8它具有了和SQL同樣的能力。2.0CL是基于數學的,但沒有使用數學符號。OCL的基礎是數學中的集合論和謂詞邏輯,并且它有一個形式化的數 學語義,但是它并沒有使用某種數學符號。因為雖然數學符號能夠清晰地、 無歧義地表達事物,但是只有極少的專家可以看懂。所以數學符號并不適 用于一種廣泛應用的標準語言。自然語言是最易懂的,但是它是含混不清晰的,且無法被計算機自動 處理。OCL取了自然語言和數學符號的折衷方案,使用普通的ASCII字 符來表達數學中同樣的概念。如果你不喜歡當前的OCL表達方法,OCL 規范還允許你定義自己的OCL符號集。這點是可以理解的,因為OCL有 一個清晰的數學語義。3. 強類型的語言OCL是一種類型語言,任何表達式的值都是屬于一個類型的。這個類 型可以是預定義的標準類型例如Boolean或者Integer,也可以是UML圖 中的元素例如對象。也可以是這些元素組成的集合,例如對象的集合、包、 有序集合等等。4. 宣言式(declarative)的語言與宣言式語言相對應的是過程式(procedural)的語言。過程式語言 (諸如Java)是一類編程語言,描述了動作執行的步驟。而在宣言式語言 中,表達式僅僅描述了應該去做"什么",而不是應該"怎樣"去做。為 了保證這一點,OCL的表達式是沒有副作用的,也就是說,計算一個OCL 表達式的值不會對系統的狀態產生任何改變。OCL是用于描述應用于UML模型的規則的宣言式語言,因此UML 中的表達式被提升到了純建模的領域,而不必理會實現的細節和實現的語 言。表達式在高的抽象層次上規定了系統的值,從而保留了 100%的精確。OCL也是一種用于基于圖形的模型的導航(navigation)語言。但是 對于約束的文字表達式則是復雜的。約束表達式為文本形式,用戶必須了 解其語法結構才能寫出,而這些約束語言往往用戶不是4艮熟悉,寫表達式可能要花費很多精力,且質量不高。但現有的OCL編輯器對于表達式生 成僅具有有限的支持,其中不存在用于復雜元模型的導航表達式編輯,而 且表達式設計者除了元模型之外還必須面對OCL語法,所述"導航,,將 在下文中詳細描述。典型的OCL編輯器主要關注約束語法,導致用戶體驗比較差。用戶 需要面對基于文本的約束編輯用戶界面。盡管編輯器可以幫助用戶部分地 自動完成表達式,即,在現有的OCL編輯器中,只能在用戶選擇一個元 素后,提示該元素的屬性和方法,以及直接的關聯(Association)元素, 但用戶仍然需要知道OCL的語法才能寫出表達式。圖1示出了 SQL語句編輯器(RAD)的示例性示圖。其中,RAD提 供了模型層的視圖并解除了用戶進行SQL語句編輯的負擔。即,用戶只需 要進行模型編輯,而不用操心SQL語法。在用戶完成模型設計之后,SQL 語法將通過應用自動生成。而在現有技術中不存在針對UML/EMF自動生 成OCL表達式的類似工具。此外,盡管Schematron (可用于XQuery、 XPath、 XSLT )和OCL 可以提供類似的約束語義,但它們采用不同的語法,而現有技術中不存在 支持兩類語言編輯的統一工具。例如參見圖2,圖2示出了兩種不同的約 束語法共享相同的模型和約束語義的示例。圖2是關于導航的具體實例。 圖的上半部分是用于描述應用程序部署情況的實例,設計者希望添加一個 約束,要求WAS 6.0 AppServer ( WAS是WebSphere應用服務器的縮寫) 的數據源Data本文檔來自技高網...

    【技術保護點】
    一種用于在約束語言編輯器中幫助生成針對導航的約束語言代碼的方法,其中所述約束語言編輯器用于根據所加載的模型/實例和相關約束,生成關于模型/實例的約束表達式,所述導航是實現約束的路徑,包括模型/實例元素的序列,所述方法包括: 解析所加載 的模型/實例; 通過所解析的模型/實例中的與導航有關的元素的類型,計算與所述元素有關的可能的關聯;以及 通過所述關聯計算出可能的導航路徑。

    【技術特征摘要】

    【專利技術屬性】
    技術研發人員:毛佳音,邱杰,羅景,李影
    申請(專利權)人:國際商業機器公司,
    類型:發明
    國別省市:US[美國]

    網友詢問留言 已有0條評論
    • 還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。

    1
    主站蜘蛛池模板: 无码中文字幕av免费放| 亚洲av无码兔费综合| 亚洲av无码一区二区三区网站| 亚洲精品无码久久久影院相关影片| 一本色道久久HEZYO无码| 亚洲AV无码一区二区三区牛牛| 麻豆人妻少妇精品无码专区| 无码人妻精品一区二区三区久久| 亚洲成a∧人片在线观看无码| 亚洲国产综合无码一区| 国产成人无码a区在线观看视频免费 | 久久无码av三级| 狠狠精品干练久久久无码中文字幕| 亚洲精品中文字幕无码蜜桃| 无码人妻少妇伦在线电影| 亚洲av无码无线在线观看| 日韩人妻精品无码一区二区三区| 中文字幕AV中文字无码亚| 亚洲Av无码国产情品久久| 好爽毛片一区二区三区四无码三飞| 久久久久亚洲AV无码永不| 成人无码网WWW在线观看| 天码av无码一区二区三区四区 | 亚洲精品午夜无码专区| 亚洲AV中文无码乱人伦| 色综合久久久无码中文字幕波多| 亚洲国产精品无码观看久久| av区无码字幕中文色| 久久亚洲精品无码aⅴ大香| 少妇伦子伦精品无码STYLES| 水蜜桃av无码一区二区| 亚洲AV无码国产精品色午友在线 | 人妻无码久久中文字幕专区| 国产午夜无码福利在线看网站| 永久免费AV无码国产网站| 亚洲Av综合色区无码专区桃色| 一夲道无码人妻精品一区二区| 永久免费AV无码网站在线观看| 国产成年无码久久久免费| 人妻丰满熟AV无码区HD| 人妻中文无码久热丝袜|