
- •Понятие системной инженерии. Назначение и функции системной инженерии
- •Место системной инженерии в процессе разработки и эксплуатации информационных систем.
- •Связь системной инженерии с программной инженерии и управлениями проектами.
- •Процессы управления системной инженерией.
- •Стандарты системной инженерии.
- •Понятие требования к программной системе. Классификация требований к программной системе.
- •Свойства требований к программной системе. Анализ требований требований к программной системе.
- •Декомпозиция, распределение и валидация требований.
- •Структура и архитектура программного обеспечения
- •Архитектурные структуры и точки зрения
- •Архитектурные стили
Понятие системной инженерии. Назначение и функции системной инженерии
Системная инженерия (англ. System Engineering) - междисциплинарный подход к проблеме создания успешно функционирующих систем и средства для её решения.
Фокусируется (при постоянном внимании к охвату проблемы во всей полноте):
на определении нужд пользователей и требуемой функциональности на ранних стадиях цикла разработки,
на документирования требований,
на синтезе дизайна системы,
на подтверждении соблюдения пользовательских требований.
Описывает процесс разработки систем и как бизнес-процесс, и как технический процесс.
Охватывает стадии жизни систем от появления замысла до вывода из эксплуатации.
Системная инженерия включает в себя пять функций.
Определение проблемы - указание потребностей и ограничений путем анализа требований и взаимодействия с заказчиком.
Анализ решений - выделение набора возможных способов удовлетворения потребностей и ограничений, их анализ и выбор оптимального.
Планирование процессов - определение задач, которые должны быть выполнены, объема ресурсов и затрат, необходимых для создания изделия, очередности задач и потенциальных рисков.
Контроль процессов - определение методов мониторинга проекта и процессов, измерение прогресса, оценка промежуточных изделий и принятие по мере необходимости корректирующих действий.
Оценка изделий - определение качества и количества создаваемых изделий путем оценочного планирования, тестирования, демонстрации, анализа, верификации и контроля.
Место системной инженерии в процессе разработки и эксплуатации информационных систем.
Системная инженерия — междисциплинарный подход и средства для создания успешных систем[1]; междисциплинарный подход, охватывающий все технические усилия по развитию и верификации интегрированного и сбалансированного в жизненном цикле множества системных решений, касающихся людей, продукта и процесса, которые удовлетворяют потребности заказчика
Системные инженеры имеют дело прежде всего с общими системными требованиями и дизайном, включая аппаратные средства и людские нужды. Они чаще всего работают над разбиением функциональности для оборудования, программного обеспечения или человеческих операторов. Таким образом, результат процесса инженерии систем служит в качестве стартовой точки в процессе программной инженерии.
Системная инженерия – это практическое применение научных, инженерных и управленческих навыков, необходимых для преобразования операционных требований в описание конфигурации системы, которая наилучшим образом удовлетворяет этим требованиям. Это общий процесс решения проблем, который применяется ко всему техническому управлению в проекте, посвященном разработке системы, предоставляя механизм формулирования и совершенствования определений изделий и процессов системы.
Стандарт IEEE Std. 1220-1998 описывает процесс системной инженерии и ее применение на протяжении всего цикла жизни изделия [Std. 1220-1998]. Системная инженерия порождает документы, а не оборудование. Документы связывают процессы разработки с циклом жизни проекта. Они определяют предполагаемые окружения процессов, интерфейсы и инструменты управления рисками в рамках всего проекта.
Системная инженерия включает в себя пять функций.
Определение проблемы – указание потребностей и ограничений путем анализа требований и взаимодействия с заказчиком.
Анализ решений – выделение набора возможных способов удовлетворения потребностей и ограничений, их анализ и выбор оптимального.
Планирование процессов – определение задач, которые должны быть выполнены, объема ресурсов и затрат, необходимых для создания изделия, очередности задач и потенциальных рисков.
Контроль процессов – определение методов мониторинга проекта и процессов, измерение прогресса, оценка промежуточных изделий и принятие по мере необходимости корректирующих действий.
Оценка изделий – определение качества и количества создаваемых изделий путем оценочного планирования, тестирования, демонстрации, анализа, верификации и контроля.
Системная инженерия формирует основу всего хода проекта разработки, а также механизм определения пространства решений в терминах систем и интерфейсов с внешними системами. Пространство решений описывает изделие на самом высоком уровне, прежде чем требования к нему будут разделены на аппаратную и программную составляющую.
Этот подход аналогичен присущей программной инженерии практике – накладывать ограничения как можно позже в процессе разработки. Чем позже на проект будут наложены ограничения, тем более гибким будет реализованное решение.
Термин «системная инженерия программного обеспечения» (СИПО) появился в начале 80-х годов, и его приписывают Уинстону Ройсу [Уинстону Ройсу]. СИПО отвечает за общее техническое управление системой и подтверждение корректности окончательных системных продуктов. Как и системная инженерия, СИПО порождает документы, а не компоненты. В этом она отличается от программной инженерии (ПрИ), порождающей компьютерные программы и руководства пользователей.
СИПО начинается, когда системные требования разделены на аппаратные и программные подсистемы. СИПО формирует основу для всей разработки программного обеспечения в проекте и, как и ПрИ, представляет собой одновременно и технический и управленческий процесс. Технический процесс СИПО – аналитическая работа, необходимая для преобразования операционных требований в:
описание программной системы;
дизайн программного обеспечения заданного размера, конфигурации и качества;
документацию программной системы в виде требований и спецификаций для проектирования;
процедуры, необходимые для верификации, тестирования и принятия окончательного программного продукта;
документацию, необходимую для его использования и сопровождения.
СИПО не является описанием работ. Это процесс, который выполняют многие люди и организации: системные инженеры, менеджеры, программные инженеры, программисты и, не стоит забывать пользователи.
По мере того как крупные системы все больше зависят от программ, применение методов системной инженерии к разработке программного обеспечения в состоянии помочь избежать существенных проблем.
Впрочем, разработчики программного обеспечения часто игнорируют эти методы. Они считают, что чисто программные системы или системы, работающие на массовых компьютерах, — всего лишь программные, а не системные проекты. Игнорирование системных аспектов разработки программного обеспечения и ведет к кризису.