首页 > 其他分享 >软件工程(3)--原型模型

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

时间:2023-02-26 15:31:45浏览次数:37  
标签:开发人员 -- 模型 系统 用户 软件工程 原型 快速


前言

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

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

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

正文 

1.原型

原型(prototype)

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

原型化的目的

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

原型结果

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

2.原型模型

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

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

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

3.原型模型的优点

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

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

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

4.原型模型的缺点

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

5.原型模型的使用场合

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

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

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

标签:开发人员,--,模型,系统,用户,软件工程,原型,快速
From: https://blog.51cto.com/hwuu/6086630

相关文章

  • redis(11)事务秒杀案例
    秒杀案例描述现在有1个秒杀的功能,1个原来价值5000元的手机现在搞活动,降价到1块钱,做秒杀活动。库存就10个,假设有10000人抢购。目前逻辑是:抢到了商品库存就减1,然后把用户id......
  • graphviz 简单入门
    上一位负责画图的选手CSAcademy由于不明原因暂时不能继续工作,所以本俱乐部招收了新选手graphviz。在Linux上,你可以这么下载:sudoaptinstallgraphviz在目录下新......
  • Learning Models with Uniform Performance via Distributionally Robust Optimizatio
    目录大致内容DuchiJ.C.andNamkoongH.Learningmodelswithuniformperformanceviadistributionallyrobustoptimization.TheAnnalsofStatistics,49(3),1......
  • LeetCode 39. 组合总和 40.组合总和II 131.分割回文串
    欢迎关注个人公众号:爱喝可可牛奶LeetCode39.组合总和40.组合总和II131.分割回文串LeetCode39.组合总和分析回溯可看成对二叉树节点进行组合枚举,分为横向和纵......
  • C#常用代码
    C#常用代码List操作取出list其中对象的属性值,还可以做去重复点的操作intcnt=list.Select(r=>r.point).Distinct().Count();字符串格式化stringline=string......
  • Python的max()函数输出为nan值
    Python的自带函数max()在使用时,若输入的数组中是以nan为开头的就会造成输出结果也为nan,其原因可能是在比较最大值时从第一个数开始比较,若第一个数即为nan则会导致之后的所......
  • 【LeetCode二叉树#08】寻找树左下角的值(回溯机制X深度)
    找树左下角的值力扣题目链接(opensnewwindow)给定一个二叉树,在树的最后一行找到最左边的值。示例1:示例2:思路层序遍历这个是很自然的思路,因为层序遍历可以避......
  • 密码常识测试
    密码常识测试对以下观点进行评论,分别论述你认为这个观点是正确还是错误的(1分)?为什么(2分)?你的参考资料或判断的信息来源是什么?(2分)1.很多企业和技术人文都有下面这样的想法......
  • javsscript代码的执行顺序
    1<!DOCTYPEhtml>2<htmllang="en">34<head>5<metacharset="UTF-8">6<metahttp-equiv="X-UA-Compatible"content="IE=edge">7<metan......
  • 进制转换 Java 代码
     一、其他进制字符串转成十进制数字jdk提供的方法:Integer.parseInt(Stringstr,intradix);//radix默认为10,可不输入自己写的方法:/***其他进制......