瀑布模型

软件工程——瀑布模型、快速原型模型、增量模型、螺旋模型

為{幸葍}努か 提交于 2019-11-26 23:47:19
一、瀑布模型 1.1 什么是瀑布模型 1970年温斯顿.罗伊斯提出了著名的“瀑布模型”,直到80年代早期,它一直是唯一被广泛采用的软件开发模型 瀑布模型将 软件生命周期划分为制定计划、需求分析、软件设计、程序编写、软件测试和运行维护等六个基本活动 ,并且规定了它们 自上而下、相互衔接 的固定次序,如同瀑布流水,逐级下落 瀑布模型是最早出现的软件开发模型,在软件工程中占有重要的地位,它提供了软件开发的基本框架。其过程是从上一项活动接收该项活动的工作对象作为输入,利用这一输入实施该项活动应完成的内容给出该项活动的工作成果,并作为输出传给下一项活动 从本质来讲,它是一个软件开发架构 ,开发过程是通过一系列阶段顺序展开的,从系统需求分析开始直到产品发布和维护,每个阶段都会产生 循环反馈 ,因此,如果有信息未被覆盖或者发现了问题,那么最好 “返回”上一个阶段并进行适当的修改,开发进程从一个阶段“流动”到下一个阶段,这也是瀑布开发名称的由来 对于经常变化的项目而言,瀑布模型毫无价值 1.2 特点 1、阶段间具有顺序性和依赖性 该阶段具有两重含义 必须等前一阶段的工作完成后,才能开始后一阶段的工作 前一阶段的输出文档就是后一阶段的输入文档,因此只有前一阶段的输出文档正确,后一阶段的工作才能获得正确的结果 2、推迟实现的观点 对于规模较大的软件项目来说,往往编码开始的越早,最终完成开发所需时间越长

软件工程学习5-瀑布模型总结

寵の児 提交于 2019-11-26 11:57:40
1 瀑布模型怎么来的? (1)所谓软件危机 瀑布模型算是现代软件工程的起源,软件工程的发展,很大部分都是构建于瀑布模型的基础之上的。在校期间做的项目相对简单,通常不会涉及到诸如性能测试等,通常为边写边改,但是一旦 项目变复杂,开发人员水平参差不齐,从而导致软件开发与维护过程中出现一系列严重问题,这个现象也被称之为“软件危机”。 (2)边写边改的缺点 开发的过程不可控 项目的人数多了以后,不方便协作分工 对需求分析的理解误差,导致返工,从而影响项目交付 没有有效的测试,上线问题一堆 (3)瀑布模型的诞生   1970 年,Winston Royce 博士借鉴了其他工程领域的思想,比如建筑工程,提出了瀑布开发模型,指出软件开发应有完整之周期,并将软件开发过程分成了若干阶段。像瀑布一样,从上往下,完成一个阶段继续下一个阶段 2 瀑布模型案例 按照一个我曾经毕业设计的案例 (1) 项目的定义和规划   毕业设计是做一个c++的网络嗅探器,所用库为libpcap,可行性没问题,老师大概给我说了下需要做哪些功能,然后说两个月完成吧。啊,你怕是在开玩笑,当时读本科一天天都是在摸鱼。。初步定下时间吧 需求分析——1 周;   软件设计——1周;   程序编码——4 周;   软件测试——1周。 的确如此,软件测试在当时开来就是功能测试,实现功能就完事,哎!!! (2) 需求分析阶段  

软件工程学习3软件如何而来

落花浮王杯 提交于 2019-11-26 10:17:07
1 软件怎么被创造出来的   软件的出现,一般都是某个人或者某些人有想法有意图,想做个什么东西方便自己方便他人。张小龙的微信,乔布斯的IOS。这些伟大的软件需要很多人来协同完成。 比如微信,2010年立项,2011第一版上线,当时只能发送文本消息和照片,之后一个版本一个版本更新。   像这样有计划有步骤有人参与的产品------->工程。 2 软件危机是什么?   工程的本质就是要做出有用的产品。造房子的建筑工程,造火箭的航天工程。同样,软件领域,也就是软件工程。不按照建筑工程去造房子是会出事故甚至死人的。   咋们看看建筑工程。设想一下建一座房子:首先要先立项、设定预算,然后画设计图,再是施工,施工完成后,有专业人士进行质量检查,质检合格后入住。   OS/360(上世纪60年代的大型软件项目)------->开发人员(1000)----->最终无法运行------><人月神话>详细的说明了此次事故。   当计算机才发明出来的时候,计算机的能力非常有限,不需要软件工程也可以开发简单的软件。但是随着项目越来越复杂,规模越来越大,软件项目开发维护过程中问题就出来了------>   软件产品质量低劣、软件维护工作量大、成本不断上升、进度不可控、程序人员无限度地增加。所以在 60 年代,“软件危机”的概念被提出来。 3 软件工程的历史 (1)软件工程几个阶段  

软件开发模式:瀑布与敏捷对比

半世苍凉 提交于 2019-11-26 03:03:24
在软件开发时,经常面对的第一个项目实现决策是“我们应该使用哪种开发方法?”这是一个引起很多讨论(和激烈辩论)的话题。如果您以前没有使用过这种方法,那么适当了解开发方法和理论是必要的;简单地说,这是一种组织软件开发工作的方法。这与项目管理的风格或特定的技术方法无关,尽管您经常会听到这些术语混在一起或互换使用。最流行的两种基本方法是:瀑布开发和敏捷开发。这两种方法都是可用的、成熟的方法。 现在,说起敏捷开发(Agile Model)和瀑布开发(Waterfall Model)模式,很多人认为敏捷开发是未来的项目实施的趋势,瀑布实施太老土已经过时了。另外确实一些跨国企业如索尼,联想也在使用敏捷的方式实施一些项目。但实际上我们看到绝大多数公司还是依然在采用瀑布的方式实施项目。本文主要简单介绍敏捷和瀑布的区别和优劣。 敏捷开发和瀑布开发 1、瀑布模型 瀑布模型是一种项目分解为有限的阶段来开发软件的方法。只有在审查并验证其前一阶段时,开发才会应进入下一阶段。在瀑布模型中,阶段不重叠。在这种方法中,事件的顺序是这样的: 收集和记录需求 设计 代码和单元测试 执行系统测试 执行用户验收测试(UAT) 解决任何问题 交付成品 对于瀑布的开发模型来看,似乎依然具备很可靠的工作逻辑,一个工程或项目分为多个阶段,每一个阶段都投入相应的资源,来完成本阶段的工作。每一个阶段到下一个阶段,都有明确的输入输出产物