Skip to content
kulichkinayuliya edited this page Nov 2, 2020 · 28 revisions

Выполнила - Куличкина Юлия группа ИДБ-17-06

Проверил - ?


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

1. Инструменты работы с требованиями (Software Requirements Tools).

2. Инструменты проектирования (Software Design Tools) — инструменты для создания и проверки программного дизайна. (SADT/IDEF, UML, BPMN/BPEL, Microsoft DSL и т.п.)

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

4. Инструменты тестирования (Software Testing Tools).

  • Генераторы тестов (test generators). Эти инструменты помогают в разработке сценариев тестирования.

  • Средства выполнения тестов (test execution frameworks). Эти средства обеспечивают среду исполнения тестовых сценариев в контролируемом окружении, позволяющем отслеживать поведение объекта, подвергаемого тестированию.

  • Инструменты оценки тестов (test evaluation tools). Эти инструменты поддерживают оценку результатов выполнения тестов, помогая определить в какой степени и где именно обнаруженное поведение соответствует ожидаемому поведению.

  • Средства управления тестами (test management tools).

  • Инструменты анализа производительности (performance analysis tools).

5. Инструменты сопровождения (Software Maintenance Tools). Эта тема охватывает инструменты, особенно важные для обеспечения сопровождения существующего программного обеспечения, подверженного модификациям:

  • Инструменты облегчения понимания (comprehension tools). Эти инструменты помогают человеку в понимании программ. Примерами могут служить различные средства визуализации.

  • Инструменты реинжиниринга (reengineering tools). Эти инструменты поддерживают деятельность по реинжинирингу, описанную в области знаний SWEBOK “Software Maintenance”.

6. Инструменты конфигурационного управления (Software Configuration Management Tools). Инструменты конфигурационного управления делятся на три категории:

  • Инструменты отслеживания (tracking) дефектов, расширений и проблем.

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

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

7. Инструменты управления инженерной деятельностью (Software Engineering Management Tools). Средства управления деятельностью по программной инженерии делятся на три категории:

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

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

  • Инструменты количественной оценки.

8. Инструменты поддержки процессов (Software Engineering Process Tools):

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

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

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

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

9. Инструменты обеспечения качества (Software Quality Tools) Средства обеспечения качества делятся на две категории:

  • Инструменты инспектирования. Эти средства используются для поддержки обзора (review) и аудита.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Clone this wiki locally