1. Чем программа отличается от ПО
<aside>
💡 Определение формально
- Программа — непосредственно код, набор инструкций, которые говорят компуктеру что-то сделать
- ПО (программное обеспечение) — программа, имеющая помимо самого кода дополнительные артефакты (тесты, документация). Разрабатывается в команде по строгой методологии, реализует функциональные и нефункциональные требования заказчика.
</aside>
Основные отличия ПО от программы
- Брукс: Программа отличается от ПО с той же функциональности по трудозатратам более чем в 3 раза
- Время жизни ПО значительно больше, чем у программы, ПО поддерживают и развивают
- ПО используется интенсивнее программы
- ПО, в отличие от программы, пишется соответственно требованиям компании или команды, в которой оно разрабатывается. К таким требованиям относятся архитектура, нейминг, использование конкретных библиотек и фреймворков и так далее
- В отличие от программы, уровень тестирования и документации ПО значительно выше
2. Дайте определение ПО
<aside>
💡 Формально:
- ПО (программное обеспечение) — программа, имеющая помимо самого кода дополнительные артефакты (тесты, документация). Разрабатывается в команде по строгой методологии, реализует функциональные и нефункциональные требования заказчика.
По Харлану Миллсу:
- ПО — множество развивающихся во времени логических предписаний, с помощью которых некоторый коллектив людей управляет и использует многопроцессорную и распределенную систему вычислительных устройств.
</aside>
3. Назовите главные отличия программной инженерии от программирования.
- Программная инженерия подразумевает работу в команде, в программировании это не обязательно
- Основная цель программной инженерии — удовлетворение требований заказчика
- Много внешних коммуникаций (с заказчиком, например)
- В процессе разработки ПО, помимо кода появляется много других артефактов работы
- Много много много документации ко всему к чему только можно
- Много компромиссов
- Много денег в индустрии