软件工程(二)

第二章 软件过程模型

软件工程以质量中心,软件过程、方法和工具为三要素

软件过程模型

软件过程模型是从软件项目需求定义直至软件运行维护位置,跨越整个生命周期的系统开发,运行和维护所实施的全部过程、活动和任务的结构框架。软件过程模型能直观表达软件开发全过程,明确要完成的主要活动,任务。

瀑布模型

以文档为驱动的线性模型

  • 阶段间具有顺序性和依赖性。
  • 推迟实现的观点。
  • 质量保证的观点。(每个阶段必须完成规定的文档。没有交出合格文档就是没有完成该阶段的任务。)

适用于需求很明确且将来没有太大改变的情况。

缺点:

  • 不够灵活
  • 整体性太强
  • 严格的文档驱动,比较繁琐
  • 难以应对客户的需求

增量模型

增量可运行,因此程序的运行版本在项目早期就可得到。

优点:

  • 增量包概念的引入,以及它不需要提供完整的需求。只要有一个增量包出现,开发就可以进行。
  • 在项目的初始阶段不需要投入太多的人力资源。如果核心产品被用户接受,才会投入更多的人力资源。
  • 计视开发者不能在截止日期前完成项目,项目的和核心产品也能交付给用户。
  • 增量可以有效地管理技术风险。

缺点:
每个增量必须提供一些系统功能,这使得开发者很难根据客户需求给出大小适合的增量。

采用增量模型需要注意的问题:

  • 在把每个新的增量集成到现有软件体系结构中时,必须不破坏原来已经开发出的产品。
  • 软件体系结构必须是开放的,即向现有产品中加入构件的过程必须简单,方便。
  • 因此,采用增量模型比采用瀑布模型和快速原型模型更需要精心的设计。

增量模型适用于软件需求不明确,设计方案有一定风险的项目。

螺旋模型

螺旋模型强调风险管理,适用于大型系统的开发。

优点:

  • 强调可选方案和限制条件,以支持现有解决方案的重用
  • 维护和开发一样,是螺旋模型的一个阶段。
  • 评估(预算和进度)更加准确,因为重要问题能己造被发现。
  • 更能应对开发过程中出现的各种变化。
  • 软件工程师可以提前开始项目工作。

缺点:

  • 仅适用于内部(一个公司内部)项目,因为开发过程中要进行风险评估,该模型不能用于合同性的软件开发。
  • 要求软件开发人员必须具有丰富的风险评估经验和这方面的专门知识,要求开发队伍水平较高。
  • 只适用于大型软件的开发。

增量模型和螺旋模型

相同: 都是非整体的,迭代式的开发方式。
不同:

  • 两者迭代的方式不同:增量模型是活动级迭代,螺旋模型是过程级迭代。
  • 两者需求分析时间不同:增量模型先做整体需求分析和设计,再编码测试逐个的增量包开发;螺旋模型是在开发周期内调用瀑布。
  • 两者交互软件的方式不同:增量模型每次增量开发都在上一次增量基础上提交;螺旋模型每次迭代都提交一个新的完整软件。
  • 两者减少风险的方式不同:增量模型通过避免使用未成熟的技术和经常和用户反馈等方法;螺旋模型直接引入风险分析。

如何选择过程模型

  • 模型有各自的优缺点。
  • 它们并不相互排斥,在开发中经常一起使用,特别是在大型系统中。
  • 软件过程决定了软件产品的质量,不同的项目需要不同的过程模型或模型的组合。
  • 也可根据实际创建新的模型。

软件生存周期

阶段提交成果
可行性研究和项目开发计划项目开发计划和可行性研究报告书
需求分析软件需求说明书
概要设计概要设计说明书
详细设计详细设计说明书
编码源程序清单
测试测试报告
维护维护报告

CMMI(能力成熟度模型)

级数名称侧重点
1初始级有能力的人和个人英雄主义
2可重复级基本项目管理
3已定义级过程标准化
4量化管理级量化管理
5优化级持续的过程改进
©️2020 CSDN 皮肤主题: 数字20 设计师:CSDN官方博客 返回首页