软件工程 -- RUB,极限编程

RUB(Rational Unified Process)

过程:

软件工程 -- RUB,极限编程_第1张图片

核心工作流:

  • 业务建模
  • 需求
  • 分析与设计
  • 实现
  • 测试
  • 部署

核心工作支持工作流:

  • 配置与变更管理
  • 项目管理
  • 环境

四个阶段的工作目标:

  • 初始阶段的目标是为系统建立商业案例并确定项目的边界.
  • 细化阶段的目标是分析问题领域,建立健全的体系结构基础,编制项目计划,淘汰项目中最高风险的元素.
  • 构建阶段所有剩余的构件和应用程序功能被开发并集成为产品,所有功能被详细测试
  • 交付阶段的重点是确保软件对最终用户是可用的.

RUP的迭代开发模式:

RUP中的每个阶段可以进一步分解为迭代.一个迭代是一个完整的开发循环,产生一个可执行的产品版本,是最终产品的一个子集,它增量式地发展,从一个迭代过程到另一个迭代过程到成为最终的系统.

RUP的有效开发经验:

  • 迭代的开发
  • 需求管理
  • 基于构件的体系结构
  • 可视化软件建模
  • 验证软件质量
  • 控制软件变更

统一软件开发过程RUP裁剪:

  • 确定本项目需要哪些工作流.RUP的9个核心工作流并不总是需要的,可以取舍
  • 确定每个工作流需要哪些制品
  • 确定4个阶段之间如何演进.确定阶段间演进要以风险控制为原则,决定每个阶段要哪些工作流,每个工作流执行到什么程度,制品有哪些,每个制品完成到什么程度
  • 确定每个阶段内的迭代计划.规划RUP的4个阶段中每次迭代开发的内容
  • 规划工作流内部结构.工作流涉及角色、活动及制品,他的复杂程度与项目规模即角色多少有关.最后规划工作流的内部结构,通常用活动图的形式给

极限编程

十二个实践:

  • 完整的团队:团队中包括开发人员,管理者和客户及测试人员.
  • 计划游戏:计划是持续性的和循序渐进的.
  • 客户测试:让客户达到满意为止.
  • 简单设计:直接面对客户,加少量文档来.在程序设计上也尽求简单话,为项目争取时间
  • 结队编程:两个人使用一台机子编程.可以看到不足的地方,程序员之间通过互相讨论来达到共识,避免了单人开发的缺乏交流.
  • 可持续的速度:把项目看做是长途跑,而不是短途冲刺.
  • 测试驱动开发:编写单元测试.
  • 集体代码所有权:任何结队的程序员都可以在任何时候改进任何的代码,每个人都可以参加其他模块的开发.
  • 编码标准:所有代码看起来像一个人所编写的.
  • 隐喻:将整个系统联系在一起的全局视图.如果模块的外观和整个隐喻不符,就可以看 到该模块是错误的.
  • 持续集成:团队总是使系统完整的被集成.
  • 改进设计:利用重构的方法改进已经腐化的代码

敏捷软件开发宣言:

  • 个体和交互  胜过  过程和工具
  • 可以工作的软件  胜过  面面俱到的文档
  • 客户合作  胜过  合同谈判
  • 响应变化  胜过  遵循计划

腐化软件的特征:

  • 僵化性:  很难对系统进行改动,因每个改动都会迫使许多对系统其他部分的其它改
  • 脆弱性:  对系统的改动会导致系统中和改动地方在概念上无关的许多地方出现问题
  • 牢固性:  很难解开系统的纠结,使之成为一些可在其他系统中重用的组件.
  • 粘滞性:  做正确的事情比做错误的事情要困难.
  • 不必要的复杂性:  设计中包含有不具任何直接好处的基础结构.
  • 不必要的重复性:  设计中含有重复结构,而该重复结构本可以使用单一抽象进行统 * 晦涩性: 很难阅读、理解.没有很好地表现出意图.

你可能感兴趣的:(软件工程 -- RUB,极限编程)