2014-02-27 22:49:00 happylee6688 阅读数 4104
  • SCRUM敏捷开发视频教程

    SCRUM敏捷开发视频教程,该课程为你分享SCRUM敏捷开发,理解敏捷的本质,认识中国IT行业对敏捷的挑战,学会让敏捷落地的实用招数。 嘉宾介绍:张传波 1. 创新工场创业课程(敏捷课程)讲师 2.软件研发管理佳实践顾问(曾任华为某团队研发顾问) 3. 中国敏捷联盟《ADBOK》(敏捷开发知识体系)项目组成员 二十年软件开发、软件设计、需求分析、项目管理、部门管理、公司管理及过程改进等经验,亲历“无数”项目,涉猎建筑、通讯、互联网、电力、金融、制造业、政府等领域,熟悉软件生命周期的全部过程

    10429 人正在学习 去看看 CSDN讲师
     乍一听,“敏捷开发”这个词很新鲜,其实不然。早在2001年2月,就作为一种相对新颖的产品开发模式,提出了“敏捷开发”这一概念。到底什么是“敏捷开发”呢?

诞生

     也就是2001年的2月(没有考据),有17名之多的软件工程师在美国犹他州的Snowbird举行会议,讨论轻量级软件开发方法,并发布了《敏捷软件开发宣言》。这标志着敏捷开发的诞生。这一模式随后被硅谷创业公司大量应用,并于近几年被引入国内,让中国的工程师们有机会接触这一新奇的开发模式。

敏捷宣言

  • 个体和交互重于过程和工具
     敏捷方法认为,人是软件开发中最重要的因素,开发团队要能做到团结协作,人与人面对面的交流、沟通,是最快速、最有效的途径。
  • 可以工作的软件重于面面俱到的文档
     文档的意义在于为程序服务,过多的文档需要开发人员花费大量的时间去维护,而且还要确保文档与代码的实时性,否则就失去了文档的意义。而问题也就在于,开发人员没有把时间、精力放到最重要的任务上,能力、资源没有最大化的发挥效能。敏捷方法认为,文档应当短小精悍、易于维护,而且主题突出。
  • 客户协作重于合同谈判
     做过软件开发的人都知道,客户对产品的需求是不断变化的,试图一开始就规定项目的细节和进度,显然是不现实的,只有开发团队和客户彼此精诚合作,常与沟通,频繁的客户反馈,才能促使项目的成功。
  • 随时响应变化重于循规蹈矩
     客户的需求在产品的开发阶段是不断变化的,即使谈判时确定的需求,也可能会根据某些因素而发生巨大的改变。因此,敏捷方法认为,在制定计划时应尽可能的简洁、灵活,以适应技术和需求方面的变动。当然,所有的未知的因素是不可能考虑周全的,这就要求我们在制定计划时,留出一定的缓冲期,来应对这些未知情况。

核心思想

     说了这么多,到底什么是“敏捷开发”呢?其实,简单的说,敏捷开发是一种以人为核心、迭代、循序渐进的开发方法。在敏捷开发中,软件项目经常被拆分为多个子项目或多个步骤来完成,而一个步骤又称为一次迭代,在每一次迭代完成之后,都会产生一个可交付的产品。这样做有效的分解了整个项目的复杂度,便于实现产品交付目标,同时在项目的早起,就能拿出初具雏形的产品。
     敏捷开发方法的核心思想概括起来,就是“以人为本”和“适应变化”。
  • 以人为本
     敏捷方法认为,人是软件开发中最重要的因素。对于人来说,软件开发应该是一种愉快而又轻松的事情,它们注重调动自我的能动性,以积极、愉悦、乐观的心态完成开发,并培养人的自豪感。敏捷开发的理念是充分的信任开发团队能够很好的完成任务,这是管理的中心主题。
  • 适应变化
     传统的软件开发强调的是,足够清晰的需求,制定详细的文档,按照预定的计划逐一进行开发、测试。这样的方式在制定好计划之后拒绝变化,无法应对客户对需求的实时更改,后续的维护必将会付出巨大的代价。
     而敏捷方法则是以最简的方式来迎接变化,客户在整个开发过程中都是参与者,开发团队能够在最短的时间内得到客户的反馈,不断适应需求的变更,从而使得最终的产品能够充分的符合客户的要求。

管理工具

     俗话说,工欲善其事,必先利其器。没有一个好的工具,事倍功半是必然的。目前,已经有一些项目管理工具用于敏捷开发,可以用他们来帮助规划、跟踪,分析和整合工作。
     这些工具在敏捷开发中扮演着重要的角色,也是知识管理的一种方法。通常包括:版本控制整合,进度跟踪,工作分配,集成发布,迭代规划,论坛和软件缺陷的报告和跟踪。
     我们项目中用到的两款项目管理工具,其一是国内的公司出品的Web版的开源软件——禅道(ZenTao),它集产品管理、项目管理、质量管理、文档管理、组织管理和事务管理于一体,是一款专业的研发项目管理软件,完整地覆盖了项目管理的核心流程。还有一款是国外的Atlassian公司出品的项目与事务跟踪工具——JIRA,被广泛应用于缺陷跟踪、客户服务、需求收集、流程审批、任务跟踪、项目跟踪和敏捷管理等工作领域。

方法

  • XP
  • SCRUM
  • Crystal Method
  • FDD
  • ASD
  • DSDM
  • RUP
  • LD

结束语

     由于我也是第一次接触敏捷开发,我将与大家一同学习敏捷的真谛,在项目中运用敏捷的思想,真正做到开发敏捷、思维敏捷。在这个关于敏捷开发的系列之旅中,第一站主要是简单的介绍了一下敏捷开发,让大家对他有一个整体的了解。
     后续的文章,我会结合各个不同的敏捷方法,同时在项目中吸收的经验、教训,都会与大家一起分享,一同来探讨有关敏捷的真谛。

2014-11-29 23:53:00 u011790275 阅读数 871
  • SCRUM敏捷开发视频教程

    SCRUM敏捷开发视频教程,该课程为你分享SCRUM敏捷开发,理解敏捷的本质,认识中国IT行业对敏捷的挑战,学会让敏捷落地的实用招数。 嘉宾介绍:张传波 1. 创新工场创业课程(敏捷课程)讲师 2.软件研发管理佳实践顾问(曾任华为某团队研发顾问) 3. 中国敏捷联盟《ADBOK》(敏捷开发知识体系)项目组成员 二十年软件开发、软件设计、需求分析、项目管理、部门管理、公司管理及过程改进等经验,亲历“无数”项目,涉猎建筑、通讯、互联网、电力、金融、制造业、政府等领域,熟悉软件生命周期的全部过程

    10429 人正在学习 去看看 CSDN讲师
2014/11/29, 我在 2014 敏捷之旅 (深圳) 的演讲材料 :

 极速敏捷 (敏捷开发 3.0)



2013-12-25 21:15:30 jjavabboy 阅读数 1758
  • SCRUM敏捷开发视频教程

    SCRUM敏捷开发视频教程,该课程为你分享SCRUM敏捷开发,理解敏捷的本质,认识中国IT行业对敏捷的挑战,学会让敏捷落地的实用招数。 嘉宾介绍:张传波 1. 创新工场创业课程(敏捷课程)讲师 2.软件研发管理佳实践顾问(曾任华为某团队研发顾问) 3. 中国敏捷联盟《ADBOK》(敏捷开发知识体系)项目组成员 二十年软件开发、软件设计、需求分析、项目管理、部门管理、公司管理及过程改进等经验,亲历“无数”项目,涉猎建筑、通讯、互联网、电力、金融、制造业、政府等领域,熟悉软件生命周期的全部过程

    10429 人正在学习 去看看 CSDN讲师

敏捷之旅北京站已经落下帷幕,有很多朋友问我从哪儿可以下载各位演讲嘉宾的ppt。现在所有讲师ppt已经上传到新浪微盘上,可以关注新浪微博@敏捷之旅北京。本文也对所有演讲材料进行了一个汇总,方便各位朋友进行统一下载。

所有PPT下载集合直通车

王立杰
10年前,互联网大潮改变了我们的日常生活,重塑了很多传统行业;现今,移动互联网再度来袭,对传统企业的冲击、改造将会更大、更快,未来的每个企业都可能成为移动互联网企业;未来,只有敢于创新、敢于求变的企业才能适应不断涌现的新技术、新模式的冲击。
从敏捷到精益---创新型企业必须面对的挑战 - http://t.cn/8kQHnpy

蔡德辉
敏捷团队的一些分享,团队、客户、环境、规则,以及发展建议。
敏捷团队生存 - http://t.cn/8kRMQSl

陈勇
本主题取材于演讲者自身在产品管理中的经验,并融合了精益创业的一些概念,帮助听众学习如何迅速分析和创建“最小可用产品(MVP)”。
敏捷开发版本规划 - http://t.cn/8kRS8kb

杜伟忠
高效团队的三个习惯,进化:避免不切实际的里程碑,持续地短期胜利大于一次长期胜利。所有权:所有权需要建立一种团队文化 --- 发现、认领、解决 透明:开放空间、参与而不是传递、小团队
高绩效团队的三个习惯 - http://t.cn/8kRMOyi

王洪亮
首先向大家抛出问题:传统原型法遇到什么问题?然后为大家介绍解决方案快速可工作原型,怎么进行快速可工作原型的做法技术展示,从案例中引导出什么是快速可工作原型。通过问题-》方案-》实践-》总结的思路向大家展现快速可工作原型带来的益处和挑战。
快速可工作的原型 - http://t.cn/8k8heM2

伍斌
为什么说软件开发中的三大顽疾“需求总变化、文档总过时、成果总离谱”的两大根源是需求描述的二义性问题和文档代码的分离问题?能否将文档与代码合二为一?
TDD / ATDD / BDD:  如何解决代码总难改、文档总过时、成果总离谱这三大顽疾 - http://t.cn/8k8hQnr
Coding Dojo - http://t.cn/8kTKkVT

欧阳旭东
通过具体项目案例,向大家展示敏捷之魅力
Agile In Action - EVAI Agile Adoption - http://t.cn/8kQQanM

Julien
Detail:This>To be Lean or not to be - http://t.cn/8kR6gXh

陈恭明
百度知道在移动互联网的背景下,面临新的挑战,需要在无线上有突破和发展,本次演讲将介绍知道团队如何通过数据分析驱动与改变产品研发模式、通过技术和团队架构调整等方式来提升团队战斗力的过程。
百度知道团队建设分享 - http://t.cn/8kRa7Ev

李忠利
互联网软件开发,对交付速度和变化的响应性有很高的要求,如何做到基于价值的高质量的快速交付?如何从管理的维度对包括需求管理,开发交付,软件测试等三个主要重要的环节进行有效控制和管理,以便更好的支持业务目标?
互联网软件开发三板斧 -- 基于价值的高质量软件开发实战 - http://t.cn/8kRSkUb

王明兰
王明兰是诺基亚中国区移动终端产品线研发部门任敏捷/精益教练,指导和培训领域涵括scrum 流程框架,精益原则和看板管理,产品负责人和scrum>大项目看板实施(看板游戏) - http://t.cn/8kR05xf

----------------------------------------------------------------

全部PPT和coding dojo录屏

从敏捷到精益---创新型企业必须面对的挑战 - http://t.cn/8kQHnpy

敏捷团队生存 - http://t.cn/8kRMQSl

敏捷开发版本规划 - http://t.cn/8kRS8kb

高绩效团队的三个习惯 - http://t.cn/8kRMOyi

快速可工作的原型 - http://t.cn/8k8heM2

TDD / ATDD / BDD:  如何解决代码总难改、文档总过时、成果总离谱这三大顽疾 - http://t.cn/8k8hQnr

Coding Dojo - http://t.cn/8kTKkVT

Agile In Action - EVAI Agile Adoption - http://t.cn/8kQQanM

To be Lean or not to be - http://t.cn/8kR6gXh

百度知道团队建设分享 - http://t.cn/8kRa7Ev

互联网软件开发三板斧 -- 基于价值的高质量软件开发实战 - http://t.cn/8kRSkUb

大项目看板实施(看板游戏) - http://t.cn/8kR05xf

-----------------------------------------------------------------------

微信公众号:敏捷那些事儿

Scrum和敏捷公益课,每月一次,旨在推广和传播敏捷开发思想,希望更多的开发者受益。欢迎报名。课程信息会定期发布,敬请关注。

2014-03-28 08:45:51 happylee6688 阅读数 12296
  • SCRUM敏捷开发视频教程

    SCRUM敏捷开发视频教程,该课程为你分享SCRUM敏捷开发,理解敏捷的本质,认识中国IT行业对敏捷的挑战,学会让敏捷落地的实用招数。 嘉宾介绍:张传波 1. 创新工场创业课程(敏捷课程)讲师 2.软件研发管理佳实践顾问(曾任华为某团队研发顾问) 3. 中国敏捷联盟《ADBOK》(敏捷开发知识体系)项目组成员 二十年软件开发、软件设计、需求分析、项目管理、部门管理、公司管理及过程改进等经验,亲历“无数”项目,涉猎建筑、通讯、互联网、电力、金融、制造业、政府等领域,熟悉软件生命周期的全部过程

    10429 人正在学习 去看看 CSDN讲师
上篇文章中,我们探讨了什么是XP极限编程,以及极限编程的管理思想、核心价值观等等。在敏捷开发之旅的第三站,我想要和大家一起分享FDD特征驱动开发方法。

特征驱动开发——Feature Driven Development

还是老规矩,讨论之前,我们先了解一下什么是Feature?什么是FDD?

Feature


在FDD中,Feature(特征)是一个基本的开发单位,是(FDD)项目中的一个增量,是指用户眼中最小的有用的功能,可以在很短时间内实现(一般在两周之内)。
  • 特征是小的
特征之所以是小的,是因为他可以在两周之内实现,任何一个过于复杂而无法在两周之内完成的功能,可进一步呗分解小到足以被称为一个特征。使特征小一些也意味着客户能经常看到可测量的进度。
  • 特征是具有客户价值的
在业务系统中,一个特征映射到业务过程中某些活动的一个步骤。在其他系统中,特征等同于由用户完成的一项任务中的一个步骤。

FDD


特征驱动开发(FDD),是敏捷开发方法中的一种,他来源与新加坡的一个大型软件开发项目,由著名软件专家Jeff de Luca 、Eric Lefebvre、Peter Coad共同提出的。它强调特征驱动,快速迭代,即能保证快速开发,又能保证适当文档和质量。

他提出的每个功能开发时间不超过两周,为每个用例user case限定了粒度,具有良好可执行性,也可以对项目的开发进程进行精确及时地监控。他抓住了软件开发的核心问题领域,即正确和及时地构造软件。

FDD还打破了传统的将领域和业务专家/分析师与设计者和实现者隔离开来的壁垒。分析师被从抽象的工作中解脱出来,直接参与到开发人员和用户所从事的系统构造工作中。

开发过程


FDD方法包括5个过程,其中的按照功能设计和构建是反复的迭代过程。



  • 开发整体模型
这是FDD开始一个项目的初始工作,在主设计师的指导下,带领领域专家和开发小组成员一起工作。主要是收集系统的功能需求,然后使用四色原型进行域建模。我个人认为,在此阶段中,能够得出系统的架构设计图。
  • 构建功能列表
这个过程确定所有用于支持需求的功能。由领域专家和开发小组进行功能分解。根据领域专家对领域的划分,将整个领域分成一定数量的区域(主要功能集),每个区域再细化为一定数量的活动。活动中的每一步被划分称为一个功能。形成了具有层次结构的分类功能列表。个人认为,在此阶段中,能够形成系统的概要设计。
  • 计划功能开发
项目经理、开发经理和开发小组根据功能的依赖性、开发小组的工作负荷以及要实现的功能的复杂性,计划实现功能的顺序,完成一个功能开发计划。它提供了对项目的高层视图,让业务代表了解功能开发、测试和发布日期,以便业务代表和部署小组能够计划交付哪些功能的日期。本阶段的主要成果是,能够形成项目开发计划。
  • 按照功能设计
项目经理和上一阶段指定的各个功能集的主要程序员一起对功能进行详细设计。同时在域模型的基础上进行分析、设计,得出分析模型、设计模型。由于一次设计并不全面,因此也可以直接进入设计模型。根据设计的结果制定出项目的里程碑。这里会有一个设计评审的环节。本阶段的成果应该包括了:详细设计、项目里程碑计划等。
  • 按照功能构建
按照设计进行编码实现,由程序员实现各自负责的类。在代码完成后有必要的组织代码复查、评审。在测试和检查通过后检入到配置管理库中进行构建。第5和第4 阶段是一个迭代的过程,迭代周期一般为2个星期。这样经过不断的迭代,不断的实现功能集中的功能。每一个里程碑的时候进行评估、回顾。并考虑下一个里程碑 的继续,直到最后项目的完成。

最佳实践

  • 领域对象建模
是对象分解的一种形式,主要包括构造类图,用于描述问题领域中重要对象的类型及其相互关系,为系统设计提供了一种整体框架,使得系统可以按照特征迭代增量地进行开发。
  • 按照特征开发
按照一组小功能、对客户有价值的功能列表进行开发并跟踪过程。FDD将需求问题分解成可以解决的小问题,对每个问题分解为分层列表的功能需求,即特征。然后,开始设计并实现每一个特征。一旦系统的功能特征被标识以后,它们通常在FDD方法中用于驱动和跟踪开发过程。
  • 类(代码)拥有权
FDD规定每一个类都有一个指定的人/角色负责类代码的一致性、性能和概念的完整性。FDD方法采用的开发技术是面向对象,类定义一个单一的概念和实体,最合适作为最小的代码分配要素,代码的所有权即为类的所有权。
  • 特征小组
FDD把类即特征分配给一个确定的开发者。由于一个特征的实现会涉及到多个类及其所有者,因此,特征的所有者(特征组长)需要协调多个开发人员的工作。特征小组与开发小组类似。但有一个重要的区别:特征小组的组长更像是教练而不是超级程序员。
  • 审查
指的是检查软件错误的复审方法,这是FDD确保软件设计和代码质量的一个关键技术。审查将开发小组和FDD以主程序元为主的结构完美地结合起来,这种混合是一种新型的开发方式。
  • 定期构建
定期地取出已完成功能的全部源代码和它所依赖的库、组件,组成完整的可以运行的系统。构建增加功能的基线,确保总是有一个可以运行、向客户演示的软件系统,可以使客户观察到系统开发的进度和实现的功能是否是需要的。
  • 配置管理
一个FDD项目只需要保证对完成的代码文件最新版本的确认和历史追踪。根据开发软件的复杂性,分析制品、设计制品以及测试用例、测试脚本等也应该受控于版本控制。
  • 可视性进度报告
项目成员应该根据完成的工作向各级管理报告工作进度,FDD提供了一个简单、低开销地收集准确和可靠项目信息的方法,提供了大量直观、直接的报告样式,向项目所有相关人员报告项目进度。

与XP的比较

  • 隐寓和模型
XP过程以在卡片上记录故事开始业务分析。每个故事就是系统要做的事情。整个项目在“每个人——客户、程序员和经历——能够讲出系统如何工作的整体故事”隐寓的指导下进行的。

FDD使用特征,执行领域走查,同时要建立一个全面的领域对象模型,以便特征小组对每一组特征产生更好的设计。
  • 开发团队
在开发队伍规模上,XP通常不超过10人;FDD的理想团队成员数在16~20人,也有更大团队的实际经验。
  • 代码拥有权
XP鼓励集体拥有代码,任何人都可以在需要时添加或修改代码。与之相反,在FDD中,整个开发团队拥有代码的集体所有权。当需要集体验证譬如说软件架构的设计或用户界面构造的时候,FDD就将类所有者与特征小组和审查结合起来满足需要。
  • 测试
XP利用双人结对编程来不断地在设计和代码层执行走查和非形式化审查。FDD则提倡采用结构化的形式化审查技术。

XP中的正确性是由运行单元和功能测试来定义的。在FDD中,单元测试是“按照功能构建”过程的一个部分。FDD没有定义参与测试的形式化等级,由主程序员决定做什么更适合。
  • 项目追踪
XP让项目经理决定项目追踪方法,鼓励减少数据搜集的工作量,鼓励使用大型图表。在FDD中的按特征追踪项目的方法,描述了工作量小、准确度量项目进度的手段,提供了用数据构造多种使用的进度图表。

结束语


作为敏捷开发的方法之一,特征驱动开发很好的实现了敏捷的思想,它强调的是整体模型,是从全局观的角度考虑问题的。同时,我们也要认识到一点,特征驱动开发相对于其他的方法,还是比较复杂的。其方法的精致和结构的规整,很容易让使用者在本身固有的重型思维方式的引导下,走入于agile背道而驰的泥坑。这本身也是其复杂性的一个表现。

因此,要想使用FDD并不容易,但不可否认的一点,FDD的确是一种非常好的敏捷开发方法论。而它具体的实施效果最终还是要看领导者以及实施者、使用者的具体实践。


2014-03-31 16:09:49 happylee6688 阅读数 3460
  • SCRUM敏捷开发视频教程

    SCRUM敏捷开发视频教程,该课程为你分享SCRUM敏捷开发,理解敏捷的本质,认识中国IT行业对敏捷的挑战,学会让敏捷落地的实用招数。 嘉宾介绍:张传波 1. 创新工场创业课程(敏捷课程)讲师 2.软件研发管理佳实践顾问(曾任华为某团队研发顾问) 3. 中国敏捷联盟《ADBOK》(敏捷开发知识体系)项目组成员 二十年软件开发、软件设计、需求分析、项目管理、部门管理、公司管理及过程改进等经验,亲历“无数”项目,涉猎建筑、通讯、互联网、电力、金融、制造业、政府等领域,熟悉软件生命周期的全部过程

    10429 人正在学习 去看看 CSDN讲师
继上一篇的“Crystal”之后,我们来认识一下什么是RUP,统一软件开发过程。废话不多说,直接进入正题。


概述


RUP,统一软件开发过程,是一个面向对象且基于网络的程序开发方法论。根据Rational的说法,RUP就好像一个在线的指导者,他可以为所有方面和层次的程序开发提供指导方针、模板以及事例支持。


生命周期


对于RUP过程,其开发模型由软件生命周期(四个阶段)和RUP的核心工作流构成一个二维空间。横轴表示项目的时间维,包括四个阶段,纵轴表示工作流(活动)。



六个特点

  • 迭代式开发
在软件开发的早期阶段就想完全、准确的捕获用户的需求几乎是不可能的。实际上,我们经常遇到的问题是需求在整个软件开发工程中经常会改变。传统的开发方式对于这种需求的变更是很难应对的。

迭代式开发允许在每次迭代过程中需求可能有变化,通过不断细化来加深对问题的理解。迭代式开发不仅可以降低项目的风险,而且每个迭代过程都可以执行版本结束,这无疑给开发人员增加了很大的成就感和自信心。
  • 管理需求
确定系统的需求是一个连续的过程,开发人员在开发系统之前不可能完全详细的说明一个系统的真正需求。RUP描述了如何提取、组织系统的功能和约束条件并将其文档化,用例和脚本的使用以呗证明是捕获功能性需求的有效方法。
  • 基于组件的体系结构
组件使重用性成为可能,系统可以由组件组成。基于独立的、可替换的、模块化组件的体系结构有助于管理复杂性,提高重用率。RUP描述了如何设计一个有弹性的、能适应变化的、易于理解的、有助于重用的软件体系结构。
  • 可视化建模
RUP往往和UML联系在一起,对软件系统建立可视化模型,帮助人们提供管理软件复杂性的能力。RUP告诉我们如何可视化地对软件系统建模,获取有关体系结构和组件的结构和行为信息。
  • 验证软件质量
在RUP中软件质量评估不再是事后进行或单独小组进行的分离活动,而是内建于过程中的所有活动,这样可以及早发现软件中的缺陷。
  • 控制软件变更
迭代式开发中如果没有严格的控制和协调,整个软件开发过程很快就陷入混乱之中,RUP描述了如何控制、跟踪、监控、修改以确保成功的迭代开发。RUP通过软件开发过程中的制品,隔离来自其他工作空间的变更,以此为每个开发人员建立安全的工作空间。


核心工作流


RUP中有9个核心工作流,分为6个核心过程工作流(Core Process Workflows)和3个核心辅助工作流(Core Supporting Workflows)。尽管6个核心工作流可能使人想起传统瀑布模型中的几个阶段,但应注意迭代过程中的阶段是完全不同的,这些工作流在整个生命周期中一次又一次被访问。9个工作流在项目中轮流被使用,在每一次迭代中以不同的重点和强度重复。


核心过程工作流

  • 商业建模(Business Modeling)
商业建模工作流描述了如何为新的目标组织开发一个构想,并基于这个构想在商业用例模型和商业对象模型中定义组织的过程,角色和责任。
  • 需求(Requirements)
需求工作流的目标是描述系统应该做什么,并使开发人员和用户就这一描述达成共识。为了达到该目标,要对需要的功能和约束进行提取、组织、文档化;最重要的是理解系统所解决问题的定义和范围。
  • 分析和设计(Analysis & Design)
分析和设计工作流将需求转化成未来系统的设计,为系统开发一个健壮的结构并调整设计使其与实现环境相匹配,优化其性能。分析设计的结果是一个设计模型和一个可选的分析模型。
  • 实现(Implementation)
实现工作流的目的包括以层次化的子系统形式定义代码的组织结构;以组件的形式(源文件、二进制文件、可执行文件)实现类和对象;将开发出的组件作为单元进行测试以及集成由单个开发者(或小组)所产生的结果,使其成为可执行的系统。
  • 测试(Test)
测试工作流要验收对象间的交互作用,验证软件中所有组件的正确集成,检验所有的需求已被正确的实现,识别并确认缺陷在软件部署之前被提出并处理。
  • 部署(Deployment)
部署工作流的目的是成功的生成版本并将软件分发给最终用户。部署工作流描述了那些与确保软件产品对最终用户具有可用性相关的活动,包括:软件打包、生成软件本身以外的产品、安装软件、为用户提供帮助。


核心辅助工作流

  • 配置和变更管理(Configuragion & Change Management)
配置和变更管理工作流描绘了如何在多个成员组成的项目中控制大量的产物。配置和变更管理工作流提供了准则来管理演化系统中的多个变体,跟踪软件创建过程中的版本。工作流描述了如何管理并行开发、分布式开发、如何自动化创建工程。
  • 项目管理(Project Management)
软件项目管理平衡各种可能产生冲突的目标,管理风险,克服各种约束并成功交付使用户满意的产品。其目标包括:为项目的管理提供框架,为计划、人员配备、执行和监控项目提供实用的准则,为管理风险提供框架等。
  • 环境(Environment)
环境工作流的目的是想软件开发组织提供软件开发环境,包括过程和工具。环境工作流集中于配置项目过程中所需要的活动,同样也支持开发项目规范的活动,提供了逐步的指导手册并介绍了如何在组织中实现过程。

没有更多推荐了,返回首页