开发方法之统一过程开发及敏捷开发

统一过程

UP 是一个很有特色的模型,它本身是一个二维的结构.软件开发活动总要经过初始、细化、构建 和交付这 4 个阶段方能完成。

对于纵轴而言,业务建模、需求、分析设计、实施、测试、部署、配置与变更管理、项目管理、环境称为 UP 的 9 个核心工作流。可以把这 9 个工作流进行简单的分类以帮助理解,业务建模、需求、分析设计、实施、测试和部署是工程活动,而配置与变更管理、项目管理和环境是管理活动

UP 的生命周期

(1)目标里程碑。目标里程碑对应着先启阶段的结束,当开发者可以明确软件系统的目标和范围时即达到了该里程碑。

(2)架构里程碑。架构里程碑是 UP 生命周期中的第二个里程碑,在这个里程碑前,开发者需要确定稳定的系统架构

(3)能力里程碑。当系统已经足够的稳定和成熟并完成 Alpha 测试后,认为达到了第3 个里程碑。

(4)发布里程碑。在达到发布里程碑前,需要完成系统的测试、完成系统发布和用户培训等工作。

敏捷开发

极限编程

四大价值观XP 的核心是其总结的沟通、简单、反馈、勇气四大价值观。

在 XP 的四大价值观之下,隐藏着一种更深刻的东西,那就是尊重。因为这一切都建立在团队成员之间相互关心、相互理解的基础之上。

特征驱动开发

FDD 是也是一个迭代的开发模型。 FDD 的每一步都强调质量,不断地交付可运行的软件,并以很小的开发提供精确的项目进度报告和状态信息。

核心过程

(1)开发整体对象模型。开发整体对象模型也就是业务建模的阶段。

(2)构造特征列表。完成系统建模后,需要构造一个完整的特征列表。所谓特征指的是一个小的、对客户有价值的功能。

(3)计划特征开发。很少看到有哪个软件在开发过程中明确包含计划过程,其实任何一个软件项目都必须有计划——无论是重载方法还是敏捷方法。在这一阶段中,项目经理根据构造出的特征列表、特征间的依赖关系进行计划,安排开发任务。

(4)特征设计。在这一阶段,主程序员将带领特征小组对特征进行详细设计,为后面的构建做准备。

(5)特征构建。特征构建和特征设计这两个阶段合并起来可以看做特征的实现阶段,这两个阶段反复地迭代,直到完成全部的开发。

最佳实践 组成 FDD 的最佳实践包括:领域对象建模、根据特征进行开发、类的个体所有、组成特征小组、审查、定期构造、配置管理、结果的可见性。

其中,最有特色的莫过于类的个体所有。

Scrum

Scrum 是一个用于开发和维持复杂产品的框架,是一个增量的、迭代的开发过程。

在这个框架中,整个开发过程由若干个短的迭代周期组成,一个短的迭代周期称为一个 Sprint,每个 Sprint 的建议长度是 2 到 4 周(互联网产品研发可以使用 1 周的 Sprint)。在 Scrum 中,使用产品 Backlog 来管理产品的需求,产品 Backlog 是一个按照商业价值排序的需求列表,列表条目的体现形式通常为用户故事。 Scrum 团队总是先开发对客户具有较高价值的需求。

在 Sprint 中, Scrum 团队从产品 Backlog 中挑选最高优先级的需求进行开发。挑选的需求在 Sprint 计划会议上经过讨论、分析和估算得到相应的任务列表,我们称它为 Sprintbacklog。在每个迭代结束时, Scrum 团队将递交潜在可交付的产品增量。 Scrum 起源于软件开发项目,但它适用于任何复杂的或是创新性的项目。

1. Scrum 的五个活动 Scrum 主要包括:产品待办事项列表梳理、 Sprint 计划会议、每日 Scrum 会议、 Sprint评审会议、 Sprint 回顾会议等五个活动。

决定如何完成工作是开发团队的职责,决定做什么则是产品负责人的职责。

Scrum 的 5 大价值观为:

承诺—愿意对目标做出承诺。

专注—把你的心思和能力都用到你承诺的工作上去。

开放—Scrum 把项目中的一切开放给每个人看。

尊重—每个人都有他独特的背景和经验。

勇气—有勇气做出承诺,履行承诺,接受别人的尊重。

水晶方法

水晶方法(Crystal),是由 Alistair Cockburn 和 Jim Highsmith 建立的敏捷方法系列,其目的是发展一种提倡“机动性的”方法,包含具有共性的核心元素,每个都含有独特的角色、过程模式、工作产品和实践。

Crystal 家族成员(分为 Crystal Clear, Crystal Yellow, Crystal Orange 和 Crystal Red 分别适用于不同的项目)。水晶方法中,使用频度较高的是 Crystal Clear——透明水晶方法。透明水晶方法,适合于一个小团队来进行敏捷开发,人数在 6 人以下为宜。

透明水晶方法有七大体系特征: (1)经常交付

(2)反思改进

(3)渗透式交流

(4)个人安全

(5)焦点

(6)与专家用户建立方便的联系

(7)配有自动测试、配置管理和经常集成功能的技术环境

猜你喜欢

转载自blog.csdn.net/q947448283/article/details/91364196