Loading presentation...

Present Remotely

Send the link below via email or IM

Copy

Present to your audience

Start remote presentation

  • Invited audience members will follow you as you navigate and present
  • People invited to a presentation do not need a Prezi account
  • This link expires 10 minutes after you close the presentation
  • A maximum of 30 users can follow your presentation
  • Learn more about this feature in our knowledge base article

Do you really want to delete this prezi?

Neither you, nor the coeditors you shared it with will be able to recover it again.

DeleteCancel

Make your likes visible on Facebook?

Connect your Facebook account to Prezi and let your likes appear on your timeline.
You can change this under Settings & Account at any time.

No, thanks

The Essence of Software Engineering

Introductory lecture on Semat Essence theory of Software Engineering - Introduction to Management Engineering @ FUB 27/11/2012
by

Daniel Graziotin

on 13 September 2016

Comments (0)

Please log in to add your comment.

Report abuse

Transcript of The Essence of Software Engineering

The Essence
of Software Engineering

Semat Initiative
Kernel and Practices
Kernel
Many
Things
In SE

Kernel
Concerns
Introduction to Management Engineering

Free University of Bolzano

2013-12-17

Is that all?
eXtreme Programming
Test Driven Development
Scrum
Crystal Clear
Kanban
Lean Software Development
Unit Tests
Regression Tests
Product Backlog
Source Code
Repository
Sprint
Iteration
Things
in Things
Things
in Things
in Things
Client
Customer
Developer
Analyst
Tester
Product Owner
Scrum Master
Things
use things
to do.. Things
Software Engineering Method and Theory
Issues with SE
The Grand
Problem
Set of elements used to form a common ground
for describing software engineering activities.
Simple
Practice and method agnostic.
Includes universal elements
The
Essence
of SE
Practice
• The Kernel is Universal (one & only one).
• Practices on top of the Kernel = Method.
• Practices are Use Cases, Test-Driven Development, etc.
A repeatable approach to doing something
with a specific purpose in mind.
Can we address the confusion?
Many things are in common!
Other things are just.. what?

Customer
Solution
Endeavor
Everything to do with the actual use and exploitation of the software
system to be produced.
Anything to do with specification
and development of the software system
Anything to do with the team
and the way they approach their work
Alphas
Activity
Spaces
Understand the Requirements
Shape the System
Implement the System
Test the System
Deploy the System
Operate the System
Opportunity
Stakeholders
Requirements
Software System
Work
Team
Way-of-Working
Explore Possibilities
Understand Stakeholder Needs
Ensure Stakeholder Satisfaction
Use the System
Prepare to do the Work
Coordinate Activity
Support the Team
Track Progresses
Stop Work
Set of circumstances that makes it appropriate to develop or change a software system
The people, groups, or organizations who affect or are affected by a software system
What the software system must do to address the opportunity and satisfy the stakeholders.
A system made up of software, hardware, and data that provides its primary value by the
execution of the software
Effort done to achieve a result.
Group of people engaged in the development, maintenance, delivery and support of software system.
Practices and tools used by a team to guide and support their work.
Competencies
Analysis
Development
Testing
Stakeholder
representation
Leadership
Management
This is only an introduction
- Alphas have States
- Competencies have associated skills
The Language is very important.
- Techniques to determine States
E.g. http://sematacc.meteor.com
- http://semat.org
Semat Website
- http://task3.cc/1328/
Material for this lecture
References
Kajko-Mattsson et al. , "Refounding software engineering: The Semat initiative (Invited presentation)," Software Engineering (ICSE), 2012 34th International Conference on , vol., no., pp.1649-1650, 2-9 June 2012
doi: 10.1109/ICSE.2012.6227214
Semat members, "Essence – Kernel and Language for Software Engineering Methods", OMG Document -- ad/12-11-01, available http://semat.org/?p=589
- Alphas can be extended
Now you are experts
in Software Engineering!

Semat Essence Theory
Essence defines a Kernel and a Language for software engineering method specification.
- A common ground
- The basis of a vocabulary
- Define and describe any method or practice
Kernel elements are:
- what we already have (e.g. teams and work)
- what we already do (e.g. specify and implement)
- what we already produce (e.g. software systems)
when we develop software.
We focus here
today
Customer
Solution
Endeavor
Customer
Solution
Endeavor
Customer
Solution
Endeavor
Ivar Jacobson et al., "The Essence of Software Engineering: The SEMAT Kernel", ACM Queue, available http://queue.acm.org/detail.cfm?id=2389616, October 24, 2012
Concern
Concern
Concern
Alphas
Competencies
Alphas
Alphas
Activity
Spaces
Competencies
Competencies
Alpha
Alpha
Alpha
State
State
State
State
State
State
State
State
State
State
State
State
Collection of main areas of concern that a software engineering endeavor has to pay special attention to.

All the elements of the kernels belong to a Concern.
The essential
things
to
work

with.


A team will manage, produce, and use
alphas
in the process of developing, maintaining and supporting good software.
Capabilities
(skills) to do the things.
The essential
things
to
do.


The challenges a team faces when developing, maintaining and supporting software
A
situation
where some condition holds
E.g. A software system is ready
A software system is retired
Alpha
State
State
State
Alpha
State
State
State
Alpha
State
State
State
Activity
Spaces
Activity
Spaces
Activity
Activity
Activity
Activity
Activity
Competency
Competency
Competency
Competency
Competency
Alpha
Alpha
State
State
State
State
State
State
State
Alpha
State
State
State
Activity
Activity
Activity
Competency
Competency
Competency
Alpha
State
State
State
Alpha
State
State
State
Activity
Activity
Activity
Competency
Competency
Competency
Structure
Content
Methodologies
Processes
Or was it..
Practices
Agile
What the heck is a Product Owner?
You called it Customer,
Why is it a Stakeholder now?
Is xP iterative?
Then what was the Iterative model?
Wait, wasn't xP Agile?
What does an analyst do?
When do we need requirements?
A Sprint is an iteration.
Why don't they call it iteration?
http://semat.org
What do they address?
- Fashion trends rather than an engineering discipline

- Lack of widely accepted theoretical basis

- Huge number of methods
- Differences little understood
- Artificially magnified

- Lack of credible experimental evaluation and validation

- Split between industry and research

- For students / newcomers
- Too many things! But are they really so many?
- Refund software engineering based on a solid theory, proven principles and best practices.

- Include a
kernel
of widely-agreed elements (things?)







- Address both technology and people issues
- Support extension in face of changing technologies
Action
As a community, we have no
widely accepted common ground
..and many sound the same!
There are
– 20 years ago: it was all about OO
– 12 years ago it was about components, UML, Unified Process (RUP)
– 10 years ago it was about CMMI and Spice
– 5 years ago it was about XP
– Yesterday it was about Scrum
– Now it is about Lean and Kanban
None of them are what you really need.
Graziotin, D and Abrahamsson, P 2013. A Web-based modeling tool for the SEMAT Essence theory of software engineering. Journal of Open Research Software 1(1):e4, DOI: http://dx.doi.org/10.5334/jors.ad
Full transcript