Skip to content
ilya0667 edited this page May 11, 2022 · 12 revisions

Понятия системной и программной инженерии

Реферат к лекции 6(22) Управление конфигурацией

Основные термины

Инженерия — область технической деятельности, включающая в себя целый ряд специализированных областей и дисциплин, направленная на практическое приложение и применение научных, экономических, социальных и практических знаний с целью обращения природных ресурсов на пользу человека.

Программная инженерия (software engineering) — приложение систематического, дисциплинированного, измеримого подхода к разработке, функционированию и сопровождению программного обеспечения (в составе АС, ИС), а также исследованию этих подходов; то есть, приложение дисциплины инженерии к программному обеспечению (ISO/IEC/IEEE 24765:2017).

Системная инженерия — междисциплинарный подход, охватывающий все технические усилия по развитию и верификации интегрированного и сбалансированного в жизненном цикле множества системных решений, касающихся людей, продукта и процесса, которые удовлетворяют потребности заказчика; междисциплинарный подход и средства для создания успешных систем.

Принципы и методы программной инженерии

К принципам программной инженерии отнесены:

  • принцип производственной организации,
  • принцип обеспечения технологичности,
  • принцип планирования трудозатрат на разработку программ и систем.

Методы программной инженерии - это структурные решения, предназначенные для разработки программного обеспечения и включающие системные модели, формализованные нотации и правила проектирования, а также способы управления процессом разработки.

Методы программной инженерии можно разделить на три группы:

  • методы прототипирования, базирующиеся на различных формах прототипов;
  • формальные методы, обоснованные математически;
  • эвристические методы, касающиеся неформализованных подходов (структурные, ориентированные на данные, объектно- ориентированные).

Методы прототипирования используются для получения прототипов - промежуточных версий программной системы. Прототипы создаются в некоторых процессах разработки для демонстрации концепций, заложенных в системе.

Термин «формальные методы» подразумевает ряд операций, в состав которых входят создание формальной спецификации системы, анализ и доказательство спецификации, реализация системы на основе преобразования формальной спецификации в программы и верификация программ. В формальном языке системной спецификации заложены математические концепции. При этом используется область дискретной математики, основанной на алгебре, теории множеств и алгебре логики.

Концепции, принципы и методы системной инженерии

В основании системной инженерии лежит ряд концепций — общих абстрактных представлений, связанных с пониманием её предмета, а также совокупность принципов, то есть исходных, принимаемых за истину правил, которые используются в качестве основы для рассуждений и/или для принятия решений.

В процессе развития системной инженерии сложились её основные принципы:

  • Переход от редукционистского к системному подходу.
  • Переход от монодисциплинарного к междисциплинарному подходу.
  • Переход от структурного к процессному подходу.
  • Переход от рабочего проектирования и конструирования к архитектурному проектному подходу.
  • Переход от непосредственной реализации к моделецентричной реализации.
  • Переход от одной группы описаний ко множественности групп описаний.
  • Переход от приоритета документов к приоритету данных.
  • Переход от единой верификации к раздельным верификации и валидации.
  • Переход от управления жизненным циклом как «технологическим конвейером» к «заказам-поставкам».
  • Переход от работы «для одного заказчика» к работе со множеством заинтересованных сторон.
  • Переход от методов жёсткого планирования к использованию гибких прогнозных методов.

В обобщённой форме набор методов (процессов) системной инженерии включает, как минимум, следующие действия, которые необходимы для получения оптимальной системы:

  • обеспечение надёжного проектного репозитория, который поддерживает необходимые инструменты для совместной работы множества специалистов над мультидисциплинарной информацией в ходе создания системы и управления её жизненным циклом;
  • точную оценку доступной информации и определение недостающей;
  • точное определение критериев производительности и эффективности, которые определяют успех или неудачу системного проекта;
  • получение и анализ всех исходных требований, которые отражают запросы пользователей и цели заинтересованных сторон;
  • проведение системного анализа для разработки проектных решений, отражающих поведение системы, которые должны соответствовать всем функциональным требованиям и требованиям к производительности;
  • распределение всех поведенческих элементов системы по соответствующим (подходящим) им элементам архитектуры;
  • проведение анализа компромиссных решений по альтернативным проектным решениям или архитектуре для поддержки процесса принятия решений;
  • создание исполняемых моделей для верификации и валидации работы системы.

Общая характеристика стандартов системной и программной инженерии

В составе стандартов системной и программной инженерии можно выделить четыре основные группы спецификаций:

  • стандарты основ системной и программной инженерии;
  • стандарты создания систем;
  • стандарты управления и оценки свойств систем и процессов;
  • стандарты описания систем и процессов.

Соотношение программной и системной инженерии в применении к ИС

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

Источники информации:

Clone this wiki locally