Обновление существующих приложений
Если команда работает над обновлением существующего приложения, одной из первых задач является изучение кода.Чтобы оценить объем требуемой работы, необходимо определить, в каких частях кода требуются изменения, и как далеко распространятся их последствия.
Чтобы исключить возможность негативных последствий изменений, команда может создать и выполнить модульные и системные тесты.Если эти тесты не разработаны ранее, команде необходимо создать их.Впрочем, создавать исчерпывающий набор модульных и системных тестов для существующего приложения не требуется.Изучив существующую структуру кода и предполагаемые изменения, команда может сосредоточиться на создании тестов, позволяющих удостовериться, что изменения не будут иметь негативных последствий для приложения.
При обновлении существующего кода рекомендуется выполнить следующие действия и воспользоваться следующими инструментами.
Изучите существующую структуру.С помощью обозревателя архитектуры, направленных графов и созданных схем последовательностей найдите основные компоненты и их зависимости.Дополнительные сведения см. в разделе Визуализация и понимание кода.
Изучите существующее поведение и требуемые изменения.Приступая к подробному обсуждению новых пользовательских описаний функциональности, команда должна быть знакома с существующим поведением.Пометьте существующие описания функциональности как "as-is" (существующие), а новые — как "to-be" (реализуемые). Используйте эти пометки в именах файлов, папок и моделей.
Пользовательские описания функциональности можно проиллюстрировать с помощью моделей.Дополнительные сведения см. в разделе Моделирование описаний функциональности пользователей.
Стабилизируйте поведение с помощью тестов.Добавьте автоматические или ручные тесты для достижения следующих целей:
Лучше изучить существующее поведение продукта.
Выделить аспекты поведения продукта, которые предстоит изменить.
Удостовериться в том, что изменения не препятствуют работе существующих функций.
Дополнительные сведения см. в разделе Частое тестирование на ранних этапах разработки.
Стабилизируйте архитектуру с помощью схем слоев.Создайте схемы слоев для достижения следующих целей:
Лучше изучить структуру существующего кода.
Выделить области существующего кода, где предстоит внести изменения.
Удостовериться в том, что изменения не нарушат существующую архитектуру в результате непреднамеренного добавления зависимостей или помещения функций в неправильные расположения.
Дополнительные сведения см. в разделе Стабилизация структуры приложения с помощью схем слоев.
Сформулируйте требуемые изменения в виде пользовательских описаний функциональности, оцените стоимость их реализации и организуйте их в виде списка невыполненных работ по продукту.При оценке стоимости необходимо учитывать факт, что выполняется обновление существующего кода.В каждой оценке необходимо учитывать время, которое потребуется для изучения существующего кода и написания автоматических тестов.
Дополнительные сведения см. в разделе Создание или невыполненной работы по продукту или добавление в нее элементов.
Дополнительные сведения
Working Effectively with Legacy Code, Michael Feathers; Prentice Hall, 2004.