exam

Классификация программного обеспечения.

Классификация программного обеспечения (ПО) проводится по разным критериям — в зависимости от того, какую задачу нужно решить: подобрать софт под задачу, оценить лицензионные риски, спроектировать архитектуру или подготовить документацию.

По назначению (функциональная классификация)

Это базовая классификация, которая показывает, какую роль ПО играет в системе.

  • Системное ПО. Управляет аппаратными ресурсами, обеспечивает работу других программ.
    Примеры: операционные системы (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), чтобы учесть юридические и финансовые риски.
  • Для архитектуры и планирования разработки полезны категории по масштабу, среде исполнения и модели поставки — они влияют на выбор технологий, процессов и команды.
  • Для оценки рисков и надёжности используют классификацию по стабильности, зрелости и критичности применения.