用途

  • 实施部分设计(如类、用例实现或数据库实体)或修正一个或多个缺陷。所得到的通常是新的或修改过的源代码和数据文件,一般称为“实施元素”。
角色: 实施者 
频率:在每个迭代过程中重复(不需要建立原型的先启迭代可能是个例外情况) 
步骤
输入的工件:   生成的工件:  
工具向导:   
更多信息: 

工作流程明细:  

准备实施 回到页首

了解任务/问题

在开始实施活动之前,实施者必须明确范围,如在工作分配和迭代计划中指定的。实施任务可侧重于实现某个特定功能(如实施设计用例实现或修正缺陷),该功能涉及实施几个设计元素,这些元素促成了该功能。或者,实施任务也可以侧重于特定的设计元素(如设计子系统或设计类),将它实施至当前迭代所需的程度。

配置开发环境

此项活动的结果是创建或更新一个或多个文件(实施元素)。作为准备实施工作的一部分,实施者必须确保他或她的开发环境配置正确,这样就有合适的元素版本可用。对于要更新的元素以及编译和单元测试所需的任何其它元素,都必须实现这一要求。实施者必须了解并遵循项目的配置和变更管理过程。这些过程描述了如何控制变更并确定变更批次,以及如何交付变更以进行集成。

分析现有实施

在实施某个类之前,请考虑是否可复用或改写现有的代码。如果实施者了解实施在哪些方面适合系统其余部分的体系结构和设计,将有助于实施者识别此类复用机会。这还可以确保实施适合系统的其余部分。

递增实施

建议您以渐进的方式实施,每天对一些回归测试进行数次编译、链接,并运行数次。了解在设计期间并不定义所有的公共操作、属性和关联是很重要的。

处理缺陷时,请确保已修正了问题,而不是症状。应侧重于修正代码中的底层问题。请每次只做一项更改,因为修正错误本身就是一项容易出错的操作。以渐进方式实施修正是很重要的,因为这样就容易找出任何新错误的根源。

实施者必须了解并遵循任何特定于项目的实施指南,包括特定编程语言的编程指南。

将设计转换到实施 回到页首

可用于将设计转换到实施的技术有多种。下面是一些示例:

  • 特定于平台的可视模型可用来生成初始代码框架。通过未在设计中指定的附加代码,可以进一步阐述此代码框架。
  • 可以将模型进行细化,并用来生成可执行原型。结构图(类和包图)和行为图(例如状态和活动图)都可以用来生成可执行代码。这些原型可以根据需要进一步优化。
  • 模型可以细化到完全代表实施的程度。在这种情况下,与其将抽象的设计转换到代码实施,不如采用该设计并直接在模型中添加实施细节。
  • 设计可能不同程度地依赖于平台,而特定于平台的设计模型或代码可以通过转换来生成,这种转换使用多种规则来确定应该将多大程度的抽象概念映射到特定于平台的元素。Object Management Group(OMG)Model Driven Architecture(MDA)(http://www.omg.org)活动的重点即在于此。
  • 也可应用标准模式,从相关的设计和实施中生成设计和代码元素。例如,标准转换模式可以应用于数据库表,创建用以访问数据表的 java 类。另一个示例是,使用 Eclipse Modeling Framework(http://www.eclipse.org/emf/)模型来生成代码,用以存储模型匹配数据;并生成用户界面实施,用以填充数据。

然而,在所有情况下,某种设计抽象概念都会手工或通过应用某种自动转换而细化,并成为实施。

完成实施 回到页首

如上一步中所述,从设计转换到实施可能会产生不同完成程度的实施结果。它有可能是完整的、可接受的实施。然而,通常需要通过大量的工作才能完成实施。例如:

  • 调整转换的结果(例如,改进性能或改进用户界面)
  • 添加缺少的详细信息,例如:
    • 完成设计中所述的操作
    • 添加支持的类、操作和数据结构

评估实施 回到页首

在这种情况下您将验证实施是否符合目标。除了测试以外(在其它活动中描述),一些附加检查通常是很有用的:

  • 通读代码。考虑将在实施中所犯的常见错误记入清单。
  • 使用工具检查代码错误。例如,静态代码规则检查器,或设置为详细警告级的编译器。
  • 使用可将代码可视化表示的工具。代码可视化可以帮助实施者确定模式,如过度连接、循环依赖关系等等。

提供设计反馈 回到页首

实施和测试设计时,将不可避免地发现那些影响设计的错误。如果设计抽象概念因为将来的维护工作或因为合同或沟通因素而保留下来,则必须更新设计。

具体如何做要依据项目的配置和变更管理流程。通常,如果所需变更很小,并且是同一个人在设计并实施类,则不需要正式的变更请求。此人可以在设计中进行变更。

如果所需的变更有广泛的影响(例如公共业务的变更),则可能有必要提交正式的变更请求。



Rational Unified Process   2003.06.15