(计算机软件与理论专业论文)模型驱动的用户界面生成方法的研究.pdf_第1页
(计算机软件与理论专业论文)模型驱动的用户界面生成方法的研究.pdf_第2页
(计算机软件与理论专业论文)模型驱动的用户界面生成方法的研究.pdf_第3页
(计算机软件与理论专业论文)模型驱动的用户界面生成方法的研究.pdf_第4页
(计算机软件与理论专业论文)模型驱动的用户界面生成方法的研究.pdf_第5页
已阅读5页,还剩46页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

山东大学硕士学位论文 摘要 在一个系统的开发中界面开发占了相当大的一部分。在传统的界面开发中, 开发人员利用某种依赖于特定平台的语言进行直接编码,这样很容易造成重复类 似的开发和设计,同时要成为一个合格的界面开发人员必须经过长期的学习和锻 炼,这无疑提高了开发的成本。 随着模型驱动体系结构( m o d e ld r i v e na r c h i t e c t u r e ,m d a ) 在软件工程 领域研究和应用的逐渐升温,越来越多的有关人机交互和用户界面的研究者开始 逐渐把目光投向m d a ,探索将模型驱动的思想引入到用户界面的自动生成的相 关研究中,并取得了一定的效果。利用i d a 思想作为指导,站在一个更加抽象的 层次对用户界面进行设计,近而建立一套完备的用户界面管理系统无疑会给系统 开发带来裨益。 本文在全面分析基于模型的界面开发架构和相关理论知识的基础上,为界面 开发人员设计了一套以建模为核心的界面生成框架,给出了系统的整体架构。开 发人员直接利用从最终用户或领域专家那里得到的任务描述和任务模型的雏形 对任务模型以及领域模型等平台无关模型( p l a t f o r mi n d e p e n d e n tm o d e l ,p i m ) 进行细化,从而导出与平台相关的表现模型。本文的主要工作包括: 提出一套完备的模型:包括领域模型、任务模型、表现模型、导航模型、约 束模型等界面模型和环境支撑模型,并提出了几种界面模型之间的转化规则,给 出了在系统架构下的开发及建模的过程。环境支撑模型主要是为系统的运行提供 资源。 实现了基于j a v ae e 架构的界面生成方案:通过实现平台解析器、布局 管理器以及事件处理器等完成了界面模型在j a v ae e 平台上的运行。表现模 型是整个模型的核心,模型解析器以表现模型为输入,经过解析生成一个 个的运行时模版类。然后,平台解析器在布局管理器的协助下将运行时模 版类生成特定平台下的界面元素。 该方案支持目标系统的快速原型化,产生的界面风格统一,提高了用户界面 的开发效率,降低了对开发人员专业技术的要求。有效保证了目标系统的易用性 和实用性,降低了用户界面的维护代价。借助x m l 强大的扩展能力,具备向多通 山东大学硕士学位论文 i i 山东大学硕士学位论文 a b s t r a c t u s e ri n t e r f a c et a k e sal a r g ep a r ti nt h ed e v e l o p m e n to ft h ei n f o r m a t i o n s y s t e m ,w h i c hh a st h ec l o s ep u r p o s e sw i t ht h es i m i l a ri m p l e m e n t a t i o n s t r a d i t i o n a ll a n g u a g eb a s e dd e v e l o p m e n ta l w a y sr e s u l t si nr e p e a t e dw o r k ,s oa l o n gp e r i o do ft r a i n i n ga n dl e a r n i n gw a sd e m a n d e dt op r o d u c ea ne l i g i b l e d e v e l o p e r ,w h i c ha l li n c r e a s et h ec o s t so fd e v e l o p m e n t w i t ht h eg r a d u a lw a r m i n go fm d a ( m o d e l - d r i v e na r c h i t e c t u r e ) i nt h ef i e l d o fs o f t w a r ee n g i n e e r i n gr e s e a r c ha n da p p l i c a t i o n ,m o r ea n dm o r er e s e a r c h e r s r e la t e dt oh u m a n c o m p u t e ri n t e r a c t i o na n du s e ri n t e r f a c eb e g a nt o s e to u r s i g h t so nm d a ,e x p l o r e dt h em o d e l d r i v e ni d e ai n t oa u t o m a t i cg e n e r a t i o no f u s e ri n t e r f a c er e s e a r c h ,a n da c h i e v e dc e r t a i nr e s u l t s u s i n gm d aa sag u i d i n g i d e a ,f r o mam o r ea b s t r a c t l e v e lo fu s e ri n t e r f a c ed e s i g n ,s e t t i n gu pa c o m p r e h e n s i v eu s e ri n t e r f a c em a n a g e m e n ts y s t e mf o rs y s t e md e v e l o p m e n t w i l lu n d o u b t e d l yb e n e f i t i nt h i sp a p e r ,a f t e rac o m p r e h e n s i v ea n a l y z i n go fm o d e l - b a s e di n t e r f a c e d e v e l o p m e n ta r c h i t e c t u r ea n dr e l a t e db a s i ct h e o r e t i c a lk n o w l e d g e ,w ed e s i g na u ig e n e r a t i o ns c h e m et om o d e l i n ga st h ec o r ef o rt h ei n t e r f a c ed e v e l o p e r ,a n d g i v et h es y s t e m 。so v e r a l la r c h i t e c t u r e d e v e l o p e r sr e f i n et h ed o m a i nm o d e l s a n dt a s km o d e l sd i r e c t l yf r o mt h ed e s c r i p t i o no ft a s k sa n dt h et a s ks k e l e t o n c r e a t e db yt h ee n du s e ro re x p e r t s ,t h u se x p o r tt h ep s m p e r f o r m a n c em o d e l s t h em a i njo bi n c lu d i n g : p r o p o s eac o m p r e h e n s i v em o d e l :i n c l u d i n gt h ea r e am o d e l ,t a s km o d e l , n a v i g a t i o nm o d e l ,c o n s t r a i n tm o d e l ,n a v i g a t i o nm o d e la n de n v i r o n m e n t a l s u p p o r t i n gm o d e l ,a n ds e v e r a li n t e r f a c em o d e lt r a n s f o r m a t i o nb e t w e e nt h e r u l e s g i v et h ed e v e l o p m e n tc y c l ea sw e l la st h em o d e l i n gp r o c e s s e n v i r o n m e n t a ls u p p o r t i n gm o d e li st op r o v i d er e s o u r c e sf o rt h er u n n i n go ft h e s y s t e m i m p l e m e n t e dt h em o d e lo nj a v ae ep l a t f o r m :t h r o u g ht h ei m p l e m e n t a t i o n o ft h ep a r s e r ,l a y o u tm a n a g e ra n de v e n tm a n a g e rb a s e do nj a v ap l a t f o r m , m a p p e dt h ei n t e r f a c em o d e lt oja v ap l a t f o r m t h ep r e s e n t a t i o nm o d e li st h e c o r eo ft h ep s m m o d e lp a r s e rp u t sp r e s e n t a t i o nm o d e la si n p u t ,a f t e ras e r i e s o fp r o c e s s i n gt og e n e r a t eju s tar u n t i m et y p eo ft e m p l a t e a n d ,p l a t f o r m i i i 山东大学硕士学位论文 p a r s e r ,w i t ht h ea s s i s t a n c eo ft h el a y o u tm a n a g e rt r a n s f o r m st h er u n t im e t e m p l a t et op l a t f o r m - s p e c i f i ci n t e r f a c ee l e m e n t s i ts u p p o r t st h eg o a lo fr a p i dp r o t o t y p i n gs y s t e mt op r o d u c eau n i f i e d i n t e r f a c es t y l e ,i m p r o v et h eu s e ri n t e r f a c ed e v e l o p m e n te f f i c i e n c y g u a r a n t e e o ft h et a r g e ts y s t e m se a s eo fu s ee f f e c t i v e l y ,r e d u c e dm a i n t e n a n c ec o s t so ft h e u s e ri n t e r f a c e w i t ht h ee x p a n s i o no ft h ep o w e r f u lx m lc a p a b i l i t i e s ,i th a st h e p o s s i b i l i t yo fe x p a n d i n gt om u l t i - c h a n n e lu s e ri n t e r f a c ei n t e r a c t i v e l y k e yw o r d s :u i m s :m d a :d o m a i nm o d e l :t a s km o d e l :p r e s e n t a t i o n m o d e l i v 原创性声明和关于论文使用授权的说明 原创性声明 本人郑重声明:所呈交的学位论文,是本人在导师的指导下,独 立进行研究所取得的成果。除文中已经注明引用的内容外,本论文不 包含任何其他个人或集体已经发表或撰写过的科研成果。对本文的研 究做出重要贡献的个人和集体,均已在文中以明确方式标明。本声明 的法律责任由本人承担。 论文作者签名:盗幽耋 日期: 关于学位论文使用授权的声明 本人完全了解山东大学有关保留、使用学位论文的规定,同意学 校保留或向国家有关部门或机构送交论文的复印件和电子版,允许论 文被查阅和借阅;本人授权山东大学可以将本学位论文的全部或部分 内容编入有关数据库进行检索,可以采用影印、缩印或其他复制手段 保存论文和汇编本学位论文。 ( 保密论文在解密后应遵守此规定) 论文作者签名:拯边考师签名: 【l i 东大学硕士学位论文 第一章绪论 1 1 研究背景 从某种意义上来说,界面对于用户而言就是整个软件系统,用户界面对于软 件系统的重要性不言自明。随着软件系统规模不断扩大,开发大型软件系统所耗 费的时间和成本也成倍增加。用户界面在应用软件中平均占开发量的4 8 和运行 时间的5 0 【1 0 l ,提高用户界面的开发效率,无疑是提高整个软件系统开发效率非 常有效的手段。因此,需要通过专门的工具来开发和管理软件系统的用户界面, 为界面设计者提供可视化、规范化的手段来实现从用户需求到实际界面的映射。 然而,在传统的界面开发中,开发人员往往都是利用某种依赖于特定平台的 语言进行直接编码生成界面,这样的方式会存在诸多的问题,主要表现在: 1 不同平台之间的界面无法复用,需要重新编码;同一平台内的代码复用 率低。 2 传统开发模式中,以开发人员为核心,用户不能提供有效的决策支持。 只能是开发人员先为用户提供一个原型系统,然后再在用户的建议下一 次次的修改。 3 界面开发人员的门槛高,需要一段时间的深入学习。如果系统在不同的 平台间切换,无疑会使得界面开发人员力不从心。 4 没有将界面设计与业务开发分离。 随着m d a 在软件工程领域研究和应用的逐渐升温,越来越多的有关人机交 互和用户界面的研究者开始逐渐把目光投向m d a ,探索将模型驱动的思想引入 到用户界面的自动生成的相关研究中,并取得了一定的效果。目前已经出现了很 多新的用户界面开发平台的思想和技术,比如,基于模型的技术,主要有:u i d e 、 a d e p t 、h u m a n o i d 等;使用x m l 表示用户界面,如:x f o r m s 、x u l 、 u i m l 等。然而,尽管这些技术都己经通过不少系统开发实践证明了自身的优 良性能,它们中绝大多数具有强大的开发功能,但这也带来了系统的高度复杂性 以及对开发人员的要求提高等问题。所以,不论是哪一种技术都无法切合实际的 投入到实际的开发中去。本文的研究正是在这样的背景之下提出的。 山东大学硕十学位论文 量量| 曼曼量_ i 笪皇鼍曼曼曼舅舅舅| 曼曼鲁舅曼曼曼曼曼| 量皇曼量皇曩量曼曼曼曼量董蔓鼍一 1 2 模型驱动架构( m d a ) m d a 是眭l o b j e c tm a n a g e m e n tg r o u p ( 对象管理组织) 所制定的一个开放和中 立的应用架构标准,该标准分离业务逻辑和应用技术,使业务逻辑或应用技术的 变化而不影响应用架构。m d a 的核心是由一系列标准组件构成的,包括统一建 模语言( u n i f i e dm o d e ll a n g u a g e ) 、x m l 元数据交换( x m lm e t a - d a t ai n t e r c h a n g e ) 等等。 p i m 和p s m 是m d a 两个最重要的概念。平台无关指的是独立于如下技术:信 息格式化技术,如v 几d t d 和沮。s c h e m a 等;3 g l 和4 g l ,女f l j a v a 、c + + 、c 舟、 v i s u a lb a s i c 等;分布式组件中间件,如j 2 e e ,c o r b a ,n e t 等:消息处理中间件, j t n w e bs p h e r e ,m q ,i n t e g r a t o r 并f l m s m q 等。p i m 是具有高抽象层次、独立于任 何实现技术的模型。p s m 是为某种特定技术量身定做的,在p s m 中使用这种技 术中可用的实现机制来描述系统。例如,e j bp s m 使用e j b 结构表述系统模型。 它通过e j b 特有的术语来描述系统,例如“h o m ei n t e r f a c e ”,“e n t i t yb e a n ”,“s e s s i o n b e a n ”等。m d a 标准定义了p i m 和p s m 这两个术语,但是实际上很难在平台独立 和平台相关之间划出明确的界限。可以说一个模型比另一个模型更相关,或者更 无关。在模型变换中,把一个较为平台独立的模型变换成一个较为平台相关的模 型。因此,平台相关模型和平台无关模型是相对的。 1 2 1m d a 软件生命周期 m d a 生命周期和传统生命周期没有大的不同,主要的区别在于开发过程创建 的工件,包括p i m 、p s m 和代码。 、d 一d ,一、口,一一、一、 需求捕铁卜钳求分析) = 设计 卜一编码 图1 - 1m d a 生命周期 p i m 是具有高抽象层次、独立任何实现技术的模型。p i m 被转换为一个或多个 p s m 。p s m 是为某种特定实现技术量身定做。例如,e j bp s m 是用e j b 结构表达 的系统模型。开发的最后一步是把每个p s m 变化为代码,p s m 同应用技术密切 2 i i 东大学硕士学位论文 相关。传统的开发过程从模型到模型的变换,或者从模型到代码的变换是手工完 成的。但是m d a 的变换都是由工具自动完成的。从p m 到p s m ,再从p s m 到代码 都可以由工具实现。p i m ,p s m ,和c o d e 模型被作为软件开发生命周期中的设计 工件,在传统的开发方式中是文档和图表。重要的是,它们代表了对系统不同层 次的抽象,从不同的视角来看待我们的系统,将高层次的p i m 转换到p s m 的能 力提升了抽象的层次。能够使得开发人员更加清晰地了解系统的整个架构,而不 会被具体的实现技术所“污染”,同时对于复杂系统,也减少了开发人员的工作量。 开发人员首先创建系统的平台无关模型,通过p i m 到p m 的变换来进行精 化。获得了足够精化的p i m 以后,就要通过p m 到p s m 的变换来生成目标平台的 p s m ,然后再经过p s m 到p s m 变换逐步精化,最终得到代码,如图1 2 所示。 辖化 图1 - 2m d a 软件开发过程 1 2 2m d a 工具及在用户界面系统开发中的应用 随着m d a 研究的开展,各种支持m d a 的软件工具相继出现,如t r u n f u n 和 a r c s t y l e r 。t r u f u nk a n t 是基于t r u f u np l a t o 的m d a 工具,即中国第一个基于u m l 的模型驱动架构开发工具,也是是全球第一款中文m d a 开发工具。t r u f u nk a n t 覆盖了软件开发的各个环节,使用t r u f u nk a n t ,不仅可以通过u m l 进行需求捕 获、系统分析、系统设计,同时可以进行代码生成、编译、调试、运行、打包、 部署,以模型驱动整个软件开发,真正实现了模型化。a r c s t y l e r 是i n t e r a c t i v eo b j e c t 公司的产品,是目前领先的m d a 开发工具之一。它支持将一种模型映射到其他 模型、源代码、脚本( 如测试、信息可视化中的交互技术研究编译、部署脚本) , 同时它还能为目前流行的一些i d e 环境生成对应的工程文件,j t l :l j b u i l d e r 、 v i s i u a l s t u d i o n e t 等。a r c s t y l e r 的两个核心分别是:m d a c a r t r i d g e s 和 m d a e n g i n e 。m d a c a r t r i d g e s 是模型转换规则的集成;m d a e n g i n e 负责生成代 码。i b m ( r a t i o n a l ) 更关注自己提出的r a s ( r e u s a b l ea s s e ts p e c i f i c a t i o n ) 的概念, 并且在e c l i p s e - f 了很大的功夫,最终的目标是i b m 所有的软件都基于e c l i p s e 框 3 l li 东大学硕士学位论文 架。e c l i p s e 中体现m d a 思想的就是e m f ( e c l i p s em o d e lf r a m e w o r k ) 。 b o r l a n d ( t o g e t h e r ) 没有在j 2 e e 领域率先支持m d a ,而是发布了b o r l a n d e c o ( e n t e r p r i s ec o r eo b j e c t ,企业核心对象) ,e c o 技术为基于n e t 的开发提供 了快速的m d a 解决方案。 1 3 基于模型的用户界面自动生成的研究现状 目前人们对图形用户界面已经做了大量研究工作,并且产生一些支持图形用 户界面自动生成的工具,但是它们只支持定义的活动和用户界面同重要的应用功 能的交互。交互式系统的基于模型的开发方法通过将用户界面分解成一些独立的 模型组件强调指出了这一缺陷,这些模型都是规范定义陈述的。一旦规范完成了, 自动化的工具结合模型并且从它们中产生高效的系统。模型的组合问题 ( m o d e l c o m p o s i t i o np r o b l e m ) t 2 3 1 就需要有效地解决,并且从独立的陈述模型中自动 地结合交互软件。【2 3 就给出了模型的合成问题并且给出了解决方案。 交互系统中基于模型的方法是以一个普通的模型库系统的分析、设计、和实 施为基础的。不同于通用软件工程,设计者可以创建含义和关联,能够通过传递 代码获得的模拟组件。在基于模型的方法中,设计者创建严格的系统属性并且进 行分析、优化和合成这些模型从而得到运行系统。基于模型的用户设计器一个模 型就是用户界面一些独立连接部分的陈述说明,例如:它的外观,或者它是如何 同重要应用程序的功能进行连接和交互的。通过将精力集中到一个用户界面的独 立的方面上,一个模型可以通过专业标示来表示。这恰恰就说明了使用基于模型 的用户界面开发方法进行界面开发比其它的方法更加容易并且易于维护。 基于模型的用户界面开发技术致力于提供一个专业和系统的方法来设计和 执行用户界面的环境,为了达到这个目标,用户界面是通过界面模型( u s e r i n t e r f a c em o d e l s ,t a m s ) 的使用而被描述的。从陈述用户界面模型中获得有三 个主要的好处【2 1 : 1 它们比其它开发工具所提供的u i 描述更加抽象。 2 因为他们具有如下功能,所以用一个较系统的方法便利了u i 的设计和执 行: 1 ) 应用不同层次的抽象来为用户界面建模; 4 i l i 东大学硕士学位论文 2 ) 不断地细化模型; 3 ) 对l 详细说明( s p e c i f i c a t i o n ) 的重用。 3 他们提供了从与u 设计相关的任务到执行程序的自动转化的下一步的构 造。 近年来,随着m d a 在软件工程领域研究和应用的逐渐升温,人机交互研究领 域越来越多的研究者将m d a 的思想引入到用户界面自动生成的相关研究中。在 实际的研究过程中,人们对基于模型的界面开发技术达成了一个共识,即:一个 复杂的用户界面模型由用户任务模型、域模型、用户模型、对话模型和展现模型 等几个基本部分组成,他们相互协作共同组成了一个完整的用户界面模型。 u i d e t l 刀是第一个基于模型的系统,通过它可以实现从数据模型到展示模型 的转换,u i d e 包含了一个将数据类型映射到界面控件的算法。另一个实现域模 型到展示模型映射的工具是m e c a n o ,它将域模型转化成基于表单的界面但却没 有设计到用户任务这一核心概念。 h u m a n o i d 17 】采用模板来实现域模型到展示模型的映射,这种方式被证明 是一种建立界面和信息显示的有效方法。但是,这种方法却不能够被普遍的推广。 a d e p t 、f u s e 、t a d e u s 以及t r i d e n t 1 7 1 都嵌入了多种形式的任务模型。这些 系统的宗旨都是尽可能的自动完成由用户任务模型到界面生成的过程。a d e p t 虽然没有准确的定义映射,但它将界面的模型分成了抽象和具体的两种模型。 a d e p t 完全由用户的任务模型来驱动生成界面。开发人员经过一系列的润色最 终将任务映射到界面元素,然后再到一种依赖于某种平台的具体界面控件。由于 a d e p t 采用了抽象的界面元素,所以由它生成的界面显得特别的轻便。另一个 基于用户模型的界面生成工具是t r i d e n t 。它拥有一个非常出色的知识库,这 个知识库所提供的指导原则一直被应用于界面生成的过程中。 f a b i op a t e m o 、等人提出了基于图形符号的c o n c u r t a s k t r e e s ( c t t ) 2 0 l 任务模 型表示法,被越来越多大学和研究机构用于各种用户界面的任务分析研究中。 c t t 任务模型表示法是一种基于图形符号的、采用层次的树状结构来组织并表示 任务模型的方法。在c t t 任务模型表示法中,依据任务的抽象层次和任务执行过 程中参与角色的不同,对任务的类型进行了归类,总共提供了5 种记号,分别代 表不同类的任务,分别为:抽象任务( a b s t r a c tt a s k ) :代表一个复杂抽象的任务, 通常用来表示由其他种类的任务任意组合而成的任务;用户任务( u s e rt a s k ) :代 ill 东大学硕士学位论文 表一个只能有用户参与的任务,通常用来表示和用户感知或者认知行为相关的任 务。例如,用户阅读系统的反馈的信息提示,然后决定下一步的操作;交互任务 ( i n t e r a c t i o nt a s k ) :代表执行过程中需要用户与系统进行交互的任务。例如用户在 线注册填写表单;系统任务( a p p l i c a t i o nt a s k ) 代表由系统执行而不需要用户参 与交互的任务。例如,系统处理用户提交的注册信息,然后将处理结果显示给用 户。c t t 定义了丰富的暂态关系用以表示任务之间在执行过程的相互联系和制约 作用,这些关系均有相应的图形表示符号。 不少基于任务模型的用户界面生成工具和原型系统也被开发出来,包括 a i l l i om o i l 、f a b i op a t e m o 、c a r m e ns a n t o r o 等人设计实现的c t t e t e r e s a 系统 1 2 0 1 ,t i mc l e r c k x 等人提出的d y 西m e s 原型系统等。c t t e ( c o n c u r t a s k t r e e s e n v i r o n m e n t ) 是一个集成了设计、编辑、测试、分析和调试c t t 任务模型等功能 于一体的环境,它由c n u c e 的h c l d x 组开发实现,最初被用于测试c o n c u r t a s k t r e e s 任务模型表示法,后来被广泛用于c t t 的设计和分析中。t e r e s a ( t r a n s f - o r m a t i o ne n v i r o n m e n tf o ri n t e r a c t i v es y s t e m sr e p r e s e n t a t i o n s ) 是一个由c t t e 衍生 出的工具,它支持基于c t t 任务模型生成适应跨平台要求的用户界面。d y g i m e s 系统( d y n a m i c a l l yg e n e r a t i n gi n t e r f a c e sf o rm o b i l ea n de m b e d d e ds y s t e m s ) ,是另一 个基于模型驱动的用户界面生成系统,主要面向于嵌入式系统和移动计算设备的 用户界面。 1 4 本文的研究工作及创新 本文针对基于用户界面描述模型的技术进行了阐述,提出了一种基于元语言 的界面模型,并实现了相应的解析器,从而实现最终用户界面的生成。本课题 主要针对基于j a v ae e 的w e b 和桌面系统的界面开发,所做的研究工作主要包 括: 用户界面模型架构概述 本文论述了与用户界面开发平台相关的几个重要理念,并阐明了界面高度抽 象表示作为新一代界面开发平台具有很高的研究价值。通过全面分析一种通用的 界面模型架构,结合实际的项目需求,进而在各种开源架构之上建立了界面的抽 象设计框架。 6 山东大学硕十学位论文 提出一套完备的描述模型,包括:领域模型、任务模型、导航模型、约束模 型以及表现模型等界面模型和环境支撑模型,并提出了几种界面模型之间的转化 规则,给出了在系统架构下的开发周期以及建模的过程。环境支撑模型主要是为 系统的运行提供资源。 实现了基于j a v a e e 架构的界面生成方案:通过实现平台解析器、布局管理器 以及事件处理器等完成了模型在j a v a e e 平台上的运行。表现模型是整个模型的 核心,模型解析器以表现模型为输入,经过解析生成一个个的运行时模版类。然 后,平台解析器在布局管理器的协助下将运行时模版类生成特定平台下的界面元 素。 1 5 本文组织 全文共分六章,具体内容安排如下: 第一章绪论,主要就本文的研究背景、国内外研究现状、本文所做的工作做 了概述。 第二章:基于模型的界面开发架构。首先分析了一个通用的模型架构,然后 结合实际的项目需求,提出了自己的系统架构,对界面管理器、界面仓库、系统 资源库等重要概念给出了概括性论述。 第三章:基于模型的界面开发的建模。首先给出了界面自动生成的周期,然 后介绍了各种模型的建立过程、组织结构以及各个主要模型之间的转换规则。 第四章:基于模型的界面开发的框架的实现。由于基于w e b 的和基于客户 端的实现存在巨大的差异,所以,本章分别就系统在这两种模式下的实现分别进 行了介绍。在桌面模式下,主要论述了它的事件处理机制,并给出了界面生成的 整个过程;在w e b 模式下,以s t r u t s 为基础,结合了其它比较流行的开源框 架的理念,对原有的结构进行了改进。 第五章:实例分析及原型系统介绍。 第六章:总结及未来展望。 7 山东大学硕士学位论文 第二章基于模型的界面生成的体系结构 用户界面是整个应用程序的核心,界面设计的好坏直接关系到用户对整个系 统的接受程度n 7 1 。用户界面软件不但庞大复杂,而且很难设计、实施和修改。一 直以来,大量的用户界面设计软件都是以开发人员为核心。这些工具普遍使用复 杂的界面元来进行界面的设计。最近在学术界有一个共识,那就是如果使用以用 户为中心的界面设计方法,界面的可用性和实用性将会得到很大的改观。因此, 在这种环境下,有大量的工具支持来使用和管理界面控件,组织界面布局以及对 界面的原型系统进行测试。但几乎在所有的以用户为中心的界面设计中很少或者 根本就无法来回答像在一个给定的对话框中的控件如何完成预定的用户任务等 的关键问题。这些问题只有在设计者的文档中才能找到答案。 基于模型的界面开发的基本思想是用一种陈述性质的界面模型来表示界面 设计的所有相关方面,从而全面的支持用户界面的开发。这种模式有很多益处【2 1 】: 1 以用户为中心的开发周期 开发人员可以从诸如用户任务等抽象层面利用结构化的方式对界面进行设 计。很多以用户为中心的设计模式因为不了解任务分析和执行阶段的关系而导致 失败。基于模型的用户界面开发在用户和界面设计人员以及用户和界面设计本身 之间建立了一条连接的纽带。 2 集中式的界面设计 界面模型中的抽象元素( 用户任务和领域对象) 和低层次的对象,比如:控 件和鼠标点击等共同使用一种陈述性的语言来描述。因此,在整个界面设计框架 中,所有类型的元素之间都可以建立一种关联关系。这样,像一个控件是如何影 响用户任务执行的这个问题就变得显而易见了。 3 设计重用。 由于整个的界面采用声明的方式设计,因此,很容易被新系统使用。 4 客户服务器架构 界面模型定义了客户服务器架构的用户界面软件工具,包括模型编辑器、决 策支持工具、自动界面生成工具等。他们通过访问服务器界面模型可以共存于 一个简单环境中。 山东大学硕士学位论文 一个典型的基于模型的界面生成架构1 2 1 如图2 1 所示。界面模型是整个界面设 计的一个核心知识库,它使用声明式的方法描述了用户界面的各个方面,包括组 件和设计。界面模型中包含了一些典型的界面模型元素:任务模型、领域模型、 对话模型、表现模型以及用户模型等。基于模型的界面开发实际上就是如何更好 的使用这些模型中的几种来对整个界面进行描述。界面开发人员通过一组功能丰 富以及在某种程度上支持自动化的工具来设计和修改模型。在基于模型的环境 中,工具经常被分为设计时工具、运行时工具以及运行时系统。设计时工具作用 于界面模型,包括交互式开发工具以及自动化开发工具集( 如:布局生成器) 。 仑 i n t e r l k e d e v e l o p e r 图2 - 1 一个典型的基于模型的界面生成架构图 运行时工具使用一种界面模型来支持用户的活动,如:提供实时帮助以及收 集和分析数据的可用性。模型的变动会立刻得到反映,而在传统模式下必须要经 过重新编译。运行时系统遵守一组由界面模型产生的接口规范并允许开发人员和 最终用户预览、运行和测试界面。这些工具也可以利用一些附加的关于设计方针 和原则的知识库来对界面的自动生成提供帮助。 9 生至i j :i :主堡圭主竺笙圣 21 系统架构 在图2l 中,我们看到整个模型部分由任务模型、领域模型、表现模型、对话 模型以及用户模型等组成。从编程到基于模型的界面开发的演变就是如何利用这 几种独立的模型来更全面的描述整个界面过程的演变】。在m i s 系统的开发中, 由于其对话过程比较简单,所以本文所设计的架构没有包含对话模型。除此之外, 凶为用户模型主要是对领域应用中的用户标识及角色分类进行描述,与界面的开 发过程联系不是很紧密,所以架构也没有涉及到这方面的设计。基于此,系统的 整体架构设计如下: 至巫二 w “霉 广函而鬲订 堪 参 1 :! 竺! i 酉丹、 臣圈售 臣固 橱 国2 - 2 系统的体系结构图 系统主要分为两个大的部分;建模和系统实现。建模部分主要是定义一种描 述性的语言来表示界面模型中的各种元素、结构阻及他们之间的关系。主要的模 型包括:任务模型、领域模型、导航模型、约束模型和表现模型等。其中前面几 部分对应于m d a 的p i m ,而表现模型对应模型驱动架构的平台相关模型部分。除 了模型外,捂建个构造、修改模型的可视化编辑器也是该部分的内容,该部分 将在第三章中详细介绍;系统实现部分主要是以各种模型作为输入,经过系列 的加工处理,生成最终的用户界面。主要包括:界面生成器、系统资源库、组件 库和界面仓库等。组件库主要是定义在系统内各种可用的抽象的界面元素;而界 f i i 东大学硕士学位论文 面生成器又由平台解析器、布局管理器和事件管理器组成,这部分内容将在第四 章详细论述。需要说明的是,基于模型开发的系统生成方式有两种:利用模型生 成源代码然后再运行和直接解析模型生成运行时模板。这里采用后者,因为这样 可以在业务处理中很方便的访问界面元素。 2 2 用户界面生成的开发过程 整个用户界面开发过程如图3 1 所示,图中纵向分为两层,上层为开发过程 ( d e v e l o p m e n t p r o c e s s ) ,下层为支撑工具箱( t o o l k i t ) 。图中横向将整个开发过程分 为三个阶段:任务的抽取阶段、建模( m o d e l i n g ) 阶段与添加业务逻辑阶段,其中, 模型是整个过程的核心。抽取阶段主要是由领域专家根据用户的任务描述或者是 领域知识构建任务模型的雏形,构建模型的过程是一个迭代过程,首先对概念模 型即任务模型、领域模型、导航模型、验证模型以及实体模型表现模型建模,然 后对概念模型间的映射( t a s k d o m a i n ,t a s k - n a v i g a t i o n 、d o m a i n - v a l i d a t i o n ) 、概 念模型到实体模型的映射( t a s k & d o m a i n p r e s e n t a t i o n ) 建模。最后生成基于x m l 描述文件。对描述文件可以进行迭代设计,从而支持模型的复用与扩展。在第二 阶段,系统会根据第一阶段的各种模型为开发人员自动生成各种逻辑处理接口。 这样一个完整的开发任务就完成了。描述文件基于声明性的语言,仅仅给出了软 件系统的抽象描述,具体实现需要映射到相应的实现技术。在整个开发过程中, 主要有以下工具提供支持:系统建模工具用于支持模型构建与描述文件生成。 e c l i p s e 等j a v a t _ 具用于对已生成代码的二次开发。 e l i c i t e m o d e n l l g a d db u s i n e s sl o g i c s i 矿 l 区 l - - ds y s t c n a 、阜 lr p 6 k 、 罗 i p l i c i t i “gt 鹞k ) 、l 一 弋r 圃圆 图2 3 开发过程图 山东大学硕士学位论文 2 3 界面仓库 当软件规模到达一定程度时,系统中需要存储的配置文件也相应的增多,简 单的文件管理方式难以胜任,而如果用户界面配置信息简单的以文件方式存储, 将导致保密性差,并且难以控制。因此,我们提出用户界面仓库的概念。 界面仓库通过一个关系数据库来实现,负责管理界面配置信息以及对话流程 定义,提供交互信息的快速查询和存取。界面仓库的引入带来如下好处: 1 当用户在网络上更改使用的计算机时,只要是以相同的用户名登录进界 面仓库,就可以获得相同的界面配置信息和相同的界面布局。 2 在目标软件进行更新时,由于界面信息集中存储,因此不需要在每台计 算机上更新界面配置情况,有效的降低了软件维护的代价。 2 4 系统资源库 所谓的系统资源库就是系统运行时支撑环境,在系统中,我们定义为s y s t e m m o d e l 。s y s t e mm o d e l 由c o n s t a n t s d e fm o d e l 、p a r a m e t e rm o d e l 、c l a s s m a p p i n g m o d e l 、t e m p l a t e m a p p i n gm o d e l 、f i l t e rm o d e l 以及p l a t f o r mm o d e l 等。系统预 定义的资源往往不能满足所有用户的需求,为了增强系统的适应能力以及使用户 定制个性化的外观,系统引入了p a r a m e t e rm o d e l ,这一部分与u i m l l 3 4 1 的s t y l e 部分相对应,在该模型内用户可以定义诸如字体外观、边框、段落格式以及纸张 大小等属性,下面是一个定义段落格式的例子: c l a s s - m a p p i n gm o d e l 定义了a u i ( a b s t r a c tu s e ri n t e r f a c e ) 模型中组件向相应 特定平台的投射。如: m a p 锣p e = ”l a b e l ”c l a s s = ”p a c k a g e p a t h u l a b e l ”今,在j a v a 平台上u l a b e l 继承j a v a 相应的标签类,而在其它平台上组件库只要做相应的处 理即可。用户可以通过继承u l a b e l 类来实现扩展;每一种界面描述元素的属性 在系统启动时会被赋予一个u e l e m e n t t e m p l a t e 对象,该对象定义了大部分界面 元素的公共属性。但是一些公用界面元素经常被赋予业务属性:一个t e x t 元素只 允许输入英文字母或者阿拉伯数字。为了满足这些特殊的要求,本文引入了 1 2 山东大学硕士学位论文 t e m p l a t e m a p p i n gm o d e l 用于对公共元素的扩展;下拉列表框等元素往往需要提 供一系列资源数据供用户选择,在一般的面向对象的编程语言中往往需要首先获 得这些界面元素运行时的一个引用然后使用具体的方法将数据加进去,为了使开 发者不接触到与具体平台相关的操作本文引入了f i l t e rm o d e l ,可以把f i l t e r m o d e l 理解为连接界面元素和业务数据的一个桥梁,f i l t e r 会把它所拿到的数据 自动加载进这些界面元素。 p l a t f o r l nm

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论