Инженерия программных систем

Версия от 10:59, 3 августа 2016; Admin (обсуждение | вклад) (Классификация ПО)

Инженерия программных систем (Software Systems Engineering) - термин, предложенный Уинстоном Ройсом (Winston Royce), подчеркивающий тот факт, что Программная инженерия (Software Engineering) и Системная инженерия (Systems Engineering) имеют много общего. Так, например, принципы и методики системной инженерии применимы к программной, а многие концепции из программной инженерии дали начало появлению их в системной. Например, OOSE (Object-oriented software engineering).

Концепции

Программное обеспечение - это совокупность трех компонентов:

  • Команды (компьютерная программа, код). Команды различаются по уровню детальности, синтаксису и языку.
  • Структуры данных - информация, подлежащая обработке и преобразованию посредством команд.
  • Документация - описывает как работает программное обеспечение и как им пользоваться.

Программная система - это программное обеспечение, которое к тому же удовлетворяет определению системы.

Классификация ПО

  • Системное ПО - предоставляет службы (услуги) другим программам
  • Встроенное ПО - является частью более крупной системы и реализует конкретные функции или задачи
  • Прикладное ПО - автономная программа, удовлетворяющая конкретную потребность

Классификация программных систем

  • Встроенные программные системы (software-embedded systems), их также называют системы реального времени (real-time systems) или социотехнические системы (sociotechnical systems)
  • Программно насыщенные системы (software-intensive systems)
  • Вычислительно-ориентированные системы (computing-intensive systems)
Характеристика Встроенные программные системы Программно насыщенные системы Вычислительно-ориентированные системы
Цель Автоматизация сложных подсистем для достижения более высокого быстродействия и точности Манипуляции большими массивами информации для поддержки решений или приобретения знаний Решение трудных задач, моделирование сложных систем путем расчетов и имитации
Функции Алгоритмические, логические Транзакционные Вычислительные
Входы Данные от датчиков, регуляторов Информация, объекты Численные данные
Обработка Вычисления в реальном масштабе времени Манипуляция, графический интерфейс пользователя, обмен данными по сети Вычисления не в реальном масштабе времени
Выходы Действия, продукция Информация, объекты Информация
Временные характеристики Реальное время, непрерывно Нерегулярно По расписанию
Примеры Управление воздушным движением, системы вооружений, аэронавигация и управление летательным аппаратом Банковские сети, системы резервирования авиабилетов, веб-приложения Прогноз погоды, математическое и имитационное моделирование
Оборудование Мини- и микропроцессоры N-уровневые архитектуры Суперкомпьютеры
Типичные пользователи Операторы Руководители различных уровней Научные работники, аналитики

См. также