技术开发 频道

Web应用开发方法研究

    (5)OOHDM
    OOHDM(Obiect-orientedHypermediaDesignMethod)是Rossi等人在1998年提出的Web应用程序开发方法。OOHDM的形式模型基础前期是OMT,后期是UML,但都作了自己的扩充。如属性可以有多重类型等。
    OOHDM把导航设计作为重要的一个阶段分离出来并建立相应的模型。导航模型又分为导航类模型(Navigationalclassmodel)和导航上下文模型(Navigationalcontextmodel)。导航类模型是领域模型在导航设计中映射的视图,是通过面向对象定义语言对领域对象属性进行组合或剪切,以及进行属性和关系筛选而建立的,模型元素为节点和链接,描述了导航对象及导航对象之间的导航关系。导航上下文模型中利用六种上下文元素描述导航空间结构,上下文是可以嵌套定义的。导航上下文模型中还有进入结构(向导、简单索引、动态索引等)来描述进入上下文和导航对象的结构。
    OOHDM主要采用类图来描述静态页面的导航结构,至于导航的复杂行为语义,可以通过使用一个面向对象的状态转移模型NavigationCharts来描述。
    OOHDM用AbstractDataView(ADV)来描述导航对象和其他界面对象如菜单条、按钮等的结构布局。界面复杂行为方面则采用ADVCharts来描述。
    OOHDM后期的发展允许在原有模型上定义商业过程,即把商业过程作为基本的设计元素,而不再把商业过程看作是概念和导航设计的副产品。
    OOHDM-Web是一个采用OOHDM描述的设计工具,但主要针对的是只读的Web站点。软件自动生成由HTML代码和OOHDM-Web函数库调用相结合的页面,所以它产生的页面必须在OOHDM-Web环境下运行。
    (6)UME
    UME(Nora Koch et a1,1999)基于OOHDM但采用UML作为统一的模型技术。如有需要,可以采用UML的扩展机制stereotypcs和constraints。
    UME导航设计的基础是领域模型,输出是导航模型。导航模型的建立被分为两个过程,首先建立导航类模型然后是导航结构模型。导航类模型是在领域模型上定义一个视图,用来表示在Web应用程序中哪些对象能够被访问以及对象之间的直接导航关系,一般用类图来表示,模型元素是导航类和直接导航关联,是从领域模型中的类以及关联映射过来的。导航结构模型定义导航对象是怎样被访问的。它基于导航类模型,加入了一些模型元素来描述导航结构,这些元素包括菜单,索引,向导,查询,外部节点和导航上下文。
    UME将商业过程建立为单独的模型,分析阶段采用UseCase图,进一步的细节描述采用活动图,并定义和已经存在的领域,导航和/或表现模型之间的关系。由于UME采用UML作为统一的模型符号,模型之间的映射关系相对明确,但在UME中主要从设计方法角度提出了映射原则,缺乏模型映射关系描述机制,还无法做到真正的全自动生成。UME和其他方法的区别在于和其他模型引入自己的符号不同,它采用的是标准的UML和扩展。这样可以利用现有的工具,模型的集成和连通能力得到了加强。
    (7)00-H
    OO-H(objectoriented-hypermedia)是一种面向对象的用来构建复杂Web应用程序的工程方法,所采用的形式模型是扩展的UML。基于XML,和其他方法的主要区别在于能应对复杂功能需求。主要着重Web界面和已有业务模型间的集成。提供了调用服务的机制。
    在领域模型基础上,OO-H增加了导航视图和展示视图,用来捕捉Web应用的静态和动态特性。其中导航模型是通过为每一类用户建立不同的NAD(NavigationAccessDiagram)来实现的。每个NAD对应着相关用户导航需求的信息、服务和导航路径。当NAD构造后就可以根据映射规则生成默认的用户界面。
    NAD的构建基于四种类型的模型元素:导航类、导航目标、导航链接和汇集。导航类是导航对象的描述,根据用户的存取权限和导航需求对领域类属性和方法加以扩展而得到;导航目标是一个模型元素的集合,用来描述用户的某项导航需求,在导航目标中一般要定义人口点;导航链接定义了导航关系;汇集是在导航类或导航目标上定义的层次结构。
    在OO-H中,设计过程是在领域模型基础上建立导航类视图,进一步用导航目标汇集组织导航空间,而不同类型的导航链接则定义了导航关系,这些建模元素的采用可以定义复杂的静态页面导航结构,而对动态页面和导航的行为则没有描述。在导航模式的支持方面,OO-H提供了丰富的模式分类,其中导航模式分为静态模式和动态模式,动态模式中又分为流控制模式和跳转模式等,可以采用不同粒度的模式来简化设计和加强重用。在00-H方法中还定义了导航视图和展示视图之间的映射规则,可以最终产生用户界面代码,但生成的页面是简单的静态页面,实用程度仍然不够。
    至于商业过程的处理OO-H采用和UME类似的思想:由于采用了面向对象的建模思想,也体现出一定的模型集成能力。
    (8)其它方法
    Web开发方法还有很多,限于篇幅我们不再详细比较,下面介绍一些它们的主要特色。
    Conallencq对UML使用标准的扩展机制进行了扩展。进行扩展是为了让Web特有的构件能与系统模型的其余部分集成,向Web应用程序的设计人员、实施人员以及构架设计师展示适当的抽象和明细级别。但Conallen主要提供建模符号,缺乏设计过程的描述。
    W2000是一个Web应用程序的框架,基于已经存在的两个技术:UML——标准的面向对象系统的建模语言以及HDM。UML和HDM的集成使模型的集成成为可能,但W2000在表现层设计方面比较缺乏。
    WSDM是以用户为中心的方法,着眼于系统的定制。它试图解决信息过时,链接丢失以及允许不同用户浏览不同信息等可用性问题。其主要思想是先分组用户,根据不同用户特征建立"观察”,然后才开始概念设计。
    OOWS是一个模型驱动的Web应用建立方法。强调Web应用从需求获取到模型建立,经过模型转换到最终实现的开发全过程。OntoWebbei091是一个基于本体的方法,着眼于集成异构数据源建立数据丰富的Web门户。整个设计采用基于XML的元方案表示,使用了RDF和DAML+OIL。
    4  结论
    以上介绍了几种典型的Web开发方法,可以看到虽然它们各具特点,但都还不能完全满足我们所提出的Web开发方法应具有的特性(具体比较见表1)。
                                            
    这也使得这些方法缺乏工程应用,经统计”只有大约3%的Web开发工程运用了研究所提出的方法,甚至只有5%左右的工程人员知道这些方法的存在。造成这种状况的原因是多方面的,一方面这些方法的提出是在一些学术杂志或会议上,工程人员缺乏对它们的关注,另一方面工程人员的技术惯性也阻碍了他们采用新的技术。但更主要的还是这些Web开发方法本身存在着不完备性和缺陷造成的。具体来说,现有的Web开发方法主要存在以下问题:
    方法比较复杂,难于掌握。Web开发方法研究人员基于各自的研究领域所提出的方法一般自成体系,不熟悉其研究领域的人员在掌握上存在一定的难度。近期,更多的方法基于面向对象理论,采用UML作为描述手段,而这也是工程实现人员熟悉的技术,掌握难度有所降低,但大多数方法还是存在滥用UML扩展机制的倾向,设计粒度太细,仍然比较复杂。
    不能对复杂功能建模。大多数开发方法针对的主要是只读站点,静态视图,缺乏对复杂功能特别是动态Web应用及商业过程的支持。主要原因是对那些从多媒体背景得到的方法主要着眼于信息的组织,表示和导航。功能特别是核心商业过程往往被忽略;对那些从面向对象建模发展起来的方法,对Web系统特殊的功能缺少合适的描述,通常把Web系统模型看作是和传统软件系统一样的,或者在实现层次上定义一些扩展。
    界面设计大多比较简略。虽然Web开发方法大多都提供表现层建模,但大多都比较简略,没有表现层设计细节。这里主要的原因是没有在概念和逻辑建模概念中捕捉表现层凹,而只是就表现层界面元素进行抽象设计,而且界面元素之间的结构和操作关系过于简单,无法满足用户的复杂细致的需求。
    模式支持和利用不够。Web模式是在总结Web应用基础上提炼出来的可重复使用的设计模式。支持模式的开发方法可以把模式作为建模元素,简化设计、加强重用,给代码生成提供强有力的支持,而且也为系统的定制提供更好的支持。Web模式有导航层模式和表现层模式等。现有Web设计方法虽然也总结了一些Web模式,但仍显不够,更主要的是没有把总结出的模式有机地结合到开发过程中。
    模型之间缺少清楚和灵活的映射。大多数方法是一个分层的方法,把设计分为一些独立的过程:首先进行领域映射,体现Web应用的结构、内容和工作流等;然后是关系分析,包括领域关系和导航关系;最后是表现层设计。设计结果是分别建立各层模型。现有方法普遍缺少层间的连接,模型之间缺少清楚和灵活的映射。这不但使得Web应用的自动生成无法真正达到,而且还影响了模型集成和连通的能力。
    缺少工具支持。虽然有的开发方法提供了一些集成或辅助工具,但由于目前的方法主要是针对设计和实现阶段,其他开发过程中重要的阶段象需求工程和维护等都还没有考虑,而且也缺少完善的开发过程支持,工具还不能给设计人员全面的支持,特别是方法普遍缺少文档和用户说明,严重影响了Web开发方法的实用程度。
    总之,现有的方法更多的是从规范化设计的角度,而没有从工程化应用的角度出发。认识到这一点,下一步我们的工作主要是围绕开发方法的工程化方面展开。

0
相关文章