Upload
andrey-bayda
View
151
Download
13
Embed Size (px)
DESCRIPTION
Citation preview
Стандарт OMG
Essence и работа
инициативы SEMAT
Андрей Байда
История
• Сентябрь 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»
2
Структура SEMAT
Advisory Board: Ivar Jacobson, Bertrand Meyer, Richard Soley
Executive Committee Members: Paul McMahon (Chair), Arne-Jorgen Berre, Michael Goedicke, Shihong Huang, Mira Kajko-Mattsson, Bruce Macisaac, Ed Seymour, Ian Michael Spence
Tracks:
• Kernel track
• Language track
• Theory track
Regional Chapters:
• China Chapter
• Latin American Chapter
• Russian Chapter
3
OMG
• Июнь 2011: OMG FACESEM RFP
• Февраль 2012: Первая заявка (3 конкурирующих: Essence от
SEMAT, KUALI-BEH от нескольких профессоров из Мексики и
SEMDM от команды ISO 24744)
• Август 2012: Переработанные заявки Essence (включены суб-
альфы) и KUALI-BEH
• Ноябрь 2012: Окончательные заявки (включены компетенции)
• Декабрь 2012: Первое голосование (fast track)
• Февраль 2013: Подача заявки Essence, с учетом комментариев
голосовавших
• Март 2013: Второе голосование (fast track)
4
Призыв к действию
Сегодня некоторые области программной инженерии страдают от незрелых практик. Характерные проблемы включают:
• Распространенность увлечений, более характерная для индустрии моды, нежели для инженерных дисциплин;
• Отсутствие основательной, широко признанной теоретической базы;
• Огромное число методов и их вариантов, разница между которыми плохо понимается и искусственно преувеличивается;
• Отсутствие заслуживающих доверия экспериментальных оценок и валидации;
• Разрыв между научными исследованиями и практическим применением.
Мы поддерживаем процесс переопределения программной инженерии на основе убедительной теории, проверенных принципов и лучших практик, которые:
• Включают ядро, состоящее из общепринятых элементов, с возможностью расширения под конкретные нужды;
• Затрагивают как вопросы технологии, так и человеческий фактор;
• Поддержаны индустрией, наукой, исследователями и пользователями;
• Поддерживают расширение, вызванное изменениями в требованиях и технологиях.
5
In a Nut Shell – what we need to change
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
6
Key New Principles
• Being agile when working with methods.
– The full team owns their method, rather than a select
few
– Focus on method use rather than comprehensive
method description
– Evolve your team’s method, rather than keeping
your method fixed
7
Key New Principles
• Being agile when working with methods.
• Separation of Concerns
8
Key New Principles
• Being agile when working with methods.
• Separation of Concerns,
For instance, specify the kernel, and make extensions
without changing or complicating the kernel
– Separating the kernel from practices
– Separating alphas from work products
– Separating the essence from the details.
– Separating what the least experienced developer
needs from what experienced developers need.
9
The approach is practical
• The common ground
is the kernel
Kernel
10
The approach is practical
• The common ground
is the kernel
– Inside the Kernel are
Kernel elements. They
have states to measure
progress and health.
– Focus on method usage
rather than method
descriptions Kernel
provide
performs and plans
fulfils
pro
duces
focuses
support
use a
nd c
onsum
e
Scopes a
nd c
onstra
ins
set up t
o a
ddre
ss
software system
team
stakeholders
requirements
opportunity
work
way of working
software
system
11
Онтология?
Связь между методами, практиками, ядром и
языком
12
So to paraphrase Michelangelo: “We are freeing the kernel from the methods”
“I am freeing the statue from the block” - Michelangelo (attributed)
Ядро (kernel)
A kernel is a set of elements used to form a common ground for describing a software engineering endeavor.
Состоит из альф и пространств дел, объединенных в области интересов.
Ядро также предоставляет набор компетенций, которые дополняют альфы и пространства дел.
Ядро:
• Исполняемое
• Расширяемое
• Практичное
13
Альфы (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)
Пр
едп
ри
нят
ие
(E
nd
eav
or)
К
ли
ент
(C
ust
om
er)
14
Стейкхолдеры
(Заинтересованные
стороны)
Люди, группы или организации, кто затрагивает или которые затрагиваются программной системой.
Механизмы вовлечения стейкхолдеров согласованы и назначены представители стейкхолдеров. The mechanisms for involving the stakeholders are agreed and the stakeholder representatives have been appointed.
Представители стейкхолдеров в согласии. The stakeholder representatives are in agreement.
Признаны Recognized
Представлены Represented
Сте
йкх
ол
дер
ы (
Stak
eh
old
ers)
Удовлетворены для
разворачивания Satisfied for Deployment
Стейкхолдеры были определены. The stakeholders have been identified.
Вовлечены Involved
Представители стейкхолдеров активно вовлечены в работу и выполняют свои обязанности. The stakeholder representatives are actively involved in the work and fulfilling their responsibilities.
Удовлетворены в использоании
Satisfied in Use
Минимальные ожидания представителей стейкхолдеров были достигнуты. The minimal expectations of the stakeholder representatives have been achieved.
В согласии In Agreement
Система удовлетворяет или превышает минимальные ожидания стейкхолдеров. The system meets or exceeds the minimal stakeholder expectations.
15
Пространства дел (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
16
Компетенции
Представительство стейкхолдера
Stakeholder Representation
Разработка Development
Анализ Analysis
Тестирование Testing
Лидерство Leadership
Менеджмент Management
Кл
иен
т Ре
шен
ие
Пр
едп
ри
нят
ие
1 Assists 2 Applies 3 Masters 4 Adapts 5 Innovates
17
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
18
Как пользоваться
[0. Связать достижение альфами определенных состояний с переходами между стадиями жизненного цикла.]
1. Определить текущее состояние предпринятия при помощи чеклистов, предлагаемых стандартом для альф.
2. Определить к каким состояниям каких альф требуется перейти в первую очередь.
3. Определить те задания, которые необходимо выполнить, чтобы достичь желаемых состояний, определенных на шаге 2.
[4. Убедиться, что используемые практики позволяют заполнить все пространства дел.]
[5. Убедиться в наличии достаточного количества членов команды с необходимыми уровнями компетенций для успешного следования практикам.]
19
Возможность Набор обстоятельств, который благоприятен для разработки или изменения программной системы.
Польза успешного решения была установлена. The value of a successful solution has been established.
Решение, которое произведено, демонстрирует адресацию возможности. A solution has been produced that demonstrably addresses the opportunity.
Коммерческая, общественная или инвестиционная возможность, которая могла бы быть адресована программным решением, определена. A commercial, social or business opportunity has been identified that could be addressed by a software-based solution.
Эксплуатация или продажа решения создаёт осзязаемые выгоды. The operational use or sale of the solution is creating tangible benefits.
Определена Identified
Нужно решение
Solution Needed
Польза установлена
Value Established
Жизне-способна
Viable
Во
змо
жн
ост
ь (O
pp
ort
un
ity)
Извлекается выгода
Benefit Accrued
Потребность в программном решении была подтверждена. The need for a software-based solution has been confirmed.
Адресована Addressed
Согласовано, что решение может быть произведено достаточно быстро и дёшево, чтобы успешно адресовать возможность. It is agreed that a solution can be produced quickly and cheaply enough to successfully address the opportunity.
20
Требования
Что программная система должна делать, чтобы адресовать возможность и удовлетворить стейкхолдеров.
Требования обеспечивают непротиворечивое описание существенных характеристик новой системы. 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.
21
Программная система Система, сделанная из программ, оборудования и данных, которая обеспечивает свою главную пользу путём выполнения программ.
Демонстрируемая Demonstrable
Подходит для использования
Usable
Готова Ready
Эксплуатируется Operational
Пр
огр
амм
ная
си
стем
а (S
oft
war
e S
yste
m)
Система подходит для использования и демонстрирует все качественные характеристики эксплуатируемой системы. The system is usable and demonstrates all of the quality characteristics required of an operational system.
Система (как целое) была принята для разворачивания в её эксплуатационном окружении. The system (as a whole) has been accepted for deployment in a live environment.
Система используется в её эксплуатационном окружении. The system is in use in a live environment.
Архитектура выбрана Architecture Selected
Выведена из эксплуатации Retired
Архитектура, которая адресует ключевые технические риски и любые применимые организационные ограничения, выбрана. An architecture has been selected that addresses the key technical risks and any applicable organizational constraints.
Исполняемая версия системы, которая демонстрирует, что архитектура соответствует назначению системы, доступна и поддерживает тестирование. An executable version of the system is available that demonstrates the architecture is fit for purpose and supports functional and non-functional testing.
Система больше не поддерживается. The system is no longer supported.
22
Команда Группа людей, активно участвующих в разработке, сопровождении, поставке и поддержке какой-то программной системы.
Намечена Seeded
Сформирована Formed
Сотрудничает Collaborating
Производит Performing
Распущена Adjourned
Ко
ман
да
(Te
am)
Миссия команды ясна и знания о том, как растить команду, наличествуют. The team’s mission is clear and the know-how needed to grow the team is in place.
Команда была пополнена достаточным количеством людей с принятыми обязательствами, чтобы начать миссию. The team has been populated with enough committed people to start the mission.
Члены команды работают как одно целое. The team members are working together as one unit.
Команда работает результативно и эффективно. The team is working effectively and efficiently.
Команда больше не ответственна за выполнение своей миссии. The team is no longer accountable for carrying out its mission.
23
Работы Дела, включающие умственные или физические усилия для достижения результата.
Подготовлена Prepared
Начата Started
Под контролем Under Control
Закончена Concluded
Закрыта Closed
Раб
оты
(W
ork
)
Все предусловия для начала работы выполнены. All pre-conditions for starting the work have been met. Работа происходит. The work is proceeding. Работа продвигается хорошо, риски под контролем, уровень произво-дительности достаточен для достижения удовлетворительного результата. The work is going well, risks are under control and productivity levels are sufficient to achieve a satisfactory result.
Работа по производству результатов была закончена. The work to produce the results has been concluded.
Все остающиеся служебные задачи были завершены и работа была официально закрыта. All remaining housekeeping tasks have been completed and the work has been officially closed.
Инициирована Initiated
Работа была запрошена. Work has been requested.
24
Технология работы Адаптированный по месту набор практик и инструментов, используемый командой для ведения и поддержки работы.
Основа положена Foundation Established
Используется In Use
Наличествует In Place
Работает хорошо Working well
Выведена из употребления
Retired Техн
ол
оги
я р
або
ты (
Way
-of-
Wo
rkin
g)
Ключевые практики и инструменты, которые формируют основу технологии, выбраны и готовы к использованию. The key practices, and tools, that form the foundation of the way of working are selected and ready for use. Некоторые члены команды используют технологию и адаптируют её. Some members of the team are using, and adapting, the way-of-working.
Все члены команды используют технологию работы, чтобы выполнять свою работу. All team members are using the way-of-working to accomplish their tasks.
Технология для команды работает хорошо. The way-of-working is working well for the team.
Технология больше не используется командой. The way-of-working is no longer in use by the team.
Принципы установлены
Principles Established
Принципы и ограничения, которые определяют технологию, установлены. The principles, and constraints, that shape the way-of-working are established.
25
Представитель
стейкхолдера
A stakeholder representative has been empowered to work with the team and understands his or her responsibilities to the team and the people he or she represents.
The stakeholder representative is satisfied with the work done and the software system produced.
Identified
Empowered
Stak
eho
lder
R
epre
sen
tati
ve
Delighted
The need for a sub-set of the stakeholders to be represented has been identified.
Engaged The stakeholder representative is actively involved in the work and fulfilling his or her responsibilities.
The stakeholder representative is delighted with the work done and the software system produced.
Satisfied
Recognized
Represented
Stak
eho
lder
s
Satisfied for Deployment
Involved
Satisfied in Use
In Agreement
A person, or group, empowered to represent a subset of the stakeholders in the endeavor.
26
Потребность A lack of something necessary, desirable or useful, requiring supply or relief.
The value to the customers and other stakeholders of a successful solution that addresses the need is established.
The minimal expectations for a solution that addresses the need have been exceeded to the extent that the stakeholders are delighted..
Identified
Value Established
Nee
d
Expectations Exceeded
A need related to the opportunity and the stakeholders is identified.
The minimal expectations for a solution that addresses the need have been met.
Satisfied
Identified
Solution Needed
Value Established
Viable
Op
po
rtu
nit
y
Benefit Accrued
Addressed
Drives
27
Единица требований
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
en
t It
em 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
eme
nts
Fulfilled
Addressed
Drives
28
Ошибка An error, flaw, or fault in a Software System that causes the system to fail to perform as required.
The cause of the Bug in the Software System has been found.
The removal of the Bug from the Software System has been confirmed.
Detected
Located
Bu
g An error, fault or flaw in the Software System is observed and logged.
Fixed The Bug has been removed from the Software System.
Closed
Demonstrable
Usable
Ready
Operational
Soft
war
e Sy
stem
Architecture Selected
Retired
Inhibits
29
Элемент
системы
Independently developable and testable part of a system.
The System Elements interfaces have been agreed.
The System Element has been verified and is ready for live use as part of the Software System.
Identified
Interfaces Agreed
Syst
em E
lem
ent
A system element has been identified as part of the Software System and its responsibilities and its position in the Software System are clear.
Developed The System Element has been implemented and tested, and is believed to be ready for integration into the Software System.
Ready
Demonstrable
Usable
Ready
Operational
Soft
war
e Sy
stem
Architecture Selected
Retired
Drives
30
Член команды An individual acting as part of a team.
The team member is on board and learning how to contribute to the team.
Wanted
On-Board Te
am M
emb
er
A team member with specific skills is sought to join the team.
Contributing The team member is helping her teammates and driving the team's performance
Exiting The team member is preparing to leave the team.
Seeded
Formed
Collaborating
Performing
Adjourned
TEA
M
Drives
31
Задача A portion of work that can be clearly identified, isolated, and then accepted by one or more team members for completion.
The task has been accepted by one or more team members and work has started.
Identified
In Progress Task
The task has been identified and is ready to be done
Done The work required to do the task has been completed.
Prepared
Started
Under Control
Concluded
Closed
Wo
rk
Initiated
Drives
32
Overview of the End of Phase Milestones
A Waterfall Lifecycle
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)
33
Exploratory
Elaboration
Inception
Transition
Construction
$$
Opportunity Requirements System Team Work Way of Working
Solution Needed
Benefit Accrued
Identified
Bounded
Acceptable
Addressed
Demonstrable
Retired
Seeded
Collaborating
Adjourned
Initiated
Concluded
Prepared
Closed
Principles Established
Retired
In Use
Operational
Stakeholders
Represented
Satisfied in Use
Recognized
Value Established Conceived
Approach Selected
Formed Foundation Established
Started Involved
In Agreement
Fulfilled
Viable Coherent
Approach Selected
Usable
Under Control
Performing
In Place
Working Well
Addressed Fulfilled Ready (Concluded) Working Well Performing Satisfied for Deployment
Usable
Exploratory
34
Standard
Elaboration
Inception
Transition
Construction
$$
Opportunity Requirements System Team Work Way of Working
Solution Needed
Benefit Accrued
Identified
Bounded
Addressed
Demonstrable
Retired
Seeded
Adjourned
Initiated
Concluded
Prepared
Closed
Principles Established
Retired Operational
Stakeholders
Represented
Satisfied in Use
Recognized
Value Established
Conceived
Formed
Foundation Established
Started
Involved
Fulfilled
Approach Selected
Usable
Addressed Fulfilled Ready (Concluded) Working Well Performing Satisfied for Deployment
Usable In Agreement Viable
Coherent
Under Control
Performing Working Well
In Use
Ready
Collaborating In Place Acceptable
Standard
35
A Funding / Decision Making Lifecycle
$$
Opportunity Requirements System Team Work Way of Working
Benefit Accrued
Addressed
Retired
Adjourned
Concluded
Closed Retired Operational
Stakeholders
Represented
Satisfied in Use
Value Established
Conceived
Formed Started
Fulfilled
Approach Selected
Usable
Addressed Fulfilled Ready Concluded Working Well Performing Satisfied for Deployment
Coherent
Performing Working Well
In Use
Ready
Idea to Opportunity
Decision to Justify
Decision to Fund
Acceptable
In Agreement
Viable Under
Control Collaborating In Place Decision to
Fund Update
Decision to Go Public
Decision to Handover
Bounded Seeded Prepared
Foundation Established
Involved Solution Needed
Identified Initiated
Principles Established
Recognized
Demonstrable
36
Графический синтаксис
Software System
Requirements fulfills >
Ядро
Objectives Agreed
Состояние
Рабочий продукт
Activity
Компетенция
Activity Space
37
Метод и практики
Scrum
Практика вариантов
использования
Архитектурная практика
Метод проекта Х
38
Пример для Scrum
Requirements
Work
Team
Software System
Scrum
Sprint 1..*
Product Backlog
1
Sprint Backlog
1
Increment
1..*
Product owner
Developer
Scrum master
39
Пример для 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
40
Средства моделирования
Колода карт SEMAT http://www.ivarjacobson.com/SEMAT_Kernel_Cards_Download/
Моделлер http://www.ivarjacobson.com/EssWork_Practice_Workbench/
41
Summary – What is new?
“This (SEMAT) meeting in Zurich
(2010) is likely to be an historic
occasion much like the 1968 NATO
session in Garmish.”
- Watts Humphrey (CMMI)
42