软件开发中的瀑布模型
软件开发的流程
软件开发的流程有很多种模型,这里讲的一种软件开发的流程是瀑布模型
瀑布模型是将软件生存周期的各项活动规定为固定顺序的若干阶段工作,最终得到软件产品。
他的核心思想是按工序将问题化繁为简,便于分工协作,采用结构化的分析与设计方法将逻辑实现
与物理实现分开。
瀑布模型的几个阶段如下:
一、问题定义
软件要解决什么问题,做什么。例如:做类似京东的购物网站,做类似优酷的视频网站
二、可行性分析
可行性分析是决定“做或者不做的”,有如下几个分析:
1、技术可行性,分析技术层面能不能实现所要求的功能
2、经济可行性,分析这个软件件是否可以盈利
3、法律可行性,分析所要做的软件系统是否符合法律标准
三、需求分析
需求分析是决定“做什么,不做什么”
这个阶段需要需求分析师、项目经理找客户谈需求
四、概要设计
概要设计又叫总体设计,是设计师根据用户交互过程和用户需求来形成交互框架和视觉框架的过程
根据客户的需求,把软件分成若干块,最终画出模块图。
五、详细设计
对一个具体的功能如何实现进行详细设计,例如:要实现用户登录的功能
六、编码
编码这个过程一般叫coding,由程序员来完成
七、测试
程序员编码完以后,要进行测试,测试通过了,软件才可以正式上线运行。
测试在软件开发中作用特别重要,而它也分四步进行
1、单元测试:
这一步是由程序员自己测试自己写的代码,主要作用是保证代码的质量,保住自己的工作
2、集成测试:
把多个程序元的代码放到一块来测试,这一步主要由测试工程师来完成
3、系统测试:
软件和硬件结合在一起,模拟一个用户的真实使用环境进行测试
4、验收测试:
根据在哪儿测谁来测,可以把这一步分为2步
(1)alpha 在软件公司内部,由客户当着项目经理面来测试,是由客户来测的
(2)beta 在软件公司外部,由最终的一小部分用户来测试,我们使用的软件经常就有一些beta的版本就是这一步
八、上线运行
在完成以上的步骤之后软件就可以上线让用户来运行了
九、维护
维护不单单是对运行之后产生的Bug的修复,还包括后期添加的新功能。
维护在软件开发过程中占的比重是最大的。
以上是瀑布模型的主要执行的一个过程。
凡是都有两面性,瀑布模型不例外,有自己的优缺点
瀑布模型的优点有:(1)、为项目提供了按阶段分的检查点,软件需要检查的时候,可以根据检查内容来找到一个具体的阶段
(2)、当前一阶段完成后,开发者只需要将关注点放到后续阶段,明确每一个阶段的任务和目标
(3)、可以在迭代模型中使用瀑布模型
增量迭代应用于瀑布模型。迭代1解决最大的问题。每次迭代产生一个可运行的版本,同时增加更多的功能。每次迭代必须经过质量和集成测试。
(4)、它提供了一个模板,这个模板使得设计、分析、编码、测试和支持的方法在这个模板下有一个共同的指导。
瀑布模型的缺点有:(1)、各阶段的划分完全固定,阶段之间产生了大量的文档,极大的增加了工作量。
(2)、由于开发模型是线性的,用户只有在整个过程完成以后才能看到效果,因而增加了开发的风险性
(3)、通过过多的强制完成日期和里程碑来跟踪各个项目阶段
(4)、瀑布模型最突出的阶段是不适应用户的需求的变更
软件开发中的瀑布模型相关推荐
- 基本软件开发模型:瀑布模型、V型模型、迭代模型、增量模型、螺旋模型、大爆炸模型、敏捷模型、原型模型、W模型 特点分析与总结
瀑布模型 在瀑布模型中,开发过程是线性的.任务和阶段按严格顺序一个接一个地完成.进度平稳地向下流动,就像瀑布上的水一样. 将软件生命周期划分为制定计划.需求分析.软件设计.程序编写.软件测试和运行维护 ...
- 彼之蜜糖,吾之砒霜——聊聊软件开发中的最佳实践
作者:sherrywasp https://www.cnblogs.com/sherrywasp/p/9436623.html "描述一个事物,唯有一个名词定义它的概念,唯有一个动词揭露它的 ...
- 视频互动直播软件开发中的连麦问题分析
直播行业发展至今,我们经常会听到很多朋友谈论"互动直播".那么何谓互动直播呢?其实互动直播的核心在于通过连麦技术,让视频直播有一个超过文字的更深层次的互动交流. 在视频互动直播软件 ...
- 统治软件开发中的著名定律
文| https://www.timsommer.be/famous-laws-of-software-development/ 翻译| 码农翻身 和其他领域一样,在软件开发的世界中也有一些有趣而著名 ...
- 阿里研究员:缩短软件开发中的反馈弧
简介:开发者写好了某个功能的代码,想知道这个功能是不是实现了,代码还需不需要再改,这就是一种反馈.在软件开发中,尤其是联调时,缩短反馈弧有助于及时发现问题.采取对策,提高开发效率.那么什么样的反馈弧才 ...
- 软件开发重要性_在软件开发中考虑时间的重要性
软件开发重要性 by Crunch Tech 通过Crunch Tech 在软件开发中考虑时间的重要性 (The importance of time to think in Software Dev ...
- 测试自动化金字塔在软件开发中是如何使用的?
测试自动化金字塔,是一个指南,指导您进行什么类型的测试以及每种测试的数量.测试自动化金字塔有助于创建更高效的测试,并导致向客户发布更可靠的软件. 测试自动化金字塔的好处 测试自动化的大部分好处显而易见 ...
- 论软件开发中的可信赖的工作
中大型软件开发,免不了团队开发,团队开发就少不了分工合作.在团队开发中,当然每个人的能力都很重要,但是我认为可信赖的工作是团队开发的首要条件,也是团队开发存在的基本保证.没有可信赖的工作,就没有团队分 ...
- 软件开发中的完整测试所包括的环节UT、IT、ST、UAT
软件开发中的完成测试环境所包括的环节包括:UT.IT.ST.UAT UT = Unit Test 单元测试 IT = System Integration Test 集成测试ST = System T ...
最新文章
- STM32F103C8开发板原理图和管脚图
- 注重网站用户体验优化就要避开前方弯道
- 【Linux】一步一步学Linux——Linux特殊权限位详解(114)
- Mongo客户端MongoVUE的基本使用
- 通俗易懂的SpringBoot教程---day2---Springboot配置文件
- equals和==比较
- MongoVUE破解
- VS2017使用C#编写COM组件
- U盘分区,一盘两用,分为启动盘和读写盘
- 阿里云域名以及子域名解析教程
- QT练习samp2_2_test——用按钮编辑文本框特性
- 苹果手机验真假_别再被坑了,这3大技巧可辨别真假iPhone,懂得话赚大了
- hannoi塔(汉诺塔)移动过程解析
- html+圆角六边形,ppt怎么设计圆角正六边形
- odoo15全面解决财务会计管理、核算、分析解决方案
- 【报告分享】2022年移动市场报告-App Annie(附下载)
- 苹果手机屏幕尺寸_苹果,小米在折叠屏手机上曝光新专利,TCL展示卷轴式屏幕手机...
- 【Linux词典】之磁盘命令(fdisk、gdisk、mkswap、mount、umount、df、lsblk)
- java 动态称重_Java面向对象 --2
- web前端面试合集2022版