
- •Понятие системной инженерии. Назначение и функции системной инженерии
- •Место системной инженерии в процессе разработки и эксплуатации информационных систем.
- •Связь системной инженерии с программной инженерии и управлениями проектами.
- •Процессы управления системной инженерией.
- •Стандарты системной инженерии.
- •Понятие требования к программной системе. Классификация требований к программной системе.
- •Свойства требований к программной системе. Анализ требований требований к программной системе.
- •Декомпозиция, распределение и валидация требований.
- •Структура и архитектура программного обеспечения
- •Архитектурные структуры и точки зрения
- •Архитектурные стили
Стандарты системной инженерии.
Важнейшим компонентом методологического базиса системной инженерии являются официальные международные стандарты. Стандарты и нормативные руководства по системной инженерии разрабатываются в основном тремя организациями: Объединенным техническим комитетом 1 ИСО и МЭК, где рассматриваемыми вопросами занят в первую очередь 7-й подкомитет «Программная и системная инженерия», Институтом инженеров электротехники и электроники (IEEE) и Международным советом по системной инженерии (International Council on Systems Engineering – INCOSE). Эти три организации проводят работу по стандартизации в области системной и программной инженерии по согласованным программам. Кроме того, существенный вклад в разработку нормативно-технической базы системной инженерии внесли Альянс электронной индустрии (Electronic Industries Alliance – EIA) [8], и Институт программной инженерии университета Карнеги-Меллон [9,10].
Сегодня стандарты системной и программной инженерии разрабатываются, как правило, в неразрывном единстве и представляют развитую систему, в которой представлены словарь и своды знаний, гармонизированные между собой основополагающие стандарты на процессы жизненного цикла (ЖЦ) систем и программных средств, а также руководства по их применению, стандарты оценки качества процессов ЖЦ систем, стандарты оценки зрелости процессов и управления ИТ сервисами. Кроме того, в последние 2-3 года появились стандарты, в которых определяются детализированные требования к отдельным процессам ЖЦ систем, такие как ISO/IEC 16085:2006 Systems and software engineering - Life cycle processes -- Risk management, ISO/IEC 15939:2007 Systems and software engineering - Measurement process, ISO/IEC 26702:2007 Systems engineering - Application and management of the systems engineering process и другие.
Таким образом, быстрыми темпами идет работа по формированию развитой системы нормативно-технической документации, содержащей описание методологического базиса создания систем различных классов и назначения, который на основе единого системного подхода задает рекомендованные правила такой работы, применимые как в сфере системной так и программной инженерии. К сожалению эта работа остается практически незамеченной в нашей стране, а её результаты обсуждаются лишь отдельными энтузиастами из числа ИТ-специалистов, занятых в коммерции, промышленности и образовании.
Понятие требования к программной системе. Классификация требований к программной системе.
Программные требования – свойства программного обеспечения, которые должны быть надлежащим образом представлены в нём для решения конкретных практических задач. Данная область знаний касается вопросов извлечения (сбора), анализа, специфицирования и утверждения требований.
Опыт индустрии информационных технологий однозначно показывает, что вопросы, связанные с управлением требованиями, оказывают критически-важное влияние на программные проекты. Только систематичная работа с требованиями позволяет корректным образом обеспечить моделирование задач реального мира и формулирование необходимых приемочных тестов для того, чтобы убедиться в соответствии создаваемых программных систем критериям, заданным реальными практическими потребностями [Орлик].
Требование – условие или особенность, которой должна удовлетворять система.
Требованием может быть:
функциональность, необходимая заказчику или пользователю для разрешения проблем (или получения прибыли);
функциональность, которая должна быть реализована в системе в соответствии с контрактом, стандартом, спецификацией, инструкцией или другим официальным документом;
ограничение, наложенное заинтересованным лицом.
В зависимости от формата, источника и общих характеристик, требования могут быть разделены на различные типы. Несколько типов требований, наиболее часто использующихся в проектах:
потребности заинтересованного лица: требование от заинтересованного лица;
функциональная особенность: предоставляемая системой функциональность, обычно формулируемая бизнес-аналитиком; назначение особенности – удовлетворить потребности заказчика;
сценарий Использования (Use Case): описание поведения системы в терминах последовательности действий;
дополнительное требование: другое требование (обычно нефункциональное), которое не может быть охвачено сценариями использования;
тестовые сценарии (Test Cases): спецификация тестовых исходных данных, условий выполнения и ожидаемых результатов;
сценарий (Алгоритм, Scenario): особая последовательность действий; определенный путь по сценариям использования.
Эти типы требований могут быть представлены в виде пирамиды, как показано на Рисунке 1.1.
На верхнем уровне располагаются потребности заинтересованного лица. На последующих уровнях находятся функциональные особенности, сценарии использования и дополнительные требования. Достаточно часто на разных уровнях этих требований могут быть выяснены детали различного уровня. Чем ниже уровень, тем более детально описывается требование.