iData_一种基于模型的用户界面开发方法_吴昊
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
3.3
3.3.1
界面模型设计 界面模型描述界面的外观和行为。它可以分为抽象界面模型和具体界面模型。
抽象界面模型 抽象界面模型不涉及界面的交互模态、用户偏好、平台类型和编程语言等使用上下文,是用户界面的
抽象表示。它分类界面元素的交互类型,并把它们根据一定的结构组织起来。在我们的工作中,定义了八
9
《软件》杂志欢迎推荐投稿:cosoft@163.com
A Model-based User Interface Development Method
WU Hao
(Modern Education Technology Center, Northwest University, Xi’an 710069, China)
【Abstract 】: Model-based user interface development method is a common method which could solve the problem of user interface development in multi-devices environment. But the primary current development methods have many problems. This paper presents a model-based user interface development method, which mainly includes domain models, task models and interface models. These models correspond to the domain models, control models and view models of MVC pattern. Because interactive system architecture is recessively included at models design process, the usefulness and usability of systems can be ensured, and the transformation of model to the interface tool box codes is easy and straight. Therefore, this method effectively solves the problem of primary development methods. 【Key words】: Model-based user interface development; Multi-device interface; MVC pattern; CAMELEON Framework; HCI
图1 方法应用框架
《软件》杂志欢迎推荐投稿: cosoft@163.com
8
吴昊:一种基于模型的用户界面开发方法
3
3.1
开发方法的设计
领域模型设计 领域模型对功能核心进行建模,它相当于一个功能核心适配器( Adapter) ,把功能核心和用户界面需要 任务模型及编程语言类库设计 任务建模的主要目的是抽象出为了实现用户目标而需要执行的逻辑活动(任务) 、这些活动之间的关系
2015 年 第 36 卷 第8期
软
件
2015, Vol. 36, No. 8 国际 IT 传媒品牌
COMPUTER ENGINEERING & SOFTWARE
一种基于模型的用户界面开发方法
吴昊
(西北大学 现代教育技术中心,西安 710069)
: 基于模型的用户界面开发方法是解决多设备环境下用户界面开发问题的一个常用方法。然而,当前主要 的开发方法中存在着多种问题。 本文提出的基于模型的用户界面开发方法, 主要包括领域模型、 任务模型和界面模型, 对应于 MVC 模式中领域模型、控制模型和视图模型。由于在模型设计阶段隐含了交互式系统的体系结构,因而不仅能 保证系统的有用性和可用性,而且模型向界面工具箱编码的转化简单直接。从而有效的解决了一些主要的开发方法中 存在的问题。 : 基于模型的用户界面开发;多设备用户界面; MVC 模式;卡梅隆参考框架;人机交互 中图分类号 : TP311.5 文献标识码 : A DOI: 10.3969/j.issn.1003-6970.2015.08.002 本文著录格式: 吴昊 . 一种基于模型的用户界面开发方法 [J]. 软件, 2015, 36( 8) : 711
2
开发方法的框架
一个好的交互式系统首先要提供完整的功能,完全满足用户的需求,才能成为一个有用的系统。另外
还要具有美观易用的界面,使用户具有良好的用户体验,才能保证商业上的成功。有用性和可用性二者缺 一不可。为了保证有用性,应从用户的需求出发,以用户为中心,构建出充分考虑界面、功能及二者之间 的通信与控制的体系结构。为了保证可用性,一般从用户的任务出发,依据用户使用系统时需要完成的目 标导出用户将如何使用界面,完成界面的观与感的设计。但是二者在开发中应该是浑然一体的,不能割裂 开来。否则,将会导致生产出有用性完整但是可用性差或者可用性高但有用性不完整的系统,或者因为界 面和功能核心无法高效连接而产生笨拙低效甚至失败的系统 [10]。 本文提出的 MBUID 方法的框架如图 1 所示,其核心是模型集 合,包含三种主要的模型:领域模型对功能核心进行建模,它相当 于 MVC 中的模型部分;任务模型对用户任务建模,在实现中表现 为对领域模型和界面模型之间的交互进行控制,相当于 MVC 中的 控制部分。为了简化程序设计,本方法的特色之一是对任务模型中 常用的功能构建相应于编程语言的类库; 界面模型对用户界面建模, 分为抽象模型和具体模型,相当于 MVC 中的视图部分。具体模型 经 MDUIDL 代码生成引擎转化为相应的最终界面。模型集合中的 大部分模型都可以用我们开发的用户界面描述语言 MDUIDL 表示。 模型集合中包含了卡梅隆参考框架的所有模型,但突出了领域模型和任务模型的重要性,同时和 MVC 模式无缝的集成在一起。此外,该方法还有有以下特点:集中考虑交互式系统的体系结构,同时顾及领域 模型、用户任务模型和用户界面模型的开发并周密设计三者之间的关系与连接,从而充分的保证系统的有 用性和可用性;熟悉该方法的开发者可以从这三种模型的任何一个开始开发系统,没有顺序上的限制,甚 至可以并行开发,都能保证设计出一个功能和界面无缝结合的系统;由于从设计时采用了 MVC 体系结构, 系统从设计到实现的过渡是自然的,可以方便的把设计时的说明性模型自动或者半自动的转化为系统的功 能部分。
交互的数据包装起来。领域模型用 MDUIDL 的 EDL 部分表示。
wenku.baidu.com
3.2
以及活动所操控的领域数据和界面元素。我们利用 ConcurTaskTree( CTT)作为任务的标记方法。 CTT 认 为在高级层次上任务是目标,低级层次上任务是交互,而且它支持设计任意复杂程度的应用。从任务角度 分析应用系统,可以在随后的设计活动中维持系统的可用性。 与一般基于 CTT 的界面开发中从 CTT 导出用户界面模型的方式有所不同,我们的方法中,任务模型除 了表征任务及任务之间的关系外,它还作为未来交互式系统的一个有机部分,在 MVC 结构的程序中指导着 控制器的生成,负责领域模型和界面模型之间的对话与控制。这样,使得模型集合到最终系统的生成有着 直接的映射关系。为此,我们对 CTT 进行了必要的扩充,在 CTT 的非叶节点加入状态元素。该元素中登记 了领域模型中的数据类型或者界面模型中的元素类型的实例,从而建立起两者之间的连接关系。当 CTT 中 的叶子节点(应用任务、交互任务)被激活时,它用中序遍历查找到其上层祖先节点中的状态元素,从而 操控状态元素连接的领域数据或者界面元素。
1
相关工作
使用基于模型的方法开发交互式系统,通过一系列模型来抽象和构建用户界面的相关部分,避免在设
计阶段过多介入设备和环境的技术细节,而集中于设计用户界面的语法部分,可以提高用户界面的生产效 率和质量。 Dygimes 是一个可以为移动设备和嵌入式系统自动生成用户界面的运行时环境,采用了用户为 中心的方法,类似于我们的方法,使用并发任务树( CTT)从任务规格开始设计用户界面 [6]。TERESA 是一 种转换方法,同我们的方法类似,根据卡梅隆参考框架构建,并遵从一个正向的工程过程 [7]。TansformiXML 是一个基于属性图文法的 UsiXML 工具, 该工具对于不同的使用上下文在同一抽象层次对模型进行转换 [8]。 然而这些方法除了存在具有一个陡峭的学习曲线、模型过于繁杂难以维护、不易支持不断变化的用户界面 需求等问题外,一个比较突出的问题是缺乏一个与功能核心良好集成的机制。本文的方法旨在对上述问题 的解决作以探索性研究。 多数基于模型的方法都使用用户界面描述语言( UIDL)作为工具描述其构建的模型,例如 TERESA 和 TransformXML。 UIDL 是模型自动转换的基础。 本文作者开发了一个用户界面描述语言 MDUIDL[9], 该 UIDL 是本文提出的开发方法使用工具之一。
0
引言
随着普适计算、云计算等新型计算模式的发展,计算设备呈现出日益多样性、异构化的特征。手动为
具有不同交互特点的设备开发不同的用户界面版本,难以开发出风格一致且具有相同的可用性的用户界面, 也带来了巨大的工作量和商业成本。目前,克服这一困难普遍认可的方法是基于模型的用户界面开发 ( MBUID) , 也就是使用模型从高层抽象出用户界面的特征, 然后再将其映射为各种不同平台上的最终界面, 达到自动或者半自动的生成用户界面的目的 [1]。这一方法是当前人机交互中的一个研究和应用热点 [2]。 通过对目前存在的大量的 MBUID 方法的研究发现, 大多数 MBUID 侧重于界面呈现给用户的外观方面 即表示、行为模型的抽象及转换,而忽视了或者较少提及功能核心以及功能核心和界面之间的通信控制部 分对界面构建的影响,而就本质而言,用户界面对构建运行时系统是不充分的 [3]。因而,一方面,在系统设 计阶段,系统的体系结构和用户界面模型之间存在着较大的间隔。另一方面,在代码设计时,自动生成的 用户界面难以很自然的和有着一定体系结构的用户界面工具箱(如 Java Swing, asp.net , QT 等)融为一体。 从而交互式系统的有用性和可用性难以得到全面有效的保证。
图2
编程类库任务类型层次
为了简化程序的设计和编写,我们把扩充的 CTT 任务模型到编程语言的映射中常用的功能设计成编程 语言类库。目前实现了 Java 语言的编程类库,其结构如图 2 所示。其中,抽象任务是其它任务的父类,它 包含其它任务的共有操作。组合任务是任务树中的非叶子节点,起着组织管理作用。它对任务的组织是依 据 CTT 规定的八种时序关系对应而来,拥有八个相应的子类。这些子类负责对任务树中其后代节点进行管 理,例如, T1 和 T2 为 EnalbeTask 的后代,则只有当 T1 发出 teminate 信号后, T2 才能进行 activate 操作。 组合任务可以和用户界面里的一个容器部件关联起来,表明该任务和这个容器有着通信关系。它还可以包 括状态元素。 应用任务一般涉及和领域模型进行数据交互, 而交互任务和界面模型中的元素有着对应关系。 应用任务和交互任务都可以和界面里的一个具体交互元素(如按钮,标签等)关联起来。
基金项目: 西北大学本科教学质量与教学改革工程项目(JX14058) 作者简介: 吴昊(1972-),博士研究生,主研方向:人机交互
第 36 卷
第8期
软
件
本文以流行的体系结构模式 MVC[4]为例,提出将其与在 MDUID 中得到广泛应用的卡梅隆参考框架 [5] 结合起来进行用户界面的开发方法,其核心思想是在模型设计阶段就充分考虑最终实现时界面工具箱的体 系结构,从而能够很好的解决上述问题。