【Java基础知识 - 07】开发过程概述

  • 传统开发过程 - 瀑布模型
  • 统一软件开发过程(USDP)

传统开发过程(瀑布模型)

【Java基础知识 - 07】开发过程概述


OOAD的开发过程

  • 大项目分解为一些子项目
  • 使用UML工具
  • 统一软件开发过程是一个迭代、递增的开发过程


迭代、递增的项目生命周期

  • 项目是迭代、递增的
  • 迭代指声明周期中的一个步骤
  • 迭代导致“递增”或者是整个项目的增长
  • 大项目分解为子项目
  • 在每一个迭代的阶段,应该做以下工作
  • —— 选择并分析相关用例
  • —— 根据所选架构进行设计
  • —— 在组建层次实现设计
  • —— 验证组件满足用例的需要
  • 当一次迭代满足目标后,开发进入下一个迭代周期


迭代、递增声明周期的主要阶段

  • Inception —— start up
  • Elaboration —— refine
  • Construction —— implement
  • Transition —— promotion

每一个周期包含一个或多次迭代

一个阶段结束称之为“里程碑”(milestone)


过程图

【Java基础知识 - 07】开发过程概述


初始化阶段

该阶段的增量集中于:

—— 项目启动

—— 建立业务模型

—— 定义业务问题域

—— 找出主要的风险因素

—— 定义项目需求的外延

—— 创建业务问题域的相关说明文档


细化阶段

本阶段的增量集中于:

—— 高层的分析与设计

—— 建立项目的基础框架

—— 监督主要的风险因素

—— 制定达成项目目标的创建计划


构建阶段

本阶段的增量集中于:

—— 代码及功能的实现


移交阶段

本阶段的增量集中于:

—— 向用户发布产品

—— beta测试

—— 执行性能调优,用户培训和接收测试


每一个阶段所含工作流

—— 需求与初始分析

—— 分析

—— 设计

—— 实现

—— 测试

—— 每一次迭代执行工作流的深度不同

—— 早期的迭代在深度上覆盖初始工作流,后期迭代在深度上覆盖后期工作流

—— 80/20原则


迭代工作流

【Java基础知识 - 07】开发过程概述


迭代、递增生命周期的优势

  • 降低成本
  • 便于更好地维护项目进度
  • 便于团队的协作开发
  • 便于适应用户需求的动态变化