OMG! Essence of Software
Engineering?
ЛАФ’2013
В мире много методов приемов
практик идеологий разработки ПО
SCRUM Agile
XP
UML
RUP
MSF
Use Cases
Kanban
Pair Programming
MDD
Persona’s method
V-model
User Story
TDD
Тысячи их!!1
DevOps
PRINCE2
ISO 12207
Continious Integration
SCRUM
BPMN
OpenUP
MSF
DoD
Kanban
Pair Programming
Persona’s method
V-model
TDD
EssUP
ISO 24744
CI
Literate Programming
Я смотрю, ты совсем запутался?
Ну, не совсем, но я правда
иногда не понимаю – как все это
связано между собой.
Тем более, что у каждой
команды все равно свой
собственный метод. Подвести
бы под это какую-нибудь
основу…
Ну, несколько таких методов я
сам придумал. UML там, RUP…
А про основу – это ты хорошо
сказал! Смотри, я придумал для
тебя Единую Теорию Всего
Программирования…
Методы Methods
Практики Practices
Основа The Kernel
Язык The Language
Состоят из
Описаны
при
помощи
элементовОпределены
в терминах
Я назвал ее SEMAT – Software Engineering
Method And Theory. Мы опишем все
методы через практики и… Основы! 
Смотри:
Потребитель Customer
Решение Solution
Предприятие Endeavor
У нас есть три области интереса
(Area of concerns):
Альфы
ALPHA
Abstract-Level Progress Health Attribute
Деятельности
Activity Space
Компетенции
Competence
Внутри каждой области есть АЛЬФЫ – это очень
клевые штуки, я их сам придумал – а ещё есть
деятельности и компетенции. Для всего этого
есть графический язык, как UML, только круче!
Альфы
Потребитель
Решение
Предприятие
Возможность Стейкхолдер
Требования
Программная
система
Работа Команда
Технология
работы
Альфы и семантика
Потребитель
Решение
Предприятие
Возможность Стейкхолдер
Требования
Программная
система
Работа Команда
Технология
работы
планирует и производит
предоставляет
удовлетворяет
создает
потребляет и использует
задают ограничения
поддерживает
настраиваетсяпод
фокусирует
Деятельности
Потребитель
Решение
Предприятие
Исследовать
возможность
Понять
нужды
Убедиться в
удовлетворении
Изучать
использование
системы
Понять
требова-
ния
Спроек-
тировать
систему
Реализо-
вать
систему
Обслу-
живать
систему
Приготовиться
выполнять
работу
Координи-
ровать дела
Поддерживать
команду
Отслеживать
прогресс
Протес-
тировать
систему
Развер-
нуть
систему
Прекратить
работу
Компетенции
Потребитель
Решение
Предприятие
Анализ Разработка
Представление интересов стейкхолдеров
Лидерство Управление
Тестирование
Альфа
Деятельность
Компетенция
Дело
Состояние
альфы
Рабочий
продукт
Имеет
Создает/изменяет
Подтверждает
Воплощается в
Намечает
Теперь смотри, как это работает: мы
«протаскиваем» проект по состояниям альф,
выполняя дела из деятельностей при помощи
наших компетенций.
Ох… Круто! Хотя и сложновато
как-то.
Ладно, спасибо большое , Ивар,
я теперь сам попробую
разобраться – что это, и чем
может помочь аналитику.
Не вопрос, обращайся! А штука
полезная, сам увидишь. И не
такая уж сложная.
Ладно, пойду пока еще какой-
нибудь язык придумаю. Или что-
нибудь еще, что можно
сократить до трех букв. See u!
Где здесь место для аналитика?
Потребитель
Решение
Предприятие
Возможность Стейкхолдер
Требования
Программная
система
Работа Команда
Технология
работы
Представление интересов стейкхолдеров
Анализ
Понять
требования
Исследовать
возможность
Понять
нужды
Убедиться в
удовлетворении
Изучать
использование
системы
Стейкхолдеры
Выявлены
Представлены
Вовлечены
В согласии
Удовлетворены
развертыванием системы
Удовлетворены работой
системы
Стейкхолдеры выявлены.
Механизмы вовлечения стейкхолдеров
согласованы, представители обозначены.
Представители стейкхолдеров вовлечены
в работу и выполняют свои обязанности.
Представители стейкхолдеров находятся
в согласии.
Минимальные ожидания представителей
стейкхолдеров удовлетворены.
Система удовлетворяет или превышает
минимальные ожидания стейкхолдеров.
Возможность
Идентифицирована
Решается программной
системой
Оценена
Жизнена
Использована
Принесла выгоду
Коммерческая, социальная или бизнесовая
возможность идентифицирована.
Потребность в программном решении
обоснована и подтверждена.
Ценность успешного решения
установлена.
Все согласны, что решение может быть
произведено достаточно быстро и дешево,
чтобы воспользоваться ценностью.
Система создана и демонстрирует
использование возможности.
Операционное использование или
продажи создают ощутимую выгоду.
Требования
Выявлены
Определены
Ясны
Приняты
Адресуют потребности
Полны
Все согласны, что новая система нужна.
Назначение и предмет новой системы
ясны.
Требования обеспечивают целостное
описание неотъемлемых характеристик
системы.
Описание системы через требования
приемлемо для стейкхолдеров.
Достаточное количество требований
направлено на удовлетворение
потребностей в новой системе.
Требования полностью удовлетворяют
потребности в новой системе.
Чек-листы для состояний
Стейкхолдеры
Выявлены Идентифицированы все различные
группы заинтересованных сторон
(стейкхолдеров), которых затрагивает или
может затронуть разработка или
функционирование системы.
Достигнуто согласие между группами
стейкхолдеров (как минимум, между
теми, кто финансирует, использует,
поддерживает и обслуживает систему).
Определены обязанности
представителей стейкхолдеров.
Чек-листы для состояний
Стейкхолдеры
Представлены Представители стейкхолдеров
согласились взять на себя
ответственность.
 Представители стейкхолдеров
уполномочены нести ответственность.
Представители стейкхолдеров готовы к
сотрудничеству между собой.
Представители стейкхолдеров уважают
и поддерживают технологию работы
команды.
Спасибо, кэп!
Чек-листы для состояний
Требования
Выявлены Стейкхолдеры согласны, что система
должна быть создана.
 Выявлены стейкхолдеры, которые
будут пользоваться системой.
Выявлены стейкхолдеры, которые будут
финансировать создание системы.
Ясно, какую возможность будет
использовать будущая система.
Чек-листы для состояний
Требования
Определены Выявлены стейкхолдеры, вовлеченные в
разработку новой системы.
 Все стейкхолдеры согласны с назначением
новой системы.
Ясно, что будет являться показателем
успешности системы.
Все стейкхолдеры разделяют понимание объема
предложенного решения.
Согласован способ описания требований.
Имеется механизм для управления
требованиями.
Ясная схема приоритезации требований.
Выявлены и признаны ограничения.
Ясно сформулированы все предположения.
Расширения Kernel
Можно
определить
собственные
под-альфы,
их статусы и
чеклисты для
проверки.
Что еще полезно: компетенции
Представление
интересов
стейкхолдеров
Анализ
Способность собирать,
выражать и
балансировать
потребности
стейкхолдеров, и
аккуратно представлять
их точку зрения.
Способность понять
возможности и
потребности
стейкхолдеров, и
преобразовать их в
согласованный набор
требований.
Что эти люди делают для команды
Представление интересов Анализ
Люди с этой компетенцией
помогают команде:
• Понять бизнес-возможность.
• Осознать сложности и
потребности потребителей,
пользователей и других
заинтересованных сторон.
• Приоритезировать и
согласовывать требования.
• Взаимодействовать со
стейкхолдерами.
• Понимать – насколько хорошо
система удовлетворяет нуждам
стейкхолдеров.
Люди с этой компетенцией
помогают команде:
• Идентифицировать и понять
нужды и возможности.
• Докопаться до корневых причин
проблем.
• Собрать, понять и продуктивно
обсуждать требования.
• Создавать и согласовывать
спецификации и модели.
• Визуализировать решения и
понимать их последствия.
Необходимые навыки
Представление
интересов
Анализ
Необходимые навыки:
• Ведение переговоров
• Фасилитация
• Нетворкинг
• Хорошая письменная и
устная речь
• Эмпатия
Необходимые навыки:
• Письменная и устная
коммуникация
• Наблюдать, понимать и
записывать детали
• Декомпозиция
• Видеть целое исходя из
требований
• Формулирование
требований
Заключение: что дает Kernel?
• Фокусирует внимание на состоянии альф:
стейкхолдеров, возможности и требований;
• Разделяет роли для работы со
стейкхолдерами и для анализа требований;
• Предоставляет высокоуровневые
последовательности состояний ключевых
альф и чек-листы для их диагностики.
Для чего использовать Kernel
• Для оценки состояния проекта (без привязки к
конкретной методологии)
• Для планирования
• Для сравнения двух методологий и
проектирования процессов изменения
• Для обучения
• Для масштабирования
• Для оптимизации методов
• Для подбора людей
Немедленная польза
1. Применять чек-листы
2. Включать пункты из чек-листов в договоры
и проектные документы
Текущий статус и ссылки
В настоящее время стандарт находится на
рассмотрении в OMG (статус: OMG Final
Submission, 18 feb 2013). OMG сейчас
проверяет соблюдение авторских прав.
Ожидаемая дата рассмотрения – август 2013.
Инициатива SEMAT: http://www.semat.org/
Карты на английском:
http://www.ivarjacobson.com/SEMAT_Kernel
_Cards_Download/
Спасибо за внимание!
Юрий Куприянов
Эксперт по системному анализу и разработке ПО,
эксперт по коммуникациям и фасилитации,
интерактивным методикам,
преподаватель, тренер.
Обращайтесь за консультациями! 
yksi12@gmail.com
http://facebook.com/yksi12
skype: yury.kupriyanov

Kupriyanov