Законы Лемана
— восемь принципов эволюции
программного обеспечения
, которые сформулировал
с 1974 по 1996 год. Этому поспособствовали как его опыт работы в
IBM
и других компаниях, так и исследовательская деятельность в университетах Великобритании. Законы в целом описывают баланс между силами, из которых одни обеспечивают, а другие тормозят развитие информационных систем.
Содержание
Контекст
В статье 1976 года
Леман в соавторстве с
Л. А. Белади
пишет о том, что в первую очередь речь идёт о больших многофункциональных программах, требующих постоянной поддержки и улучшения. Позже в связи с этим Леман выделил
три категории программ:
S-программы, написанные в строгом соответствии со спецификацией того, что программа может делать;
P-программы, реализующие процедуры, полностью определяющие их поведение (например,
компьютерные шахматы
);
E-программы, осуществляющие работу в условиях реального мира, то есть существенно зависящие от среды своего функционирования, а потому нуждающиеся в адаптации к тем или иным внешним требованиям.
Исходя из этого, законы эволюции программного обеспечения применимы только к Е-программам. Например, к
ERP-системам
.
Законы
Полная формулировка всех восьми законов, представленная ниже, опубликована Леманом в 1996 году.
(1974)
Непрерывное изменение
— используемая Е-программа должна быть непрерывно адаптируемой, иначе она будет становиться всё менее удовлетворительной.
(1974)
Увеличение сложности
— по мере того, как программа эволюционирует, её сложность растёт, если не производится работ по стабилизации и уменьшению сложности.
(1974)
Саморегулирование
— процесс эволюции программы является саморегулируемым, с близким к нормальному распределению масштабом атрибутов продукта и процесса.
(1978)
Сохранение организационной стабильности
(неизменная скорость работы) — средний эффективный глобальный уровень активности в эволюционирующей системе инвариантен к времени жизни продукта.
(1978)
Сохранение осведомлённости
— в течение активной жизни эволюционирующей программы основное содержание последующих релизов статистически неизменно.
(1991)
Непрерывное развитие
— функциональное содержание программы должно постоянно расширяться на протяжении жизненного цикла, чтобы поддерживать удовлетворённость пользователей.
(1996)
Ухудшение качества
— качество программ Е-типа будет восприниматься как ухудшающееся, если они не сопровождаются должным образом и не адаптируются к операционной среде.
(1996)
Система обратной связи
— процессы программирования Е-типа вместе составляют многоконтурные, многоуровневые системы обратной связи и должны рассматриваться как таковые, чтобы успешно изменяться и улучшаться.
Примечания
Belady, L. A., Lehman, M. M.
(англ.)
// IBM Systems Journal. — 1976. —
Iss. 15
,
no. 3
. —
P. 225—252
. —
doi
:
.
18 мая 2015 года.
Lehman, M. M.
(англ.)
// Proceedings of the IEEE. — 1980. —
Iss. 68
,
no. 9
. —
P. 1060—1076
. —
doi
:
.
18 мая 2015 года.
Lehman, M. M.
(англ.)
// Software process technology. — Springer Berlin Heidelberg, 1996. —
P. 108—124
. —
doi
:
.
24 сентября 2015 года.