Анализ влияния изменений - Change impact analysis - Wikipedia

Анализ влияния изменений (Я) определена Боннером и Арнольдом[1] как «определение потенциальных последствий изменения или оценка того, что необходимо изменить, чтобы выполнить изменение», и они фокусируются на ВА с точки зрения определения объема изменений в деталях дизайна. Напротив, Пфлегер и Атли[2] сосредоточить внимание на рисках, связанных с изменениями, и заявить, что ВА - это «оценка множества рисков, связанных с изменением, включая оценки воздействия на ресурсы, усилия и график». Как детали конструкции, так и риски, связанные с модификациями, имеют решающее значение для выполнения ВА в рамках процессы управления изменениями. Иногда в этом контексте упоминается технический разговорный термин, ад зависимости.

Типы методов анализа воздействия

Техники ИА можно разделить на три типа:[3]

  • След
  • Зависимость
  • Экспериментальный

Бонер и Арнольд[4] определить два класса IA: отслеживаемость и зависимость IA. В прослеживаемость IA, связи между требованиями, спецификациями, элементами дизайна и тестами фиксируются, и эти отношения могут быть проанализированы для определения объема инициирующего изменения.[5] В зависимости IA, связи между частями, переменными, логикой, модулями и т. Д. Оцениваются для определения последствий инициирующего изменения. Зависимость IA возникает на более детальном уровне, чем отслеживаемость IA. При разработке программного обеспечения статический и динамичный алгоритмы могут запускаться в коде для выполнения зависимостей IA.[6][7] Статические методы фокусируются на структуре программы, а динамические алгоритмы собирают информацию о поведении программы во время выполнения.

Литература и инженерная практика также предлагают третий тип IA, экспериментальный IA, в котором влияние изменений часто определяется с использованием экспертных знаний в области проектирования. Изучите протоколы встреч,[8] неформальные командные обсуждения и индивидуальные инженерные решения[9] все это можно использовать для определения последствий модификации.

Управление пакетами и зависимости IA

Программное обеспечение часто доставляется в виде пакетов, которые содержат зависимости от других пакетов программного обеспечения, необходимых для запуска одного из них. Отслеживание этих зависимостей в обратном порядке - удобный способ определить влияние изменения содержимого программного пакета. Примеры программного обеспечения, полезного для этого:

Исходный код и зависимости IA

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

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

Методы обучения могут использоваться для автоматического определения зависимостей воздействия.[12]

Требования и прослеживаемость до исходного кода

Последние инструменты часто используют стабильные ссылки для отслеживания зависимостей. Это можно сделать на всех уровнях, включая спецификацию, план, ошибки, коммиты. Несмотря на это, использование средств проверки обратных ссылок, известных из поисковая оптимизация встречается не часто. Исследования в этой области также проводятся, просто чтобы назвать карты вариантов использования.[13]

Коммерческие инструменты в этой области включают Telelogic DOORS, и IBM Rational.

Смотрите также

Рекомендации

  1. ^ Бонер и Арнольд, 1996, стр.3
  2. ^ Пфлегер и Атли, 2006 г., стр. 526
  3. ^ Килпинен, 2008 г.
  4. ^ Бонер и Арнольд, 1996
  5. ^ Эйснер, 2002, стр. 236-237.
  6. ^ Райлих, 2000 г.
  7. ^ Рен и др., 2005
  8. ^ Эндрес и Ромбах, 2003 г., стр.17
  9. ^ Эмблер, 2002, стр. 244
  10. ^ http://www.pixelbeat.org/scripts/whatrequires
  11. ^ охлох, открывайте, отслеживайте и сравнивайте открытый исходный код.
  12. ^ Муско, Винченцо; Каретт, Антонин; Монперрус, Мартин; Preux, Филипп (2016). «Алгоритм обучения для прогнозирования воздействия изменений». Материалы 5-го международного семинара по реализации синергии искусственного интеллекта в программной инженерии - RAISE '16. С. 8–14. arXiv:1512.07435. Дои:10.1145/2896995.2896996. ISBN  9781450341653.
  13. ^ Анализ влияния изменений для эволюции требований с использованием карт вариантов использования В архиве 2016-03-05 в Wayback Machine, Джамеледдин Хассин, Юрген Риллинг, Жаклин Хьюитт, факультет компьютерных наук, Университет Конкордия, 2005.

дальнейшее чтение

  • Эмблер, С. (2002). Гибкое моделирование: эффективные методы экстремального программирования и унифицированного процесса. Нью-Йорк, Нью-Йорк, США, John Wiley & Sons.
  • Бонер С.А. и Р.С. Арнольд, ред. (1996). Анализ влияния изменения программного обеспечения. Лос-Аламитос, Калифорния, США, IEEE Computer Society Press.
  • Эйснер, Х. (2002). Основы управления проектами и системным проектированием. Нью-Йорк, Нью-Йорк, США, John Wiley & Sons.
  • Эндрес, А. и Д. Ромбах (2003). Справочник по программному обеспечению и системной инженерии: эмпирические наблюдения, законы и теории. Нью-Йорк, Нью-Йорк, США, Аддисон-Уэсли.
  • Килпинен, М. (2008). Появление изменений в интерфейсе системной инженерии и проектирования программного обеспечения: исследование анализа воздействия. Кандидатская диссертация. Кембриджский университет. Кембридж, Великобритания.
  • Pfleeger, S.L. и Дж.М. Атли (2006). Программная инженерия: теория и практика. Река Аппер Сэдл, Нью-Джерси, США, Прентис Холл.
  • Райлих, В. (2000). «Модель и инструмент для распространения изменений в программном обеспечении». Примечания по разработке программного обеспечения ACM SIGSOFT 25 (1): 72.
  • Рен, X., Ф. Шах и др. (2005). Кьянти: инструмент для анализа влияния изменений программ на Java. Международная конференция по разработке программного обеспечения (ICSE 2005), Сент-Луис, Миссури, США.