Поделиться через


Обновление существующих приложений

Если команда работает над обновлением существующего приложения, одной из первых задач является изучение кода.Чтобы оценить объем требуемой работы, необходимо определить, в каких частях кода требуются изменения, и как далеко распространятся их последствия.

Чтобы исключить возможность негативных последствий изменений, команда может создать и выполнить модульные и системные тесты.Если эти тесты не разработаны ранее, команде необходимо создать их.Впрочем, создавать исчерпывающий набор модульных и системных тестов для существующего приложения не требуется.Изучив существующую структуру кода и предполагаемые изменения, команда может сосредоточиться на создании тестов, позволяющих удостовериться, что изменения не будут иметь негативных последствий для приложения.

При обновлении существующего кода рекомендуется выполнить следующие действия и воспользоваться следующими инструментами.

  • Изучите существующую структуру.С помощью обозревателя архитектуры, направленных графов и созданных схем последовательностей найдите основные компоненты и их зависимости.Дополнительные сведения см. в разделе Визуализация и понимание кода.

  • Изучите существующее поведение и требуемые изменения.Приступая к подробному обсуждению новых пользовательских описаний функциональности, команда должна быть знакома с существующим поведением.Пометьте существующие описания функциональности как "as-is" (существующие), а новые — как "to-be" (реализуемые). Используйте эти пометки в именах файлов, папок и моделей.

    Пользовательские описания функциональности можно проиллюстрировать с помощью моделей.Дополнительные сведения см. в разделе Моделирование описаний функциональности пользователей.

  • Стабилизируйте поведение с помощью тестов.Добавьте автоматические или ручные тесты для достижения следующих целей:

    • Лучше изучить существующее поведение продукта.

    • Выделить аспекты поведения продукта, которые предстоит изменить.

    • Удостовериться в том, что изменения не препятствуют работе существующих функций.

    Дополнительные сведения см. в разделе Частое тестирование на ранних этапах разработки.

  • Стабилизируйте архитектуру с помощью схем слоев.Создайте схемы слоев для достижения следующих целей:

    • Лучше изучить структуру существующего кода.

    • Выделить области существующего кода, где предстоит внести изменения.

    • Удостовериться в том, что изменения не нарушат существующую архитектуру в результате непреднамеренного добавления зависимостей или помещения функций в неправильные расположения.

    Дополнительные сведения см. в разделе Стабилизация структуры приложения с помощью схем слоев.

  • Сформулируйте требуемые изменения в виде пользовательских описаний функциональности, оцените стоимость их реализации и организуйте их в виде списка невыполненных работ по продукту.При оценке стоимости необходимо учитывать факт, что выполняется обновление существующего кода.В каждой оценке необходимо учитывать время, которое потребуется для изучения существующего кода и написания автоматических тестов.

    Дополнительные сведения см. в разделе Создание или невыполненной работы по продукту или добавление в нее элементов.

Дополнительные сведения

Working Effectively with Legacy Code, Michael Feathers; Prentice Hall, 2004.