软件工程(3)--原型模型

简介: 软件工程(3)--原型模型

前言


这是基于我所学习的软件工程课程总结的第三篇文章。


原型模型又称原型化模型、快速原型模型


书上对于(快速)原型模型的描述是:快速原型是快速建立起的程序,它所能完成的功能往往是最终产品能完成的功能的一个子集。快速原型模型的第一步是快速建立一个能反映用户主要需求的原型系统,让用户在计算机上试用它,通过实践来了解目标系统的概貌。通常,用户试用原型系统之后会提出许多修改意见,开发人员按照用户的意见快速地修改原型系统,然后再次请用户试用。一旦用户认为这个原型系统确实能做他们所需要的工作,开发人员便可据此书写规格说明文档,根据这份文档开发出的软件便可以满足用户的真实需求。(摘自 《软件工程导论》第六版   张海藩 牟永敏 著,有删改)


正文

1.原型

原型(prototype)

  • 一个部分开发的产品,使得客户和开发人员能够对计划开发的系统的相关方面经行检查。

原型化的目的

  • 明确并完善需求
  • 研究技术选择方案

原型结果

  • 抛弃原型
  • 把原型发展成最终结果


2.原型模型

快速原型模型正是为了克服瀑布模型的缺点而提出来的,它通过快速模型构建起一个可以在计算机上运行的原型系统,让用户试用原型并收集用户意见的办法,获取用户的真实需求。

d91329ddab474599aef3ae3f99146df6.png


软件交给用户后,维护便开始了根据所需完成的维护工作种类不同,可能需要返回到需求分析、规格说明、设计或编码等不同阶段。

3.原型模型的优点

  • 减少需求不明确带来的风险
  • 软件产品的开发基本上是线性进行的


能基本上维持线性顺序开发的原因是:


  • (1)原型系统已经通过与用户交互而得到验证,据此产生的规格说明文档正确地描述了用户需求,因此,在开发过程的后续阶段不会因为发现了规格说明文档的错误而进行较大的返工。
  • (2)开发人员通过建立原型系统已经学到了许多东西(至少知道了"系统不应该做什么,以及怎样不去做不该做的事情"),因此,在设计和编码阶段发生错误的可能性也比较小,这自然减少了在后续阶段需要改正前面阶段所犯错误的可能性。


4.原型模型的缺点

  • 构造原型采用的技术和工具不一定主流.
  • 快速建立起来的系统加上连续的修改可能导致原型质量低下
  • 设计者在质量和原型中进行折中
  • 客户意识不到一些质量问题


5.原型模型的使用场合


客户定义一个总体目标集,但是他们并不清楚系统的具体输入输出。

或开发者不确定算法的效率、软件与操作系统是否兼容以及客户与计算机交互的方式。

用户无系统使用经验,需求分析人员技能不足,尽量借助原型模型。

目录
相关文章
|
5月前
|
设计模式 搜索推荐
一次设计,多次利用,深入理解原型模式的设计艺术
原型模式是一种设计模式,属于创建型模式的一种,它用于创建重复的对象,同时又能保持性能。在原型模式中,通过复制现有对象的原型来创建新对象,而不是通过实例化类来创建对象。这样做可以避免耗费过多的资源开销,特别是在对象的创建过程比较复杂或耗时的情况下。 在原型模式中,原型对象实现一个克隆方法(Clone)用于复制自身,当需要创建新对象时,就可以通过克隆原型对象来得到一个新的对象副本。原型模式通常包括浅拷贝和深拷贝两种形式,浅拷贝只复制对象本身,而深拷贝则会连同对象引用的其他对象一起复制,因此能够得到完全
46 2
一次设计,多次利用,深入理解原型模式的设计艺术
|
6天前
|
监控 安全 项目管理
『软件工程3』你应该知道的三种原型实现模型:抛弃式、演化式、增量式
该文章详细解释了三种原型实现模型——抛弃式、演化式、增量式模型的特点、流程、优缺点及适用场景。
『软件工程3』你应该知道的三种原型实现模型:抛弃式、演化式、增量式
|
11天前
|
算法 搜索推荐
从代码到哲学:探索编程的深层意义
【9月更文挑战第22天】在这篇文章中,我们将深入探讨编程不仅仅是一门技术,更是一种思考方式。通过分析编程的基本原则和实践过程,我们可以发现编程与生活、哲学乃至宇宙规律之间存在着惊人的相似性。文章将带你从代码的字面意义出发,逐步展开到对生活的反思,最终触及到宇宙的本质,揭示出编程活动背后更深层次的意义。
29 5
|
5月前
|
算法 Java 测试技术
【软件设计师备考 专题 】软件开发方法:生命周期法、原型法、面向对象法、CASE
【软件设计师备考 专题 】软件开发方法:生命周期法、原型法、面向对象法、CASE
152 0
|
11月前
|
C#
C#的类和对象的概念学习案例详解
C#的类和对象的概念学习案例详解
62 2
|
11月前
|
SQL 人工智能 前端开发
ChatGPT 与软件架构 (1) - 快速原型
ChatGPT 与软件架构 (1) - 快速原型
94 0
|
开发框架 程序员
软件工程概念——是什么?软件工程的过程PDCA?生命周期模型有哪些?
在刚结束完的机房,它就是一个软件,我们如何使这个软件能够供更多人去使用,软件如何更加规范化,就需要使用软件工程的思想啦!
【软工】原型化方法与常用动态分析方法
【软工】原型化方法与常用动态分析方法
47 0
AskBlog原型系统构思
AskBlog原型系统构思
41 0
【C#本质论 八】类-从设计的角度去认知(多态)
【C#本质论 八】类-从设计的角度去认知(多态)
64 0