55
Современна Программная инженерия Системная инженерия Акоев Марк Анатольевич [email protected] Кафедра Программных средств и систем ФУО УрФУ 02 ноября 2011 г

Современна Программная инженерия. Системная инженерия

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: Современна Программная инженерия. Системная инженерия

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

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

Акоев Марк Анатольевич[email protected]

Кафедра Программных средств и систем ФУО УрФУ

02 ноября 2011 г

Page 2: Современна Программная инженерия. Системная инженерия

Software Engineering (SE)

1968 год Конференции НАТО

Page 3: Современна Программная инженерия. Системная инженерия

3

Новое – хорошо забытое старое

Системный подход

Начало XX века

1940-1960

Hall A Methodology for Systems Engineering [1962]

Холл Системотехника 1975

INCOSE1990

1990-2020-1970-1980

Ф.Е.Темников

Software Engineering NATO 1968 ACM/IEEE CS/

INCOSE2009

Page 4: Современна Программная инженерия. Системная инженерия

The Graduate Software Engineering 2009 (GSwE2009) [Требования к

подготовке магистров в области программной инженерии]

http://www.gswe2009.org Разработаны совместно • ACM (the Association for Computing Machinery)

www.acm.org • IEEE Computer Society www.computer.org Профессиональные сообщества принявшие участие в разработке

и поддерживающие GSwE2009: • International Council on Systems

Engineering (INCOSE) • National Defense Industrial Association (NDIA)

Systems Engineering Division

Page 5: Современна Программная инженерия. Системная инженерия

Что такое Systems Engineering?

Page 6: Современна Программная инженерия. Системная инженерия

6

Главные идеи системной инженерии

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

• Покупка информации, уменьшающей проектные риски.

• Исправление ошибок на как можно более ранней стадии, когда это относительно дешево – идея жизненного цикла.

Page 7: Современна Программная инженерия. Системная инженерия

7

7

Systems Engineer

Stakeholders

Management

Engineers

Programm/Projectmanagement

QuailityManagement

Page 8: Современна Программная инженерия. Системная инженерия

8

Что дает системная инженерия(по данным INCOSE)

Это достигается черезА) введение общего языка,

описывающего проектБ) сознательный сдвиг усилий

на ранние стадии проекта, где цена ошибки экспоненциально меньше

Стадия обнаружения ошибки

Коэффициент стоимости ошибки

Требования x1 (единица отсчета)

Проектирование x5

Строительство x12

Проверки x40

Функционирование x250

8% затрат на внедрение сиcтемной инженерии дают выигрыш в 20% стоимости проектов, и на 50% увеличивают вероятность окончания проекта в срок

Page 9: Современна Программная инженерия. Системная инженерия

9

Стилизованное представление функции ценности на протяжении ЖЦ

Time

Value

Lifecycle ValueProvided by System

(Next System)

Systemdelivered

Need identified

Next Systemdelivered

System unsatisfactory

Value Desired by Stakeholders

Lifecycle value lost due to lead time

Value loss partially offset by upgrades

Lifecycle value lost due to lack of adaptability

Source: (Browning & Honour, 2008), P17 9

Disposal

Delivery

SystemSystem dtVLCVПоставка

Списание

СистемыСистемы

Ценность системы на протяжении жизненного цикла

Система поставлена

Выявлена потребность

Системане устраивает

Следующая система поставлена

Время

(Следующая система)

Ценность

Желательная для заинтересованных сторон ценность

Потеря ценности из-за недостатка адаптивности

Потеря ценности из-за задержки поставки

Потеря ценности частично компенсируется обновлениями

Page 10: Современна Программная инженерия. Системная инженерия

10

Опасность недооценки требований

• Модель INCOSE: усилия по выполнению проекта растут как куб от числа требований

Page 11: Современна Программная инженерия. Системная инженерия

11

Кто использует методы системной инженерии в России?

• Атомная промышленность

• Судостроение

• Энергетика

Page 12: Современна Программная инженерия. Системная инженерия

12

Стандарты системной инженерии• Международные стандарты (базовый

стандарт -- ISO 15288 «Системная инженерия - процессы жизненного цикла систем»)

• Стандарты закупок Минобороны США, NATO, европейских военных

• Стандарты профессиональных организаций (IEEE).

• Используются в крупных проектах: военных, строительных (туннели, мосты), атомной энергетике (ITER)

Page 13: Современна Программная инженерия. Системная инженерия

Связь системной и программной инженерии

ISO 12207 => ISO 15288

Page 14: Современна Программная инженерия. Системная инженерия

14

25 обязательных процессов системной инженерии

Обеспечения проектов

– управление моделью жизненного цикла

– управление инфраструктурой

– управление портфелем проектов (программой)

– управление персоналом

– управление качеством Техническиеанализ требований архитектурный дизайн изготовление интеграция проверка (Verification) переход к эксплуатации приёмка (Validation) эксплуатация обслуживание вывод из эксплуатации

Проектныеуправление проектами

планирование проекта управление выполнением и контроль проекта

поддержка проектов управление решениями управление рисками управление конфигурацией управление информацией измерения

КонтрактацииЗакупкаПоставка

обеспечивают

Page 15: Современна Программная инженерия. Системная инженерия

15

Подход системной инженериик управлению жизненным циклом

Системная инженерия – это гармонизация подходов:• системного (назначение, границы и элементы

системы)• процессного (деятельность и акторы)• архитектурного (методы описания и их группировка)• жизненного цикла (4D-эволюция системы)• оценки зрелости процессов (стадии ЖЦ процесса)• оценки специальных свойств системы (процессные

выписки)

• Подход (approach) - способ сущностного описания. Практики зависят от сущностного описания.

Page 16: Современна Программная инженерия. Системная инженерия

16

ИдеяФункционирование

и развитие

Требования иархитектура

Рабочийпроект

Реализация

Сборка итестирование

Проверка и приёмка

Проверка и оценка

Деком

позиция и

специфицирование проекта

Инт

егра

ция

и

тест

иров

ание

про

екта

время

V-диаграмма

Page 17: Современна Программная инженерия. Системная инженерия

17

Моделеориентированность• Зачем нужна моделеориентированность:

– уточнение представления системы для разных целей– связь разных представлений о системе по клику мышки (или

составление «сводного отчета» по разным базам данных), за счет чего

• Это сверхвыгодно: по оценке NIST для больших проектов выигрыш до 30% от стоимости системы

• Моделеориентированность противопоставляется документоориентированности.

• Дело не в электронной форме документа, а в другом отношении к их содержанию (так, база данных – не документ, а документы для нее либо «первичка», либо «выписки»).

• Стандарты интеграции данных (прежде всего – ISO 15926).

Page 18: Современна Программная инженерия. Системная инженерия

Информационный обмен на этапах ЖЦ

Page 19: Современна Программная инженерия. Системная инженерия

19

Договориться о терминологии

Из чего состоит организация?Что существенно в организации?

По материалам компании FutureModels

Page 20: Современна Программная инженерия. Системная инженерия

20

Структурированные данные – основа для моделеориентированного подхода

Бумага

Электронные образы документов

Файлы приложений

Структурированные данные

Подшивка и поиск

Отслеживание и мониторинг

Процесс создания и

использования

УправлениеИнформациейЖизненного

цикла

Бо

ль

ше

сло

жн

ост

ь ф

ор

м и

ст

ои

мо

сть

пер

ехо

да

от

бум

аги

Больше сложность процессов и бизнес-выгоды

Программы 3D

WordExcelAutoCAD

TIFFPDF

Модель данных

Контент-менеджмент

ISO 15926XML

Схема предложена компанией INVESYS

Page 21: Современна Программная инженерия. Системная инженерия

Почему не работают методы, стандарты и практики?

ИНСТРУМЕНТЫ = ПО

Page 22: Современна Программная инженерия. Системная инженерия

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

Page 23: Современна Программная инженерия. Системная инженерия

DEMO

http://techinvestlab.ru/files/504456/demo_praxos_1.doc

ИлиJan L. G. Dietz (русск.: Дитц). Enterprise Ontology: Theory and

Methodology. -- B., Heidelberg, N. Y.: Springer, 2006 (ISBN-10 3-540-29169-5)

Page 24: Современна Программная инженерия. Системная инженерия

24

Page 25: Современна Программная инженерия. Системная инженерия

25

Почему необходим метод

Копирайт © 2010 César González-Pérez 25

задача

решение

НечеткоеФункционально ориентированноеОписание «чёрного ящика»

КонкретноеОбязательно структурированноеОписание «стеклянного ящика»

это и есть метод

Page 26: Современна Программная инженерия. Системная инженерия

26

Что я понимаю под «методом»?

Копирайт © 2010 César González-Pérez 26

Что мне делать?

Что является объектом действия?

ЯзыкиЯзыки

ПериодыПериоды

Кто должен это делать?

Когда это происходит?

Как я это выражаю?

Люди Продукты

Практики

Page 27: Современна Программная инженерия. Системная инженерия

27

ISO 15288: «Что делать»25 обязательных процессов системной инженерии

Обеспечения проектов

– управление описанием жизненного цикла

– управление инфраструктурой

– управление портфелем проектов (программой)

– управление персоналом

– управление качеством Техническиесбор требованийанализ требований архитектурный дизайн изготовление интеграция проверка (Verification) переход к эксплуатации приёмка (Validation) эксплуатация обслуживание вывод из эксплуатации

Проектныеуправление проектами

планирование проекта управление выполнением и контроль проекта

поддержка проектов управление решениями управление рисками управление конфигурацией управление информацией измерения

КонтрактацииЗакупкаПоставка

обеспечивают

Page 28: Современна Программная инженерия. Системная инженерия

Реализация ISO 24744

планируется

Page 29: Современна Программная инженерия. Системная инженерия

29

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

Копирайт © 2010 César González-Pérez 29

Page 30: Современна Программная инженерия. Системная инженерия

Альтернатива ISO 24744 – SPEM

Есть реализация EPF_Composer

Page 31: Современна Программная инженерия. Системная инженерия

31

SPEM

• http://ailev.livejournal.com/917251.html • Инструмент для управление созданием

регламентов и инструкций из библиотеки модулей: Eclipse Process Framework Project (EPF) http://www.eclipse.org/epf/ Инструмент бесплатно (с открытыми кодами) распространяет IBM Пример использования в модели ISO 15288 ниже по ссылке http://community.livejournal.com/incose_ru/10384.html

Page 32: Современна Программная инженерия. Системная инженерия

Интеграционное моделирование

Page 33: Современна Программная инженерия. Системная инженерия

Моделеориентированное выявление требований

Ян Александер

Page 34: Современна Программная инженерия. Системная инженерия

34

Page 35: Современна Программная инженерия. Системная инженерия

35

Page 36: Современна Программная инженерия. Системная инженерия

36

Page 37: Современна Программная инженерия. Системная инженерия

37

Page 38: Современна Программная инженерия. Системная инженерия

38

Page 39: Современна Программная инженерия. Системная инженерия

39

http://www.simantics.org/Экосистема Simantics

ДемонстрацииДокументация

Продукт открытый

Page 40: Современна Программная инженерия. Системная инженерия

40

Modelica

• https://www.modelica.org/

• http://ko.com.ua/modelica_34622

• http://ko.com.ua/modelica_34904

• Открытая реализация http://www.openmodelica.org/

Page 41: Современна Программная инженерия. Системная инженерия

41

• class DE "Решение ДУ"

• Real x(start=1);

• equation

• der(x) = -2*x;

• end DE;

Page 42: Современна Программная инженерия. Системная инженерия

42

Page 43: Современна Программная инженерия. Системная инженерия

Онтология 4D ISO 15926

Про ISO 15926 читать тут:http://techinvestlab.ru/ISO15926

смотреть лекцию по основам ISO 15926 тут:http://incose-ru.livejournal.com/21164.html

Page 44: Современна Программная инженерия. Системная инженерия

44

BORO

• Chris Partridge "Business Objects: Re-Engineering for Re-Use", 2000

• http://www.brunel.ac.uk/%7Ecssrcsp/BusObj.pdf

Page 45: Современна Программная инженерия. Системная инженерия

45

Gellish

• A. S. H. P. van Renssen. Gellish, A Generic Extensible Ontological Language: Design and Application of a Universal Data Structure. -- Delft: Delft University Press, 2005 (ISBN 90-407-2597-4).

Page 46: Современна Программная инженерия. Системная инженерия

West, Matthew Developing High Quality Data Models Morgan

Kaufmann 2011http://www.elsevierdirect.com/

ISBN/9780123751065/Developing-High-Quality-Data-

Models

Page 47: Современна Программная инженерия. Системная инженерия

47

Содержание

• Что такое ISO 15926?

• Мир в 4-мерном (4D) представлении

• Системы и элементы систем

• Классы

• Требования

• Каталоги продукции

• Выводы

47

Page 48: Современна Программная инженерия. Системная инженерия

48

What is ISO 15926?

• Серия стандартов по интеграции и обмену информацией в течение всего жизненного цикла крупных объектов – напр., АЭС, НПЗ, морских буровых платформ

• Включает:– Модель данных с семантикой на основе 4D-онтологии– Справочные данные– Методы реализации

• Я сосредоточусь на модели данных

48

Page 49: Современна Программная инженерия. Системная инженерия

49

3D

время

прос

тран

ство

Объект протяжён во времени

Наряду с настоящим, существуют и прошлое, и

будущее

1. Индивиды расположены как во времени, так и в пространстве , и имеют как темпоральные, так и пространственные части.

2. Если два индивида занимают одинаковую пространственно-временную область, они представляют собой одно и то же (экстенсионализм).

время

прос

тран

ство

Настоящее(все, что существует)

Объект движется во времени

1. Физические объекты не имеют темпоральных (временнЫх ) частей.

2. Возможно совмещение разных физических объектов (отсутствие экстенсионализма).

4D + экстенсионализм

49

Page 50: Современна Программная инженерия. Системная инженерия

50

Возможные миры

Прошлое Будущее

Реализованный

Возможный

Возможный

Желаемый

Время

Про

стра

нств

о

50

Page 51: Современна Программная инженерия. Системная инженерия

51

Онтологические допущения• Индивиды существуют в пространстве-времени и могут занимать

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

временной областью, т.е., если два индивида занимают одинаковую пространственно-временную область, то это один и от же индивид.

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

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

• Классы идентифицируются своими членами, т.е., если два класса состоят из одинаковых членов, то это один и тот же класс.

• Отношение – это совокупность объектов, играющих в этом отношении определенные роли. Отношение определяется «сигнатурой» - набором ролей.

51

Page 52: Современна Программная инженерия. Системная инженерия

52

Отношение целого и части

A

B

время

C

D

E

F

1. Ничто не может быть (нетривиальной) частью самого себя.

2. Если B является частью A, то A не является частью B (асимметрия).

3. Если B является частью A , а C – частью B, то C является частью A (транзитивность).

4. Если A имеет части (т.е. не является атомарным – в исходном, а не в физическом смысле), то A имеет как минимум две непересекающиеся части (напр., B и D на рис. 11‑1)

5. Если у E существует часть, не являющаяся также частью A, то E не является частью A.

6. При суммировании пересекающихся частей, например, D and F – области пересечения засчитываются только один раз.

7. Если какая-то часть целого F является частью целого D, то D и F пересекаются.

8. Существуют варианты мереологии (науки о частях и целом), в которых пространственно–временные области являются (тривиальными) частями самих себя. Я буду придерживаться более повседневного представления о том, что такое часть.

52

прос

тран

ство

Page 53: Современна Программная инженерия. Системная инженерия

53

Индивиды и состояния

состояние

период времени

индивид

время

прос

тран

ство

событие

53

Page 54: Современна Программная инженерия. Системная инженерия

54

Русское отделение INCOSE

• Сайт http://incose.ru/• Очные встречи вторую и четвертую среду

месяца в Москве (для иногородних организуется видеотрансляция).

• Материалы заседаний: http://community.livejournal.com/incose_ru53 заседания (доступен архив видеозаписей)

• Участвуют только члены INCOSE (вступить стоит $105 вот тут: http://incose.org).

Page 55: Современна Программная инженерия. Системная инженерия

55

Вопросы