Законы Леманса эволюции программного обеспечения - Lehmans laws of software evolution - Wikipedia

В программная инженерия, то законы эволюции программного обеспечения ссылаются на серию законов, которые Lehman и Белады сформулированы с 1974 г. в отношении эволюция программного обеспечения.[1][2]Законы описывают баланс между силами, движущими новые разработки, с одной стороны, и силами, которые замедляют прогресс, с другой стороны. За последние десятилетия законы несколько раз пересматривались и расширялись.[3]

Контекст

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

В своей статье 1980 г.[1] Lehman квалифицировал применение таких законов, выделив три категории программного обеспечения:

  • An S-программа написана в соответствии с точной спецификацией того, что эта программа может делать
  • А п-программа написана для реализации определенных процедур, которые полностью определяют, что программа может делать (упомянутый пример - программа для игры в шахматы)
  • An E-программа написана для выполнения некоторой реальной деятельности; как она должна себя вести, сильно зависит от среды, в которой она работает, и такая программа должна адаптироваться к различным требованиям и обстоятельствам в этой среде.

Говорят, что законы применяются только к последней категории систем.

Законы

Всего было сформулировано восемь законов:

  1. (1974) «Постоянные изменения» - система E-типа должна постоянно адаптироваться, иначе она становится все менее удовлетворительной.[4]
  2. (1974) «Возрастающая сложность» - по мере развития системы E-типа ее сложность увеличивается, если не выполняется работа по ее поддержанию или уменьшению.[4]
  3. (1974) «Саморегулирование» - процессы эволюции систем E-типа саморегулируются с распределением продуктов и показателей процесса, близкими к нормальным.[4]
  4. (1978) «Сохранение организационной стабильности (неизменная скорость работы ) "- средний эффективный глобальный уровень активности в развивающейся системе E-типа неизменен в течение всего срока службы продукта.[4]
  5. (1978) «Сохранение привычки» - по мере развития системы электронного типа все связанные с ней разработчики, торговый персонал и пользователи, например, должны сохранять мастерство в ее содержании и поведении, чтобы добиться удовлетворительного развития. Чрезмерный рост снижает это мастерство. Следовательно, средний постепенный рост остается инвариантным по мере развития системы.[4]
  6. (1991) «Непрерывный рост» - функциональное содержание системы электронного типа должно постоянно увеличиваться, чтобы поддерживать удовлетворенность пользователей на протяжении всего срока ее службы.
  7. (1996) «Снижение качества» - качество системы электронного типа будет снижаться, если ее не поддерживать и не адаптировать к изменениям операционной среды.[5]
  8. (1996) «Система обратной связи» (впервые заявлено в 1974 г., официально оформлено в виде закона 1996 г.) - процессы эволюции E-типа представляют собой многоуровневые, многопетлевые, многоагентные системы обратной связи и должны рассматриваться как таковые для достижения значительного улучшения по сравнению с любым разумным основание.

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

  1. ^ а б Леман, Меир М. (1980). «Программы, жизненные циклы и законы развития программного обеспечения». Proc. IEEE. 68 (9): 1060–1076. Дои:10.1109 / proc.1980.11805.
  2. ^ Lehman, M. M .; Дж. Ф. Рамиль; П. Д. Верник; Д. Э. Перри; В. М. Турски (1997). «Метрики и законы эволюции программного обеспечения - взгляд девяностых» (PDF). Proc. 4-й Международный симпозиум по метрикам программного обеспечения (METRICS '97). С. 20–32. Дои:10.1109 / METRIC.1997.637156.
  3. ^ Херрайс, Израиль; Родригес, Даниэль; Роблес, Грегорио; Гонсалес-Бараона, Хесус М. (2013). «Эволюция законов эволюции программного обеспечения». Опросы ACM Computing. 46 (2): 1–28. Дои:10.1145/2543581.2543595. ISSN  0360-0300.
  4. ^ а б c d е Леман, М. М. (1980). «О понимании законов, эволюции и сохранения в жизненном цикле больших программ». Журнал систем и программного обеспечения. 1: 213–221. Дои:10.1016/0164-1212(79)90022-0.
  5. ^ Лигуо Ю и Алок Мишра (2013) Эмпирическое исследование закона Лемана об эволюции качества программного обеспечения в Международном журнале программного обеспечения и информатики, 11/2013; 7 (3): 469-481.