敏捷开发实战

课程介绍

      在许多项目中,客户谈需求像挤牙膏,工期要求的却很紧,经理说客户第一,工程人员说文档没用,作为一线管理者经常是焦头烂额。客户说成果他们要,文档也要,在开发时经理说开发第一,在维护时又抱怨没有文档,极限开发要简单设计,有人就乱设计。XP不能成为开发者躲避文档,不遵守过程的借口。如何理解极限开发的本质,如何取舍,如何在工程实践中更好的利用XP,本课程大家一起探讨。 

知识概要

l  软件开发面临的问题

ü  如何在资源和时间受限的条件下快速、连续的交付软件?

ü  如何交付高质量的软件?

ü  如何平衡成本、时间、质量和范围?

l  敏捷过程与其他过程

ü  常见的过程框架:CMMIRUP,结构化过程

ü  都有哪些敏捷过程:SCRUMXPOpenUP

ü  敏捷过程宣言

ü  敏捷开发原则

l  大型复杂项目的敏捷开发扩展

ü  大型项目多个敏捷团队的合作

ü  多维度扩展处理方法的特点

ü  敏捷过程与CMMI的融合

l  敏捷项目规划与度量

ü  敏捷开发中需求的特点

ü  规划的不同层次与思路

ü  敏捷项目规模度量与估计

ü  基于主题的优先级的度量

ü  基于用分析矩阵确定优先级的度量

ü  基于确定经济优先级的度量

l  敏捷开发最佳实践 (XP方法实践)

ü  计划游戏

ü  现场客户

ü  小版本,持续集成

ü  测试驱动开发

ü  简单设计,重构,系统Metaphor

ü  结对编程,集体代码所有权

ü  代码标准

l  敏捷--Scrum方法

ü  什么是Scrum

ü  自我管理团队

ü  Scrum的角色分配

ü  Scrum的流程

ü  Scrum的人工因素

ü  Sprint计划和Sprint backlog

ü  每日Scrum

ü  评审

l  基于敏捷软件开发的实践—工欲善其事,必先利其器

ü  版本控制系统的搭建和最佳实践

ü  Bug管理系统的搭建和最佳实践

ü  Build系统的搭建和最佳实践

ü  测试驱动开发—XUnit最佳实践

ü  项目管理工具的最佳实践

l  敏捷项目管理

ü  编写项目开发计划

ü  组建开发团队,定义团队成员角色

ü  制定开发进度表并将其发布至项目进度网页中

ü  将产生的文档和代码签入至版本控制系统中

ü  文档与项目实际开发进度保持同步

l  敏捷建模

ü  编写需求文档:定义系统范围和需求

ü  利用UML用例图捕获需求,并编写用例文档

ü  根据用例图和用例文档进行系统概要设计

ü  进行UML类图设计

ü  进行UML顺序图设计

ü  构建软件的原型系统

ü  根据需求的变化迭代以上过程

l  敏捷开发过程

ü  编写详细设计书,定义开发标准文档

ü  组织团队成对编程

ü  重构产生的代码

ü  将产生的文档和代码签入至版本控制系统中

ü  使用Build系统生成软件可运行版本

ü  根据设计的变化反复迭代以上过程

l  敏捷测试

ü  对代码进行实施单元测试

ü  进行可接受测试

ü  将测试中发现的Bug发布到Bug管理系统

ü  根据开发的进度反复迭代以上过程

l  架构设计

ü  定义软件架构设计的视图及流程

ü  软件架构设计的工具以及管理方案

ü  软件架构设计方法综述

ü  软件体系结构模式综述

ü  特定领域软件架构体验

ü  管理调度分析设计

ü  MDA与软件工厂

ü  软件架构相关的国际标准

ü  由需求相关文档完成架构元素提取(架构全局分析)

ü  软件架构师分配局部分析任务

ü  依据设计师局部分析结果完成对象聚合

ü  描述组件Component(或服务Service)关系

ü  设计组件Component(或服务Service)接口

ü  组件Component(或服务Service)管理容器设计




培训对象

ü  程序员/资深程序员

ü  软件设计人员/软件架构师

ü  软件开发项目经理

ü  软件测试经理

ü  软件维护人员

ü  其他相关岗位的人员或有兴趣的个人


培训收益

ü  敏捷开发概述

ü  大型复杂项目的敏捷开发扩展

ü  敏捷项目规划与度量

ü  敏捷--极限编程实践

ü  敏捷--Scrum方法

ü  敏捷项目管理

ü  敏捷建模

ü  敏捷开发过程

ü  敏捷测试

ü  基于敏捷方法实践项目实战

ü  理解软件架构设计的关键原则和概念

ü  软件架构设计的有关工具

ü  掌握软件架构设计的主要方法

ü  掌握软件架构设计的主要模式