第8讲原型开发_第1页
第8讲原型开发_第2页
第8讲原型开发_第3页
第8讲原型开发_第4页
第8讲原型开发_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

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

文档简介

1、1第 8 讲 原型开发2为什么采用原型开发 在开发初期,要想得到一个完整准确的规格说明不是一件容易的事。特别是对一些大型的软件项目。 用户往往对系统只有一个模糊的想法,很难完全准确地表达对系统的全面要求。 软件开发者对于所要解决的应用问题认识更是模糊不清。 随着开发工作深入,用户可能会产生新的要求,或因环境变化,要求系统也能随之变化;开发者又可能在设计与实现的过程中遇到些没有预料到的实际困难,需要以改变需求来解脱困境。 因此规格说明难以完善、需求的变更、以及通信中的模糊和误解,都会成为软件开发顺利推进的障碍。 为了解决这些问题,逐渐形成了软件系统的快速原型的概念。3原型定义 在软件开发中,原型

2、是软件的一个早期可运行的版本,它反映最终系统的部分重要特性,用于实验和评价,以指导进一步的软件开发和生产。 对“原型”有以下设想: 原型是一个实际工作的系统; 原型没有一般的生存周期; 原型可能服务于多个不同的目的; 原型开发必须时间短、费用低; 原型是一个包含了修改和评价的完整的重复过程。4原型开发的应用 辅助分析和确定用户需求; 作为软件设计的工具; 作为一个解决不确定性的工具; 作为一种实验工具; 作为一种支持用户培训的工具; 作为实现一次性应用的一种经济的方法; 作为软件维护的辅助工具; 作为一种开发方法,利用原型演化为最终系统。5 原型开发不适合的领域: 嵌入式系统; 实时控制系统;

3、 科学数值计算。 为什么?6原型开发过程建立原建立原型目标型目标原型原型构造构造功能功能选择选择评价评价原型原型原型规划原型规划框架定义框架定义可执行原型可执行原型评估报告评估报告7原型开发的分类 根据原型与最终产品之间的关系,原型开发分类: 抛弃式 (throw away):验证和澄清系统的需求描述,重新构造系统。 演化式 (evolutionary):逐步改进和细化原型,将原型进化为最终系统。 增量式 (incremental):在建立软件总体设计基础上,采用增量开发方法,使原型成为最终系统。8抛弃式原型开发框架需求框架需求开发原型开发原型评估原型评估原型确定系统确定系统开发软件开发软件验

4、证系统验证系统交付的软交付的软件系统件系统可复用构件可复用构件9抛弃式原型开发 在这种方法中,原型的根本作用是弄清需求和为风险评估提供额外的信息。经过评估,原型被抛弃,重新开发系统。 开发的要求是快速开发,其主要工作量是对原型的评价,而不是原型的设计。 存在一些问题: 为了快速开发,可以会遗漏系统的一些重要特性; 一些非功能性需求可能不会反映到原型中; 在开发过程中,快速变更可能导致没有充分的文档。10演化式原型开发开发抽象描述开发抽象描述交付系统交付系统建立原型系统建立原型系统使用原型系统使用原型系统系统充分吗?系统充分吗?否否是是11演化式原型开发 基本思路:先给出一个系统的最初实现,让用

5、户去使用和评价,不断进行细化和完善,经过多次反复形成最后完善的应用系统。 这种开发方法,系统是逐步形成和完善的。 增加和修改是演化式原型开发的两个基本特征。 演化式方法式高度迭代和动态的。 通常采用快速系统开发技术,如CASE工具和4G语言。 对大规模、长周期的系统开发是最为重要的方法。12增量式原型开发定义系统定义系统交付文档交付文档设计系统设计系统体系结构体系结构指定系统指定系统增量增量建立系统建立系统增量增量验证增量验证增量交付最终交付最终系统系统集成增量集成增量验证系统验证系统系统完成否?系统完成否?否否是是13增量式原型开发 相对于演化式方法中,设计经常变更的问题,增量式方法是在软件

6、体系结构设计的基础之上,完成模块设计,进行增量开发。 相比较而言,增量式方法能提供修改的范围较小,易于控制和管理。14比较 抛弃式原型开发 目标是验证和导出需求。应该从理解不够好的需求开始。 一旦需求描述完成,原型抛弃,重新开发系统。 原型不需要长期维护,差的非功能性能可以接受。 演化式原型开发 目标是给用户一个实用的系统。应该从用户需求把握最准的部分做起,优先处理。 原型逐步演化成为最终系统。 原型必须具备相当的性能要求,遵从可靠、高效的标准。15建立快速原型好处 增进软件者和用户对系统服务需求的理解,使比较含糊的具有不确定性的软件需求(主要是功能)明确化。 软件原型化方法提供了一种有力的学

7、习手段。 使用原型化方法,可以容易地确定系统的性能,确认各项主要系统服务的可应用性,确认系统设计的可行性,确认系统作为产品的结果。 软件原型的最终版本,有的可以原封不动地成为产品,有的略加修改就可以成为最终系统的一个组成部分,这样有利于建成最终系统。16 可执行规格说明 动态高级语言 专用语言 基于脚本(scenario)的设计 可复用(reusable)的软件 函数性变成语言 工具包17可执行规格说明18(1)代数规格说明 代数规格说明使用集合、定义于这些集合上的函数和定义于这些函数上的方程来描述对象。规格说明的操作语义用这些方程表示。19(2)有限状态模型 Parnas提出的使用最广泛的一种可执行规格说明形式。从一个初始状态开始接收输入,到产生输出,状态在推移变化。施加在状态元素上的约束确定了有效状态的推移。20(3)可执行的数据流图21动态高级语言 是一种包含运行时数据管理强大功能的编程语言,是一种包含运行时数据管理强大功能的编程语言,只使用很少的代码,实现复杂的操作。只使用很少的代码,实现复杂的操作。语言类型应用领域Smalltalk面向对象交互式系统Java面向对象交互式系统Prolog逻辑符号处理Lisp基于列表符号处理22专用语言23基于脚本的设计24软件复用技术25用户界面原型 模拟 simulation 形式文法

温馨提示

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

评论

0/150

提交评论