Процесс разработки ПО и программная инженерия
Список вопросов к Python собеседованию
Кризис программного обеспечения
В 1968 году на конференции НАТО «Инженерия программного обеспечения» Фридрихом Л. Бауэром был введен термин «кризис программного обеспечения».
Проявления кризиса:
- Стоимость проектов превышает бюджет.
- В проектах превышаются сроки выполнения.
- Программное обеспечение было слишком неэффективным.
- Программное обеспечение имело слишком низкое качество.
- Программное обеспечение зачастую не отвечало необходимым требованиям.
- Трудности с поддержкой кода.
- ПО было непригодным для распространения.
Программная инженерия
На той же конференции был введен и термин «программная инженерия». С тех пор это переросло в профессию инженера-программиста (англ. software engineer) и область исследований, посвящённых созданию программного обеспечения, более качественного, доступного, лучше поддерживаемого и быстрее разрабатываемого.
Программная инженерия (англ. software engineering) - виды деятельности, выполняемые в процессе промышленного программирования и необходимые для успешного выполнения заказов. В сферу программной инженерии попадают все вопросы и темы, связанные с организацией и улучшением процесса разработки ПО, управлением коллектива разработчиков, разработкой и внедрением программных средств поддержки жизненного цикла разработки ПО.
Процесс разработки ПО
Процесс разработки программного обеспечения (англ. software development process) — процесс, посредством которого потребности пользователей преобразуются в программный продукт. Процесс разработки программного обеспечения является составной частью программной инженерии.
Процесс разработки состоит из множества подпроцессов:
- Анализ требований → Спецификация программного обеспечения
- Проектирование программного обеспечения
- Программирование
- Тестирование программного обеспечения
- Системная интеграция (System integration)
- Внедрение программного обеспечения
- Сопровождение программного обеспечения
Модели процесса:
- Водопадная (каскадная, последовательная) модель (англ. waterfall model)
- Итерационная модель
- Спиральная модель
Подробнее о моделях и методологиях разработки
Источники: