Capturing the Essence of Software Engineering – A Reflection on Semat Initiative

47
Shihong Huang [email protected] Dept. of Computer & Electrical Engineering and Computer Science Florida Atlantic University Spring/Summer Young Researchers’ Colloquium on Software Engineering May 12-13, 2011 Yekaterinburg Russia Capturing the Essence of Software Capturing the Essence of Software Engineering Engineering – A Reflection on Semat Initiative – A Reflection on Semat Initiative Software Engineering Method and Software Engineering Method and Theory Theory

description

Capturing the Essence of Software Engineering – A Reflection on Semat Initiative. Software Engineering Method and Theory. Florida Atlantic University on the Map. Florida Atlantic University. Florida: A Different Map. Outline. Motivation of Semat – the Grant Vision The basis for Semat - PowerPoint PPT Presentation

Transcript of Capturing the Essence of Software Engineering – A Reflection on Semat Initiative

Page 1: Capturing the Essence of Software Engineering – A Reflection on Semat Initiative

Shihong [email protected]

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

Page 2: Capturing the Essence of Software Engineering – A Reflection on Semat Initiative

Florida Atlantic University on the MapFlorida Atlantic University on the Map

Florida Atlantic UniversitySYRCoSE May 12-13, 2011 2

Florida Atlantic University

Page 3: Capturing the Essence of Software Engineering – A Reflection on Semat Initiative

Florida: A Different MapFlorida: A Different Map

Florida Atlantic UniversitySYRCoSE May 12-13, 2011 3

Page 4: Capturing the Essence of Software Engineering – A Reflection on Semat Initiative

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

Page 5: Capturing the Essence of Software Engineering – A Reflection on Semat Initiative

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

Page 6: Capturing the Essence of Software Engineering – A Reflection on Semat Initiative

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

Page 7: Capturing the Essence of Software Engineering – A Reflection on Semat Initiative

Florida Atlantic UniversitySYRCoSE May 12-13, 2011 7

SOA

Coud Computering

Web Services

EDA

SPEM

CMMI

What will be the next silver bullet?

Page 8: Capturing the Essence of Software Engineering – A Reflection on Semat Initiative

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

Page 9: Capturing the Essence of Software Engineering – A Reflection on Semat Initiative

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

Page 10: Capturing the Essence of Software Engineering – A Reflection on Semat Initiative

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.

Page 11: Capturing the Essence of Software Engineering – A Reflection on Semat Initiative

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.

Page 12: Capturing the Essence of Software Engineering – A Reflection on Semat Initiative

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

Page 13: Capturing the Essence of Software Engineering – A Reflection on Semat Initiative

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 …

Page 14: Capturing the Essence of Software Engineering – A Reflection on Semat Initiative

Corporate signatories as May 13, 2011Corporate signatories as May 13, 2011

Florida Atlantic UniversitySYRCoSE May 12-13, 2011 14

Page 15: Capturing the Essence of Software Engineering – A Reflection on Semat Initiative

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

Page 16: Capturing the Essence of Software Engineering – A Reflection on Semat Initiative

Method Practice Kernel Kernel language

Semat key conceptsSemat key concepts

Florida Atlantic UniversitySYRCoSE May 12-13, 2011 16

Page 17: Capturing the Essence of Software Engineering – A Reflection on Semat Initiative

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

Page 18: Capturing the Essence of Software Engineering – A Reflection on Semat Initiative

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

Page 19: Capturing the Essence of Software Engineering – A Reflection on Semat Initiative

Method Practice Kernel Kernel language

Semat key conceptsSemat key concepts

Florida Atlantic UniversitySYRCoSE May 12-13, 2011 19

Page 20: Capturing the Essence of Software Engineering – A Reflection on Semat Initiative

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

Page 21: Capturing the Essence of Software Engineering – A Reflection on Semat Initiative

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.

Page 22: Capturing the Essence of Software Engineering – A Reflection on Semat Initiative

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

Page 23: Capturing the Essence of Software Engineering – A Reflection on Semat Initiative

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

Page 24: Capturing the Essence of Software Engineering – A Reflection on Semat Initiative

Method Practice Kernel Kernel language

Semat key conceptsSemat key concepts

Florida Atlantic UniversitySYRCoSE May 12-13, 2011 24

Page 25: Capturing the Essence of Software Engineering – A Reflection on Semat Initiative

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

Page 26: Capturing the Essence of Software Engineering – A Reflection on Semat Initiative

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!

Page 27: Capturing the Essence of Software Engineering – A Reflection on Semat Initiative

To establish the common groundTo establish the common ground

Florida Atlantic UniversitySYRCoSE May 12-13, 2011 27

Source: mopo.ca

Page 28: Capturing the Essence of Software Engineering – A Reflection on Semat Initiative

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

Page 29: Capturing the Essence of Software Engineering – A Reflection on Semat Initiative

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

Page 30: Capturing the Essence of Software Engineering – A Reflection on Semat Initiative

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

Page 31: Capturing the Essence of Software Engineering – A Reflection on Semat Initiative

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

Page 32: Capturing the Essence of Software Engineering – A Reflection on Semat Initiative

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

Page 33: Capturing the Essence of Software Engineering – A Reflection on Semat Initiative

Realizing the kernelRealizing the kernel

Endeavor

Solution

Customer

Source: Spence, S.: “On the area of concern”

Are

a o

f co

nce

rns

Page 34: Capturing the Essence of Software Engineering – A Reflection on Semat Initiative

Kernel: “Things to Produce” diagramKernel: “Things to Produce” diagram

Alpha

Area of concern

Source: Spece, S.: “On the area of concern”

Page 35: Capturing the Essence of Software Engineering – A Reflection on Semat Initiative

Kernel: “Things to Do” diagramKernel: “Things to Do” diagram

Activity space

Area of concern

Source: Spece, S.: “On the area of concern”

Page 36: Capturing the Essence of Software Engineering – A Reflection on Semat Initiative

Kernel: “Competencies” diagramKernel: “Competencies” diagram

Competency

Competency level

Colors denote area of concern

Source: Spece, S.: “On the area of concern”

Page 37: Capturing the Essence of Software Engineering – A Reflection on Semat Initiative

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

Page 38: Capturing the Essence of Software Engineering – A Reflection on Semat Initiative

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

Page 39: Capturing the Essence of Software Engineering – A Reflection on Semat Initiative

Method Practice Kernel Kernel language

Semat key conceptsSemat key concepts

Florida Atlantic UniversitySYRCoSE May 12-13, 2011 39

Page 40: Capturing the Essence of Software Engineering – A Reflection on Semat Initiative

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

Page 41: Capturing the Essence of Software Engineering – A Reflection on Semat Initiative

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

Page 42: Capturing the Essence of Software Engineering – A Reflection on Semat Initiative

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

Page 43: Capturing the Essence of Software Engineering – A Reflection on Semat Initiative

Putting togetherPutting together

Florida Atlantic UniversitySYRCoSE May 12-13, 2011 43

Source: Semat Three Year Vision

Page 44: Capturing the Essence of Software Engineering – A Reflection on Semat Initiative

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

Page 45: Capturing the Essence of Software Engineering – A Reflection on Semat Initiative

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

Page 46: Capturing the Essence of Software Engineering – A Reflection on Semat Initiative

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

Page 47: Capturing the Essence of Software Engineering – A Reflection on Semat Initiative

Florida Atlantic UniversitySYRCoSE May 12-13, 2011 47

谢谢(Xie Xie)

Shihong [email protected]