Upload
andrey-bayda
View
395
Download
0
Embed Size (px)
DESCRIPTION
Citation preview
Стандарт OMG Essence
(Beta)
Андрей Байда
SECR 2013
25 октября 2013
История
2
• Сентябрь 2009: инициатива основана Бертраном Майером, Ричардом Соли и Иваром Якобсоном
• Декабрь 2009: опубликован призыв к действию (http://semat.org/?page_id=2)
• Февраль 2010: видение на год (http://blog.paluno.uni-due.de/semat.org/wp-content/uploads/2012/03/SEMAT-vision.pdf)
• Июнь 2011: OMG FACESEM (Foundation for the Agile Creation and Enactment of Software Engineering Methods) RFP
• Март 2012: видение на 3 года (http://blog.paluno.uni-due.de/semat.org/wp-content/uploads/2012/03/Semat_-_Three_Year_Vision13Jan12.pdf)
• Осень 2012: появляются инструменты (карты, моделер)
• Январь 2013: вышла книга «The Essence of Software Engineering»
• Март 2013: успешно прошли голосования комитетов OMG, начала работать OMG FTF
In a Nut Shell – what we need to change
3
Executives Big companies have
many processes.
Challenges:
-Reuse practices
-Reuse training
-“Reuse” of people
-Evolutionary
improvement is hard
Professionals Want to become
experts. Challenges:
-Their skills are not
easily reusable for a
new product.
-Their career path
follows a zig-zag track
from hype to hype.
Education -Teaching instances
of methods such as
Scrum, RUP, instead
of common base;
doesn’t create
generalists
SEMAT targets the whole software community.
Industry Academics
Research -The Gap between
research and
industry
-No widely accepted
theory
Standing on a solid theoretical basis
Желаемое решение: Архитектура метода
4
Метод является
композицией практик.
Методы исполняемы.
Практика – это
повторяемый подход к
деланию чего-либо с
определенной целью.
Практика дает
систематический
контролируемый
способ решения
определенной
проблемы.
Ядро является точкой
соприкосновения
(common ground), т.к.
включает основные
элементы программной
инженерии.
Язык является предметно-
ориентированным языком
для определения методов,
практик и основных
элементов Ядра.
Standing on a solid theoretical basis
Желаемое решение: Архитектура метода
5
Существует, вероятно,
более чем 100,000
методов, включая,
например, RUP, CMMI,
XP, Scrum, Lean, Kanban
Существует примерно
250 описанных
практик, включая,
например, use cases,
use stories, features,
components.
Ядро включает такие
элементы как
Требования,
Программная
система, Работа,
Команда etc.
Язык легок в
практическом
использовании.
Желаемое решение: Архитектура метода
6
The Essence
Standing on a solid theoretical basis
Ядро
7
Ядро
• Охватывает основы программной инженерии
• Формирует карту программно-инженерного контекста
• Составляет базис для оценки программно-инженерной деятельности
Структура Ядра
8
Endeavor
Решение
Альфы
Пространства дел
Клиент
• Три области интересов
• Альфы
• Пространства дел
• Компетенции
Компетенции
Альфы
Пространства дел
Компетенции
Альфы
Пространства дел
Компетенции
Что такое Альфа?
9
• Альфа является акронимом от Abstract-Level Progress Health Attribute.
• Необходимый элемент программно-инженерной деятельности, имеюший отношение к оценке прогресса и «здоровья» деятельности.
Альфы (alphas)
оп
ред
еляю
т п
ред
мет и
огр
ани
чиваю
т (Sco
pe
s and
con
strains) >
ор
ган
изу
ютс
я д
ля
реа
гир
ова
ни
я н
а (
set
up
to
ad
dre
ss)
>
< определяют (identifies)
по
дд
ерж
иваю
т (sup
po
rt) >
уточн
яет fo
cuse
s >
< планирует и выполняет (performs and plans)
< удовлетворяет (fulfils)
исп
ол
ьзуют
(use
and
con
sum
e) >
< пр
ои
звод
ит
(pro
du
ces)
Работы Work
Технология работы
(Way of Working)
Команда Team
Требования Requirements
Программная система Software System
Возможность Opportunity
Заинтересованные стороны
Stakeholders
Реш
ени
е
(So
luti
on)
Дея
тел
ьно
сть
(En
de
avo
r)
Кл
иен
т
(Cu
sto
mer
)
10
Пространства дел (activity spaces)
Исследовать возможности
Explore Possibilities
Обеспечить удовлетворение заинтересованных сторон
Ensure Stakeholder Satisfaction
Спроектировать систему
Shape the System
Изготовить систему
Implement the System
Протестировать систему
Test the System
Развернуть систему
Deploy the System
Понять потребности заинтересованных сторон
Understand Stakeholder Needs
Подготовиться к работе
Prepare to do the Work
Координировать дела
Coordinate Activity
Поддерживать команду
Support the Team
Завершить работу
Stop the Work
Отслеживать прогресс
Track Progress
Понять требования
Understand the Requirements
Кл
иен
т
(Cu
sto
mer
)
Реш
ени
е
(So
luti
on)
Дея
тел
ьно
сть
(E
nd
eav
or)
Использовать систему
Use the System
Управлять
системой
Operate the System
11
Компетенции
Представительство заинтересованной стороны
Stakeholder Representation
Разработка Development
Анализ Analysis
Тестирование Testing
Лидерство Leadership
Менеджмент Management
Кл
иен
т Ре
шен
ие
Д
еяте
льн
ост
ь
1 Помогает 2 Применяет 3 Владеет
4 Адаптирует
5 Cовершенствует
12
Требования
Что программная система должна делать, чтобы адресовать возможность и удовлетворить стейкхолдеров.
Требования обеспечивают непротиворечивое описание существенных характеристик новой системы. The requirements provide a consistent description of the essential characteristics of the new system.
Достаточное количество требований было адресовано, чтобы удовлетворить потребность в новой системе способом, приемлемым для стейкхолдеров. Enough of the requirements have been addressed to satisfy the need for a new system in a way that is acceptable to the stakeholders.
Согласована потребность в новой системе. The need for a new system has been agreed.
Требования, которые были адресованы, полностью удовлетворяют потребность в новой системе. The requirements that have been addressed fully satisfy the need for a new system.
Начаты Conceived
Ограничены Bounded
Непротиворечивы Coherent
Приемлемы Acceptable
Треб
ова
ни
я (R
eq
uir
em
en
ts)
Удовлетворены Fulfilled
Назначение и тема новой системы ясны. The purpose and theme of the new system are clear.
Адресованы Addressed
Требования описывают систему, которая будет приемлема для стейкхолдеров. The requirements describe a system that is acceptable to the stakeholders.
13
Чеклисты для состояний
Начаты Conceived
Ограничены Bounded
Непротиворечивы Coherent
Приемлемы Acceptable
Треб
ова
ни
я (R
eq
uir
em
en
ts)
Удовлетворены Fulfilled
Адресованы Addressed
14
Начальное множество стейкхолдеров согласно, что система должна быть произведена.
Заинтересованные стороны, которые будут использовать новую систему, определены.
Заинтересованные стороны, которые профинансируют начальную работу по созданию новой системы, определены.
Есть ясная возможность, которую будет адресовывать новая система.
Единица требований
a condition or capability needed by a stakeholder to solve a problem or achieve an objective.
The Requirement Item is ready to be implemented.
Successful implementation of the Requirement Item in the Software System has been confirmed.
Identified
Described R
equ
irem
ent
Item
A specific condition or capability that the Software System must address has been identified.
Implemented The Requirement Item is implemented in the Software System and demonstrated to work.
Verified
Conceived
Bounded
Coherent
Acceptable
Req
uir
emen
ts
Fulfilled
Addressed
Drives
15
Язык, сущности, практики
16
...
Язык Сущности
(абстрактные) Практики
(конкретные)
Источник: ТехИнвестЛаб (http://www.slideshare.net/ailev/essence-21700931)
...
Ключевые свойства Ядра
Ядро:
• Исполняемое
• Расширяемое
• Практичное
17
Примеры проблем
• Определение текущего положения
дел в проекте
• Определение «узких мест»
• Единая версия правды
• Определение дальнейших шагов
для достижения целей проекта
18
Решение проблем
Основанные на использовании
Ядра:
• Модель жизненного цикла
• Описанные методы
• Описанные практики
• Инструменты
19
Моделирование жизненного цикла
Каскадная модель (водопад)
Testing
Deployment
$$
Opportunity Requirements System Team Work Way of Working
Initiated
Requirements
Analysis & Design
Implementation
Stakeholders
Initiation Solution Needed
Viable
Addressed
Benefit Accrued
Value Established
Identified
Bounded
Acceptable
Addressed
Coherent
Conceived
Demonstrable
Ready
Retired
(Usable)
Architecture Selected
Seeded
(Collaborating)
Formed
Adjourned
Under Control
Concluded
Prepared
Closed
Principles Established
In Place
(Working Well)
(Retired)
(Foundation Established)
(Performing)
Fulfilled
Started In Use
Operational
Represented
In Agreement
Satisfied for Deployment
Satisfied in Use
Involved
Recognized
(Collaborating)
Formed
(Performing)
(Collaborating)
Formed
(Performing)
(Collaborating)
Formed
(Performing)
(Collaborating)
Formed
(Performing)
(Working Well)
(Working Well)
(Working Well)
20
Overview of the End of Phase Milestones
Vanilla EssUP
$$
Opportunity Requirements System Team Work Way of Working Stakeholders
Seeded
Collaborating
Formed
Adjourned
Initiated
Under Control
Concluded
Concluded
Prepared
Closed
Principles Established
In Place
Working Well
Retired
Foundation Established
Performing
Performing
Started In Use
Bounded
Acceptable
Addressed
Fulfilled
Coherent
Conceived
Demonstrable
Ready
Retired
Usable
Approach Selected
Fulfilled
Operational
Solution Needed
Viable
Addressed
Benefit Accrued
Value Established
Identified
Represented
In Agreement
Satisfied for Deployment
Satisfied in Use
Involved
Recognized
Inception
Elaboration
Construction
Transition
up
21
Отслеживание текущего состояния
22
SematAcc
Карты состояний
Графический синтаксис
Software System
Requirements fulfills >
Ядро
Objectives Agreed
Состояние
Рабочий продукт
Activity
Компетенция
Activity Space
23
Метод и практики
Scrum
Практика вариантов
использования
Архитектурная практика
Метод проекта Х
24
Пример для Scrum
Requirements
Work
Team
Software System
Scrum
Sprint 1..*
Product Backlog
1
Sprint Backlog
1
Increment
1..*
Product owner
Developer
Scrum master
25
Пример для Scrum
Sprint Review
Daily Scrum
Sprint Planning Meeting
Sprint Retrospective
Sprint Planning Meeting
Prepare to do the Work
Daily Scrum Coordinate the Work
Sprint Review Track Progress
Sprint Retrospective
Support the Team
26
Как пользоваться
[0. Связать достижение альфами определенных состояний с переходами между стадиями жизненного цикла.]
1. Определить текущее состояние проекта при помощи чеклистов, предлагаемых стандартом для альф.
2. Определить к каким состояниям каких альф требуется перейти в первую очередь.
3. Определить те задания, которые необходимо выполнить, чтобы достичь желаемых состояний, определенных на шаге 2.
[4. Убедиться, что используемые практики позволяют заполнить все пространства дел.]
[5. Убедиться в наличии достаточного количества членов команды с необходимыми уровнями компетенций для успешного следования практикам.]
27
Средства моделирования
Колода карт SEMAT http://www.ivarjacobson.com/SEMAT_Kernel_Cards_Download/
Моделер http://www.ivarjacobson.com/EssWork_Practice_Workbench/
28
Summary – What is new?
29
“This (SEMAT) meeting in Zurich
(2010) is likely to be an historic
occasion much like the 1968 NATO
session in Garmish.”
- Watts Humphrey (CMMI)