999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于IFML自動生成Web和移動應用程序的研究

2017-12-07 02:03:21朱匯龍劉曉燕張雪梅李丹丹曹榮凱
軟件 2017年11期
關鍵詞:語義模型

朱匯龍,劉曉燕,張雪梅,李丹丹,曹榮凱

(1. 昆明理工大學信息工程與自動化學院計算機技術,云南 昆明 650500;2. 山東省商河縣胡集中學,山東 濟南 251600)

基于IFML自動生成Web和移動應用程序的研究

朱匯龍1,劉曉燕1,張雪梅2,李丹丹1,曹榮凱1

(1. 昆明理工大學信息工程與自動化學院計算機技術,云南 昆明 650500;2. 山東省商河縣胡集中學,山東 濟南 251600)

IFML(Interaction Flow Modeling Language)的目標是為系統架構師、軟件工程師和軟件開發人員提供描述應用程序前端主要維度的交互流模型的定義工具。用于 Web和移動應用程序開發的各種不同平臺且需要快速原型設計和多個版本的評估。模型驅動開發(MDD)以文本或視覺語言來代表高級應用程序,可用于通過模型到模型、模型到代碼自動轉換最終生成產品。我們描述了IFMLEdit.org,一個開源的在線MDD工具,用于從IFML規范自動生成Web和移動應用程序的快速原型。該工具還支持從IFML到PCN(petri網的一個變體)的語義映射,用于模型模擬和檢查。

IFML;移動應用;模型驅動開發;語義映射

0 引言

在網絡和移動開發中,廣泛的編碼平臺和設備屏幕需要快速開發和評估多個版本。而在移動領域,跨平臺工具允許為多個目標創建和生成應用程序。最近,快速移動應用開發(RMAD)工具,它們支持在線視覺 IDE[1]快速移動開發,對于復雜或定制的行為,仍然需要編程技能來編寫可視組件。

利用模型驅動開發(MDD)模式[2-3]。應用程序通過文本、視覺語言、模型到模型以及模型到代碼轉換來生成最終產品。MDD與跨平臺開發、可視化IDE不同之處在于:它將開發工作從代碼轉移到模型轉換,促進了早期原型的部署,并減輕了典型開發應用程序需求之間的差異[4]。在本文中,我們通過 IFMLEdit.org,一個開源的在線 MDD工具,用于從IFML圖中規范自動生成Web和移動應用程序的快速原型。IFMLEdit.org允許開發人員編輯或導入IFML模型,支持從IFML到PCN的語義映射轉換,它執行模型到文本生成全功能的Web和移動應用程序原型,可以快速生成最終產品。

1 IFML 相關理論

1.1 交互流建模語言應用

IFML(交互流建模語言[5])是一種OMG標準,支持具有各種形式的設備圖形用戶界面的平臺無關描述。IFML允許開發人員指定交互式應用程序的以下幾個方面:

(1)視圖結構和內容:接口的一般組織以ViewElements的形式表達,以及它們的包容關系、可見性、激活。

(2)事件:影響用戶界面狀態的事件,可由用戶交互、應用程序和外部系統生成。

(3)事件轉換:事件在用戶界面上的后果,可以是ViewContainer的更改、顯示內容的更新、觸發動作或這些效果的混合。

1.2 IFML 模型

IFML模型如圖1所示,通過三個ViewContainers(ProductCategories,ProductOfCategory 和 ProductInformation)來表示視圖結構。ViewContainers包括ViewComponents,它們表示接口的實際內容。通用ViewComponent分類器可以被定型,以表示不同的專業化。例如列表、對象詳細信息、數據輸入表單等。在圖1中,ProductCategories View-Container包含一個名為 CategoryList的 ViewComponent,它代表屏幕內容,在這種情況下是產品類別列表。ProductOfCategory還顯示所選類別的產品的元素列表,而 ProductInformation顯示單個產品的詳細信息。

圖1 IFML 模型Fig.1 IFML model

1.3 IFML 模型的交互過程

ViewContainers和 ViewComponents可以與Events相關聯,以表示支持用戶交互。事件的效果由NavigationFlow表示,它將事件連接到受其影響的 ViewContainer或 ViewComponent。將NavigationFlow表示為箭頭與 ViewElement相關聯的事件連接到目標。 NavigationFlow指定用戶界面的狀態更改,在計算其內容之后,將NavigationFlow的目標 ViewElement引入視圖并根據接口的結構,ViewElement可能會保持視圖或切換到視圖效果。在圖1中,與SelectCategory事件相關聯的NavigationFlow(以圓圈形式表示)將CategoryList與目標ProductList連接起來。當事件發生時,計算目標ViewComponent的內容,以顯示所選類別的產品列表,觸發 SelectCategory事件會導致 ProductOf-Category的顯示,并替換ProductCategory。

ViewComponents可以有輸入和輸出參數。例如,一個顯示對象細節的ViewComponent對應該對象的標識符輸入參數。作為輸出參數導出的項目列表是所選項目的標識符。在圖 1中,CategoryList和ProductList之間的輸入輸出依賴關系表示為參數綁定(由IFML ParameterBindingGroup元素表示)。

2 IFML 的語義映射

2.1 IFML 模型的PCN

OMG標準非正式地定義了IFML語言的語義。而 MDD工具開發和操作性要求具有精確語義的MDD語言。在本文中,IFML的語義是通過將IFML圖映射到PCN[6],這是以模塊化原語為特征的Petri網的變體。

PCN的基礎結構是一個位置圖,它代表一個地方的層次結構。沒有“父母”和“孩子”的電腦被稱為一個地方,因為它相當于一個PN地方。一個有“父母”但沒有“孩子”的地方稱為底部地圖。有“孩子”的地方但沒有“父母”被稱為頂級地圖。沒有“孩子”的地圖中記號數量被定義為Petri網,而帶有“孩子”的地圖中記號數量被定義為孩子記號數量的最大值。過渡從一組位置圖中刪除記號并將記號添加到其他人上面。當所有源位置圖至少具有所需記號數時將啟用轉換,從沒有“孩子”的地圖中刪除記號會將數量減少一個,同時從具有子級的位置圖中刪除記號則清空所有記號。為了避免非確定性,只能在沒有“孩子”的地方圖表中插入記號。作為減少弧的組合的一種方法,引入了默認弧,它將父位置圖連接到一個或多個后代。圖2顯示了對應于空IFML模型的PCN。

圖2 一個空的應用程序的PCNFig.2 PCN of an empty application

PCN包含兩個稱為打開和關閉的轉換。初始標記包括等待中的一個記號和ViewApplication中的一個記號,描述用戶可以打開最初不在視圖中的應用程序。打開之后轉移從應用程序中移除并添加一個記號,并將記號從開始移到等待,禁用自身并啟用關閉。 關閉轉換將記號從應用程序移動到ViewApplication,并將記號從等待轉移到開始,禁用自身并啟用打開,從而將應用程序狀態重置為默認的初始標記。

圖3顯示了它的映射:PCN通過引入一個名為“Mails”的應用程序的子進程來擴展。郵件地圖表有兩個孩子的底部圖表。兩個 ViewMails狀態表示ViewContainer是否在視圖中。打開轉換的觸發添加了一個記號給ViewMails,這意味著ViewContainer被顯示。

2.2 ViewContainers之間的導航過程

應用程序頂部位置圖包含兩個地圖圖表郵件和聯系人,每個圖表有兩個子頁面底部圖表(View-Mails,ViewMails,ViewContacts,ViewContacts)。郵件由應用程序初始化,因為郵件是默認的頂級ViewContainer,這將導致默認情況下的 ViewMails放置圖的初始化[9]。相反,聯系人未初始化為默認,是來自應用程序的初始化弧目標為ViewContacts放置圖,表示最初未查看聯系人ViewContainer。兩個ViewContainers之間的導航由一個名為contacts的轉換來表示,它表示兩個ViewContainer的顯示狀態的變化。轉換將從記號到郵件、視圖郵件、聯系人移動到聯系人、視圖郵件。

圖3 單個空默認ViewContainer模型Fig.3 Single, empty default ViewContainer Model

圖 4顯示了基于某些輸入參數的值的包含ViewComponents,在接口中計算和呈現的模型的映射。ViewComponent的行為可以被認為是兩部分之間相互作用的結果:

(1)模型:表示與向ViewComponent提供內容的數據源的交互狀態。

(2)視圖模型:表示界面中內容的顯示。

圖4 頂級ViewContainers之間的導航Fig.4 Navigation between top-level ViewContainers

在Web應用程序中,模型可以是保存從數據庫中提取的對象數據bean,視圖模型可以是這些對象的 HTML[7]呈現。在 Android應用中,該模型可能是一個Java對象,并且視圖模型將GUI[8]窗口小部件綁定到該對象。ViewComponent的模型部分可以通過以下狀態建模:

(1)Clear:如果ViewComponent需要計算輸入,在這種狀態下,它不能顯示任何內容并保持為空。

(2)Ready:這種情況發生在兩種情況下:ViewComponent不需要任何輸入參數或者它已經接收到所需的輸入。

(3)計算:如果其內容是計算的,這些狀態之間的變化由PCN轉換建模和傳播,從清除到就緒,并將輸入參數傳播給ViewComponent。

圖5顯示了IFML模型的PCN映射。一個名為MailList的郵件子郵件地址表表示從父項初始化的MailListViewComponent。它分別包含兩個子位置圖ModelMailList和 ViewModelMailList,分別表示ViewComponent的模型和視圖模型部分。Model-MailList包含前面定義的四個底部位置圖表(InMailList,InMailList,OutMailList 和 OutMailList)。Transition computeMailList表示內容的計算:它從InMailList中刪除一個記號,并將一個記號添加到InMailList,表示輸入的消耗;它還從 OutMailList中刪除一個記號,并將一個記號添加到OutMailList,表示模型內容的可用性。

2.3 事件和導航流過程

下面擴展了一個示例,其中包含事件和導航流。郵件列表是交互式的,從列表中啟用郵件選擇并顯示在另一個界面組件中。應用程序啟動時只顯示列表,用戶從列表中選擇一個項目之后將顯示其詳細信息。現在,郵件ViewContainer的位置圖包含兩個對應于 MailList和 Mail ViewComponents的“孩子”位置圖,特別是它們被初始化為就緒狀態。雖然與Mail ViewComponent關聯的地方圖已初始化為就緒狀態,但其輸入最初參數為空值,因為用戶尚未選擇消息。因此,計算和渲染轉換后視圖模型顯示一個空(“null”)內容。如圖6所示。

圖5 單個ViewComponent模型Fig.5 Single ViewComponent model

圖6 導航流Fig.6 Navigation flow

3 實例研究

3.1 映射在IFMLEdit.org中實現

開發人員用在線編輯器中創建IFML模型[10],然后將模型映射到PCN并模擬它以研究其動態。然后他們可以為網絡或跨平臺移動語言生成代碼,執行和驗證原型,并通過定制外觀和使用真實調用替換模擬數據訪問[11],最后將其轉換為真實的應用程序。IFMLEdit.org利用了JavaScript開發的客戶端編輯器和代碼生成器,一旦加載可以離線使用。

該系統包括四個組件:

(1)模型編輯器:可視化編輯器在模型中插入元素,編輯其屬性和連接。

(2)模型到JSON轉換框架:一個基于規則的JavaScript引擎,它作為輸入一個模型對象,可以生成輸出任意的JSON結構。

(3)瀏覽器-服務器仿真器:能夠模擬Web瀏覽器,Node.js服務器以及連接兩者的整個請求響應周期。

(4)移動仿真器:能夠模擬移動跨平臺環境的JavaScript組件,它支持生成跨平臺移動代碼的執行。

開發人員可以通過從IFML到PCN的模型到模型轉換來生成應用程序的正式描述。通過在網絡中移動的記號可視化地呈現PCN動態,顯示界面中的控制流以及ViewElements的狀態變化。圖7顯示出了IFML圖生成的PCN模型。

開發人員可以通過模型到代碼轉換來生成Web和移動原型。圖8顯示了生成的Web原型,在瀏覽器中仿真的Web服務器中運行。圖9顯示了在移動仿真器內部的瀏覽器中生成的移動原型。瀏覽器內仿真允許開發人員測試當前的網絡或移動版本。

圖7 模型語義模擬Fig.7 M odel semantics simulation

圖8 網頁代碼生成Fig.8 W eb code generation

4 結論

在本文中,我們描述了一種用于從 IFML規范自動生成跨平臺Web和移動應用程序的MDD方法。IFML的語義是通過將其映射到 PCN(可用于模擬的Petri網的變體)來定義的,從PCN平臺規范可以交付可執行應用程序原型。原型使用自動生成的樣本數據以便填充UI,允許開發人員測試接口而不加載內容。對于更實際的測試,開發人員可以從自動數據庫中編輯,添加或刪除實體。可以重復使用IFMLEdit.org來評估不同的應用程序結構和交互方法。生成的原型可以下載和完善以產生最終的應用。開發過程由在線IFMLEdit.org工具支持的。

[1] Mitsch S, Platzer A. The KeYmaera X Proof IDE - Concepts on Usability in Hybrid Systems Theorem Proving[J]. 2017.

[2] Selic B. The pragmatics of model-driven development[J].Software IEEE, 2003, 20(5): 19-25.

[3] Brambilla M, Cabot J, Wimmer M. Model-Driven Software Engineering in Practice[M]. Morgan & Claypool Publishers,2012.

[4] Gaouar L, Benamar A, Bendimerad F T. Model Driven Approaches to Cross Platform Mobile Development[C]//International Conference on Intelligent Information Processing,Security and Advanced Communication. ACM, 2015: 19.

[5] Brambilla M, Fraternali P. - Interaction Flow Modeling Language[J]. Interaction Flow Modeling Language, 2015: 395-400.

[6] Kishinevsky M, Cortadella J, Kondratyev A, et al. Coupling Asynchrony and Interrupts: Place Chart Nets. [C]// International Conference on Application and Theory of Petri Nets.Springer-Verlag, 1997: 328-347.

[7] Hickson I. A vocabulary and associated APIs for HTML and XHTML (2014)[J]. 2015.

[8] Diep C K, Tran Q N, Tran M T. Online model-driven IDE to design GUIs for cross-platform mobile applications[C]//Symposium on Information and Communication Technology.2013: 294-300.

[9] Steiner D, ?urlea C, Culea C, et al. Model-Driven Development of Cloud-Connected Mobile Applications Using DSLs with Xtext[M]// Computer Aided Systems Theory – EUROCAST 2013. 2013: 409-416

[10] Barnett S, Vasa R, Grundy J. Bootstrapping mobile app development[C]// Ieee/acm, IEEE International Conference on Software Engineering. IEEE, 2015: 657-660.

[11] Majchrzak T A. Cross-platform development of business apps with MD 2[C]// International Conference on Design Science at the Intersection of Physical and Virtual Design.Springer-Verlag, 2013: 405-411.

Research on Automatic Generation of Web and Mobile Application Based on IFML

ZHU Hui-long1, LIU Xiao-yan1, ZHANG Xue-mei2, LI Dan-dan1, CAO Rong-kai1
(1. Kunming University of Science and Technology, Faculty of Information Engineering and Automation,Kunming 650500, China;2. Huji middle school in Shanghe County, Shandong Province, Jinan, 2501600, China)

The goal of IFML (Interaction Flow Modeling Language) is to provide system architects, software engineers, and software developers with a definition tool for the interactive flow model that describes the main dimensions of the application front end. A variety of different platforms for Web and mobile application developpment require rapid prototyping and multiple versions of the evaluation. Model-driven development (MDD) is a high-level application in text or visual language that can be used to automatically generate a product by model-tomodel, model-to-code auto-conversion. We describe IFMLEdit.org, an open source online MDD tool for automatically generating Web and mobile applications from the IFML specification for rapid prototyping. The tool also supports semantic mapping from IFML to PCN (a variant of the petri net) for model modeling and checking.

FML; Mobile applications; Model driven engineering; Semantic mapping

TP311.5

A

10.3969/j.issn.1003-6970.2017.11.019

本文著錄格式:朱匯龍,劉曉燕,張雪梅,等. 基于IFML自動生成Web和移動應用程序的研究[J]. 軟件,2017,38(11):95-100

朱匯龍(1992-),男,碩士研究生,研究方向:模型驅動方法和基于WEB的軟件開發技術。

劉曉燕(1964-),女,副教授,碩士生導師,研究方向:模型驅動方法和基于WEB的軟件開發技術。

猜你喜歡
語義模型
一半模型
重要模型『一線三等角』
重尾非線性自回歸模型自加權M-估計的漸近分布
語言與語義
3D打印中的模型分割與打包
“上”與“下”語義的不對稱性及其認知闡釋
現代語文(2016年21期)2016-05-25 13:13:44
FLUKA幾何模型到CAD幾何模型轉換方法初步研究
認知范疇模糊與語義模糊
“深+N季”組配的認知語義分析
當代修辭學(2011年6期)2011-01-29 02:49:50
語義分析與漢俄副名組合
外語學刊(2011年1期)2011-01-22 03:38:33
主站蜘蛛池模板: 久久一日本道色综合久久| 真实国产精品vr专区| 国产高清在线丝袜精品一区| 久久国产精品电影| 欧洲高清无码在线| 国产女人在线观看| 久久91精品牛牛| 日本五区在线不卡精品| JIZZ亚洲国产| 欧美色图久久| 中文精品久久久久国产网址| 国产女人爽到高潮的免费视频| 九九九国产| 婷婷午夜影院| 国产精品女人呻吟在线观看| 一级一级一片免费| 91视频精品| 99久久精彩视频| 国产高潮视频在线观看| 亚洲成人免费在线| 视频二区中文无码| 欧洲精品视频在线观看| 首页亚洲国产丝袜长腿综合| 久久人与动人物A级毛片| 亚洲精品欧美日本中文字幕| 日本一区高清| 久久精品中文字幕免费| 日本人又色又爽的视频| 免费看av在线网站网址| 国产精品太粉嫩高中在线观看| 国产迷奸在线看| 欧美精品v欧洲精品| 亚洲中文精品人人永久免费| 啪啪免费视频一区二区| 手机在线国产精品| 国产中文一区二区苍井空| 91精品视频播放| 黄色网站不卡无码| 欧美一区精品| 在线永久免费观看的毛片| 精品欧美视频| 欧美成人一区午夜福利在线| 欧美一区二区三区国产精品| 99激情网| 久久久久国产一级毛片高清板| a色毛片免费视频| 亚洲 日韩 激情 无码 中出| 91香蕉视频下载网站| 伊人五月丁香综合AⅤ| 久久综合五月婷婷| 亚洲人成网站在线观看播放不卡| 国产精品久久久久婷婷五月| 午夜精品福利影院| 国产成人免费高清AⅤ| 中文字幕在线播放不卡| 色欲国产一区二区日韩欧美| 亚洲欧州色色免费AV| 亚洲网综合| 亚洲国产成人自拍| 欧美国产日韩在线观看| 久久久久久久久久国产精品| 亚洲天堂视频在线免费观看| 秋霞午夜国产精品成人片| 国产成人1024精品下载| 2020精品极品国产色在线观看 | 国产高清毛片| 日韩不卡高清视频| 免费无码一区二区| AV天堂资源福利在线观看| 一区二区日韩国产精久久| 久久久久夜色精品波多野结衣 | 国产99在线| 亚洲人成人伊人成综合网无码| 自慰高潮喷白浆在线观看| 播五月综合| 亚洲成人黄色在线观看| 亚洲无码高清视频在线观看| 青青国产在线| 小13箩利洗澡无码视频免费网站| 婷婷六月综合网| 日本国产一区在线观看| 狠狠ⅴ日韩v欧美v天堂|