35
OMG! Essence: единая теория программной инженерии? ЮРИЙ КУПРИЯНОВ SECON’2016 22/04/2016

SECON'2016. Куприянов Юрий, OMG Essence - единая теория программной инженерии

  • Upload
    secon

  • View
    172

  • Download
    4

Embed Size (px)

Citation preview

Page 1: SECON'2016. Куприянов Юрий, OMG Essence - единая теория программной инженерии

OMG! Essence: единая теория программной инженерии?

ЮРИЙ КУПРИЯНОВSECON’2016

22/04/2016

Page 2: SECON'2016. Куприянов Юрий, OMG Essence - единая теория программной инженерии

В мире много методов приемов практик идеологий разработки ПО

SCRUM AgileXP

UML

RUP

MSF

Use Cases

Kanban

Pair Programming

Model Driven Development

Personas

V-model

User StoryLean

DevOps

PRINCE2

ISO 12207

Continious IntegrationWaterfall

BPMN

OpenUP

Definition of Done

BDD

Automate Testing

UX centered design

Feature Driven Development

Test Driven Development

ГОСТ 34

ISO 24744

Literate Programming

DSDM

Lean UX

ScrumBan

Page 3: SECON'2016. Куприянов Юрий, OMG Essence - единая теория программной инженерии

Ивар ЯкобсонUML, RUP, аспектно-ориентированное программирование

Бертран МейерEiffel, ООП, контрактное программирование

Ричард СолейOMG, UML, CORBA, MDA

Page 4: SECON'2016. Куприянов Юрий, OMG Essence - единая теория программной инженерии

SoftwareEngineeringMethodAndTheory

Page 5: SECON'2016. Куприянов Юрий, OMG Essence - единая теория программной инженерии

сегодня серьезно страдает от незрелых практик.

Основные проблемы:•Погоня за модой.•Отсутствие прочной, признанной

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

различия которых искусственно преувеличены.•Отсутствие надежной экспериментальной

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

практикой и академическими исследованиями.

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

Page 6: SECON'2016. Куприянов Юрий, OMG Essence - единая теория программной инженерии

Мы поддерживаем процесс нового основания программной инженерии – на твердой теории, проверенных принципах и лучших практиках, которые:

•Включают в себя ядро согласованных элементов, расширяемых для конкретных применений.•Решают как технологические, так и

человеческие вопросы.•Поддержаны индустрией, наукой и

пользователями.•Поддерживают расширение в

условиях меняющихся требований и технологий. ”

Page 7: SECON'2016. Куприянов Юрий, OMG Essence - единая теория программной инженерии

Подписанты призыва

Page 8: SECON'2016. Куприянов Юрий, OMG Essence - единая теория программной инженерии

Подписанты призыва

Page 9: SECON'2016. Куприянов Юрий, OMG Essence - единая теория программной инженерии

Обучение

ПрактикаТеория

Page 10: SECON'2016. Куприянов Юрий, OMG Essence - единая теория программной инженерии

Методы Methods

Практики Practices

Ядро The Kernel

Язык The Language

Методы состоят из практик

Практики описаны элементами Ядра

Методы, Практики и Ядро определены в терминах Языка

Page 11: SECON'2016. Куприянов Юрий, OMG Essence - единая теория программной инженерии

Потребитель Customer

Решение Solution

Деятельность Endeavor

Области интереса

Page 12: SECON'2016. Куприянов Юрий, OMG Essence - единая теория программной инженерии

АльфыALPHAAbstract-Level Progress Health Attribute

Поле деятельностиActivity Space

КомпетенцииCompetence

Внутри областей интереса

α

Page 13: SECON'2016. Куприянов Юрий, OMG Essence - единая теория программной инженерии

Потребитель

Решение

Деятельность

Альфы

Возможность Стейкхолдер

Требования Программная система

Работа

Технология работы

Команда

Page 14: SECON'2016. Куприянов Юрий, OMG Essence - единая теория программной инженерии

Потребитель

Решение

Деятельность

Связи Альф

Возможность Стейкхолдер

Требования Программная система

Работа

Технология работы

Командапланирует и производит

предоставляет

удовлетворяет

создает

потребляет и использует

задают ограничения

применяетнаправляет

Обновляет, изменяет

поддерживает

предъявляетпомогает использовать

фокусирует

Page 15: SECON'2016. Куприянов Юрий, OMG Essence - единая теория программной инженерии

Потребитель

Решение

Деятельность

Исследовать возможность

Понять нужды

Убедиться в удовлетворении

Изучать использование

системы

Понять требова-

ния

Спроек-тировать систему

Реализо-вать

систему

Обслу-живать систему

Приготовиться выполнять

работу

Координи-ровать дела

Поддерживать команду

Отслеживать прогресс

Протес-тировать систему

Развер-нуть

систему

Прекратить работу

Поле деятельности

Page 16: SECON'2016. Куприянов Юрий, OMG Essence - единая теория программной инженерии

Потребитель

Решение

Деятельность

Анализ Разработка

Представление интересов стейкхолдеров

Лидерство Управление

Тестирование

Компетенции

Page 17: SECON'2016. Куприянов Юрий, OMG Essence - единая теория программной инженерии

Поле деятельности

Компетенция

Дело

Состояние альфы

Рабочий продукт

Имеет

Требует

Создает/изменяет

Подтверждает

Воплощается в

Воплощается в

НамечаетПриводит к

ДелоДело

Как это работает:

Альфа

Page 18: SECON'2016. Куприянов Юрий, OMG Essence - единая теория программной инженерии

Состояние альфыВыявлены

Представлены

Вовлечены

В согласии

Удовлетворены развертыванием системы

Удовлетворены работой системы

Стейкхолдеры выявлены.

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

Представители стейкхолдеров вовлечены в работу и выполняют свои обязанности.

Представители стейкхолдеров находятся в согласии.

Минимальные ожидания представителей стейкхолдеров удовлетворены.

Система удовлетворяет или превышает минимальные ожидания стейкхолдеров.

Page 19: SECON'2016. Куприянов Юрий, OMG Essence - единая теория программной инженерии

Архитектура выбрана

Готова к демонстрации

Готова к использованию

Готова к запуску

Эксплуатируется

Выведена из эксплуатации

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

Работающая версия системы готова для демонстрации соответствия архитектуры и возможности тестирования.

Система готова к использованию и демонстрирует заданные характеристики качества.

Система была принята к развертыванию и запуску.

Система используется в операционном окружении.

Система больше не поддерживается.

Система

Page 20: SECON'2016. Куприянов Юрий, OMG Essence - единая теория программной инженерии

Намечена

Сформирована

Сотрудничает

Производит

Распущена

Чек-лист:Индивидуальные обязанности понимаются.Набрано достаточное число членов команды,

чтобы работа продвигалась.Каждый член команды понимает, как команда

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

работу.Все члены команды встретились (возможно,

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

они увязаны с их компетенциями.Члены команды принимают работу.Любые внешние смежники (организации,

команды и индивиды) определены.Механизмы общения в команде определены.Каждый член команды принял обязательство

работать в команде, как определено.

Команда была пополнена достаточным количеством людей с принятыми обязательствами, чтобы начать миссию.

Команда

Page 21: SECON'2016. Куприянов Юрий, OMG Essence - единая теория программной инженерии
Page 22: SECON'2016. Куприянов Юрий, OMG Essence - единая теория программной инженерии

WikiVote! 2012 22

Page 23: SECON'2016. Куприянов Юрий, OMG Essence - единая теория программной инженерии

Чек-листы для состоянийТребования 1/6Выявлены Стейкхолдеры согласны, что система

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

Page 24: SECON'2016. Куприянов Юрий, OMG Essence - единая теория программной инженерии

Чек-листы для состоянийТребования 2/6Определены Выявлены стейкхолдеры, вовлеченные в разработку

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

Page 25: SECON'2016. Куприянов Юрий, OMG Essence - единая теория программной инженерии

SoftwareSystem

Work

Team

Requirements

http://www.slideshare.net/junesungpark/applying-essence-in-practiceberlin-ed

Page 26: SECON'2016. Куприянов Юрий, OMG Essence - единая теория программной инженерии

Достигнуты Не достигнуты

http://www.slideshare.net/junesungpark/applying-essence-in-practiceberlin-ed

Page 27: SECON'2016. Куприянов Юрий, OMG Essence - единая теория программной инженерии

http://www.slideshare.net/junesungpark/applying-essence-in-practiceberlin-ed

Page 28: SECON'2016. Куприянов Юрий, OMG Essence - единая теория программной инженерии

• Фокусирует внимание на состоянии альф;• Разделяет роли по областям интереса;• Предоставляет высокоуровневые

последовательности состояний ключевых альф и чек-листы для их диагностики;

• Задает базовые элементы для описания практик и методов.

Что дает Ядро?

Page 29: SECON'2016. Куприянов Юрий, OMG Essence - единая теория программной инженерии

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

• Для планирования;• Для сравнения двух методологий и

проектирования процессов изменения;• Для обучения;• Для масштабирования;• Для оптимизации методов;• Для подбора людей.

Для чего использовать Ядро?

Page 30: SECON'2016. Куприянов Юрий, OMG Essence - единая теория программной инженерии

1. Применять чек-листы.2. Раскладывать пасьянсы/покер.3. Включать пункты из чек-листов сразу в

договоры и проектные документы.

Немедленная польза

Page 31: SECON'2016. Куприянов Юрий, OMG Essence - единая теория программной инженерии

Моделирование практик в терминах ядра:

Дальнейшие исследования

Page 32: SECON'2016. Куприянов Юрий, OMG Essence - единая теория программной инженерии

Моделирование практик в терминах ядра:

Дальнейшие исследования

Page 33: SECON'2016. Куприянов Юрий, OMG Essence - единая теория программной инженерии

Сборка методов из практик:

Дальнейшие исследования

Разработка мобильных

приложений

Kernel

Метод разработки платформы

Метод интеграции

приложений

Defect/Issue Tracking

Git Flow

Defect/Issue Tracking

Git Flow

Defect/Issue Tracking

Git FlowОбщие практики

RUP Kanban Scrum

Architecture Centric Emerging ArchitectureEmerging Architecture

ТЗ по ГОСТ 34 Lean UXUse Cases

Специфические практики

DevOpsDevOps DevOps Улучшения

Page 34: SECON'2016. Куприянов Юрий, OMG Essence - единая теория программной инженерии

Страница стандарта на сайте OMG:http://www.omg.org/spec/Essence/ Глоссарий на русском: http://goo.gl/zfyzjtИнициатива SEMAT: http://www.semat.org/Карты Essence на английском: https://www.ivarjacobson.com/alphastatecards

Ссылки

Page 35: SECON'2016. Куприянов Юрий, OMG Essence - единая теория программной инженерии

Спасибо за внимание!

Давайте пробовать!

[email protected]://facebook.com/yksi12skype: yury.kupriyanov8-903-617-4283