Кризис программного обеспечения

«Кри́зис програ́ммного обеспе́чения» — термин, некогда использовавшийся в информатике для описания последствий быстрого роста вычислительной мощности компьютеров и сложности проблем, которые могут быть решены с их помощью. В сущности, это относится к сложности написания работоспособного, понятного программного обеспечения с использованием верифицированных алгоритмов.

Термин «кризис программного обеспечения» был введён Фридрихом Л. Бауэром на Конференции НАТО «Инженерия программного обеспечения» в 1968 в Гармиш-Партенкирхене (Германия)[1]. Термин использовался Эдсгером В. Дейкстрой в 1972 в его лекции при получении премии Тьюринга[2]:

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

Фридрих Л. Бауэр, автор термина «кризис программного обеспечения»

Причины кризиса программного обеспечения связаны с общей сложностью аппаратного обеспечения и существующим процессом разработки программного обеспечения. Кризис проявляет себя по-разному, в том числе:

  • Проекты превышают бюджет и сроки
  • Программы слишком неэффективны
  • Программы имеют слишком низкое качество
  • Программы не отвечают необходимым требованиям
  • Проекты неуправляемы
  • Код сложен для сопровождения
  • Программы не доходят до выпуска.
Эдсгер В. Дейкстра

Многие проблемы, связанные с программным обеспечением, были вызваны усложнением аппаратного обеспечения. В своём эссе Эдсгер В. Дейкстра отметил, что новые компьютеры в своё время были «воплощеннием таких серьёзных недостатков, что, [он считает], информационно-технологический прогресс отстал, по крайней мере, на десять лет»[2]. Он также считал, что влияние аппаратного обеспечения на программное обеспечение слишком часто упускалось из виду.

Различные процессы и методологии были разработаны в течение последних нескольких десятилетий, чтобы «укротить» кризис программного обеспечения. Однако, широко распространено мнение, что «серебряной пули нет» — то есть не существует универсального метода предотвращения перерасходов и провалов проектов. В целом, проекты по разработке программного обеспечения — достаточно большие, сложные, плохо документированные и затрагивающие непривычные аспекты — по-прежнему могут подвергаться крупным непредвиденным проблемам.

См. также править

Примечания править