Классификация программного обеспечения (ПО) проводится по разным критериям — в зависимости от того, какую задачу нужно решить: подобрать софт под задачу, оценить лицензионные риски, спроектировать архитектуру или подготовить документацию.
По назначению (функциональная классификация)
Это базовая классификация, которая показывает, какую роль ПО играет в системе.
- Системное ПО. Управляет аппаратными ресурсами, обеспечивает работу других программ.
Примеры: операционные системы (Windows, Linux, macOS), драйверы устройств, утилиты (дефрагментаторы, антивирусы системного уровня), загрузчики (BIOS/UEFI). - Прикладное ПО. Решает конкретные задачи пользователя.
Примеры: текстовые редакторы, браузеры, бухгалтерские и CRM‑системы, игры. Внутри этой группы часто выделяют специализированное ПО для узких областей (САПР вроде AutoCAD, медицинские системы, банковские платформы). - Инструментальное ПО. Нужно для разработки, тестирования и поддержки других программ.
Примеры: компиляторы и интерпретаторы, отладчики, среды разработки (IDE), системы контроля версий, средства статического анализа кода.
По способу распространения и правам на использование
Здесь важна юридическая сторона и условия эксплуатации.
- Проприетарное ПО. Код закрыт, права принадлежат правообладателю; использование регулируется лицензией.
Пример: Microsoft Office, Adobe Photoshop. - Свободное ПО (free software). Даёт пользователю четыре свободы: запускать, изучать, изменять и распространять программу.
Пример: ядро Linux, GIMP. - Открытое ПО (open source). Исходный код открыт, условия использования определяются лицензией (MIT, Apache, GPL и др.). Не всегда бесплатно в денежном смысле, но открыто для изучения и модификации.
- Бесплатное ПО (freeware). Можно использовать без оплаты, но не обязательно с открытым кодом и правом модификации.
Пример: некоторые утилиты, антивирусы с ограниченной функциональностью. - Условно‑бесплатное ПО (shareware). Предоставляется бесплатно на пробный период или с урезанным функционалом; для полного доступа нужна покупка.
По среде исполнения и типу платформы
Показывает, где и как программа работает.
- Десктопное ПО. Запускается на персональном компьютере под ОС (Windows, macOS, Linux).
- Веб‑приложения. Клиентская часть работает в браузере, серверная — на удалённом сервере. Доступ через URL, не требует установки.
- Мобильные приложения. Для смартфонов и планшетов; бывают нативными (iOS/Android), кроссплатформенными (Flutter, React Native) или PWA.
- Встроенное ПО (firmware). Прошивка устройств (роутеры, телевизоры, контроллеры станков, автоэлектроника). Часто работает без прямого взаимодействия с пользователем.
- Серверное ПО. Предназначено для работы на серверах: веб‑серверы (Nginx, Apache), СУБД (PostgreSQL, MongoDB), очереди сообщений (RabbitMQ, Kafka), контейнеры и оркестраторы (Docker, Kubernetes).
По модели поставки и использования
Актуально для бизнеса и закупок.
- Boxed (коробочное) ПО. Физическая или цифровая лицензия на установку и использование на конкретных устройствах.
- SaaS (Software as a Service). ПО как услуга: доступ по подписке, обновления и инфраструктура у поставщика.
Пример: Google Workspace, Salesforce, Trello. - On‑premise. ПО устанавливается и эксплуатируется в инфраструктуре заказчика; контроль и ответственность — на стороне клиента.
- Cloud‑native. Приложения изначально спроектированы для облачной среды, используют её сервисы и масштабирование.
По масштабу и сложности
Полезно при планировании ресурсов и выборе процессов разработки.
- Малое ПО. Одна функция или небольшой набор, простая архитектура, поддержка силами 1–3 человек.
- Среднее ПО. Несколько модулей, интеграции, команда разработки 5–20 человек, есть требования к надёжности и документированию.
- Крупное ПО. Распределённая архитектура, множество интеграций, высокие требования к доступности и безопасности, команды по направлениям, сложная система управления изменениями.
По стабильности и зрелости
Важно для выбора ПО в критических системах.
- Стабильное ПО. Длительный срок эксплуатации, минимум критических ошибок, регулярные обновления безопасности.
- Зрелое (mature) ПО. Широкое применение, развитая экосистема, хорошая документация, поддержка сообщества или вендора.
- Экспериментальное/бета‑ПО. Может содержать критические ошибки, предназначено для тестирования новых возможностей; не рекомендуется для продуктивных сред.
По режиму эксплуатации и количеству пользователей
- Персональное ПО. Рассчитано на одного пользователя, учётные записи и настройки локальны.
- Коллективное ПО. Используется группой сотрудников, есть разграничение прав и ролей.
- Сетевое ПО. Доступ через сеть, часто с централизованным управлением и аудитом действий.
Практическое применение классификаций
- Для составления ТЗ и спецификаций чаще всего используют классификацию по назначению (системное/прикладное/инструментальное) и по среде исполнения (веб/мобильное/встроенное). Это помогает однозначно описать требования и границы системы.
- Для закупок и лицензий важна классификация по способу распространения (проприетарное/open source) и модели поставки (SaaS/on‑premise), чтобы учесть юридические и финансовые риски.
- Для архитектуры и планирования разработки полезны категории по масштабу, среде исполнения и модели поставки — они влияют на выбор технологий, процессов и команды.
- Для оценки рисков и надёжности используют классификацию по стабильности, зрелости и критичности применения.