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
Industry Academics
Professionals Executives Education Research
Want to become Big companies have -Teaching instances -The Gap between
experts. Challenges: many processes. of methods such as research and
-Their skills are not Challenges: Scrum, RUP, instead industry
easily reusable for a -Reuse practices of common base; -No widely accepted
new product. -Reuse training doesn’t create theory
-Their career path -“Reuse” of people generalists
follows a zig-zag track -Evolutionary
from hype to hype. improvement is hard
SEMAT targets the whole software community.
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 Kernel
descriptions
opportunity
stakeholders
provide
use and consume
focuses
set up to address
software
software system
support
requirements system
fulfils
Scopes and constrains
produces
work team
performs and plans
way of working
11
12. Связь между методами, практиками, ядром и
языком
“I am freeing the statue from the block”
- Michelangelo (attributed) So to paraphrase Michelangelo:
“We are freeing the kernel
from the methods”
12
13. Ядро (kernel)
A kernel is a set of elements used to form a common
ground for describing a software engineering endeavor.
Состоит из альф и пространств дел, объединенных в
области интересов.
Ядро также предоставляет набор компетенций, которые
дополняют альфы и пространства дел.
Ядро:
• Исполняемое
• Расширяемое
• Практичное
13
14. Альфы (alphas)
(Customer)
Решение Клиент
< определяют (identifies) Заинтересованные
Возможность
стороны
Opportunity Stakeholders
consume)
(use and
используют
focuses >
уточняет
организуются для реагирования на
поддерживают (support) >
>
(Solution)
Требования Программная система
Requirements Software System
< удовлетворяет (fulfils)
(set up to address) >
constrains) >
(Scopes and
ограничивают
предмет и
определяют
(produces)
< производит
Работы < планирует и выполняет Команда
Предпринятие
Work (performs and plans) Team
(Endeavor)
Технология работы
(Way of Working)
14
15. Стейкхолдеры Люди, группы или организации, кто
(Заинтересованные затрагивает или которые затрагиваются
программной системой.
стороны)
Признаны Стейкхолдеры были определены.
The stakeholders have been identified.
Стейкхолдеры (Stakeholders)
Recognized
Механизмы вовлечения стейкхолдеров согласованы и назначены
Представлены представители стейкхолдеров.
Represented The mechanisms for involving the stakeholders are agreed and the stakeholder
representatives have been appointed.
Представители стейкхолдеров активно вовлечены в работу и выполняют свои
Вовлечены обязанности.
Involved
The stakeholder representatives are actively involved in the work and fulfilling their responsibilities.
В согласии Представители стейкхолдеров в согласии.
In Agreement The stakeholder representatives are in agreement.
Удовлетворены
для Минимальные ожидания представителей стейкхолдеров были достигнуты.
разворачивания The minimal expectations of the stakeholder representatives have been achieved.
Satisfied for Deployment
Удовлетворены Система удовлетворяет или превышает минимальные ожидания
в использоании стейкхолдеров.
Satisfied in Use The system meets or exceeds the minimal stakeholder expectations.
15
16. Пространства дел (activity spaces)
(Customer)
Клиент
Исследовать возможности Понять потребности Обеспечить удовлетворение Использовать систему
заинтересованных сторон заинтересованных сторон
Explore Possibilities
Understand Stakeholder Needs Ensure Stakeholder Use the System
Satisfaction
Решение
(Solution)
Управлять
Спроектировать Протестировать Развернуть систему
Понять требования
систему Изготовить систему систему системой
Understand the Deploy
Shape Implement the System Test the System Operate
Requirements the System
the System the System
Предпринятие
(Endeavor)
Подготовиться к работе Координировать дела Поддерживать команду Отслеживать прогресс Завершить работу
Prepare to do the Work Coordinate Activity Support the Team Track Progress Stop the Work
16
17. Клиент Компетенции
Представительство 1 Assists
стейкхолдера
Stakeholder Representation
2 Applies
Решение
3 Masters
Анализ Разработка Тестирование
Analysis Development Testing
4 Adapts
Предпринятие
5 Innovates
Лидерство Менеджмент
Leadership Management
17
18. Overview of the End of Phase Milestones
Vanilla EssUP
$
up Stakeholders Opportunity Requirements System Work Team Way of Working
Recognized Identified Initiated Seeded
Inception Represented Solution Needed
Principles
Conceived Established
Value Approach Foundation
Involved Bounded Prepared Formed
Established Selected Established
Elaboration Demonstrable Started Collaborating In Use
Under
In Agreement Viable Coherent Usable Performing In Place
Control
Acceptable
Construction
Addressed
Satisfied for
Addressed Performing Working Well
Deployment Fulfilled Ready Concluded
Operational
Transition Concluded
Satisfied in Use Benefit Accrued Fulfilled Retired Closed Adjourned Retired
18
19. Как пользоваться
[0. Связать достижение альфами определенных состояний с
переходами между стадиями жизненного цикла.]
1. Определить текущее состояние предпринятия при помощи
чеклистов, предлагаемых стандартом для альф.
2. Определить к каким состояниям каких альф требуется перейти в
первую очередь.
3. Определить те задания, которые необходимо выполнить, чтобы
достичь желаемых состояний, определенных на шаге 2.
[4. Убедиться, что используемые практики позволяют заполнить все
пространства дел.]
[5. Убедиться в наличии достаточного количества членов команды с
необходимыми уровнями компетенций для успешного следования
практикам.]
19
20. Набор обстоятельств, который благоприятен
Возможность для разработки или изменения
программной системы.
Коммерческая, общественная или инвестиционная возможность, которая
могла бы быть адресована программным решением, определена.
Определена
A commercial, social or business opportunity has been identified that could be addressed
Identified
by a software-based solution.
Возможность (Opportunity)
Нужно Потребность в программном решении была
решение подтверждена.
Solution Needed The need for a software-based solution has been confirmed.
Польза Польза успешного решения была установлена.
установлена The value of a successful solution has been established.
Value Established
Согласовано, что решение может быть произведено достаточно быстро и
Жизне-
дёшево, чтобы успешно адресовать возможность.
способна
Viable It is agreed that a solution can be produced quickly and cheaply enough to successfully
address the opportunity.
Адресована Решение, которое произведено, демонстрирует адресацию возможности.
Addressed A solution has been produced that demonstrably addresses the opportunity.
Извлекается Эксплуатация или продажа решения создаёт осзязаемые выгоды.
выгода The operational use or sale of the solution is creating tangible benefits.
Benefit Accrued
20
21. Что программная система должна делать,
Требования чтобы адресовать возможность и
удовлетворить стейкхолдеров.
Начаты Согласована потребность в новой системе.
Conceived The need for a new system has been agreed.
Требования (Requirements)
Ограничены Назначение и тема новой системы ясны.
Bounded The purpose and theme of the new system are clear.
Требования обеспечивают непротиворечивое описание существенных
Непротиворечивы характеристик новой системы.
Coherent The requirements provide a consistent description of the essential characteristics of the
new system.
Приемлемы Требования описывают систему, которая будет приемлема для
Acceptable стейкхолдеров.
The requirements describe a system that is acceptable to the stakeholders.
Достаточное количество требований было адресовано, чтобы удовлетворить
Адресованы потребность в новой системе способом, приемлемым для стейкхолдеров.
Addressed Enough of the requirements have been addressed to satisfy the need for a new system in a way
that is acceptable to the stakeholders.
Удовлетворены Требования, которые были адресованы, полностью удовлетворяют
Fulfilled потребность в новой системе.
The requirements that have been addressed fully satisfy the need for a new system.
21
22. Система, сделанная из программ, оборудования
Программная система
Программная система (Software System) и данных, которая обеспечивает свою главную
пользу путём выполнения программ.
Архитектура, которая адресует ключевые технические риски и любые
Архитектура выбрана применимые организационные ограничения, выбрана.
Architecture Selected An architecture has been selected that addresses the key technical risks and any applicable
organizational constraints.
Исполняемая версия системы, которая демонстрирует, что архитектура
Демонстрируемая
Demonstrable
соответствует назначению системы, доступна и поддерживает тестирование.
An executable version of the system is available that demonstrates the architecture is fit for purpose
and supports functional and non-functional testing.
Подходит для
использования Система подходит для использования и демонстрирует все качественные
Usable характеристики эксплуатируемой системы.
The system is usable and demonstrates all of the quality characteristics required of an operational system.
Готова Система (как целое) была принята для разворачивания в её
Ready эксплуатационном окружении.
The system (as a whole) has been accepted for deployment in a live environment.
Эксплуатируется Система используется в её эксплуатационном окружении.
Operational The system is in use in a live environment.
Выведена из эксплуатации Система больше не поддерживается.
Retired
The system is no longer supported.
22
23. Группа людей, активно участвующих в
Команда разработке, сопровождении, поставке и
поддержке какой-то программной системы.
Намечена Миссия команды ясна и знания о том, как растить команду, наличествуют.
Seeded The team’s mission is clear and the know-how needed to grow the team is in place.
Команда была пополнена достаточным количеством людей с принятыми
Сформирована
обязательствами, чтобы начать миссию.
Команда (Team)
Formed
The team has been populated with enough committed people to start the mission.
Сотрудничает Члены команды работают как одно целое.
Collaborating The team members are working together as one unit.
Производит Команда работает результативно и эффективно.
Performing The team is working effectively and efficiently.
Распущена Команда больше не ответственна за выполнение своей миссии.
Adjourned The team is no longer accountable for carrying out its mission.
23
24. Дела, включающие умственные или физические
Работы усилия для достижения результата.
Инициирована Работа была запрошена.
Initiated Work has been requested.
Подготовлена Все предусловия для начала работы выполнены.
Prepared All pre-conditions for starting the work have been met.
Работы (Work)
Начата Работа происходит.
Started The work is proceeding.
Работа продвигается хорошо, риски под контролем, уровень произво-
Под контролем дительности достаточен для достижения удовлетворительного результата.
Under Control The work is going well, risks are under control and productivity levels are sufficient to achieve
a satisfactory result.
Закончена Работа по производству результатов была закончена.
Concluded The work to produce the results has been concluded.
Закрыта Все остающиеся служебные задачи были завершены и работа была
Closed официально закрыта.
All remaining housekeeping tasks have been completed and the work has been officially
closed.
24
25. Адаптированный по месту набор практик и
Технология работы инструментов, используемый командой для
ведения и поддержки работы.
Технология работы (Way-of-Working)
Принципы Принципы и ограничения, которые определяют технологию, установлены.
установлены The principles, and constraints, that shape the way-of-working are established.
Principles Established
Ключевые практики и инструменты, которые формируют основу технологии,
Основа положена выбраны и готовы к использованию.
Foundation Established The key practices, and tools, that form the foundation of the way of working are selected and
ready for use.
Используется Некоторые члены команды используют технологию и адаптируют её.
In Use Some members of the team are using, and adapting, the way-of-working.
Все члены команды используют технологию работы, чтобы выполнять свою
Наличествует
работу.
In Place
All team members are using the way-of-working to accomplish their tasks.
Работает хорошо Технология для команды работает хорошо.
Working well The way-of-working is working well for the team.
Выведена из
Технология больше не используется командой.
употребления The way-of-working is no longer in use by the team.
Retired
25
26. Представитель A person, or group, empowered to represent a
стейкхолдера subset of the stakeholders in the endeavor.
Recognized The need for a sub-set of the
Identified stakeholders to be represented has been
identified.
A stakeholder representative has been
Represented empowered to work with the team and
Empowered understands his or her responsibilities to
Representative
the team and the people he or she
Stakeholders
Stakeholder
represents.
Involved The stakeholder representative is
Engaged actively involved in the work and
fulfilling his or her responsibilities.
In Agreement The stakeholder representative is
Satisfied satisfied with the work done and the
software system produced.
Satisfied for The stakeholder representative is
Deployment delighted with the work done and
Delighted the software system produced.
Satisfied in
Use
26
27. A lack of something necessary,
Потребность desirable or useful, requiring
supply or relief.
Identified
A need related to the opportunity and the Solution
stakeholders is identified. Identified Needed
Opportunity
The value to the customers and other
Value Value
stakeholders of a successful solution
that addresses the need is Established Established
established.
Need
Drives
The minimal expectations for a solution Viable
that addresses the need have been met.
Satisfied
The minimal expectations for a solution Expectations
Addressed
that addresses the need have been Exceeded
exceeded to the extent that the
stakeholders are delighted..
Benefit
Accrued
27
28. a condition or capability needed by a
Единица требований stakeholder to solve a problem or
achieve an objective.
Conceived
A specific condition or capability Bounded
that the Software System must Identified
Requirement Item
Requirements
address has been identified.
Coherent
The Requirement Item is ready to Described
be implemented.
Drives
The Requirement Item is Acceptable
implemented in the Software Implemented
System and demonstrated to work.
Successful implementation of the Addressed
Verified
Requirement Item in the Software
System has been confirmed.
Fulfilled
28
29. An error, flaw, or fault in a Software System that
Ошибка causes the system to fail to perform as required.
Architecture
Selected
Demonstrable
Software System
An error, fault or flaw in the Software Detected
System is observed and logged.
Usable
The cause of the Bug in the Located
Software System has been found.
Bug
Inhibits
Ready
The Bug has been removed from the Fixed
Software System.
Operational
The removal of the Bug from the
Software System has been
Closed
confirmed.
Retired
29
30. Элемент Independently developable and testable part
системы of a system.
Architecture
Selected
A system element has been identified as part of
Demonstrable
the Software System and its responsibilities and Identified
Software System
its position in the Software System are clear.
System Element
The System Elements interfaces have been Interfaces Usable
agreed. Agreed
Drives
The System Element has been implemented
and tested, and is believed to be ready for Developed Ready
integration into the Software System.
The System Element has been verified and
is ready for live use as part of the Software Ready Operational
System.
Retired
30
31. Член команды An individual acting as part of a team.
Seeded
A team member with specific skills is Wanted
sought to join the team.
Team Member
Formed
The team member is on board and learning
how to contribute to the team. On-Board
TEAM
Collaborating
The team member is helping her
Drives
Contributing
teammates and driving the team's
performance
Performing
The team member is preparing to leave the
Exiting
team.
Adjourned
31
32. A portion of work that can be clearly identified,
Задача isolated, and then accepted by one or more team
members for completion.
Initiated
Prepared
The task has been identified and is Identified
ready to be done
Task Started
Work
The task has been accepted by one or
more team members and work has
In Progress Drives
started. Under Control
The work required to do the task has been Done
completed.
Concluded
Closed
32
33. Overview of the End of Phase Milestones
A Waterfall Lifecycle
$
Stakeholders Opportunity Requirements System Work Team Way of Working
Identified Initiated Principles
Recognized Established
Seeded (Foundation
Initiation Solution Needed
Established)
Represented Prepared
Value In Use
Involved Conceived Started Formed
Established
In Place
Bounded (Collaborating)
Requirements
Coherent (Performing)
Under
In Agreement Acceptable Control Formed (Working Well)
Analysis & (Collaborating)
Design (Performing)
Architecture (Working Well)
Viable Formed
Selected
(Collaborating)
Implementation (Performing)
Formed (Working Well)
Demonstrable
(Collaborating)
(Usable)
Testing Addressed (Performing)
Satisfied for
Addressed Fulfilled Ready Formed (Working Well)
Deployment
(Collaborating)
Deployment (Performing)
Concluded
Satisfied in Use Benefit Accrued Operational Closed Adjourned (Retired)
Retired
33
34. Exploratory
$
Stakeholders Opportunity Requirements System Work Team Way of Working
Exploratory
Recognized
Initiated Principles
Represented Identified Seeded
Established
Solution Needed Prepared
Inception
Value Approach Foundation
Involved Conceived Started Formed
Established Selected Established
Approach
Bounded Selected In Use
Elaboration Collaborating
Demonstrable
In Place
Under
In Agreement Viable Coherent Usable Performing Working Well
Control
Acceptable
Construction Usable
Addressed
Satisfied for
Deployment
Addressed Fulfilled Ready (Concluded) Performing Working Well
Concluded
Transition
Satisfied in Use Benefit Accrued Fulfilled Operational Closed Adjourned Retired
Retired
34
35. Standard
$
Stakeholders Opportunity Requirements System Work Team Way of Working
Standard Recognized Identified Principles
Established
Initiated
Conceived
Represented Solution Needed
Value Bounded Approach Seeded Foundation
Involved Prepared
Established Selected Established
Inception
Started Formed In Use
Coherent Demonstrable
Elaboration
Under
In Agreement Viable Acceptable Usable Collaborating In Place
Control
Usable
Performing Working Well
Construction
Addressed Ready
Satisfied for
Deployment
Addressed Fulfilled Ready (Concluded) Performing Working Well
Concluded
Transition
Satisfied in Use Benefit Accrued Fulfilled Operational Closed Adjourned Retired
Retired
35
36. A Funding / Decision Making Lifecycle
$
Stakeholders Opportunity Requirements System Work Team Way of Working
Idea to Recognized Identified
Initiated
Opportunity
Conceived
Represented
Principles
Decision to Involved Solution Needed Bounded Prepared Seeded
Established
Justify
Value Approach Started Foundation
Decision to In Agreement
Established
Coherent Formed
Selected Established
Fund
In Use
Under
Decision to Viable Acceptable Demonstrable Collaborating In Place
Control
Fund Update
Usable
Performing Working Well
Addressed Ready
Satisfied for
Decision to Go Deployment
Addressed Fulfilled Ready Concluded Performing Working Well
Public
Concluded
Decision to Satisfied in Use Benefit Accrued Fulfilled Operational Closed Adjourned Retired
Handover
Retired
36
37. Графический синтаксис
fulfills > Requirements
Objectives
Software System Agreed
Состояние
Рабочий продукт
Ядро Activity
Activity Space
Компетенция
37
38. Метод и практики
Метод проекта Х
Практика
Архитектурная
Scrum вариантов
практика
использования
38
39. Пример для Scrum
Scrum 1
Requirements
Product
Backlog
Product
Work 1..* 1 owner
Sprint
Sprint
Backlog
Team Developer
Software 1..*
Scrum
System
Increment master
39
40. Пример для Scrum
Sprint Planning
Meeting
Sprint Planning
Prepare to do the Work Meeting
Daily Scrum
Coordinate the Work Daily Scrum
Sprint Review
Sprint
Retrospective
Track Progress Sprint Review
Sprint
Support the Team Retrospective
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
43. Спасибо
Вопросы?
Андрей Байда (andrey.a.bayda@gmail.com)
43