- 1、本文档共36页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
[工学]软件工程-齐志昌版18
国防科技大学计算机学院 软件工程 Software Engineering 国防科技大学计算机学院 2004.07 第十八章 快速原型技术 为了较好地完成软件开发任务,瀑布模型要求在软件产品生成之前对用户需求进行尽可能精确的、完全的刻画。遗憾的是,迄今为止,几乎所有针对复杂应用问题的软件开发实践都证明,这种要求很难完全实现。 事实上,由于瀑布模型缺乏有效的需求获取和确认机制,更没有灵活的应变机制,从而直接或间接地导致了软件危机的种种表现形式,例如,软件质量无保证,成本居高不下,维护困难,等等。 有鉴于此,本章首先分析瀑布模型的主要缺陷,然后阐述克服这些缺陷的方法:快速原型技术和进化式软件开发。 18.1 瀑布模型的缺陷 针对瀑布模型的批评大致可归纳为以下六方面: 1.完全地、精确地刻画复杂应用问题的用户需求是不可能的。 2.需求分析和软件实现是不可分割的。 3.用户和开发人员都难于理解形式的、不可执行的需求规格说明。 4.传统的开发策略没有为用户参与关键的开发决策提供便利。 5.目标软件的适应能力不强。 6.瀑布模型并不适合于软件项目管理。 18.2 快速原型方法 18.2.1 原型及其作用 简单地说,原型是目标软件系统的一个可操作模型,它实现了目标软件系统的某些重要方面。 在软件开发过程中,原型为管理人员、开发人员和用户交流信息、讨论问题以及技术决策提供了可操作的模型。 每一原型可作为后续原型和目标软件系统的基础或蓝本。 为方便用户参与软件开发过程,原型在用户界面上应该与目标系统尽可能保持一致。 原型及其作用 为了精确地理解问题域、确定用户需求并发掘潜在的用户需求,开发人员可以生成探索性原型。 这类原型是问题域中某些子系统或用户需求的某些子部分的可操作模型,它不涉及软件的实现方法。其主要作用是澄清应用领域和用户需求的某些疑难问题,并方便用户对开发人员的需求分析工作进行评价、纠错和确认。 为简化问题以便快速生成原型,在分析复杂软件项目的用户需求时,应该考虑针对不同的疑点生成多个原型,不要试图用一个复杂的原型来解决所有的需求分析问题。 原型及其作用 对于重要的用户目标和关键算法,开发人员可以生成实验性原型以验证问题求解方案的可行性,比较各种方案的优劣,并征询用户对这些方案的功能和性能的意见。 如果原型不仅用来理解问题、试验求解方案,而且用作目标软件系统的基础,在后续开发过程中逐步进化为最终的软件产品,这类原型称为进化性原型。 以上按照原型在软件开发过程中的不同作用划分为探索性、实验性和进化性三类原型。 原型及其作用 软件可以由外至内划分为多个层面,最外层是用户界面,最内层通常由系统的核心算法构成。 水平原型是指仅仅模拟目标软件系统某一层面(通常是用户界面层)的原型。例如,针对用户界面的水平原型仅仅向用户演示窗口、菜单、对话框等界面元素。 垂直原型是指模拟目标软件系统某一部分的多个层面的原型。当目标系统的内部功能和用户界面都需要借助原型来确定时,这类原型特别有用。一般的进化性原型都属于垂直原型。 18.2.2 快速原型的构造过程 快速原型方法的关键在于如何快速地实现可运行的原型,以便尽快提交用户确认,然后再进行改进。 快速原型的构造过程可以归纳为分析与规划、实现、检查、改进四个步骤。 1.分析与规划 当初次建立原型时,必须对用户需求进行分析;当针对已有原型构造新的更为丰富和完善的原型时,必须将用户对已有原型的评价意见、改进建议以及对新原型的需求进行分析。 在用户对本次原型创建或进化的需求基本明确以后,开发人员要着手设计原型的总体结构,进行任务划分、进度安排。 初步规划新原型的进一步进化。 2.实现 快速原型的实现过程特别强调CASE工具的使用,以便尽快实现原型。 在原型实现过程中,对代码效率不宜有苛刻要求,除非当前原型将作为最终软件产品。 软件设计方案和源程序的可读性与可扩充性应该成为原型实现阶段的首选目标。 3.检查 这一阶段的主要任务是检查原型是否实现了分析和规划阶段提出的目标,邀请用户实际操作该原型,要求用户进行评估,提出改进意见和进一步的需求。 4.改进 快速原型方法不仅要求软件原型不断改进和完善,也要求开发人员在原型进化的过程中不断积累有关应用领域的知识,提高对用户需求的理解程度,改进专业技能。 同时,还要求用户利用原型逐步理解目标软件系统的运作方式。 在每一进化阶段的末尾,开发人员应该认真反思所有重要的决策过程,评价自己采用的技术和方法,根据前面检查阶段得出的结论总结经验教训。 如果要对原型进一步改进,那么开发人员携带检查阶段形成的文档(用户提出的改进意见及进一步需求)和经本次进化获得的经验教训进入下次原型进化的分析与规划阶段。 18.3 基于快速
文档评论(0)