软件生命周期
文章目录
前言
本章节主要完成对软件生命周期的基本的描述。
一、基础知识和定义
软件生命周期(SDLC,Systems Development Life Cycle)是软件开始研制到最终废弃不用所经历的各个阶段。
二、相关的主要软件生命周期模型
1.瀑布型生命周期模型
瀑布型生命周期模型的阶段一般分为如下的阶段,规定了它们自上而下,相互衔接的固定次序、如同瀑布流水、主机逐级下落、具有顺序性和依赖性。每个阶段规定文档并需进行评审:
特点:自上而下、有顺序性
缺点:测试介入比较晚、回溯成本比较高、测试周期比较长
2.V模型
RAD(Rap Application Development)快速应用开发模型是软件开发过程中一个重要模型,由于其模型构图形似字母V,所以又称软件开发的V模型,它通过开发和测试同时进行的方式来缩短开发周期、提开发效率。
- 单元测试用例:是和详细设计一起出现的,在研发人员做详细设计的时候,相应的测试人员,也就把测试用例写了出来。
- 集成测试用例:根据概要设计中模块功能及接口等实现方法编写出来
- 系统测试用例:根据需求说明书编写出来。
特点:测试人员介入时间较早,一般适用到软件周期较长的工程和项目
3.敏捷开发模型
以人为核心、迭代、循序渐进的开发方式。强调以人为本、专注于交付对客户有价值的软件。是一个用于开发和维持复杂产品的框架。就是把一个大项目分为多个互相联系,但也可独立运行的小项目,并分别完成,在此过程中软件一致处于可使用状态。
通过人与人之间的沟通实现需求分析,特点就是快,口头沟通的方式进行。
缺点:后续人员更替的时候对无法通过文档对项目进行了解
三、软件生命周期的各个阶段
1.问题定义及规划
主要确定软件的开发目的及可行性,制定项目总体开发计划。
2.需求分析
在确定软件开发可行的情况下,对软件需要实现的各个功能进行详细分析,明确客户需求,输出需求规格说明书最终版(原型图)SRS,提交评审。
3.设计
把需求分析得到的结果转换为软件结构和数据结构,形成系统架构。
- 概要设计:主要是架构的实现,指搭建架构、表述各模块功能、模块接口连接和数据传递的实现等事务。
- 详细设计:对概要设计中表述的各个模块进行深入分析等,其中需要包含数据库设计说明。
4.编码
按照详细设计好的模块功能表,编程人员编写出计算机可执行的程序代码
5.软件测试
在软件设计完成后,要进行严密的测试,从而发现在整个设计过程中存在问题并加以纠正。测试的方法包含白盒测试和黑盒测试两种。建立严格的测试计划并按照测试计划进行。
a.单元测试
一般由开发来完成。主要是测试程序代码,为的是确保各单元模块被正确编译。所指的单元根据系统的颗粒度的不同,所指的范围也有一定的差别。比如单元可以指系统的某个模块、类、函数或者方法进行测试。
b.集成测试
单元测试后将各个单元组成一个完整的体系、测试软件单元之间的接口是否正确,数据是否能正常传递。比如登录后的跳转是否能正常完成,就是测试的登录功能和主页面的显示功能是否能正常传递登录信号。
c.系统测试
把软件系统搭建起来,按照软件规格说明书中所要求,测试软件其性能功能是否和用户的需求相吻合,在系统运行中是否存在漏洞等。
d.验收测试
主要是在用户拿到软甲的时候,在使用现场,会根据之前的需求,以及规格说明书来做相应的测试,以确定软件达到符合的效果。
6.运行和维护
软件维护时软件生命周期中持续时间最长的阶段,在软件开发完成并投入使用后,由于多方面的原因,软件不能持续适应用户的需求,要延续软件的使用寿命,就需要对软件进行维护,软件的维护主要包括纠错性维护和改进型维护两个方面