Инженерия программных систем
Версия от 16:19, 18 ноября 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-уровневые архитектуры | Суперкомпьютеры |
Типичные пользователи | Операторы | Руководители различных уровней | Научные работники, аналитики |