目录
什么是
什么是什么是
什么是
个最佳实践的有效部署
个最佳实践的有效部署个最佳实践的有效部署
个最佳实践的有效部署
过程概览
过程概览过程概览
过程概览
二维结构
阶段和迭代
阶段和迭代阶段和迭代
阶段和迭代
时间轴
时间轴时间轴
时间轴
初始阶段
细化阶段
构建阶段
交付阶段
迭代过程
开发过程中的静态结构
开发过程中的静态结构开发过程中的静态结构
开发过程中的静态结构
活动
产物 角色
工作流
核心工作流
核心工作流核心工作流
核心工作流
商业建模
需求
分析和设计
实现
测试
发布
项目管理
配置和变更管理
环境
具体产品
具体产品具体产品
具体产品
工具集成
工具集成工具集成
工具集成
的历史
的历史的历史
的历史
什么是
是
软件工程化过程
软件工程化过程软件工程化过程
软件工程化过程
它提供了在开发机构中分派任务和责任的纪律
化方法
它的目标是在可预见的日程和预算前提下 确保满足最终用户需求的高质量产品
是
公司开发和维护的
过程产品
过程产品过程产品
过程产品
的
开发队伍同顾客
合伙人
产品小组及顾问公司共同协作
确保开发过程持续地更
新和提高以反映新的经验和不断演化的实践经历
提高了
团队生产力
团队生产力团队生产力
团队生产力
对于所有的关键开发活动 它为每个团队成员
提供了能使用准则
模板 工具指导来进行访问的知识基础 而通过对相同知识基础的理解
无论你是进行需求分析 设计 测试 项目管理或配置管理 均能确保全体成员共享相同的
知识
过程和开发软件的视图
的活动创建和维护
模型
模型模型
模型
强调开发和维护
模型
语
义丰富的软件系统表达
而非强调大量的文本工作
是有效使用
!"#! $%&%'&%
的指南
是良
好沟通需求
体系结构和设计的工业标准语言
由
软件公司创建
现在由标
准化对象管理机构
维护
能对大部分开发过程提供自动化的
工具
工具工具
工具
支持 它们被用来创建和维
护软件开发过程
可视化建模 编程 测试等 的各种各样的产物 特别是模型 另外在
每个迭代过程变更管理和配置管理相关的文档簿记工作支持方面也是非常有价值的
是
可配置的过程
可配置的过程可配置的过程
可配置的过程
没有一个开发过程能适合所有的软件开发
既适用小的开发团队
也适合大型开发机构
建立简洁和清晰的过程
结构为开发过程家族提供通用性
并且 它可以变更以容纳不同的情况 它还包含了开发工
具包
为配置适应特定组织机构的开发过程提供了支持
以适合于大范围项目和机构的方式捕捉了许多现代软件开发过程的
最佳实践
最佳实践最佳实践
最佳实践
部署这些最佳实践经验 使用
作为指南 给开发队
伍提供了大量的关键优势
在下节中 我们对
的
个基本最佳实践
经验进行描述
个最佳实践的有效部署
描述了如何为软件开发队伍有效的部署经过商业化验证的软件开发
方法
它们被称为 最佳实践 不仅仅因为你可以精确地量化它们的价值 而且它们被许多
成功的机构普遍的运用
为使整个团队有效利用最佳实践
为每个
团队成员提供了必要准则
模板和工具指导
迭代的开发软件
需求管理
使用基于构件的体系结构
可视化软件建模
验证软件质量
控制软件变更
迭代的开发产品
迭代的开发产品迭代的开发产品
迭代的开发产品
面对当今的复杂的软件系统 使用连续的开发方法 如首先定义整个问
题
设计完整的解决方案 编制软件并最终测试产品 是不可能的 需要一种能够通过一系
列细化
若干个渐进的反复过程而生成有效解决方案的迭代方法
支持专注于处理生命周期中每个阶段中最高风险的迭代开发方法
极大地减少了项目的风险
性
迭代方法通过可验证的方法来帮助减少风险 经常性的 可执行版本使最终用户不断
的介入和反馈
因为每个迭代过程以可执行版本告终 开发队伍停留在产生结果上 频繁的
状态检查帮助确保项目能按时进行
迭代化方法同样使得需求 特色 日程上战略性的变化
更为容易
需求管理
需求管理需求管理
需求管理
描述了如何提取
组织和文档化需要的功能和限制
跟踪和文档化折衷方案和决策
捕获和进行商业需求交流
过程中用例和场景的使用被证
明是捕获功能性需求的卓越方法
并确保由它们来驱动设计 实现和软件的测试 使最终系
统更能满足最终用户的需要
它们给开发和发布系统提供了连续的和可跟踪的线索
基于构件的体系结构
基于构件的体系结构基于构件的体系结构
基于构件的体系结构
该过程在全力以赴开发之前 关注于早期的开发和健壮可执行体系
结构的基线
它描述了如何设计灵活的 可容纳修改的 直观便于理解的 并且促进有效软
件重用的弹性结构
支持基于构件的软件开发
构件是实现清晰功
能的模块
子系统
提供了使用新的及现有构件定义体系结构的系
统化方法
它们被组装为良好定义的结构 或是特殊的 底层结构如
!"#
和
!
等的工业级重用构件
可视化软件建模
可视化软件建模可视化软件建模
可视化软件建模
开发过程显示了对软件如何可视化建模 捕获体系结构和构件的构架和
行为
这允许你隐藏细节和使用 图形构件块 来书写代码 可视化抽象帮助你沟通软件的
不同方面
观察各元素如何配合在一起 确保构件模块一致于代码 保持设计和实现的一致
性
促进明确的沟通
软件公司创建的工业级标准
$%%&&'&
是成功可视化软件建模的基础
验证软件质量
验证软件质量验证软件质量
验证软件质量
拙劣的应用程序性能和可靠性是戏剧性展示当今软件可接受性的特点 从
而
质量应该基于可靠性 功能性 应用和系统性能根据需求来进行验证
帮助计划
设计 实现 执行和评估这些测试类型 质量评估被内建于过程 所有
的活动
包括全体成员 使用客观的度量和标准 并且不是事后型的或单独小组进行的分离
活动
控制软件的变更
控制软件的变更控制软件的变更
控制软件的变更
管理变更的能力 确定每个修改是可接受的 能被跟踪的 在变更
不可避免环境中是必须的
开发过程描述了如何控制 跟踪和监控修改以确保成功的迭代开
发
它同时指导如何通过隔离修改和控制整个软件产物 例如 模型 代码 文档等 的修
改来为每个开发者建立安全的工作区
另外 它通过描述如何进行自动化集成和建立管理使
小队如同单个单元来工作