Post on 15-Jan-2016
description
Shihong Huangshihong@fau.edu
Dept. of Computer & Electrical Engineering and Computer ScienceFlorida Atlantic University
Spring/Summer Young Researchers’ Colloquium on Software Engineering
May 12-13, 2011 Yekaterinburg Russia
Capturing the Essence of Software EngineeringCapturing the Essence of Software Engineering – A Reflection on Semat Initiative– A Reflection on Semat Initiative
Software Engineering Method and TheorySoftware Engineering Method and Theory
Florida Atlantic University on the MapFlorida Atlantic University on the Map
Florida Atlantic UniversitySYRCoSE May 12-13, 2011 2
Florida Atlantic University
Florida: A Different MapFlorida: A Different Map
Florida Atlantic UniversitySYRCoSE May 12-13, 2011 3
Florida Atlantic UniversitySYRCoSE May 12-13, 2011 4
OutlineOutline
Motivation of Semat – the Grant Vision The basis for Semat The concept of method, practices and
kernel Current status Get involved
MotivationMotivation
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
Florida Atlantic UniversitySYRCoSE May 12-13, 2011 5
The buzz words of software developmentThe 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 …
Florida Atlantic UniversitySYRCoSE May 12-13, 2011 6
Florida Atlantic UniversitySYRCoSE May 12-13, 2011 7
SOA
Coud Computering
Web Services
EDA
SPEM
CMMI
What will be the next silver bullet?
The concerns and challengesThe 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.
Florida Atlantic UniversitySYRCoSE May 12-13, 2011 8
Source: Semat Call for Action
The men from the future …The men from the future …
Florida Atlantic UniversitySYRCoSE May 12-13, 2011 9
Ivar Jacobson Bertrand Meyer Richard Soley
Software Engineering Method and Theory
Jacobson, Meyer, & Soley “Call for Action: The Semat Initiative” Dr. Dobb’s Journal, December 10, 2009
The Grant VisionThe 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
Florida Atlantic UniversitySYRCoSE May 12-13, 2011 10
Source: Semat Vision Statement
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.
Semat one-line goalSemat one-line goal
The goal is to create a kernel and a language that arescalable, extensible, and easy to use, and that allowpeople to describe the essentials of their existing andfuture methods and practices so that they can becomposed, compared, evaluated, tailored, used,adapted, simulated and measured by practitioners aswell as taught and researched by academics andresearchers.
Florida Atlantic UniversitySYRCoSE May 12-13, 2011 11
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.
Software primary usersSoftware primary users
Software engineering
Pragmatic, seeking available
methods that are easy to use
Concerned about getting
software better, faster cheaper &
happier
Teach and research Software Engineering
Signatories as May 13, 2011Signatories as May 13, 2011
Florida Atlantic UniversitySYRCoSE May 12-13, 2011 13
Represent different camps: agile, Iterative, RUP, computer science, Metrics, CMMI, academia …
Corporate signatories as May 13, 2011Corporate signatories as May 13, 2011
Florida Atlantic UniversitySYRCoSE May 12-13, 2011 14
Semat eventsSemat 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
Florida Atlantic UniversitySYRCoSE May 12-13, 2011 15
Method Practice Kernel Kernel language
Semat key conceptsSemat key concepts
Florida Atlantic UniversitySYRCoSE May 12-13, 2011 16
Method Method in a traditional sensein 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
Florida Atlantic UniversitySYRCoSE May 12-13, 2011 17
The concept of The concept of methodmethod
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
Florida Atlantic UniversitySYRCoSE May 12-13, 2011 18
Method Practice Kernel Kernel language
Semat key conceptsSemat key concepts
Florida Atlantic UniversitySYRCoSE May 12-13, 2011 19
The concept of The concept of practicepractice
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 Florida Atlantic UniversitySYRCoSE May 12-13, 2011 20
Source: Semat Three Year Vision
Method and practiceMethod 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
Florida Atlantic UniversitySYRCoSE May 12-13, 2011 21
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.
From the Essential Unified Process to The EssentialsFrom the Essential Unified Process to The Essentials
TechnicalPractices
Cross-Cutting
Practices
Use Case
Process Modeling
ProductArchitecture
$
ComponentIteration
Team
upupUnified Process
Lifecycle
The Essentials
The Kernel
Many more practices:-Scrum
-User Stories-Test-Driven Design
-Continuous Integration
-Self-Organizing Teams
-Pair Programming-PLA-EA
Source: EssWork
Method evolutionMethod evolution
Existing Method
Your Own
Best Practices
Kernel
+
New Method
Change starts by harvesting your best practices from your own method
You get a method structured for the future
Source: EssWork
Method Practice Kernel Kernel language
Semat key conceptsSemat key concepts
Florida Atlantic UniversitySYRCoSE May 12-13, 2011 24
What is in the KernelWhat 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
Improve your method by adding other, proven practicesImprove your method by adding other, proven practices
Your Own
Best Practices
Kernel
+ +Other Practices
From Many Sources
Iterative
Component
Architecture
Use Case
Team
+++PLA
Source: EssWork
OK, there is a kernel! Maybe there are many?But none is widely-accepted! That needs to be changed!
To establish the common groundTo establish the common ground
Florida Atlantic UniversitySYRCoSE May 12-13, 2011 27
Source: mopo.ca
The Kernel – the essence of software engineeringThe 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
Florida Atlantic UniversitySYRCoSE May 12-13, 2011 28
The nature of the kernelThe 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)
Florida Atlantic UniversitySYRCoSE May 12-13, 2011
29
The domain being practices for software development
What the kernel is not:What 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
Florida Atlantic UniversitySYRCoSE May 12-13, 2011 30
The concept of The concept of kernelkernel
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
Florida Atlantic UniversitySYRCoSE May 12-13, 2011 31
Finding the kernelFinding the kernel
Florida Atlantic UniversitySYRCoSE May 12-13, 2011 32
Example of essential elements: Work Team Requirements Software system Opportunity Stakeholder
“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
Realizing the kernelRealizing the kernel
Endeavor
Solution
Customer
Source: Spence, S.: “On the area of concern”
Are
a o
f co
nce
rns
Kernel: “Things to Produce” diagramKernel: “Things to Produce” diagram
Alpha
Area of concern
Source: Spece, S.: “On the area of concern”
Kernel: “Things to Do” diagramKernel: “Things to Do” diagram
Activity space
Area of concern
Source: Spece, S.: “On the area of concern”
Kernel: “Competencies” diagramKernel: “Competencies” diagram
Competency
Competency level
Colors denote area of concern
Source: Spece, S.: “On the area of concern”
Current set of suggested kernel elements Current set of suggested kernel elements (WIP)(WIP)
Way of Working
Software System
<
applies
Sc
op
e
an
d
co
ns
trai
n >S
et
up
to
ad
dre
ss
>
Team
External Stakeholde
rs
< provide
produces a
working >
su
pp
ort
>
Requirements
Opportunity
Work
foc
us
es
>
< guides
< perform
s
< fulfilsU
se
an
d
co
ns
um
e
>
< helps to address
Practice1..*
Source: Semat working group document
The governance of the kernelThe 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
Florida Atlantic UniversitySYRCoSE May 12-13, 2011 38
Method Practice Kernel Kernel language
Semat key conceptsSemat key concepts
Florida Atlantic UniversitySYRCoSE May 12-13, 2011 39
The language definitionThe 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
Florida Atlantic UniversitySYRCoSE May 12-13, 2011 40
Source: OMG RFP draft
The language featuresThe 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.
Florida Atlantic UniversitySYRCoSE May 12-13, 2011 41
Source: OMG RFP draft
The kernel and languageThe 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
Florida Atlantic UniversitySYRCoSE May 12-13, 2011 42
The domain being practices for software development
Putting togetherPutting together
Florida Atlantic UniversitySYRCoSE May 12-13, 2011 43
Source: Semat Three Year Vision
Semat productsSemat products
The Kernel and the Language Tools (including open source) The Practice Market Place Curricula Text Books and Papers Research
Florida Atlantic UniversitySYRCoSE May 12-13, 2011 44
Welcome to the world of SematWelcome to the world of Semat
Sign up to become a supporter To get involved with group activities
Florida Atlantic UniversitySYRCoSE May 12-13, 2011 45
www.semat.org
www.semat.org.cn
ReferencesReferences1. 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/220300840
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/222001342
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/SematZurichMarch2010/Zurich_meeting_report.pdf
6. Shihong Huang, the 2nd Semat Workshop Report, online at:http://www.semat.org/pub/Main/WebHome/2nd_Semat_Workshop_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).
Florida Atlantic UniversitySYRCoSE May 12-13, 2011 46
Florida Atlantic UniversitySYRCoSE May 12-13, 2011 47
谢谢(Xie Xie)
Shihong Huangshihong@fau.edu