Процесс разработки ПО и программная инженерия

Основные выкладки

Список вопросов к Python собеседованию

В 1968 году на конференции НАТО «Инженерия программного обеспечения» Фридрихом Л. Бауэром был введен термин «кризис программного обеспечения».

Проявления кризиса:

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

На той же конференции был введен и термин «программная инженерия». С тех пор это переросло в профессию инженера-программиста (англ. software engineer) и область исследований, посвящённых созданию программного обеспечения, более качественного, доступного, лучше поддерживаемого и быстрее разрабатываемого.

Программная инженерия (англ. software engineering) - виды деятельности, выполняемые в процессе промышленного программирования и необходимые для успешного выполнения заказов. В сферу программной инженерии попадают все вопросы и темы, связанные с организацией и улучшением процесса разработки ПО, управлением коллектива разработчиков, разработкой и внедрением программных средств поддержки жизненного цикла разработки ПО.

Процесс разработки программного обеспечения (англ. software development process) — процесс, посредством которого потребности пользователей преобразуются в программный продукт. Процесс разработки программного обеспечения является составной частью программной инженерии.

Процесс разработки состоит из множества подпроцессов:

  • Анализ требований → Спецификация программного обеспечения
  • Проектирование программного обеспечения
  • Программирование
  • Тестирование программного обеспечения
  • Системная интеграция (System integration)
  • Внедрение программного обеспечения
  • Сопровождение программного обеспечения

Модели процесса:

  • Водопадная (каскадная, последовательная) модель (англ. waterfall model)
  • Итерационная модель
  • Спиральная модель
«Серебряной пули нет»
На сегодняшний день не существует универсального процесса разработки ПО - набора методик, правил и предписаний, подходящих для ПО любого вида, для любых компаний, для команд любой национальности.

Источники:

Подробная статья