软件过程模型

概念

软件开发模型给出了软件开发活动各阶段之间的关系,它时软件开发过程的概括,时软件工程的重要内容

软件生命周期

  • 软件定义
  • 软件开发
  • 软件运行
  • 软件维护
  • 淘汰

瀑布模型

特点
  • 严格区分阶段,每个阶段因果关系密切
  • 只适用于需求明确的项目
缺点
  • 软件需求完整性、正确性难以确定
  • 严格串行化,很长时间才能看到结果
  • 瀑布模型要求每个阶段一次性完全解决该阶段问题,并不现实

原型模型

特点
  • 适合需求不明确的项目
原型模型两个阶段
  • 原型开发阶段
  • 目标软件开发阶段
两种原型
  • 抛弃型原型
  • 演化型原型

V模型

特点
  • 强调测试贯穿于始终
  • 测试分阶段,测试计划提前

迭代与增量

  • 增量型
    • 添加新的功能
  • 迭代型
    • 对同一功能不断演进优化

螺旋模型

特点
  • 快速原型模型为基础+瀑布模型
  • 考虑风险问题
阶段
  • 目标设定
  • 风险分析
  • 开发和有效性验证
  • 评审

构件组装模型

特点
  • 易扩展、易重用、降低成功、安排任务灵活
缺点
  • 构件设计要求经验丰富的架构师
  • 设计不好的构件难复用
  • 强调重用可能牺牲其他指标(如性能)
  • 第三方构件质量难以控制
流程
  • 需求分析和定义
  • 设计构件组装
  • 建立构件库
    • 构件获取
    • 构件管理
  • 构件应用软件
  • 测试和发布

基于构件的软件工程

CBSE体现了【购买而不是重新构造】哲学
CBSE特征
  • 可组装性:所有的外部交互必须通过公开定义的接口进行
  • 可部署性:构件总是二进制形式的,能做为一个独立实体在平台上运行
  • 文档化:用户根据文档判断构件是否满足需求
  • 独立性:构件可以无其他特殊构件的情况下进行组装和并部署
  • 标准化:符合某种标准化的构件模型
构件组装
  • 顺序组装:按顺序调用已经存在的构件,可以用两个已经存在的构件来创造一个新的构件
  • 层次组装:被调用的构件的提供接口必须要调用构件的请求接口兼容
  • 叠加组装:多个 构件合并形成新构件,新构件符合原构件的功能,对外提供新的接口

快速应用开发模型(RAD)

  • 瀑布模型
  • CBSD(基于构件)