SYSTEM ATLASЗагрузка материала

Законы эволюции ПО Лемана

Lehman’s Laws

Долгоживущая система усложняется без постоянного упрощения.

Простыми словами

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

Механизм действия

Сначала проверяют, есть ли исходное условие из определения. Затем смотрят, как оно влияет на структуру компонентов, потоки данных, ограничения и действия участников. Если эту связь не удаётся наблюдать, принцип не стоит использовать как готовое объяснение.

Пример в работе

Нерабочий подход

В задаче «API» сразу применить привычное решение и назвать происходящее «Законы эволюции ПО Лемана», не проверив, действительно ли работает этот механизм. Так можно улучшить один симптом и пропустить основную причину.

Системный подход

Использовать «Законы эволюции ПО Лемана» как гипотезу: сначала определить границы ситуации и исходное состояние, затем менять только то, что связано с проверяемым механизмом, и смотреть на результат.

Ограничения

Законы выведены из наблюдений за определёнными крупными программными системами; они не одинаково применимы к одноразовым, встроенным или формально ограниченным продуктам.

Источник

Meir M. Lehman, “Programs, Life Cycles, and Laws of Software Evolution”, 1980.

Первоисточник