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»
2
3. Структура 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
4. 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. Призыв к действию
Сегодня некоторые области программной инженерии страдают от незрелых
практик. Характерные проблемы включают:
• Распространенность увлечений, более характерная для индустрии моды,
нежели для инженерных дисциплин;
• Отсутствие основательной, широко признанной теоретической базы;
• Огромное число методов и их вариантов, разница между которыми плохо
понимается и искусственно преувеличивается;
• Отсутствие заслуживающих доверия экспериментальных оценок и валидации;
• Разрыв между научными исследованиями и практическим применением.
Мы поддерживаем процесс переопределения программной инженерии на основе
убедительной теории, проверенных принципов и лучших практик, которые:
• Включают ядро, состоящее из общепринятых элементов, с возможностью
расширения под конкретные нужды;
• Затрагивают как вопросы технологии, так и человеческий фактор;
• Поддержаны индустрией, наукой, исследователями и пользователями;
• Поддерживают расширение, вызванное изменениями в требованиях и
технологиях.
5
6. 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
7. 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
8. Key New Principles
• Being agile when working with methods.
• Separation of Concerns
8
9. 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
10. The approach is practical
• The common ground
is the kernel
Kernel
10
11. 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
produces
focuses
support
useandconsume
Scopesandconstrains
setuptoaddress
software system
team
stakeholders
requirements
opportunity
work
way of working
software
system
11
Онтология?
12. Связь между методами, практиками, ядром и
языком
12
So to paraphrase Michelangelo:
“We are freeing the kernel
from the methods”
“I am freeing the statue from the block”
- Michelangelo (attributed)
13. Ядро (kernel)
A kernel is a set of elements used to form a common
ground for describing a software engineering endeavor.
Состоит из альф и пространств дел, объединенных в
области интересов.
Ядро также предоставляет набор компетенций, которые
дополняют альфы и пространства дел.
Ядро:
• Исполняемое
• Расширяемое
• Практичное
13
14. Альфы (alphas)
определяют
предмети
ограничивают
(Scopesand
constrains)>
организуютсядляреагированияна
(setuptoaddress)>
< определяют (identifies)
поддерживают(support)>
уточняет
focuses>
< планирует и выполняет
(performs and plans)
< удовлетворяет (fulfils)
используют
(useand
consume)>
<производит
(produces)
Работы
Work
Технология работы
(Way of Working)
Команда
Team
Требования
Requirements
Программная система
Software System
Возможность
Opportunity
Заинтересованные
стороны
Stakeholders
Решение
(Solution)
Предпринятие
(Endeavor)
Клиент
(Customer)
14
15. Стейкхолдеры
(Заинтересованные
стороны)
Люди, группы или организации, кто
затрагивает или которые затрагиваются
программной системой.
Механизмы вовлечения стейкхолдеров согласованы и назначены
представители стейкхолдеров.
The mechanisms for involving the stakeholders are agreed and the stakeholder
representatives have been appointed.
Представители стейкхолдеров в согласии.
The stakeholder representatives are in agreement.
Признаны
Recognized
Представлены
Represented
Стейкхолдеры(Stakeholders)
Удовлетворены
для
разворачивания
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
16. Пространства дел (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
Клиент
(Customer)
Решение
(Solution)
Предпринятие
(Endeavor)
Использовать систему
Use the System
Управлять
системой
Operate
the System
16
18. Overview of the End of Phase Milestones
Vanilla EssUP
$$
Opportunity Requirements System TeamWork Way of WorkingStakeholders
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
19. Как пользоваться
[0. Связать достижение альфами определенных состояний с
переходами между стадиями жизненного цикла.]
1. Определить текущее состояние предпринятия при помощи
чеклистов, предлагаемых стандартом для альф.
2. Определить к каким состояниям каких альф требуется перейти в
первую очередь.
3. Определить те задания, которые необходимо выполнить, чтобы
достичь желаемых состояний, определенных на шаге 2.
[4. Убедиться, что используемые практики позволяют заполнить все
пространства дел.]
[5. Убедиться в наличии достаточного количества членов команды с
необходимыми уровнями компетенций для успешного следования
практикам.]
19
20. Возможность
Набор обстоятельств, который благоприятен
для разработки или изменения
программной системы.
Польза успешного решения была установлена.
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
Возможность(Opportunity)
Извлекается
выгода
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
21. Требования
Что программная система должна делать,
чтобы адресовать возможность и
удовлетворить стейкхолдеров.
Требования обеспечивают непротиворечивое описание существенных
характеристик новой системы.
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
Требования(Requirements)
Удовлетворены
Fulfilled
Назначение и тема новой системы ясны.
The purpose and theme of the new system are clear.
Адресованы
Addressed
Требования описывают систему, которая будет приемлема для
стейкхолдеров.
The requirements describe a system that is acceptable to the stakeholders.
21
22. Программная система
Система, сделанная из программ, оборудования
и данных, которая обеспечивает свою главную
пользу путём выполнения программ.
Демонстрируемая
Demonstrable
Подходит для
использования
Usable
Готова
Ready
Эксплуатируется
Operational
Программнаясистема(SoftwareSystem)
Система подходит для использования и демонстрирует все качественные
характеристики эксплуатируемой системы.
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
23. Команда
Группа людей, активно участвующих в
разработке, сопровождении, поставке и
поддержке какой-то программной системы.
Намечена
Seeded
Сформирована
Formed
Сотрудничает
Collaborating
Производит
Performing
Распущена
Adjourned
Команда(Team)
Миссия команды ясна и знания о том, как растить команду, наличествуют.
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
24. Работы
Дела, включающие умственные или физические
усилия для достижения результата.
Подготовлена
Prepared
Начата
Started
Под контролем
Under Control
Закончена
Concluded
Закрыта
Closed
Работы(Work)
Все предусловия для начала работы выполнены.
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
25. Технология работы
Адаптированный по месту набор практик и
инструментов, используемый командой для
ведения и поддержки работы.
Основа положена
Foundation Established
Используется
In Use
Наличествует
In Place
Работает хорошо
Working well
Выведена из
употребления
Retired
Технологияработы(Way-of-Working)
Ключевые практики и инструменты, которые формируют основу технологии,
выбраны и готовы к использованию.
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
26. Представитель
стейкхолдера
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
Stakeholder
Representative
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
Stakeholders
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
27. Потребность
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
Need
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
Opportunity
Benefit
Accrued
Addressed
Drives
27
28. Единица требований
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
RequirementItem
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
Requirements
Fulfilled
Addressed
Drives
28
29. Ошибка
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
BugAn error, fault or flaw in the Software
System is observed and logged.
FixedThe Bug has been removed from the
Software System.
Closed
Demonstrable
Usable
Ready
Operational
SoftwareSystem
Architecture
Selected
Retired
Inhibits
29
30. Элемент
системы
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
SystemElement
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
SoftwareSystem
Architecture
Selected
Retired
Drives
30
31. Член команды 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
TeamMember
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
TEAM
Drives
31
32. Задача
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
DoneThe work required to do the task has been
completed.
Prepared
Started
Under Control
Concluded
Closed
Work
Initiated
Drives
32
33. Overview of the End of Phase Milestones
A Waterfall Lifecycle
Testing
Deployment
$$
Opportunity Requirements System TeamWork 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
34. Exploratory
Elaboration
Inception
Transition
Construction
$$
Opportunity Requirements System TeamWork 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
StartedInvolved
In Agreement
Fulfilled
Viable Coherent
Approach
Selected
Usable
Under
Control
Performing
In Place
Working Well
Addressed Fulfilled Ready (Concluded) Working WellPerforming
Satisfied for
Deployment
Usable
Exploratory
34
35. Standard
Elaboration
Inception
Transition
Construction
$$
Opportunity Requirements System TeamWork Way of Working
Solution Needed
Benefit Accrued
Identified
Bounded
Addressed
Demonstrable
Retired
Seeded
Adjourned
Initiated
Concluded
Prepared
Closed
Principles
Established
RetiredOperational
Stakeholders
Represented
Satisfied in Use
Recognized
Value
Established
Conceived
Formed
Foundation
Established
Started
Involved
Fulfilled
Approach
Selected
Usable
Addressed Fulfilled Ready (Concluded) Working WellPerforming
Satisfied for
Deployment
UsableIn Agreement Viable
Coherent
Under
Control
Performing Working Well
In Use
Ready
Collaborating In PlaceAcceptable
Standard
35
36. A Funding / Decision Making Lifecycle
$$
Opportunity Requirements System TeamWork Way of Working
Benefit Accrued
Addressed
Retired
Adjourned
Concluded
Closed RetiredOperational
Stakeholders
Represented
Satisfied in Use
Value
Established
Conceived
FormedStarted
Fulfilled
Approach
Selected
Usable
Addressed Fulfilled Ready Concluded Working WellPerforming
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 PlaceDecision to
Fund Update
Decision to Go
Public
Decision to
Handover
Bounded SeededPrepared
Foundation
Established
Involved Solution Needed
Identified
Initiated
Principles
Established
Recognized
Demonstrable
36
40. Пример для Scrum
Sprint Review
Daily Scrum
Sprint Planning
Meeting
Sprint
Retrospective
Sprint Planning
Meeting
Prepare to do the Work
Daily ScrumCoordinate the Work
Sprint ReviewTrack Progress
Sprint
Retrospective
Support the Team
40
41. Средства моделирования
Колода карт SEMAT
http://www.ivarjacobson.com/SEMAT_Kernel_Cards_Download/
Моделлер
http://www.ivarjacobson.com/EssWork_Practice_Workbench/
41
42. 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