Title: Capturing the Essence of Software Engineering
1Capturing the Essence of Software Engineering
A Reflection on Semat Initiative
Software Engineering Method and Theory
2Florida Atlantic University on the Map
Florida Atlantic University
3Florida A Different Map
4Outline
- Motivation of Semat the Grant Vision
- The basis for Semat
- The concept of method, practices and kernel
- Current status
- Get involved
5Motivation
- Software community has developed software for
over five the past five decades - Applications of software has generated enormous
impact on both our society and our lives - However, have we advanced our own discipline over
these years? - ? improve the way we develop software
6The buzz words of software development
- OO development 50 years ago
- Components, UML, Unified Process 10 years ago
- RUP and CMMI 5 years ago
- XP a few years ago
- Scrum recent years
- Kanban now the talk in town
- And more
7SPEM
Web Services
SOA
What will be the next silver bullet?
Coud Computering
EDA
CMMI
8The concerns and challenges
- Software engineering is gravely hampered today by
immature practices. - Specific problems include
- The prevalence of fads more typical of fashion
industry than of an engineering discipline. - The lack of a sound, widely accepted theoretical
basis. - The huge number of methods and method variants,
with differences little understood and
artificially magnified. - The lack of credible experimental evaluation and
validation. - The split between industry practice and academic
research.
Source Semat Call for Action
9The men from the future
Ivar Jacobson
Bertrand Meyer
Richard Soley
Software Engineering Method and Theory
Jacobson, Meyer, Soley Call for Action The
Semat Initiative Dr. Dobbs Journal, December
10, 2009
10The Grant Vision
- Semat supports a process to refound software
engineering based on a solid theory, proven
principles and best practices that - Include a kernel of widely-agreed elements,
extensible for specific uses - Addresses both technology and people issues
- Are supported by industry, academia, researchers
and users - Support extension in the face of changing
requirements and technologyÂ
At its hear is a kernel of widely agreed
elements. The kernel would provides the common
ground help practitioners to compare methods and
make better decisions of their practices.
Source Semat Vision Statement
11Semat one-line goal
- The goal is to create a kernel and a language
that are - scalable, extensible, and easy to use, and that
allow - people to describe the essentials of their
existing and - future methods and practices so that they can be
- composed, compared, evaluated, tailored, used,
- adapted, simulated and measured by practitioners
as - well as taught and researched by academics and
- researchers.
Being able to design a method from a set of
relevant practices, all described using a kernel
of essential elements are key requirements of
Semat.
12Software primary users
Pragmatic, seeking available methods that are
easy to use
Concerned about getting software better,
faster cheaper happier
Software engineering
Teach and research Software Engineering
13Signatories as May 13, 2011
- Pekka Abrahamsson
- Scott Ambler
- Victor Basili
- Jean Bézivin
- Dines Bjorner
- Barry Boehm
- Alan W. Brow
- Larry Constantine
- Steve Cook
- Bill Curtis
- Donald Firesmith
- Erich Gamma
- Carlo Ghezzi
- Tom Gilb
- Robert L. Glass
- Ellen Gottesdiener
- Martin Griss
- Sam Guckenheimer
- David Harel
Represent different camps agile, Iterative,
RUP, computer science, Metrics, CMMI, academia
14Corporate signatories as May 13, 2011
- ABB
- Chalmers University of Technology
- Ericsson
- Fujitsu UK
- IBM
- KAIST
- Microsoft
- Peking University
- SAAB
- Samsung SDS
- SINTEF
- SW Engineering Center
- Telecom Italia
- Toronto, Ontario
- WellPoint
15Semat events
- 1st Workshop on March 17-18, 2010, Zurich
- 2nd Workshop on July 13 14, 2010, Washington
D.C. - 3rd Workshop on September 29 - October 1, 2010 Â
in  Milan - RPF draft presented at OMG meeting March 14-18,
2011 - Next RFP presentation at OMG June 2011
16Semat key concepts
- Method
- Practice
- Kernel
- Kernel language
17Method in a traditional sense
- As being instantiated
- The activities -- created from the definition --
are executed by practitioners in some order to
get result, specified by the definition - This view the team is the computer, the
process is the program - is not suitable for
creative work like software engineering - which requires support for work, which is agile,
trial-and-error based and collaboration intensive
18The concept of method
- A method is a composition of practices
- as opposed to an interconnection of
process/method components, disciplines, or
similar - Methods are dynamic and used
- Methods are not just descriptions for developers
to read, they are dynamic, supporting their
day-to-day activities - This changes the conventional definition of a
method - A method is not just a description of what is
expected to be done, but a description of what is
actually done
19Semat key concepts
- Method
- Practice
- Kernel
- Kernel language
20The concept of practice
- AÂ practice is an approach to doing something with
a specific purpose in mind - There are several kinds of practices
- but the basic and most important kind of
practices are the concrete practices - A concrete practice is a complete end-to-end
activity with a clear beginning and end
supporting software practitioners in getting
their job done - These practices give value one-by-one
- They are what users want to make lean
- They are what you want to measure and provide
metrics for
Source Semat Three Year Vision
21Method and practice
- Basically every software development team, with
some exceptions, has its own method - There to be probably over 100,000 methods in
existence, with many of them never being
described - but the number of relevant separate practices in
use should be much smaller
Being able to design a method from a set of
relevant practices, all described using a kernel
of essential elements are key requirements of
Semat.
22From the Essential Unified Process to The
Essentials
The Essentials
- Many more practices
- Scrum
- User Stories
- Test-Driven Design
- Continuous Integration
- Self-Organizing Teams
- Pair Programming
- PLA
- EA
TechnicalPractices
Product
Architecture
Cross-Cutting Practices
Unified ProcessLifecycle
Modeling
Process
The Kernel
Source EssWork
23Method evolution
Change starts by harvesting your best practices
from your own method
New Method
You get a method structured for the future
Source EssWork
24Semat key concepts
- Method
- Practice
- Kernel
- Kernel language
25What is in the Kernel
- The Kernel we harvested is very small, extracted
from a large number of methods - The Kernel is practice and method agnostic
Kernel
The Kernel includes the essence of software
engineering
26Improve your method by adding other, proven
practices
Use Case
Iterative
Architecture
Component
Team
Your Own Best Practices
Kernel
Other Practices From Many Sources
OK, there is a kernel! Maybe there are many? But
none is widely-accepted! That needs to be changed!
Source EssWork
27To establish the common ground
Source mopo.ca
28The Kernel the essence of software engineering
- The common ground
- Identify and specify a kernel including the
essential elements in software engineering key
requirement - Irrespective of code, software system, solution,
methods, organization - A kernel of elements pervasive concepts and
qualities the common ground - Always prevalent in any software endeavors
- Separate of concerns separating kernel from
specifics of different methods
29The nature of the kernel
- Finding the constituents of the kernel is
critical - Uncover universal, significant and relevant
elements - Need to be widely agreed upon
- The kernel is defined using a domain-specific
language - The kernel and the language are small and light
at their base - But extensible to cover advanced uses (e.g.,
safety-critical systems)
The domain being practices for software
development
30What the kernel is not
- A new unified methodology
- A new software process meta-model
- A new body of knowledge
- A new modeling language
- A trick to get people to build or buy more tools
31The concept of kernel
- The kernel should be as simple as a map of when
we develop software - what we already have (e.g. teams and projects)
- what we already do (e.g. specify and implement)
- what we already produce (e.g. software systems)
- Irrespective of
- the way we work
- whether we write documentation, or
- even if the result is good or bad
- The kernel should be concrete, focused and light
32Finding the kernel
You have achieved perfection not when there is
nothing left to add, but when there is nothing
left to take away -- Antoine de Saint-Exupéry
- Example of essential elements
- Work
- Team
- Requirements
- Software system
- Opportunity
- Stakeholder
33Realizing the kernel
Customer
Solution
Area of concerns
Endeavor
Source Spence, S. On the area of concern
34Kernel Things to Produce diagram
Alpha
Area of concern
Source Spece, S. On the area of concern
35Kernel Things to Do diagram
Activity space
Area of concern
Source Spece, S. On the area of concern
36Kernel Competencies diagram
Competency
Competency level
Colors denote area of concern
Source Spece, S. On the area of concern
37Current set of suggested kernel elements (WIP)
Source Semat working group document
38The governance of the kernel
- The responsibility for this work has been moved
to the Object Management Group (OMG) - Provide proper governance
- To ensure the openness and fairness of the
selection process - Ensures the results benefit the entire community
- A RFP entitled A Domain-Specific Language and a
Kernel of Essentials For Software Engineering
(ESSENSE) has been prepared by a group of people
at OMG and presented - Next meeting will be in June 2011
39Semat key concepts
- Method
- Practice
- Kernel
- Kernel language
40The language definition
- The Language shall have an abstract syntax model
defined in a formal modeling language - The Language shall have formal static and
operational semantics defined in terms of the
abstract syntax - The Language shall have a graphical concrete
syntax that formally maps to the abstract syntax - The Language shall also have a textual concrete
syntax that formally maps to the abstract syntax -
Source OMG RFP draft
41The language features
- Description The Language shall support the
description of practices and methods in terms of
the essential elements of the Kernel. - Composition The Language shall support the
composition of practices to describe existing and
new methods. - Work Progress The Language shall allow the
representation of work progress. (For example,
describing a practice that involves iterative
development requires describing the starting and
ending states of every iteration.) - Enactment The Language shall support the
enactment of methods, both as used to help plan
endeavors and as applied (or executed) as part of
the day-to-day activities in real projects.
Source OMG RFP draft
42The kernel and language
- The kernel is defined using a domain-specific
language - which has a static base (syntax and
well-formed-ness rules) to let us define methods
effectively, and - with an additional dynamic concern (operational
semantics) to let us use, adapt and simulate them
The domain being practices for software
development
43Putting together
Source Semat Three Year Vision
44Semat products
- The Kernel and the Language
- Tools (including open source)
- The Practice Market Place
- Curricula
- Text Books and Papers
- Research
45Welcome to the world of Semat
- Sign up to become a supporter
- To get involved with group activities
www.semat.org.cn
www.semat.org
46References
- 1. Ivar Jacobson and Bertrand Meyer Methods
need theory Dr. Dobb's Journal, August 06, 2009.
Online at http//www.drdobbs.com/architecture-and-
design/219100242 - 2. Ivar Jacobson and Ian Spence Why we need a
theory for software engineering Dr. Dobb's
Journal, October 02, 2009. Online at
http//www.drdobbs.com/architecture-and-design/220
300840 - 3. Ivar Jacobson, Bertrand Meyer, and Richard
Soley Call for Action The Semat Initiative
Dr. Dobb's Journal December 10, 2009. Online at
http//www.drdobbs.com/architecture-and-design/222
001342 - 4. Ivar Jacobson, Bertrand Meyer, and Richard
Soley The Semat Vision Statement online at
http//www.semat.org/pub/Main/WebHome/SEMAT-vision
.pdf - 5. Shihong Huang, the 1st Semat Workshop report,
online at - http//www.semat.org/pub/Main/SematZurichMarch201
0/Zurich_meeting_report.pdf - 6. Shihong Huang, the 2nd Semat Workshop Report,
online at - http//www.semat.org/pub/Main/WebHome/2nd_Semat_W
orkshop_Report.pdf - 7 Shihong Huang and Paul McMahon, the 3rd Semat
Workshop Report, online at - http//www.semat.org/pub/Main/WebHome/3rd_Semat_
Workshop_Report.pdf - 8. Ivar Jacobson, Shihong Huang, Mira
Kajko-Mattsson, Paul McMahon, Ed Seymour, Semat
Three Year Vision in the Proceedings of the
Spring/Summer Young Researchers' Colloquium on
Software Engineering by Institute for Systems
Programming, Russia Academy of Sciences (SYRCoSE
2011 May 12 13, 2011, Yekateringburg, Russia).
47From Russia with Love
??(Xie Xie)
???????
Shihong Huangshihong_at_fau.edu