exam01 6 - stankin/design-part-1 GitHub Wiki


Понятие процесса. Системная и программная инженерия. Процессы в контексте системы и специальные процессы программных средств.

Реферат к лекции 1. Объект и предмет проектирования.

Выполнил - Прилепский Антон Денисович ИДБ-18-07

Проверил - Лузанчук Данила Джангарович ИДБ-18-07

Понятие процесса

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

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

Системная инженерия

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

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

Основные концепции системной инженерии включают следующие понятия:

  • Система - Совокупность взаимосвязанных и (или) взаимодействующих элементов.

  • Жизненный цикл - Совокупность явлений и процессов, повторяющаяся с периодичностью, определяемой временем существования типовой конструкции изделия от ее замысла до утилизации или конкретного экземпляра изделия от момента завершения его производства до утилизации..

  • Заинтересованные стороны - Лицо или группа лиц, заинтересованные в деятельности или успехе организации.

Принципы системной инженерии

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

  1. Переход от редукционистского к системному подходу.

  2. Переход от монодисциплинарного к междисциплинарному подходу.

  3. Переход от структурного к процессному подходу.

  4. Переход от рабочего проектирования и конструирования к архитектурному проектному подходу.

  5. Переход от непосредственной реализации к моделецентричной реализации.

  6. Переход от одной группы описаний ко множественности групп описаний.

  7. Переход от приоритета документов к приоритету данных.

  8. Переход от единой верификации к раздельным верификации и валидации.

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

  10. Переход от работы «для одного заказчика» к работе со множеством заинтересованных сторон.

  11. Переход от методов жёсткого планирования к использованию гибких прогнозных методов.

Методы системной инженерии

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

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

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

  • точную оценку доступной информации и определение недостающей;

  • точное определение критериев производительности и эффективности, которые определяют успех или неудачу системного проекта;

  • получение и анализ всех исходных требований, которые отражают запросы пользователей и цели заинтересованных сторон;

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

  • распределение всех поведенческих элементов системы по соответствующим (подходящим) им элементам архитектуры;

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

  • создание исполняемых моделей для верификации и валидации работы системы.

Предмет системной инженерии

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

Создание таких систем требует усиленного внимания к следующим процедурам:

  • разработке архитектуры систем, проектированию систем и их элементов;

  • системному анализу и исследованию операций;

  • управлению инженерной деятельностью;

  • выбору технологий и методик;

  • эффективному управлению жизненным циклом системы.

Профиль современной системной инженерии включает следующие основные области деятельности:

  1. Управление организацией (организационно-управленческая деятельность).

  2. Управление проектами (проектно-управленческая деятельность).

  3. Управление инженерными решениями (проектно-инженерная деятельность).

  4. Специальные инженерные дисциплины (технологическая деятельность).

Официальные стандарты в области системной инженерии

Признанные международным индустриальным сообществом стандарты и нормативные руководства по системной инженерии разрабатываются, в основном, тремя организациями:

  • Седьмой подкомитет Объединённого технического комитета Международной организации стандартизации и Международной электротехнической комиссии «Системная и программная инженерия» .

  • Институт инженеров электротехники и электроники .

  • Международный совет по системной инженерии .

Эти три организации проводят работу по стандартизации в области системной инженерии по согласованным программам, начиная с 1995 года.

Программная инженерия

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

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

Программное обеспечение (ПО) - Совокупность компьютерных программ и программных документов, необходимых для эксплуатации этих программ.

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

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

В качестве основы для реализации методов программной инженерии, как правило, используются CASE-средства. Совокупность методов, применяемых в жизненном цикле разработки программного обеспечения и объединенных одним общим философским подходом, представляет собой методологию разработки.

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

  • методы прототипирования, базирующиеся на различных формах прототипов;

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

  • формальные методы, обоснованные математически;

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

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

Инструменты (CASE) программной инженерии :

1. Инструменты работы с требованиями

2. Инструменты проектирования — инструменты для создания и проверки программного дизайна.

3. Инструменты конструирования . В соответствии с пониманием “конструирования”, заданным соответствующей областью знаний SWEBOK. Эти инструменты используются для производства и трансляции программного представления (например, исходного кода), достаточно детального и явного для машинного выполнения.

4. Инструменты тестирования .

  • Генераторы тестов, поддерживающие функцию разработки сценариев тестирования;

  • Средства выполнения тестов, позволяющие оценивать поведение тестируемого объекта;

  • Средства оценки тестов, служащие для определения соответствия наблюдаемого поведения объекта ожидаемому;

  • Менеджеры тестов, обеспечивающие управление тестами;

  • Инструменты анализа производительности, используемые для оценки производительности.

5. Инструменты сопровождения ПО можно поделить на 2 категории:

  • Инструменты для облегчения понимания человеком программ (средства визуализации);

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

6. Инструменты конфигурационного управления:

  • Инструменты отслеживания дефектов и проблемы;

  • Инструменты управления версиями;

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

7. Инструменты управления инженерной деятельностью:

  • Инструменты планирования и отслеживания проектов;

  • Инструменты управления риском;

  • Инструменты количественной оценки, связанной оценкой качества проектов по созданию ПО.

8. Инструменты поддержки процессов:

  • Инструменты моделирования;

  • Инструменты для управления проектами, обеспечивающими возможность управления процессами;

  • Инструменты конфигурационного управления, задающие основные параметры;

  • Ролевые платформы разработки ПО, позволяющие распределять роли в проекте.

9. Инструменты обеспечения качества:

  • Инструменты экспертирования;

  • Инструменты анализа.

Процессы в контексте системы

1. Процессы соглашения

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

2. Процессы организационного обеспечения проекта

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

Процессы организационного обеспечения проекта включают в себя:

  • процесс менеджмента модели жизненного цикла;

  • процесс менеджмента инфраструктуры;

  • процесс менеджмента портфеля проектов;

  • процесс менеджмента людских ресурсов;

  • процесс менеджмента качества.

3. Процессы проекта

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

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

Процессы менеджмента проекта применяются на уровне строгости и формализации, зависящих от риска и сложности проекта:

  • процесс планирования проекта;

  • процесс управления и оценки проекта.

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

  • процесс менеджмента решений;

  • процесс менеджмента рисков;

  • процесс менеджмента конфигурации;

  • процесс менеджмента информации;

  • процесс измерений.

4. Технические процессы

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

Технические процессы состоят из следующих процессов:

  • определение требований правообладателей;

  • анализ системных требований (специальный случай процесса анализа требований);

  • проектирование архитектуры системы (специальный случай процесса проектирования архитектуры);

  • процесс реализации (специальный случай процесса реализации элементов системы);

  • процесс комплексирования системы (специальный случай процесса комплексирования);

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

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

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

  • процесс функционирования программных средств (специальный случай процесса функционирования);

  • процесс сопровождения программных средств (специальный случай процесса сопровождения);

  • процесс изъятия из обращения программных средств (специальный случай процесса изъятия и списания).

Специальные процессы программных средств

1. Процессы реализации программных средств

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

Процесс реализации программных средств включает в себя несколько специальных процессов более низкого уровня:

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

  • процесс проектирования архитектуры программных средств;

  • процесс детального проектирования программных средств;

  • процесс конструирования программных средств;

  • процесс комплексирования программных средств;

  • процесс квалификационного тестирования программных средств.

2. Процессы поддержки программных средств

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

Существует восемь таких процессов:

  • процесс менеджмента документации программных средств;

  • процесс менеджмента конфигурации программных средств;

  • процесс обеспечения гарантии качества программных средств;

  • процесс верификации программных средств;

  • процесс валидации программных средств;

  • процесс ревизии программных средств;

  • процесс аудита программных средств;

  • процесс решения проблем в программных средствах.

3. Процессы повторного применения программных средств

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

Процессами повторного применения программных средств являются:

  • процесс проектирования доменов;

  • процесс менеджмента повторного применения активов;

  • процесс менеджмента повторного применения программ.

Ссылки