更新现有应用程序

如果您的团队正在更新现有应用程序,则其首要任务之一是了解代码。 若要能估计您的团队将执行的工作,则必须识别需要更改的代码部分,然后确定更改结果将传播到的位置。

您的团队可通过创建并运行单元测试和系统测试,来帮助确保其所做的更改不会产生负面影响。 如果这些测试尚不存在,则您的团队必须创建它们。 但是,无需为现有应用程序创建一组详尽的单元测试和系统测试。 通过了解代码的现有结构以及您期望进行的更改,您的团队可集中精力创建您所需的测试,以确保这些更改不会对应用程序产生负面影响。

当您必须更新现有代码时,建议使用以下操作和工具:

  • 了解现有结构。 使用体系结构资源管理器、定向关系图和生成的序列图来查找主要组件及其依赖项。 有关更多信息,请参见显示现有代码

  • 了解现有行为和所需更改。 您的团队应在详细地讨论新情景时了解现有行为。 将现有情景标记为“现状”,新情景标记为“将来”。将这些标记用作文件、文件夹和模型名称的一部分。

    可使用模型来帮助阐明用户情景。 有关更多信息,请参见用户情景建模

  • 通过测试使行为变得稳定。 添加自动或手动测试以实现以下几点:

    • 帮助您了解产品的现有行为。

    • 突出显示产品将要更改的那些行为方面。

    • 确保您的更改不会中断现有功能。

    有关更多信息,请参见及早并经常测试

  • 通过层关系图使体系结构变得稳定。 创建层关系图来实现以下几点:

    • 帮助了解现有代码的结构。

    • 重点说明现有代码中要更改的方面。

    • 确保您的更改不会通过引入意外的依赖项或在不恰当位置放置函数来意外破坏现有体系结构。

    有关更多信息,请参见使用层关系图稳定应用程序结构

  • 将所需更改编写为情景、估计情景的成本并将这些情景安排到产品积压工作中。 当您估计成本时,您自然会考虑到您正在更新现有代码这一情况。 每次估计都应包括了解现有设计和编写自动测试所花费的时间。

    有关更多信息,请参见创建大规模产品积压工作

其他材料

Working Effectively with Legacy Code(有效使用旧代码),Michael Feathers; Prentice Hall,2004 年。