基于IFML的移动应用开发建模方法研究
2018-01-09李雅雯刘晓燕
李雅雯+刘晓燕
摘要:随着移动互联网的发展,移动应用开发如火如荼。由于市场上手机操作系统繁多,给移动应用的开发特别是应用移植带来很多麻烦。开发一个移动应用是一项复杂工作,需要掌握很多技术,包括前端开发,这些技术由不同技能的人共同完成。一个有序的开发过程以适当的建模概念为中心,这对于克服开发中固有的复杂性至关重要。交互流建模语言(IFML)是针对移动应用量身定制的OMG建模语言标准的扩展。IFML提供了一种独特、简明、能压缩的,用UML类图、状态图表示用户界面的可视性语法,在移动应用开发中起着积极作用。
关键词:移动应用;前端开发;建模;IFML;UML
DOIDOI:10.11907/rjdk.171982
中图分类号:TP301
文献标识码:A 文章编号:1672-7800(2017)012-0030-03
Abstract:Developing a Mobile application, like any other kind of software system, is a complex achievement, which requires the ability to master a broad spectrum of tasks, including the front-end development. Tasks are jointly performed by a number of persons with different skills. Following a well-organized development process, centred on the appropriate modelling concepts, is essential to overcome the complexity inherent in such a development. The modeling language described in this document is an extension of the OMGs Interaction Flow Modeling Language (IFML) standard, tailored to mobile applications.IFML provides a unique, concise visibility syntax to compact the aspects of the user interface that are otherwise expressed separately with UML class state diagrams.
Key Words:mobile application; front-end development;modeling; IFML; UML
0 引言
前端设计是一个复杂的任务,需要多学科知识,存在许多错综复杂的观点。前端在移动应用开发中非常重要,用户体验必须完美地适应移动应用目标。然而,移动应用交互的发展很大程度上仍然需要人为完成,其缺点在于会不可避免地产生一些错误,导致移动应用开发效率降低。
交互流建模语言(Interaction Flow Modeling Language,简称IFML)[1]2013年3月被OMG采纳为标准规范,用来表示应用前端的内容、用户交互和控制行为,支持平台独立的图形化用户界面描述。交互流建模语言支持独立描述部署在桌面计算机、笔记本电脑、PDA和移动电话等系统上的移动应用图形界面,描述的重点是最终用户感知的结构和行为,而对移动应用的业务和数据组件结构、行为的描述,仅限于对用户体验有直接影响的方面[2]。
1 IFML介绍
IFML的重点在于交互式移动应用模型—视图—控制器(MVC)中的视图部分,它描述了视图如何引用或依赖于应用的模型和控件部分,并且允许设计者定义控制器必须处理的相关事件。
1.1 IFML模型
IFML模型[3]支持以下设计:①视图结构规范,它由视图容器定义,它们之间是嵌套关系,由可见性及可达性组成;②视图内容规范,包括视图组件的定义,即包含在视图容器内的内容和数据输入元素;③事件规范,由可能影响用户界面状态的事件定义组成。事件可由用户的交互、移动应用或外部系统产生;④事件转换规范,由事件对用户界面的影响定义组成;⑤参数绑定规范,由视图组件之间的输入输出的依赖关系和视图组件与动作之间的定义组成。事件的效果由交互流連接表示,它将事件连接到受事件影响的视图容器或组件。交互流由用户界面的状态变化表示。
1.2 IFML开发过程
IFML开发过程[4]如图1所示。IFML流程以迭代和渐进的方式不断重复和完善,直到结果满足业务需求。开发过程包括发现问题、设计细化、实施等几个周期。每次迭代都会产生系统的原型或部分版本,每次迭代都会对系统的当前版本进行测试和评估,然后进行扩展或修改。这样一个迭代周期并不是移动应用开发的主要方式,它适用于移动应用必须快速部署,且用户需求可能随时会发生变化的情况下。
(1) 需求规范。需求规范是应用分析人员收集和正式确定应用开发范围和预期功能等基本信息的活动。它是一个面向用户的精确而又易于理解的规范,这些规范帮助设计人员了解移动应用需要有哪些功能,并且在开发应用之前验证应用规范是否符合业务需求。
(2)数据设计。IFML流程中的数据设计阶段将数据源设计定位,从这些数据源中可以绘制移动应用内容。
数据密集型移动应用的开发可能在两种不同的数据源场景中进行:最简单的一种情况是,存储移动应用内容的数据源必须与移动应用一起设计,其中数据设计阶段旨在为移动应用生成最佳的数据模式,并且生成的概念模式直接用于构建存储移动应用内容的物理数据库。移动应用管理的内容已经存在,并且已经被某些数据存储库(数据库或遗留系统)管理。在这种情况下,移动应用从现有数据源中提取内容,并将其发布在移动应用页面中。在第二种情况下,概念数据设计不受已经设计和实施的数据源影响。
(3)前端设计。前端设计是将需求规范中提出的功能需求转化为一个或多个移动应用,以体现所需的信息传递和数据处理活动。前端设计将IFML模型运行在概念层面上,这使得前端架构师能够在页面内组合数据对象,以及通过链接形成超文本。
前端设计基于IFML提出的概念和模型驱动方法,是整个开发周期的主要阶段。它将应用的页面交付功能构建在概念层面和视觉模型方面,这比在源代码级别更为方便,并且更加定性[5]。
2 IFML模型与其它系统建模视角相结合
由于IFML是集成在MDA框架[6]中的,所以它可以与其它系统建模视角紧密结合。在IFML标准中,明确定义了3个方面:与内容模型的集成,与业务逻辑的集成以及与业务流程模型的集成[7]。
2.1 與内容模型集成
许多情况下,系统开发都是从需求模型开始(例如UML用例图)。IFML可以使用户交互模型的可跟踪性达到相应的需求规范。图2说明了IFML模块用于解决用例或业务流程任务所需的用户交互情况。
IFML模块的执行可能会导致一些系统内部状态更改,并动态显示在UML状态图[8]中。
2.2 与业务逻辑模型集成
为ViewComponent指定绑定内容时,就可以实现IFML与内容模型的集成。例如,图3(a)显示了ListViewComponent,它通过ContentBinding指定了一些内容的发布,该ContentBinding建立了IFML图和UML类图之间的引用,UML类图定义了“Product”类。
当ViewComponent或Action引用类的方法或更复杂的行为(分别用BehavioralFeatureConcept和BehaviorConcept在语言元模型中表示)时,将指定IFML与业务逻辑的集成。具体来说,BehaviorConcept和BehavioralFeatureConcept分别通过UMLBehaviorConcept和UMLBehavioralFeatureConcept进行扩展,这允许设计者直接引用UML类方法或UML动态图(序列图、活动图或状态图)。
图3比较了将IFML元素与外部模型进行集成的3种不同方法:引用领域模型类(a)的DataBinding;引用特定UML方法(b)的DynamicBehavior和引用整个UML图(c)的DynamicBehavior。引用可以嵌入在ViewComponents和Actions中。通常,ViewComponent的内容是通过DataBinding进行详细描述的, 但也可以使用DynamicBehavior来指定,该动态行为描述了提取或构建ViewComponent内容的逻辑。
2.3 与业务流程模型集成
IFML在业务流程模型方面的集成很重要,与部署在特定平台设计模型方面的互补作用。图4显示了IFML模型与其它系统模型的关系:IFML模块映射到UI模型[9]的元素,与UI模型共享一个公共命名空间,并且描述在一个UML部署图中。
3 IFML在移动应用中的扩展
移动应用具有丰富的界面,类似于小型的桌面应用程序,目的是最大限度地利用有限的可用空间[10]。本文以移动家政服务系统为例,说明IFML如何在移动应用中扩展。本系统作为多个不同的移动应用提交到不同的Android和iOS系统应用商店。
3.1 搜索服务
图5显示了用户在搜索应用提供的服务时应遵循的基本步骤。搜索流程要求接收电子邮件的专业人员作为订阅者来回复。
3.2 发布请求
在这个流程中,电子邮件的收件人将负责回复电子邮件,并与最终用户进行协商。
3.3 提供用户
提供服务的流程非常简单:用户注册时,将在自动匹配阶段填写所有系统需要的数据。用户在此阶段需要提供工作地点和每周的工作时间。随着可用性嵌入,用户可以寻找广告,或使用搜索服务,或等待接收电子邮件与工作机会。
4 结语
本文旨在通过提供用户交互模式的理性分类解决移动应用设计[11]中的问题。以手机APP为例,每个模式都由IFML模型描述。本文还介绍了设计人员如何将IFML与其它建模语言集成,以获得涵盖系统前端和后端的视图,确保交互模型与建立的其它模型之间具有可追溯性,在移动应用开发中发挥应有的作用。
参考文献:
[1] BRAMBILLA M, BONGIO A, BUTTI S, et al.Interaction Flow Modelling Language (IFML)[EB/OL].[2013-03-08].http://www.omg.org/spec/IFML/.
[2] MARCO BRAMBILLA, PIERO FRATERNALI. The interaction flow modeling language(IFML), object management group (OMG)[EB/OL].http://www.ifml.org, 2014.
[3] M BRAMBILLA, P FRATERNALI. Interaction flow modeling language,model-driven UI engineering of Web and mobile apps with IFML[C]. Morgan Kauffman, USA, 2014.
[4] IFML. Interaction flow modeling language [EB/OL].http://www.ifml.org/.
[5] CHARLAND, ANDRE, LEROUX, et al.Mobile application development: mobile vs. native[J]. Communications of the ACM, 2011, 54(5):78-83.
[6] 侯金奎,万建成,张玉艳.一种支持MDA的PIM建模方法[J].计算机工程,2007,33(8):1249-1254.
[7] ERICKSON T. The interaction design patterns page[EB/OL].http://www.visi.com/~snowfall/InteractionPatterns.html, retrieved August 2014.
[8] JEAN VANDERDONCKT. A MDA-compliant environment for developing user interfaces of information systems[C]. In CAISE, 2005:16-31.
[9] 吴昊.一种基于模型的用户界面开发方法[J].软件,2015,36(8):452-458.
[10] 徐巍.跨平台移动开发框架的比较分析与实例开发[J].吉林大学学报,2014,24(8):66-67.
[11] KANGAS, EEVA, KINNUNEN, et al.Applying user-centered design to mobile application development[J]. New York: ACM, 2005,48(7):314-319.
(责任编辑:杜能钢)