Области приложений программного обеспечения
В настоящий момент сформировано семь широких категорий компьютерного ПО, образующих постоянное поле деятельности для программных инженеров:
Системное ПО - коллекция программ, созданных для обслуживания других программ. Одни системные программы (например, компиляторы, редакторы, файл-менеджеры) обрабатывают сложные, но детерминированные информационные структуры. Другие системные приложения (например, драйверы, компоненты операционных систем, программное обеспечение сетей, телекоммуникационные процессоры) обрабатывают большие недетерминированные данные, т.е. данные, которые поступают на обработку в непредсказуемом порядке.
Прикладное ПО - программы, которые решают отдельные биз-нес-задачи в процессе принятия бизнес-решений, т.е. обслуживают (помогая человеку) или поддерживают (выполняя что-то в автоматическом режиме) бизнес-процессы.
Инженерное/научное ПО - обширный массив программ числовой обработки в областях от астрономии до вулканологии, от расчетов прочности до расчета орбит космических тел, от автоматизированного проектирования до молекулярной биологии и метеорологии.
Встроенное ПО - размещаемое внутри устройства или системы и используемое для реализации и контроля свойств и функций, предоставляемых конечному пользователю или самой системе (например, программное обеспечение автомобиля, такое как контроль горючего, формирование данных для контрольной панели, контроль неисправностей и др.).
ПО для линейных позиций в торговле - программное обеспечение, предоставляющее различные возможности как линейным торговым работникам, так и потребителям и заказчикам (складские системы, системы приема заказов и т.п.).
Web и мобильные приложения - это программные системы, неотъемлемой частью которых является компьютерная сеть и одновременно включающие браузерные приложения ПО для мобильных устройств.
ПО искусственного интеллекта - предоставляет для использования нечисловые алгоритмы, предназначенные для решения задач, не поддающихся числовому или идейно простому анализу. Приложения в этой области включают робототехнические системы, экспертные системы, распознавание образов (картинок и голоса), искусственные нейронные сети, доказательство теорем, игровые программы и др.
Миллионы программных инженеров по всему миру усердно работают над проектами в одной из этих категорий. В некоторых случаях создается новое ПО, но во многих других уже существующие приложения корректируются, адаптируются и расширяются. Уже не редкость, когда молодой программный инженер работает над программой, которая старше, чем он сам! Прошлые поколения программных инженеров оставили большое наследство в каждой из этих категорий. Будем надеяться, что наследство теперешнего поколения, созданное с помощью технологий программной инженерии, облегчит ношу будущих программных инженеров.