技术开发 频道

在小型项目中使用IBM RUP

    结束语

    构建软件的工作远远多于编写代码所工作。一个软件开发过程必须集中处理向用户发布高质量软件的所有必需活动。一个完整的过程不必是庞大的。我们通过集中论述项目中的主要活动和工件,已经向您展示了如何进行一个小型但是完整的过程。如果执行某项活动或者创建某个工件对于缓解项目中的风险是有帮助的,那么就请进行。您可以按需要为您的项目团队和组织使用或多或少的过程和格式。

    RUP 和 XP 并不必是互相排斥的。通过结合使用这两种方法,您完全可以得到一个过程,帮助您比现在更快地交付更高质量的软件。Robert Martin 描述了一个叫做 dX 的过程,他将其作为 RUP 的附属品 。它就是一个从 RUP 框架中构建的过程的实例。

    一个优秀的软件过程可以使用经业界验证的非常好的实践。非常好的实践已经在真实的软件开发组织中使用,并且经历了时间的考验。XP 是目前广为关注的方法。它以代码为中心,并提供了一项承诺:花费最少的过程开销得到最大的生产力。XP 中的许多技术值得在恰当的情况中考虑和采用。

    XP 关注"故事"、测试和代码--它以一定的深度讨论了计划,但没有详细阐述如何获取计划。XP 意味着您可以完成其他一些工作,例如"使用一些卡片进行 CRC 设计或者草拟某种 UML……"或者"请不要生成并不使用的文档或者其他工件",但只是一带而过。RUP 希望您在定制和更新开发计划时,仅仅考虑创建有用和必须的东西,并且指出了这些东西该是什么。

    RUP 是一个可以处理整个软件开发周期的过程。它关注非常好的实践,并且经过了数千个项目的洗礼。我们鼓励研究和发明新的技术以产生非常好的实践。随着新的非常好的实践崭露头脚,我们希望将它们纳入 RUP 中。

    附录:Rational Unified Process

    Rational Unified Process,或者简称 RUP,提供了软件开发的规律性方法。它是由IBM Rational开发并维护的过程产品。它为来同类型的项目提供了几种即装即用的路线图。RUP 还提供了一些信息,帮助您在软件开发过程中使用其他 Rational 工具,但是它不要求将 Rational 工具有效地应用于整个组织,您也可以将 Rational 工具与其他供应商的产品进行集成。

    RUP 为软件项目所有方面提供了指导。并不需要您执行任何特定的活动或者创建任何特定的工件。它只为您提供信息和指南,您可以决定将哪些应用于您的组织。如果没有特定的路线图适合您的项目或者组织,RUP 还提供了一些指南来帮助您量身定做你的过程。

    RUP 强调采用现代软件开发的一些非常好的实践,作为一种降低开发新软件所带来的内在风险的方式。这些非常好的实践包括:

    1. 迭代开发
    2. 管理需求
    3. 使用基于组件的构架
    4. 可视建模
    5. 持续的质量验证
    6. 控制变更

    这些非常好的经验融合到 Rational Unified Process 的以下定义中:

    角色--执行的系列活动和拥有的工件。
    学科--软件工程中的关键领域,例如需求、分析与设计、实施与测试。
    活动--工件生成与评估方式的定义。
    工件--在执行活动中所使用的、生成的或修改的工作产品。

    RUP 是一个迭代过程,确定了任何软件开发项目的四个阶段。随着时间的推进,每个项目都要经历起始阶段、细化阶段、构建阶段和交付阶段。每个阶段包括一次或多次迭代,其中您可以生成可执行文件,但是系统可能不完整(可能起始阶段除外)。在每次迭代过程中,您以不同的细节级别执行几个学科中的活动。下文是 RUP 的概述图。

    RUP 概览图

    


    The Rational Unified Process, An Introduction, Second Edition 一书是 RUP 的好的概述。您可以在 Rational 的 Web 站点 www.rational.com 上找到更进一步的信息和对于 RUP 的评价。

    附录:极限编程

    极限编程(XP)是由 Kent Beck 在 1996 年开发的一种软件开发学科。它基于四个价值:沟通、简单、反馈和勇气。它强调客户与开发团队成员的持续沟通,在开发进程中设立一名现场客户。该现场客户决定创建的内容和顺序。通过持续重构代码并创建最小的非代码工件集合而体现简单。许多短期发布和持续单元测试建立了反馈机制。勇气意味着完成正确的事情,即使并不是最流行的事情。它还意味着诚实面对您能做的和不能做的事情。

    12 个 XP 实践为这四个价值提供支持。它们是:

    有计划的开发:通过结合使用优先级"故事"和技术估算,确定下一版本的功能。

    小版本:以小的增量版本经常向客户发布软件。

    隐喻:隐喻是一个简单、共享的"故事"或描述,说明系统如何工作。

    简单设计:通过保持代码简单从而保证设计简单。不断的在代码中寻找复杂点并且立刻进行移除。

    测试:用户编写测试内容以对"故事"进行测试。程序员编写测试内容来发现代码中的任何问题。在编写代码前先编写测试内容。

    重构:这是一项简化技术,用来移除代码中的重复内容和复杂之处。

    结对编程:团队中的两个成员使用同一台计算机开发所有的代码。一个人编写代码或者驱动,另一个人同时审查代码的正确性和可理解性。

    集体代码所有权:任何人都拥有所有的代码。这就意味这每个人都可以在任何时候变更任何代码。

    持续集成:每天多次创建和集成系统,只要任何实现任务完成就要进行。

    每周 40 个小时:程序员在疲劳时无法保证最高效率。连续两周加班是绝对不允许的。

    现场客户:一名真实的客户全时工作于开发环境中,帮助定义系统、编写测试内容并回答问题。

    编码标准:程序员采用一致的编码标准。

    目前有三本描述 XP 的书:

    1.解析极限编程(eXtreme Programming Explained)
    2.极限编程实施(Extreme Programming Installed)
    3.规划极限编程(Planning Extreme Programming)

    一些 Web 站点上也有关于XP的进一步信息。

    参考资料

    您可以参阅本文在 developerWorks 全球站点上的 英文原文。

0
相关文章