2.3 基本的Web进程模型
为了减轻站点建设的困难,应该采用一种进程模型来描述Web站点开发中涉及到的不同阶段。通过使用指导准则、文档和确定开发步骤以确保每一步顺利完成。理想的Web进程模型能帮助用户解决站点的复杂性,减小项目失败的风险,处理项目中几乎不可避免的改变,在开发过程中快速发布站点并得到及时的反馈信息。当然,理想的进程模型也应该容易学习和操作,这是一个相当苛刻的要求,任何一个单一的模型都不能适应项目的所有特定需求。
Web站点开发中使用的最基本的进程模型为大多数人所熟悉,至少在思想上是这样的,因为它是可演绎的。基本模型从大的背景开始逐渐向特定的步骤细化,以便完成整个站点的设计。在软件工程中,这个模型称为瀑布模型,或者有时称为软件生存周期模型。因为它描述了软件生存周期的不同阶段,各个阶段逐步进行直到结束。模型的第一阶段是计划阶段,接着是设计、实现、测试,最后为维护阶段。每个阶段都有独特的步骤,但相连阶段的边界并不明显。进一步说,每一阶段并不总是有一个固定的目标。有时候,前一阶段可能会因为项目中未曾预料的改变而修改。步骤的实际数目和名称因人而异,但瀑布模型的思想如图2 - 1 所示。
注意尽管Web的开发模型可能是相同的,但仍有很多Web开发者认为他们创造了新的模型。他们在自己的站点上把它作为没确定归属的专利介绍,而实际上并没有新的东西。
无论是五个步骤还是七个步骤,或者名称是复杂还是简单,需要记住,真正重要的是模型能否加速站点的开发或提高最终结果的质量。
单纯的瀑布模型的好处在于它使得用户能够在前端计划一切,这也同时是它的最大弱点。在Web项目里,完成一个项目需要做些什么具有非常大的不确定性,尤其是当Web开发者没有太多的经验时。另一个与这个模型相关的问题是,像软件开发一样, Web开发的每一过程也相互重叠,并且前后相互影响,而且经常不得不重复。不幸的是,瀑布模型过于严格。如果发生过多的改变,可能要求开发者停止项目,并重复原来的过程。简言之,这一过程不能很好地适应变化。然而对于Web站点来说,瀑布模型因为便于理解和实施,仍然继续使用。进一步说,进程模型中每一阶段的分离有利于管理,因为它们便于监理和一步一步地实施。
2.3.1 修正瀑布模型
瀑布模型的一个重要方面在于它要求在前端做计划。然而由于在进程中需要有所有的步骤,开发者早期仓促地略过每一步骤,结果事后不得不重复,或者继续建造有缺陷的站点。进程也过于严格,不支持进一步的探索,导致不必要的风险。一种可能的提高方法是在瀑布模型的早期阶段花更多时间,并重复几次,在进入设计与实现阶段后反复挖掘目标和需求。因为进程的周期性,经常发现伴有涡旋的修正瀑布模型更加自然。当你解决带有很高的不确定性的项目时,图2 - 2显示的带有涡旋的修正瀑布模型是个很好的主意。
2.3.2 联合应用开发模型
最后提到的软件开发进程模型对站点开发很有意义,它就是联合应用开发设计,简称 JAD(Joint Application Development),也称为进化原型法,原型系统通过一系列的演变得到最后的形式。原型不是创建用来测试理论的一个模拟站点,而是为用户创建的。用户直接的反馈信息将用来指导产生新版本的站点,反复如此,直到系统最终定型。JAD 的基本概念如图2 - 3所示。
J A D的很多方面非常适合Web开发,尤其是当非常难以确定项目的规范说明书时。与瀑布开发模型相比, J A D模型是渐进的,因此它也显得很快。然而J A D也有着严重的缺陷。首先,让用户看到尚未完成的站点会危害开发者和用户之间的关系。即使让用户参与指导项目,我们也一定要记住用户不是设计者,如第1章所指出的,这种Web设计指导准则会因为用户提出不合理要求而偏离轨道。以J A D运作的Web项目很难作出预算,因为修正的版本数很难预测。如果用户变幻无常,成本会螺旋上升而失控。记住,隐藏在J A D之后的核心概念就是在得到正确的设计之前反复试验。撇下它的缺陷不说, J A D在Web开发中有自己的位置,尤其在软件维护项目之中。然而,最初的J A D项目开发最好让有经验的开发者来完成—尤其是那些能与用户很好沟通的设计者。
其他一些指导Web开发的方法也讨论过。还存在一些能为用户服务的方法。记住,建设站点是先标识好等待解决的问题或达到的目标,并以一致和启发的方法得到结果。站点的开发应该是挑剔的和深思熟虑的,而不是随便的和被动的。一个挑剔的方法并不意味着完全抛弃机遇和灵感,相反,它提供了机会。设计者不应该把站点工程的一些概念当作限制的因素,而应该把它们当作指导准则。