技术开发 频道

Web应用开发方法研究

【IT168 技术文章】

    1 引言
    随着Intemet和Intranet、Extranet的快速增长,Web已经对商业、工业、银行、财政、教育、政府、娱乐及我们的工作和生活产生了深远的影响,许多传统的信息和数据库系统正在被移植到互联网上。
    但Web系统开发缺乏严格和系统的方法,很少有人注意开发方法、度量和评估技术、系统质量和项目管理,当前的大多数Web应用开发和管理实践在很大程度上依赖于开发人员个人的知识和经验,造成的后果是所开发的Web系统大多是低质量的产品。而随着基于Web的系统变得越来越复杂和重要,一个项目的失败将可能导致很多问题,当这种情况发生时,人们对Web和Internet的信心可能会无法挽救地产生动摇,从而引起Web危机。
    澳大利亚的YogeshDeshpande和SteveHansen最早(1998年)提出了Web工程的概念,他们认为Web工程是用系统的、严密的、可以测量的方法来开发、实施和维护基于Web的应用或基于Web的软件的工程应用。
    基于Web的应用系统开发方法倍受关注,主要体现在Web应用系统的开发和传统软件开发的显著区别上,传统软件工程方法和技术应用到基于Web的系统开发中,显得力不从心问。在开发复杂的基于Web的系统中,为了避免Web危机的发生,达到更大的成功,迫切需要一个严格的步骤和新方法、新工具来开发、发布和评估基于Web的系统。
    由于在Web应用的开始阶段,只是将Web作为信息中介和信息发布的平台(简单的网站),因此,所提供的工具只是集中于网页的创建和编辑,如微软的FrontPage等。它们都限于被动的超文本表示、网页布局和部分的导航模型,缺乏系统的、结构化的方法以及抽象、重用的支持。随着Web应用的规模和复杂度日益增加,Web已经成为各种应用的主要平台。和传统的Web站点相比,Web应用程序不但支持导航和浏览,而且操作还会影响内容和导航状态。这使得Web应用的开发变得更加复杂。目前Web应用的工程化方法已经成为Web应用开发研究的热点,这些研究旨在提供能全面支持Web应用开发生命周期的模型和方法。
    成熟的Web开发方法应该具有什么样的特性和功能?现有的方法是否已经具备这些特性?还有哪些差距?本文将对这些问题展开讨论。
    2 开发方法应具备的特性
    Web开发方法的目标是系统化Web应用的开发全过程,提高开发效率和开发质量。为达到此目标,我们认为,一个成熟的Web开发方法应该具备以下的主要特征或功能:
    易于掌握:开发方法的一个目的是为了减轻开发人员的工作量,所以应该具有易于掌握的特点,但这不应以牺牲表达能力为代价,即Web开发方法应该能对Web程序的各个方面进行全面详细的描述。为平衡表达能力和掌握难度,可采用的方法是封装细节,对那些具有共性的细节进行抽象,以模式的方式提供选择,这样开发方法为开发者提供的是高层次的设计概念和方法,掩藏了细节,在不牺牲表达能力的基础上降低了掌握难度,但必要时设计者仍然可以对细节进行设计以满足特殊的情况。另外,设计方法应充分考虑用户已有的设计经验和技术。
    对复杂系统建模的能力:Web应用的范围涵盖从简单的静态站点到动态交互的Web应用。近年来,Web应用发展迅速,特别地,当大量传统信息和数据库系统被移植到Web环境下,一种新型的Web应用程序出现了,这些程序利用Web平台支持和执行商业过程以及工作流,例如出租和预订服务,虚拟拍卖、在线保险等闯。成熟的Web开发方法应该能适用这种需求,这就需要有对商业过程、工作流进行建模的能力,并和Web系统设计的其他部分有机结合。
    表现层建模的能力:传统的设计方法一般不很重视界面设计,而和传统的软件系统相比,Web系统表现设计有自己的特点:(1)系统的很多高级功能体现在表现层,这需要提高界面的设计质量;(2)界面中包含着大量的多媒体信息;(3)Web设计方法一般不仅给设计人员使用,而且需要给美工、编辑等使用,他们更关心系统的表现设计。所以Web开发方法需要能针对这些特点对表现层建模。
    系统定制的支持:Web系统成功与否主要依赖于用户的满意程度。成功的Web系统应该具有丰富的功能,易于使用的界面和定义良好的导航结构。而为了达到更高的用户满意度,一个主要的技术是通过个性化定制把合适的内容在合适的时间分发给合适的人。开发方法需要提供系统定制能力,这主要通过对用户的定义和描述来完成,其中包括对用户分组以及用户之间联系的处理。
    模型集成和连通的能力:能够在较高的抽象层次上表达系统和资源是怎样集成的。一方面,在很多组织中,新开发的Web系统需要和以前存在的业务系统密切关联。这些业务系统可能在不同的平台和实现语言下开发。开发方法应该能支持和这些遗产系统无缝连接。另一方面,组件的集成大部分依赖于接口描述,开发方法应提供精确的和无二义的对组件接口建模和文档化的能力;最后,Web系统需要和大量的资源和信息服务等相联接,这些可能不局限于组织内部,开发方法应提供表达和存取机制。
    自动生成能力:能否提供自动生成能力以及能力的大小是Web开发方法成熟度的一个重要衡量标准,理想的开发方法应能提供从模型描述到运行、配置代码的自动生成。
    工具和文档支持:理想的工具应能支持在用户参与下,完成从需求确定到实现维护的整个开发过程。丰富的文档支持是设计者能否掌握开发方法的重要方面。可以说,工具和文档的支持能力是开发方法能否得到广泛应用的关键。
    3 Web开发方法研究现状
    认识到Web开发的重要性,近年来,一些系统化开发Web应用的方法应运而生,这些方法来源于不同领域的研究,来源于数据库研究领域的有RMM、Araneus等,来源于多媒体研究领域的有HDM、WebML等,来源于面向对象研究领域的有OOHDM、UWE、00-H等,图1表示的是几种典型Web应用开发方法的演变过程。
                                           
    Web应用开发方法的共同点在于一般将Web系统模型分为领域模型、导航模型和展示模型,经过概念建模、逻辑建模、物理建模和实现四个过程完成Web系统开发p)。其中领域、导航、展示模型分别描述系统的一个不同侧面,可以看成是Web模型的不同视图。
    领域模型描述Web应用中领域对象及其关系,是导航模型的基础;展示模型描述Web页面展示形式,是导航对象和导航行为的最终体现;而导航模型是Web模型区别于传统系统模型的重要部分,描述了Web应用的导航特性,并起着衔接领域模型和展示模型的作用。
    本文第二部分列出了Web开发方法应该具备的主要特征和功能,下面我们将从这几个方面考察几个典型的Web开发方法已经具备了哪些特性以及还存在哪些差距。
    (1)HDM1ite
    HDM(Hypermedia Design Method)是众多Web设计方法的先驱者,HDM lite是HDM的进一步发展。特别应用于Web信息系统。主要是定义结构、导航和表现。分别用HyperBase、Access、表现方案形式化。
    HyperBase方案是一个扩展的E-R实体关系图。由实体、部件(实体子结构)、有类型的属性、实体和部件间的语义链接、数级约束等构成。Access方案描述HyperBase方案的进入方式。包括traversals(描述从源到目标的直接导航)、Collections(描述集合,可以嵌套定义,共分为8种子类型),另外还定义了导航模式(1ndex,GuidedTour,IndexedGuidedTour,ShowAll)。
    HDMlite的表现模型是一系列样式单的集合,使用类SGML的语法来表示。多个表现方案可以被映射到一个结构导航方案但没有提供设计结构。表现方案的基本单元是PaSe。一个样式单表针对一种特殊类型的页面,从逻辑上看可分为两层:布局层,每个页面建模为一个Grid,Grid中的每个单元包含表示元素;元素层:有两种类型的元素,内置的和用户定义的,所谓内置元素是前面所涉及概念的表示抽象,用户定义的则为图形设计者设计的banners,applets等。
    HDMlite的主要特点是为了自动生成的目的对HDM做了适当扩充,完成从概念方案到逻辑表示乃至到物理表示的模型转换。这些转换被Autoweb系统工具支持,自动产生程序数据方案、导航方案和表现方案。这些逻辑方案进一步被用来自动产生页面。但此自动生成主要是针对静态只读信息页面。
    (2)WebML
    WebML(WebModelingLanguage)是W313(Web-basedIntelligentlnformationlnfrastructure)项目所定义的Web模型描述语言,是HDMlite的进一步演化,是在概念层次上描述复杂Web应用的符号体系,也被称为“针对Web的UML"。它提供了图形化高度抽象的Web应用描述方法,并包括完整的设计过程和支撑工具。另外,WebML还支持XML语法,以便于利用代码生成工具来自动产生代码。
    在WebML开发设计过程中,对Web应用的描述分为以下模型:结构模型,通过实体和实体之间的关系来描述内容层,为描述导出和计算信息,结构模型还定义了一个简单的查询语言侈媒体模型,描述Web应用的多媒体特性,又分为组成模型和导航模型两个子模型,组成模型描述页面是由哪些数据单元组成的,导航模型描述页面和组织单元是怎样导航的;展示模型,使用抽象的XML语言来定义页面的布局和图形表现;定制模型,主要是对用户和用户组进行建模,对应Web应用的定制化需求。
    WebML的导航模型是在组成模型的基础上定义链接,体现导航的链接有上下文无关和上下文相关两种类型。所谓上下文相关指的是链接的单元存在语义上的关系。在实际的应用中,导航链接经常以导航链的形式出现,WebML还分析总结了多步索引、筛选索引、索引向导、环等Web导航模式来体现这些特征。
    此外,后期的WebML版本可以采用扩展数据和多媒体模型的方式来定义轻型的Web工作流。
    (3)RMM
    RMM(RelationshipManagementMethodology)是一种用于设计、构建和维护Intranet及IntemetWeb系统的方法。它的根本目标是降低动态数据库驱动的Web站点的维护成本。它提倡系统进行形象化表示,以便展开设计上的讨论。它是一个迭代式过程,包括Web页可视元素的分解,及这些元素与数据库实体的关联关系。RMM是一种用于动态Web站点创建和维护的方案。
    RMM受ER模型和HDM的影响。模型分为三层:内容层、多媒体层和表示层。在RMM中内容层是单独建模的,而表示层是结合多媒体层定义的。提出了RMDM(RelationshipMan—agementDataModel)模型进行形式定义。
    在RMM中,领域模型由实体构成,每个实体有多个属性,而m—slice设计元素是对实体属性的分组。在RMDM中,导航是通过6种进入结构支持的,分为实体内和实体向导航两种。
    RMM方法设计过程主要分为E-R设计:领域模型设计,采用E-R图;Slice设计:Web应用设计中特有的一步,决定信息怎样呈现给用户,以及怎样进入,主要是对实体属性进行分组;导航设计:设计导航路径。利用进入结构和结构组来组织。一般导航到实体的主要"Slice”,但也可以由设计者指定;转换规则设计:利用一系列转换规则把RMDM图中的元素转换为目标平台上的对象,已经有一些工具从RMDM转换为HTML;用户界面设计:界面布局设计;运行行为设计:链接途径、历史、导航机制实现;构建和测试:传统的软件工程步骤,特别测试所有导航路径。
    (4)Araneus(ADM)
    Araneus是从数据库研究领域发展而来的。Araneus中的内容层采用ER模型对领域对象进行建模,多媒体层把多媒体的设计分成概念设计和逻辑设计两个阶段,分别用NavigationConceptualModel(NCM,从RMM方法中发展而来)和AraneusDataModel(ADM)形式化。ADM允许基于页面类型和链接描述站点,而且一旦ADM方案建立后,一种特殊的语言Penelope就可以从数据库结构映射到超文本结构,并自动生成HTML页面。
    Araneus中导航设计主要在概念设计阶段完成,NCM中定义了三种节点类型和两种链接类型来描述Web导航,描述包括哪些领域对象将作为导航对象出现在导航中,导航对象之间的导航路径以及如何从源节点进入感兴趣信息。NCM模型完成后就可以建立ADM模型,ADM是用来建立页面抽象描述的。
    ADM的基础特性是Page-Scheme符号。Page-Scheme是页面抽象描述,实例是一个具有标识(URL)和一组属性的页面。属性有简单或复杂类型,如文本、图片、联接、列表等,提供两种结构:异构联合(提供灵活性)和表单(主要针对动态页面)。
    Araneus方法更强调内容层和多媒体层的设计。着重于数据库中的数据怎样在页面中呈现,而且以自动生成页面为目标。明确区分数据库设计和多媒体设计,明确区分逻辑设计和概念设计是Araneus方法的一个特色。
    为解决商业过程建模问题,Araneus2提供了一个机制使得构成商业过程的活动可以组织到一起。
 

0
相关文章