1.软件研发模型
在软件生产过程中,经过多年实践总结,沉淀出目前几种流行的软件研发模型。软件研发模型(software development model)是软件生产过程中分析、设计、研发活动所遵循的框架模式。不同项目团队在不同业务背景下,采用合适的研发模型将会提高软件研发效率,降低研发成本,提高产品质量。
2.常见的软件研发模型
⑴.瀑布模型
⑵.原型模型
⑶.迭代模型
⑷.增量模型
⑸.敏捷模型
瀑布模型(后期不易改变)
严格遵循预先计划的需求分析、设计、编码、集成、测试、维护的步骤顺序进行。
主要的问题
严格分级导致的自由度降低;
开发成果输出过晚,风险高;
后期需求的变化难以调整,代价高昂;
瀑布式方法在需求不明并且在项目进行过程中可能变化的情况下基本是不可行的。
原型模型(在瀑布模型基础上增加原型设计)
用户很难将需求表达得既具体又明确,用户与需求开发人员的知识背景不同。当需求表述错误时,在瀑布模型下往往到后期才能发现。原型模型在很大程度上解决了这个问题。原型模型是在瀑布模型基础上演进的一种较为先进的研发模型。利用该模型,产品设计者实现用户与软件系统的交互,当原型研发生产完成后,由用户根据自身的实际需求对原型进行评价,从而进一步细化待开发软件的需求。
迭代模型(需求不稳定、多变)
迭代模型(iterative model)是由IBM公司提出的一种软件开发方法,该方法包括一系列的增量的步骤或迭代,每个迭代都包括很多的开发活动(需求、分析、设计、实现等)。
实现软件的每项功能反复求精的过程,是从模糊到清晰的开发过程。每次迭代是从功能的深度和细化程度来划分的。
迭代模型最适合使用与前期需求不稳定,需求多变的项目。
增量模型(需求稳定、分批次提交)
增量模型是把待开发的软件系统模块化,将每个模块作为一个增量组件,从而分批次地分析、设计、编码和测试这些增量组件。运用增量模型的软件开发过程是递增式的过程。相对于瀑布模型而言,采用增量模型进行开发,开发人员不需要一次性地把整个软件产品提交给用户,而是可以分批次进行提交。
敏捷模型(简单、变化多、及时反馈)
敏捷软件开发又称敏捷开发, 是一种从1990年代开始逐渐引起广泛关注的一些新型软件开发方法,是一种应对快速变化的需求的一种软件开发能力。
在敏捷开发中,软件项目在构建初期被切分成多个子项目,各个子项目的成果都经过测试,具备可视、可集成和可运行使用的特征。换言之,就是把一个大项目分为多个相互联系,但也可独立运行的小项目,并分别完成,在此过程中软件一直处于可使用状态。
人和交互 重于过程和工具。
可以工作的软件 重于求全而完备的文档。
客户协作 重于合同谈判。
随时应对变化 重于循规蹈矩。
敏捷模型核心:
主张简单
拥抱变化
递增变化
快速反馈