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
主站蜘蛛池模板: 欧美日韩国产在线播放| 91视频免费观看网站| www.av男人.com| Jizz国产色系免费| 久久综合伊人 六十路| 午夜福利网址| 2021亚洲精品不卡a| 天堂av综合网| 国产嫩草在线观看| 亚洲第一天堂无码专区| 日本三级精品| 国产无码网站在线观看| 婷婷六月在线| 精品一区二区三区自慰喷水| 国产亚洲精| 国产精品亚洲精品爽爽 | 欧美日韩一区二区三| 国产人人干| 九九免费观看全部免费视频| 亚洲毛片在线看| 日韩中文欧美| 麻豆国产原创视频在线播放 | 亚洲欧洲自拍拍偷午夜色| 亚洲嫩模喷白浆| 波多野结衣在线se| 综合色在线| 国产精品手机在线观看你懂的| 国产午夜无码专区喷水| 免费欧美一级| 国产二级毛片| 亚洲av无码久久无遮挡| 国产一级裸网站| 国产成人超碰无码| 亚洲中文字幕97久久精品少妇| 日本午夜精品一本在线观看| 在线观看91香蕉国产免费| 欧美日韩国产综合视频在线观看| 欧美激情伊人| 久久综合久久鬼| 91精品久久久久久无码人妻| 国产视频入口| 亚洲永久免费网站| 97在线免费视频| 88av在线看| 亚洲AV永久无码精品古装片| 亚洲IV视频免费在线光看| 素人激情视频福利| 欧美日韩北条麻妃一区二区| 亚洲精品动漫在线观看| 日本在线视频免费| 一区二区影院| 特级aaaaaaaaa毛片免费视频| 亚洲婷婷丁香| 中文字幕久久亚洲一区| 视频国产精品丝袜第一页| 国产精品久久久免费视频| 久久精品国产一区二区小说| 国产九九精品视频| 亚洲男人天堂网址| 国产精品永久免费嫩草研究院| 欧美成人综合在线| 国产乱人伦精品一区二区| 午夜精品久久久久久久2023| 久久精品国产91久久综合麻豆自制| 草逼视频国产| 国产专区综合另类日韩一区| a毛片在线播放| 国产成人精品免费视频大全五级| 天天爽免费视频| 国产一级在线观看www色 | 在线观看免费国产| 亚洲一区网站| 久久精品丝袜| 日韩毛片视频| 国产精品一线天| 91久久国产热精品免费| 免费观看精品视频999| 久草网视频在线| 亚洲无码精彩视频在线观看| 免费中文字幕在在线不卡| 大香网伊人久久综合网2020| 国产福利大秀91|