Анализ влияния изменений ( IA ) или анализ влияния [1] — это анализ изменений в развернутом продукте или приложении и их потенциальных последствий. [2] [3] [ необходим лучший источник ]
Анализ влияния изменений определяется Боннером и Арнольдом [4] как «выявление потенциальных последствий изменения или оценка того, что необходимо изменить для достижения изменения», и они фокусируются на IA с точки зрения определения области изменений в деталях дизайна. Напротив, Пфлигер и Атли [5] фокусируются на рисках, связанных с изменениями, и утверждают, что IA — это: «оценка множества рисков, связанных с изменением, включая оценки влияния на ресурсы, усилия и график». Как детали дизайна, так и риски, связанные с модификациями, имеют решающее значение для выполнения IA в процессах управления изменениями . Иногда в этом контексте также упоминается технический разговорный термин — ад зависимости .
Методы ИА можно разделить на три типа: [6]
Бонер и Арнольд [7] выделяют два класса IA: IA прослеживаемости и IA зависимости. В IA прослеживаемости фиксируются связи между требованиями, спецификациями, элементами дизайна и тестами, и эти отношения можно проанализировать для определения области инициирующего изменения. [8] В IA зависимости оцениваются связи между частями, переменными, логикой, модулями и т. д. для определения последствий инициирующего изменения. IA зависимости происходит на более детальном уровне, чем IA прослеживаемости. В рамках проектирования программного обеспечения статические и динамические алгоритмы могут быть запущены в коде для выполнения IA зависимости. [9] [10] Статические методы фокусируются на структуре программы, в то время как динамические алгоритмы собирают информацию о поведении программы во время выполнения.
Литература и инженерная практика также предлагают третий тип IA, экспериментальный IA, в котором влияние изменений часто определяется с использованием экспертных знаний о дизайне. Протоколы обзорных совещаний, [11] неформальные обсуждения в команде и индивидуальные инженерные суждения [12] могут быть использованы для определения последствий модификации. [ как? ]
Программное обеспечение часто поставляется в пакетах, которые содержат зависимости от других программных пакетов, необходимых для запуска развернутого. Отслеживание этих зависимостей в обратном порядке — удобный способ определить влияние изменения содержимого программного пакета. Примеры программного обеспечения, которые могут помочь сделать это:
Зависимости также объявляются в исходном коде. [[Метаданные|Метаданные [ которые? ] ]] могут быть использованы [ как? ] для понимания зависимостей с помощью статического анализа . Среди инструментов, поддерживающих показ таких зависимостей, есть:
Также существуют инструменты, применяющие полнотекстовый поиск по исходному коду, хранящемуся в различных репозиториях. Если исходный код доступен для просмотра в Интернете, то можно использовать классические поисковые системы. Если исходный код доступен только в среде выполнения, все становится сложнее, и специализированные инструменты могут быть полезны. [14] [ требуется проверка ] [ несоответствующая внешняя ссылка? ]
Последние инструменты [ какие? ] часто используют стабильные ссылки для отслеживания зависимостей. Это можно сделать на всех уровнях, среди которых спецификация, чертеж, ошибки, коммиты. Несмотря на это, использование проверяющих обратные ссылки, известных из поисковой оптимизации, не распространено. Исследования в этой области также проводятся, просто чтобы назвать карты вариантов использования. [15]
Коммерческие инструменты в этой области включают Rational DOORS .