软件工程学习日记(1)----生命周期及几种开发模型

一、软件工程基本概述

概括的说, 软件工程时指导计算机软件开发和维护的一门工程学科. 采用工程的概念、原理、技术和方法来开发和维护软件, 把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来, 以经济地开发出高质量的软件并有效的维护它, 这就软件工程.


二、软件的生命周期模型

软件生命周期由软件定义、软件开发和运行维护(也称为软件维护)3个时期组成, 每一个时期又进一步分成若干个阶段.

  • 问题定义
  • 可行性研究
  • 需求分析
  • 总体设计
  • 详细设计
  • 编码和单元测试
  • 综合测试
  • 软件维护

三、几大模型优缺点及适用范围

瀑布搜索模型

优点:

  • 有利于大型软件开发过程中人员的组织、管理,有利于软件开发方法和工具的研究,从而提高了大型软件项目开发的质量和效率。

缺点:

  • 开发过程一般不能逆转, 否则代价太大;
  • 实际的项目开发很难严格按该模型进行;
  • 客户往往很难清楚地给出所有的需求, 而该模型却要求如此;
  • 软件的实际情况必须到项目开发的后期客户才能看到, 这要求客户有足够的耐心;

适用范围:

  • 用户的需求非常清楚全面, 且在开发过程中没有或很少变化, 开发人员对软件的应用领域很熟悉;
  • 用户的使用环境非常稳定;
  • 开发工作对用户参与的要求很低.

快速原型模型

优点:

  • 可以得到比较良好的需求定义, 容易适应需求的变化;
  • 有利于开发与培训的同步;
  • 开发费用低、开发周期短且对用户更友好.

缺点:

  • 客户与开发者对原型理解不同;
  • 准确的原型设计比较困难;
  • 不利于开发人员的创新.

适用范围:

  • 对所开发的领域比较熟悉而且有快速的原型开发工具;
  • 项目招投标时, 可以以原型模型作为软件的开发模型;
  • 进行产品移植或升级时, 或对已有产品原型进行客户化工作时, 原型模型是非常适合的.

增量模型

优点:

  • 采用增量模型的优点是人员分配灵活, 刚开始不用投入大量人力资源;
  • 如果核心产品很受欢迎, 则可增加人力实现下一个增量;
  • 可先发布部分功能给客户, 对客户起到镇静剂的作用.

缺点:

  • 并行开发构件有可能遇到不能集成的风险, 软件必须具备开放式的体系结构;
  • 增量模型的灵活性可以使其适应这种变化的能力大大优于瀑布模型和快速原型模型, 但也很容易退化为边做边改模型, 从而是软件过程的控制失去整体性.

适用范围:

  • 进行已有产品升级或新版本开发, 增量模型是非常适合的;
  • 对完成期限严格要求的产品, 可以使用增量模型;
  • 对所开发的领域比较熟悉而且已有原型系统, 增量模型也是非常适合的.

螺旋模型

优点:

  • 设计上的灵活性, 可以在项目的各个阶段进行变更;
  • 以小的分段来构建大型系统, 使成本计算变得简单容易;
  • 客户始终参与每个阶段的开发, 保证了项目不偏离正确方向以及项目的可控性;
  • 随着项目推进, 客户始终掌握项目的最新信息, 从而他或她能够和管理层有效地交互.

缺点:

  • 采用螺旋模型需要具有相当丰富的风险评估经验和专门知识, 在风险较大的项目开发中, 如果未能够及时标识风险, 势必造成重大损失;
  • 过多的迭代次数会增加开发成本, 延迟提交时间.

适用范围:

  • 螺旋模型只适合于大规模的软件项目.
阅读更多
个人分类: 软件工程学习笔记
下一篇软件工程学习日记(2)----可行性研究
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭
关闭