软件开发迭代模型-开发迭代
目录
一、软件危机
软件危机是指落后的软件生产方式无法满足迅速增长的计算机软件需求,从而导致软件开发与维护过程中出现一系列严重问题的现象。
二、软件工程包括两方面的内容
●软件开发技术:软件开发方法学、软件工具和软件工程环境
●软件项目管理:软件质量、项目估算、进度控制、人员组织、配置管理、项目
三、软件生命周期
软件生命周期(Software Life Cycle,SLC)是软件的产生直到报废或停止使用的生命周期。软件生命周期内有问题定义、可行性分析、总体描述、系统设计、编码、调试和测试、验收与运行、维护升级到废弃等阶段,也有将以上阶段的活动组合在内的迭代阶段,即迭代作为生命周期的阶段。
四、软件生命周期模型 1、瀑布模型
它在软件生命周期最开始就明确了软件的需求,并且在需求确定后再开始后面的设计、开发、编码、测试一系列的工作。明显的特征就是:在软件的生产工程中,明确了每一步需要完成的工作内容软件开发迭代模型,但同时也导致了每一部工作之前线性关系很强,上一步工作没有完成就无法开展下一步的工作,比如说:当系统需求分析工作没有得到确定时,就不会开展下一步的软件设计工作。
2、快速原型
快速原型是利用原型辅助软件开发的一种新思想。经过简单快速分析,快速实现一个原型,用户与开发者在试用原型过程中加强通信与反馈,通过反复评价和改进原型,减少误解,弥补漏洞,适应变化,最终提高软件质量。
3、增量模型
增量模型是把待开发的软件系统模块化,将每个模块作为一个增量组件,从而分批次地分析、设计、编码和测试这些增量组件。运用增量模型的软件开发过程是递增式的过程。相对于瀑布模型而言,采用增量模型进行开发,开发人员不需要一次性地把整个软件产品提交给用户,而是可以分批次进行提交。
4、迭代模型
这是一个摸着石头过河的软件开发方式,在软件开发初期,并不要求明确所有的系统需求,而是有了一部分需求之后即开始软件的设计、编码、测试工作,在第一阶段的开发过程中一边进行开发,一边进行进一步的需求确认并安排第二阶段的开发工作,能够对需求的变更快速响应。
迭代过程具有一下优点:
●降低了在一个增量上的开支风险
●降低了产品无法按照既定进度进入市场的风险
●加快了整个开发工作的进度
●迭代过程这种模式使适应需求的变化会更加容易些。
5、螺旋模型
它可以说是瀑布模型和原型模型的综合模型,既满足原型模型快速迭代的特征,也保留的瀑布模型的风险控制机制。每生产一个原型时都会对系统整体进行一个风险的评估,以期在后续开发过程中能够更好地把控软件开发进度及风险规避。
6、敏捷开发
敏捷开发以用户的需求进化为核心软件开发迭代模型,采用迭代、循序渐进的方法进行软件开发。在敏捷开发中,软件项目在构建初期被切分成多个子项目,各个子项目的成果都经过测试,具备可视、可集成和可运行使用的特征。换言之,就是把一个大项目分为多个相互联系,但也可独立运行的小项目,并分别完成,在此过程中软件一直处于可使用状态。