• 软件测试技术
  • 软件测试博客
  • 软件测试视频
  • 开源软件测试技术
  • 软件测试论坛
  • 软件测试沙龙
  • 软件测试资料下载
  • 软件测试杂志
  • 软件测试人才招聘
    暂时没有公告

字号: | 推荐给好友 上一篇 | 下一篇

核心统一过程介绍(一)

发布: 2007-5-14 14:30 | 作者: 雅各布森 | 来源: CSDN | 查看: 45次 | 进入软件测试论坛讨论

领测软件测试网

  每个人都意识到我们需要过程来改进软件开发的方式。每个人也都意识到我们需要敏捷,灵活性和适应性。每个人也都认同对质量的需要。但是,我们中间的很多人都发现,现有的软件过程过于繁重,并约束、妨碍着我们创造力源泉的发挥。

  开发人员疲于应付开发过程。统一过程过于繁重, 过程改进程序需要过多繁琐的工作,而敏捷阵营又似乎承诺了太多。我们深知我们需要好的实践来保证按时,按照预算来开发出好的软件。我们需要从根本上对我们设计,配置, 培训,采用和部署过程的方式进行重新设计。

什么是核心统一过程?

  核心统一过程,或者我们称之为EssUP,是建立在现代软件开发实践之上的新一代软件开发过程。她是一个崭新的开始,开始于没有任何累赘的一页白纸。她慎重的集成了来自三个阵营的成功实践:统一过程阵营,敏捷方法阵营和过程改进阵营。每一个阵营都贡献了不同的过程能力。

  但是,在我们更进一步深入讨论什么是EssUP之前,让我们首先快速列举出我们需要一个新过程的原因。

1、传统的软件过程过于繁重,没有人会去阅读大量冗长的过程描述。

2、过程必须关注对开发人员的支持,而不是仅仅面向过程专家。显然这篇论文是面向过程专家的,因为很少有开发人员真正的阅读过程方面的论文。

3、过程必须帮助 团队在获得过程质量的同时获得软件质量。因此,要交付好的软件,而不仅仅是通过 CMMI的评估。任何软件开发过程都必须聚焦于生产好的软件。

4、过程必须提供基于原则的敏捷。满足管理需求的同时不阻碍创新。

5、这个方法必须允许项目团队(开发人员在没有过程工程师帮助的情况下)很容易的将好的实践加入到现行过程中。

6、过程应该使团队更加强大。一个告诉您需要做什么,并且试图像机器人一样控制您行为的过程并不能够帮助您。

实践成为一等公民

  一个传统的软件过程,比如统一过程,是通过对她所定义的不同角色所进行的活动和生产的制件进行描述的。这些活动和制件可能服务于不同的目的,例如基于用例的需求,测试驱动的设计、架构的构建、基于组件的开发,换句话说,他们在处理不同的实践。这些实践不是外在的、也不是可见的,甚至没有一个名字。这样的过程中所包含的许多实践可以被形象地比喻为“一锅汤”。

  为了易于识别、设计和部署新的实践(它们的个数可能有上百个),我们需要让实践成为一等公民(first-class citizens),并且降低过程在软件开发中的地位。过程是您选择的一组实践的组合。为了达到这点,我们需要在这些实践的各种使用中,包括设计,部署,和改进,把她们区分开来。

  EssUP就表现形式来看,与其它过程或者方法有很大的区别。她给过程工业引入了一种新的思想:关注点分离(Separation of Concerns :SOC或面向方面的思想)。当我们在过程开发中使用这种思想时,我们就能生成一个本质上不一样的过程。这样一个过程使得您可以更容易、更直观地定制您自己的软件过程。最重要的是她可以使计划和执行一个软件项目更自然更来自于直觉。为了使这样的思想更具象,我们在下面描述一些使用SOC思想的情况:

1、每一个实践都独立于其它实践。

  您只需要选择您需要的实践,而不用必须去取消选定任何活动和制件。仅仅选择您想要的实践,并把她们与您现有的过程组合起来。

2、从现有的过程和核心统一过程的元素中,您可以很容易地分离出各个元素。这个特性允许您在需要时以一种进化的方式改进已有的实践。

  从一个通用的 平台开始,您可以使用一种源于纸牌游戏的简单技术来描述您自己的过程。以这个为基础,您可以自由灵活地导入我们的实践。您加入您需要的那些,和您认为您所在的组织可以采用的那些,却不需要承担巨大的 风险。

3、她区分了过程的两个不同视图:过程的作者视图和软件开发者视图。在过去的软件过程里面,往往只关注作者视图。EssUP强调了开发者的视角。她采用了游戏中的一些方法来开发,培训,应用,并且使用这个过程,使之更轻量、敏捷。另外,我们保证这个游戏很好玩。

4、我们把核心的实践和非核心的实践进行了区分。这使得我们可以创建一个核心的轻量过程,同时这个过程有着很大的增量空间(比如上百个实践)。

  这些年来,我们发现,只有极少的人真正阅读过程描述文档,不论是通过书籍或者通过网络。因此,给他们很多是没有意义的。取而代之的是提供真正的核心,让他们自己去学习其余他们想要的。有些人可能希望通过研读来学习,有很多文章和书籍都可以选择。一些人可以通过与已经获得相关知识的人一起工作来学习。这样分离关注点的结果是使过程非常轻量并且容易地响应变化。

5、她用一种平衡的方式分离了外在、显见的知识和内在、隐含的知识。内在的知识是那些您用这样或那样的方法获得的知识—您在大脑中储存他们。外在的知识是以可获得的描述形式存在的。过去的过程试图用这种显见的方式去捕获所有的相关知识。尽管这样的意图是好的,却使得过程变得繁重。EssUP只把核心部分显性化。其余的部分要么是隐含的要么是由核心部分引用而得来。然而,处理知识最巧妙的形式,是在需要时,使用智能代理—这样的方法我们称之为smart practice。

6、她为分离创造性工作和非脑力工作准做好了准备(prepared)。这使得开发者把时间用于人类所擅长的工作—创造性的工作—把非脑力的劳动交给智能代理去完成。我们使用做“好了准备(prepared)”这个术语是因为EssUP并不是自身含有代理;代理是一个附加软件。

7、她分离了两种制件:alphas和betas。我们现在还没有给他们起任何名字。我们认为alphas和betas两者的区别是所有项目中最基本的。您可以暂时用key thing代替alpha,用evidence代替beta。

  Alpha是那些非常重要的东西,她们存在于所有项目中,不论是不是以书面的形式存在。事实上,alphas并不是为特定过程定义的。比如,每一个软件项目都有以下这些alphas: 项目(project),已实现的系统(implemented system),待完成列表(backlog),风险(risk)。每一个alpha有一系列的betas: 项目Alpha可能含有一个项目计划,一个迭代计划。风险Alpha包含一个风险列表。订单可能含有一个特性列表和一个改变列表。Beta是Alpha的证据。他们可以是描述,图表,流程图,任何文档或者非文档,只要您自己认可。没有文档意味着团队把这些知识都保存在头脑中了。

  因此,alphas是稳定并独立于过程的,相反,betas可能基于您选择的特定实践。

  Alphas和betas的分离使我们保持项目文档的最小化。我们可以用精确的方式讨论究竟有多少文档。这让我们能够用纪律化的方式实现敏捷。我们可以从次核心内容中,分离出核心内容。

是什么形成了过程的基础?

  核心统一过程的中心,是一些简单、并被验证过的实践,在各种类型和规模的软件开发过程中,她们都可以被使用。这些实践都经过了特别的设计,因而可以被分别使用,或者按照您的需要任意组合。这使得过程很容易被采用,并为创造和集合出一个您自己需要的过程提供了坚实的基础,无论这些需要是来自开发人员还是来自开发组织。

  EssUP来自于我们的五个基础实践,通过三个附加的工作实践可以减少组织中引入这个过程所付出的代价。

  基础实践

  五个基础实践都是关于技术开发工作的。

迭代核心:使您很容易采用迭代的,固定时间盒的方式来管理和控制您的项目。

架构核心:让您能够确定被选定的架构适合项目的需要。

用例核心:使团队以敏捷的方式获取需求,并在解决方案中驱动开发和测试。

组件核心:通过使用从面向对象及其他流行开发方法中继承而来的属性,使你的软件健壮、灵活、可重用。

建模核心:使您能够采用适当的细节等级,增强团队间的 沟通,降低项目风险。

  有效的团队协作

  上面的五个开发实践组成了技术层面的基础,作为她的补充,这里提出其它三个实践,来提升高效的团队协作及过程改进。

产品核心:使团队能够紧密结合到所属业务和项目组织中去。

过程核心:使团队能够采纳并发展核心统一过程,使之成为自己需要的过程。

团队核心:使团队能够设置并维护一个合适的工作环境。

  但是,测试去了哪里?

  测试无处不在。我们相信这样一个隐喻:“无论您做了什么事情,直到您经过检验确认她就是您想要做的,您才算完成了这件事”,或者说“人人都是他自己的清洁工”。我们让测试成为您任何工作中的组成部分之一。用例核心包括测试驱动设计,因为用例是测试用例的雏形。组件核心则包括组件的单元测试

  提供一种敏捷的方式

  这一组实践为您提供了一个基础,从而能够使用敏捷的方法来处理计划和实现。您可以采用所有的实践,或您需要的实践,一个单独的实践,甚至是一个实践的局部。您可以混合或者组合这些实践,成为您需要的实践,编写您自己的实践来扩展过程,混合您自己已有的实践来建立您的体验。这与传统的,实践与实践之间没有办法剥离的过程有着巨大、本质的区别。

延伸阅读

文章来源于领测软件测试网 https://www.ltesting.net/


关于领测软件测试网 | 领测软件测试网合作伙伴 | 广告服务 | 投稿指南 | 联系我们 | 网站地图 | 友情链接
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备10010545号-5
技术支持和业务联系:info@testage.com.cn 电话:010-51297073

软件测试 | 领测国际ISTQBISTQB官网TMMiTMMi认证国际软件测试工程师认证领测软件测试网