特点
重量级过程,适用各种类型的项目和操作复杂
-
用例驱动的:需求分析、设计、实现和测试等活动
-
以体系结构为中心的:
- 包括系统的总体组织和全局控制、通信协议、同步、数据存取、给设计元素分配功能、设计元素的组织、物理分布、系统的伸缩性和性能等
- 在功能性特征方面要考虑系统的功能;
- 在非功能性特征方面要考虑系统的性能、安全性和可用性等;
- 与软件开发有关的特征要考虑可修改性、可移植性、可重用性、可集成性和可测试性等;
- 与开发经济学有关的特征要考虑开发时间、费用、系统的生命期等
- 多个视图 (View) 来描述软件体系结构,如“4+1”视图模型
- 用例视图(1):分析人员和测试人员关心的是系统的行为
- 逻辑视图:最终用户关心的是系统的功能
- 实现视图:程序员关心的是系统的配置、装配等问题
- 进程视图:系统集成人员关心的是系统的性能、可伸缩性、吞吐率等问题;
- 部署视图:系统工程师关心的是系统的发布、安装、拓扑结构等问题
- 包括系统的总体组织和全局控制、通信协议、同步、数据存取、给设计元素分配功能、设计元素的组织、物理分布、系统的伸缩性和性能等
-
迭代和增量
- 整个项目开发分为多个迭代过程
- 每次迭代中,只考虑系统的一部分需求
- 迭代是在已完成部分的基础上进行的,每次增加一些新的功能实现
实现
- 9个核心工作流(Discipline,某个类型的活动的集合,如和业务建模相关的,和需求相关的,和分析设计相关等)
- 业务建模 (Business Modeling):项目的目的和运行环境等背景
- 需求 (Requirements)
- 分析与设计 (Analysis & Dcsign)
- 测试 (Test)
- 部署 (Deployment)
- 配置与变更管理 (Configuration & Change Management)
- 项目管理 (Project Management)
- 环境 (Environment)
- 将软件开发生命周期划分为多个循环(Cycle)
- 初始 (inception) 阶段:定义最终产品视图和业务模型,并确定系统范围。
- 细化 (elaboration) 阶段:设计及确定系统的体系结构,制订工作计划及资源要求。
- 构造 (construction) 阶段:构造产品并继续演进需求、体系结构、计划直至产品提交。
- 移交 (transition) 阶段:把产品提交给用户使用
- 每个阶段结束前有一个里程碑 (Milestone) 评估该阶段的工作
- 核心概念
- 角色 ( R o l e ) : 参与开发的
- 活动 (Activity) : 有某一目地的独立活动单元
- 制 品(Artifact): 活动的有意义的成果
- 工作流 (Workflow):一组连续活动