Юрий Куприянов - omgessence.pptx
- Количество слайдов: 35
OMG! Essence: единая теория программной инженерии? ЮРИЙ КУПРИЯНОВ SECON’ 2016 22/04/2016
В мире много методов приемов практик идеологий разработки ПО Dev. Ops Model Driven Development Literate Programming V-model DSDM SCRUM Agile RUP ISO 12207 Use Cases Scrum. Ban UML Definition of Done PRINCE 2 ГОСТ 34 Automate Testing User Story Open. UP ISO 24744 Personas Test Driven Development BDD Lean UX MSF Kanban UX centered design XP Feature Driven Development Continious Integration Lean BPMN Waterfall Pair Programming
Ивар Якобсон UML, RUP, аспектно-ориентированное программирование Бертран Мейер Eiffel, ООП, контрактное программирование Ричард Солей OMG, UML, CORBA, MDA
Software Engineering Method And Theory
“Программная инженерия сегодня серьезно страдает от незрелых практик. Основные проблемы: • Погоня за модой. • Отсутствие прочной, признанной теоретической базы. • Огромное число методов и их вариаций, различия которых искусственно преувеличены. • Отсутствие надежной экспериментальной оценки и проверки. • Разрыв между индустриальной практикой и академическими исследованиями.
Мы поддерживаем процесс нового основания программной инженерии – на твердой теории, проверенных принципах и лучших практиках, которые: • Включают в себя ядро согласованных элементов, расширяемых для конкретных применений. • Решают как технологические, так и человеческие вопросы. • Поддержаны индустрией, наукой и пользователями. • Поддерживают расширение в условиях меняющихся требований и технологий. ”
Подписанты призыва
Подписанты призыва
Обучение Теория Практика
Методы Практики Методы, Практики и Ядро определены в терминах Языка Methods Practices Ядро The Kernel Язык The Language Методы состоят из практик Практики описаны элементами Ядра
Области интереса Потребитель Customer Решение Solution Деятельность Endeavor
Внутри областей интереса Альфы ALPHA α Abstract-Level Progress Health Attribute Поле деятельности Activity Space Компетенции Competence
Альфы Потребитель Возможность Стейкхолдер Решение Программная система Требования Деятельность Работа Команда Технология работы
Связи Альф Потребитель предоставляет Возможность по т яе мо фокусирует гае т вл ъя д е пр ис по Решение удовлетворяет Требования Стейкхолдер потребляет и использует ль зо в ат ь т яе н Программная система ме задают ограничения яе создает О Деятельность планирует и производит Работа направл яет Технология работы Команда яет примен поддерживает л ов бн з т, и
Поле деятельности Потребитель Исследовать возможность Понять нужды Убедиться в удовлетворении Изучать использование системы Решение Понять требования Спроектировать систему Реализовать систему Протестировать систему Развернуть систему Обслуживать систему Деятельность Приготовиться выполнять работу Координировать дела Поддерживать команду Отслеживать прогресс Прекратить работу
Компетенции Потребитель Представление интересов стейкхолдеров Решение Анализ Разработка Тестирование Деятельность Лидерство Управление
Как это работает: Альфа Воплощается в Имеет Состояние альфы Намечает Поле деятельности Подтверждает Пр иво ди тк Воплощается в Рабочий продукт Создает/изменяет Дело Требует Компетенция
Состояние альфы Выявлены Стейкхолдеры выявлены. Представлены Механизмы вовлечения стейкхолдеров согласованы, представители обозначены. Вовлечены Представители стейкхолдеров вовлечены в работу и выполняют свои обязанности. В согласии Представители стейкхолдеров находятся в согласии. Удовлетворены развертыванием системы Минимальные ожидания представителей стейкхолдеров удовлетворены. Удовлетворены работой системы Система удовлетворяет или превышает минимальные ожидания стейкхолдеров.
Система Архитектура выбрана Готова к демонстрации Готова к использованию Готова к запуску Эксплуатируется Выведена из эксплуатации Выбрана архитектура, адресующая технические риски и удовлетворяющая организационным ограничениям. Работающая версия системы готова для демонстрации соответствия архитектуры и возможности тестирования. Система готова к использованию и демонстрирует заданные характеристики качества. Система была принята к развертыванию и запуску. Система используется в операционном окружении. Система больше не поддерживается.
Команда Намечена Команда была пополнена достаточным количеством людей с принятыми обязательствами, чтобы начать миссию. Чек-лист: Сформирована Сотрудничает Производит Распущена q Индивидуальные обязанности понимаются. q Набрано достаточное число членов команды, чтобы работа продвигалась. q Каждый член команды понимает, как команда организована, и какая у него индивидуальная роль. q Все члены команды понимают, как выполнять их работу. q Все члены команды встретились (возможно, виртуально) и начинают узнавать друга. q Члены команды понимают их обязанности и как они увязаны с их компетенциями. q Члены команды принимают работу. q Любые внешние смежники (организации, команды и индивиды) определены. q Механизмы общения в команде определены. q Каждый член команды принял обязательство работать в команде, как определено.
Wiki. Vote! 2012 22
Чек-листы для состояний Требования Выявлены 1/6 q. Стейкхолдеры согласны, что система должна быть создана. q Выявлены стейкхолдеры, которые будут пользоваться системой. q. Выявлены стейкхолдеры, которые будут финансировать создание системы. q. Ясно, какую возможность будет использовать будущая система.
Чек-листы для состояний Требования Определены 2/6 q. Выявлены стейкхолдеры, вовлеченные в разработку новой системы. q Все стейкхолдеры согласны с назначением новой системы. q. Ясно, что будет являться показателем успешности системы. q. Все стейкхолдеры разделяют понимание объема предложенного решения. q. Согласован способ описания требований. q. Имеется механизм для управления требованиями. q. Ясна схема приоритезации требований. q. Выявлены и признаны ограничения. q. Ясно сформулированы все предположения.
Requirements Software System Work Team http: //www. slideshare. net/junesungpark/applying-essence-in-practiceberlin-ed
Достигнуты http: //www. slideshare. net/junesungpark/applying-essence-in-practiceberlin-ed Не достигнуты
http: //www. slideshare. net/junesungpark/applying-essence-in-practiceberlin-ed
Что дает Ядро? • Фокусирует внимание на состоянии альф; • Разделяет роли по областям интереса; • Предоставляет высокоуровневые последовательности состояний ключевых альф и чек-листы для их диагностики; • Задает базовые элементы для описания практик и методов.
Для чего использовать Ядро? • Для оценки состояния проекта (без привязки к конкретной методологии); • Для планирования; • Для сравнения двух методологий и проектирования процессов изменения; • Для обучения; • Для масштабирования; • Для оптимизации методов; • Для подбора людей.
Немедленная польза 1. Применять чек-листы. 2. Раскладывать пасьянсы/покер. 3. Включать пункты из чек-листов сразу в договоры и проектные документы.
Дальнейшие исследования Моделирование практик в терминах ядра:
Дальнейшие исследования Моделирование практик в терминах ядра:
Дальнейшие исследования Сборка методов из практик: Метод разработки платформы Метод интеграции приложений Разработка мобильных приложений Dev. Ops Улучшения RUP Kanban Scrum Architecture Centric Emerging Architecture Специфические практики ТЗ по ГОСТ 34 Use Cases Lean UX Defect/Issue Tracking Git Flow Kernel Общие практики
Ссылки Страница стандарта на сайте OMG: http: //www. omg. org/spec/Essence/ Глоссарий на русском: http: //goo. gl/zfyzjt Инициатива SEMAT: http: //www. semat. org/ Карты Essence на английском: https: //www. ivarjacobson. com/alphastatecards
Спасибо за внимание! Давайте пробовать! yksi 12@gmail. com http: //facebook. com/yksi 12 skype: yury. kupriyanov 8 -903 -617 -4283