题目:什么是软件生命周期模型?试比较瀑布模型、快速原型模型、增量模型、螺旋模型的优缺点,说明每种模型的使用范围。
软件生命周期模型:一般分为定义,开发,维护三大阶段,定义阶段有可行性论证和开发计划,需求分析,开发阶段有概要设计,详细设计和编码,维护阶段有测试,运行维护。
瀑布模型:
优点:1.强迫开发人员采用规范的开发方法。
2.严格规定每个阶段必须的文档
3.要求每个阶段交出的作品必须经过质量保证小组的验证
缺点:1.在软件开发初期,指定全部需求很难
2.最初版本开发周期长
3.完全依赖规格说明,导致不能满足用户需求
适用于中小型项目开发
快速原型模型:
优点:1.满足用户需求程度高
2.用户参与度大,返工现象少
缺点:1.不适用于大型软件开发
适用于小型项目开发
增量模型:
优点:1.在短期内可以交付满足部分用户需求的功能产品
2.逐步增加功能可以让用户去适应新产品
3.开放式软件维护性好
4.开始第一构建前,已经完成需求说明。
缺点:1.对现有产品造成很大程度的破坏
2.意义上的矛盾
适用于中型软件的开发
螺旋模型:
优点:1.集成了各种模型的优点
2.支持用户需求动态变化
3.需求分析与软件实现紧密联系相互依赖
4.原型作为形式的可执行的需求规格说明,既可以利于公户和开发人员共同理解,又可以作为后续开发的基础
5.为用户参与决策提供方便
6.提供目标软件的适应能力
7.降低风险
8.在大型软件开发过程中优势较大
缺点:1.迭代次数影响开发成本,延迟提价时间
2.找不到关键改进的方法,人力物力财力无谓损耗
3.成于风险分析,败于风险分许
适用于内部开发的大规模项目