Каждый программный продукт предназначен для выполнения определенных функций. По **назначению** все программные продукты можно разделить на 3 группы: системные, прикладные и гибридные.  
Программные продукты:
- **Системные продукты**. К системным обычно относят программные продукты, обеспечивающие функционирование вычислительных систем (как отдельных компьютеров, так и сетей):
	- **Операционные системы** - как правило, управляют ресурсами (процессором и памятью), процессами (задачами и потоками) и устройствами. Сложность организации операционных систем обуславливается степенью автоматизации и достигаемой эффективности процессов управления. Так мультипрограммные операционные системы существенно сложнее однопрограммных, что хорошо видно на примере MS DOS и Windows.
	- **Оболочки** (например, Norton Commander) в свое время появились для организации более удобного интерфейса пользователя с файловой системой MS DOS. Современные оболочки, такие, как FAR, используют для обеспечения пользователю привычной среды при работе с файловой системой.
	- **Утилиты**. К утилитам принято относить программы и системы, непосредственно не входящие в состав операционной системы, но обеспечивающие выполнение определенных функций, таких как архивация файлов, проверка компьютера на заражение вирусами, осуществление удаленного доступа к информации и др.
- **Прикладные программы и системы** ориентированы на решение конкретных пользовательских задач:
	- **Для разработчиков программ**. Разработчики программ используют специальные инструментальные средства, такие как компиляторы, компоновщики, отладчики, которые последнее время обычно интегрируют в системы программирования и среды разработки.
		- **CASE-средства** - ERwin, BPwin, Paradigm Plus, Rational Rose и др.
		- **Среды разработки**. Современные среды программирования, например, Delphi, Visual C++, реализуют визуальную технологию разработки программных продуктов и предоставляют программистам огромные библиотеки компонентов, которые можно включать в свою разработку. К этой же группе относят инструментальные комплексы создания баз данных, такие как Access, FoxPro, Oracle, средства создания интеллектуальных систем, например, экспертных, обучающих, систем контроля знаний и т. д
		- **Системы программирования**
		- **Отладочные средства**
	- **Для непрограммистов**, использующих компьютерные системы для достижения своих целей. Пользователи-непрограммисты в соответствии с современными требованиями не должны быть профессионалами в проблемах создания программных продуктов и специфике их взаимодействия с операционной системой, Для них разрабатывают специальные программные продукты, ориентированные на определенную предметную область. Такие продукты условно можно разделить па продукты общего назначения, профессиональные среды или пакеты, обучающие системы, развлекающие программы и т. д.
		- **Продукты общего назначения** используют разные группы пользователей. К ним можно отнести текстовые редакторы, например, WinWord, электронные таблицы типа Excel, графические редакторы, информационные системы общего назначения, например, карта Москвы, программы- переводчики, и т. п.
		- **Профессиональные продукты** предназначены для специалистов в различных областях, например, к ним можно отнести:
			- системы автоматизации проектирования, ориентированные на различные технические области
			- системы-тренажеры, например, тренажер для отработки действий пилотов в аварийной ситуации
			- бухгалтерские системы, например, 1C
			- издательские системы, например, PageMaker, QuarkXpress
			- профессиональные графические системы, например, Adobe Illustrator, PhotoShop, CorelDraw и т. п.
			- экспертные системы 
			- и т. д.
		- **Системы автоматизации производственных процессов** - отличаются от профессиональных тем, что они ориентированы на пользователей разных профессий, связанных единым производственным процессом.
		- **Обучающие программы и системы** в соответствии со своим названием предназначены для обучения, например, иностранным языкам, правилам дорожного движения и т. п.
		- **Развлекающие программы**. К развлекающим относят игровые программы, музыкальные программы, опять же информационные системы, но с тестами развлекающего характера, например гороскопы и т. п.
- **Гибридные системы** сочетают в себе признаки системного и прикладного программного обеспечения. Как правило, это большие, но узкоспециализированные системы, предназначенные для управления технологическими процессами различных типов в режиме реального времени. Для повышения надежности и снижения времени обработки в такие системы обычно включают программы, обеспечивающие выполнение функций операционных систем.
	- **Автоматизированные системы управления реального времени**
  
К каждому из перечисленных выше типов программного обеспечения при разработке, помимо функциональных, обычно предъявляют еще и определенные эксплуатационные требования.