capturing the essence of software engineering -- a reflection on semat vision statement

20
Shihong Huang Department of Computer Science & Engineering Florida Atlantic University 1st SEMAT Workshop March 17 - 19, 2010 Zurich Capturing the Essence of Capturing the Essence of Software Engineering Software Engineering -- A Reflection on SEMAT Vision Statement -- A Reflection on SEMAT Vision Statement

Upload: orea

Post on 11-Feb-2016

48 views

Category:

Documents


1 download

DESCRIPTION

Capturing the Essence of Software Engineering -- A Reflection on SEMAT Vision Statement. Florida Atlantic University on the Map. Florida Atlantic University. Florida: A Different Map. SEMAT Mission. Refound software engineering based on a solid theory, proven principles and best practices - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Capturing the Essence of  Software Engineering -- A Reflection on SEMAT Vision Statement

Shihong HuangDepartment of Computer Science & Engineering

Florida Atlantic University

1st SEMAT WorkshopMarch 17 - 19, 2010 Zurich

Capturing the Essence of Capturing the Essence of Software EngineeringSoftware Engineering

-- A Reflection on SEMAT Vision Statement-- A Reflection on SEMAT Vision Statement

Page 2: Capturing the Essence of  Software Engineering -- A Reflection on SEMAT Vision Statement

March 17-19, 2010 ZurichSEMAT Workshop 2010 2

Florida Atlantic University on the MapFlorida Atlantic University on the Map

Florida Atlantic University

Page 3: Capturing the Essence of  Software Engineering -- A Reflection on SEMAT Vision Statement

March 17-19, 2010 ZurichSEMAT Workshop 2010 3

Florida: A Different MapFlorida: A Different Map

Page 4: Capturing the Essence of  Software Engineering -- A Reflection on SEMAT Vision Statement

March 17-19, 2010 ZurichSEMAT Workshop 2010 4

SEMAT MissionSEMAT Mission

Refound software engineering based on a solid theory, proven principles and best practices

Address some of the prevalent problems Prevalence of fad Lack of a sound, widely accepted theories Large number of methods and variants Need of credible empirical evaluation and

validation Gap between industry and academia

Page 5: Capturing the Essence of  Software Engineering -- A Reflection on SEMAT Vision Statement

March 17-19, 2010 ZurichSEMAT Workshop 2010 5

SEMAT GoalsSEMAT Goals

Defining the basic definition of software engineering

Providing a strong mathematical basis Identifying the truly universal elements Defining a kernel language that

describes the “method elements” -- practices, patterns, and methods

Providing assessment techniques evaluating software practice and theories

Page 6: Capturing the Essence of  Software Engineering -- A Reflection on SEMAT Vision Statement

March 17-19, 2010 ZurichSEMAT Workshop 2010 6

Definition and UniversalDefinition and Universal

The goal of the Universal Identifying the universal elements of software

engineering to be integrated into “kernel” In the meantime, “keep the kernel concrete,

focused and small” Universals and Definitions are mutually tightly

coupled Definition defines the scope of the Universals Universals codify Definition

Basic understanding of what “software engineering” is

What the uniqueness of software engineering

Page 7: Capturing the Essence of  Software Engineering -- A Reflection on SEMAT Vision Statement

March 17-19, 2010 ZurichSEMAT Workshop 2010 7

What is “Software Engineering”What is “Software Engineering”

We leave this question to Track 1 to answer

Software Engineering = “Software” + “Engineering”

“The application of engineering methods and discipline to the field of software”

Although some question its sufficiency or precision [A. Cockburn]

Software engineering is indeed an “Engineering” discipline, it should be treated the “engineering way”

Page 8: Capturing the Essence of  Software Engineering -- A Reflection on SEMAT Vision Statement

March 17-19, 2010 ZurichSEMAT Workshop 2010 8

Difference between Science and EngineeringDifference between Science and Engineering

Science seeks to understand what is, whereas

Engineering seeks to create what never was --- [Henry Petroski

2010] It is not appropriate to describe engineering

as mere applied science Some extra-scientific components to

engineering: Creative nature Situated culture particularity to a specific

application domain

Page 9: Capturing the Essence of  Software Engineering -- A Reflection on SEMAT Vision Statement

March 17-19, 2010 ZurichSEMAT Workshop 2010 9

Difference between Science and EngineeringDifference between Science and Engineering

When defining “software engineering” and the “Universals”

It is essential to keep in mind the similarities and differences between science and engineering

Science Deals with the universal laws Context and time independent and true everywhere

In engineering Analysis follows synthesis and observation

Engineering Situated culture Needs to have constant learning, refinement and

adaptation to meet the environmental requirements

Page 10: Capturing the Essence of  Software Engineering -- A Reflection on SEMAT Vision Statement

March 17-19, 2010 ZurichSEMAT Workshop 2010 10

Difference between Science and EngineeringDifference between Science and Engineering

In engineering

Analysis follows synthesis and observationNot the other way around

Page 11: Capturing the Essence of  Software Engineering -- A Reflection on SEMAT Vision Statement

March 17-19, 2010 ZurichSEMAT Workshop 2010 11

Uniqueness of SoftwareUniqueness of Software

While software engineering follows the engineering fundamentals

Some unique features of software engineering and software

productsvs.General engineering and engineering

products

Page 12: Capturing the Essence of  Software Engineering -- A Reflection on SEMAT Vision Statement

March 17-19, 2010 ZurichSEMAT Workshop 2010 12

Engineering model vs. Software ModelEngineering model vs. Software Model

Full specification

Design Manufacture Test Install maintain

Incomplete specification

First three stages are often blurred

Final product is intangible

Doesn’t wear out

Page 13: Capturing the Essence of  Software Engineering -- A Reflection on SEMAT Vision Statement

March 17-19, 2010 ZurichSEMAT Workshop 2010 13

The Malleable Nature of SoftwareThe Malleable Nature of Software

Evolution is more important in software than in other engineering disciplines

Software engineering rarely involves “green field” development

Software needs to be constantly maintained and evolved to meet new business requirements

The cost incurred in evolution usually exceed the development cost by a factor of 3 or 4

Page 14: Capturing the Essence of  Software Engineering -- A Reflection on SEMAT Vision Statement

March 17-19, 2010 ZurichSEMAT Workshop 2010 14

An Observation of An Observation of UniversalsUniversals

Given the malleable nature of software, a good collection of Universals should Include general engineering universals that

capture the core practices of engineering disciplines

Unique features of software From general to specific Approach should be continuum and

continuum should be respected Not everything must be universal or that

everything must be situation specific

Page 15: Capturing the Essence of  Software Engineering -- A Reflection on SEMAT Vision Statement

March 17-19, 2010 ZurichSEMAT Workshop 2010 15

A Hierarchical Structure of UniversalsA Hierarchical Structure of Universals

Layer 1: the “engineering” aspect

Best practices of engineering discipline applicable to software:

Project:• Transformation• Flow• Value generation

Management• Planning• Execution• Controlling

Page 16: Capturing the Essence of  Software Engineering -- A Reflection on SEMAT Vision Statement

March 17-19, 2010 ZurichSEMAT Workshop 2010 16

A Hierarchical Structure of UniversalsA Hierarchical Structure of Universals

Layer 2: the “software” aspect

Unique practices to software:

• Extensibility• Interoperability• Evolveability• Reusability• Maintainability

Page 17: Capturing the Essence of  Software Engineering -- A Reflection on SEMAT Vision Statement

March 17-19, 2010 ZurichSEMAT Workshop 2010 17

A Hierarchical Structure of UniversalsA Hierarchical Structure of Universals

Layer3: “variability” -- situated culture

Reflect and address the knowledgeof different more situated application domain

• Real-time systems• Self-adaptive systems• Self-management systems• Web systems• … more

Page 18: Capturing the Essence of  Software Engineering -- A Reflection on SEMAT Vision Statement

March 17-19, 2010 ZurichSEMAT Workshop 2010 18

Software Engineering: Software Engineering: A University PerspectiveA University Perspective

Poorly perceived: “anyone can teach it”

Scarcely founded (e.g., Federal and States)

Challenging Quality publications

Page 19: Capturing the Essence of  Software Engineering -- A Reflection on SEMAT Vision Statement

March 17-19, 2010 ZurichSEMAT Workshop 2010 19

Prevalence of fads -- “acronym soup”Prevalence of fads -- “acronym soup”

Moving Targets

Page 20: Capturing the Essence of  Software Engineering -- A Reflection on SEMAT Vision Statement

March 17-19, 2010 ZurichSEMAT Workshop 2010 20

ReferencesReferences Software Engineering Method and Theory (SEMAT) online at

www.semat.org SEMAT Vision Statement online at

http://www.semat.org/pub/Main/WebHome/SEMAT-vision.pdf A. Cockburn. The end of software engineering and the start of economic

gaming. http://alistair.cockburn.us/The+end+of+software+engineering+and+the+start+of+economic-cooperative+gaming).

I. Jacobson, P. W. Ng, I. Spence “Enough of Processes - Lets do Practices” Journal of Object Technology, Vol. 6, No. 6, July -August 2007

Henry Petroski The Essential Engineer: Why Science Alone Will Not Solve Our Global Problems, Knopf, February 23, 2010

L. Koskela, Lauri and G. Howell. The underlying theory of project management is obsolete.

http://www.leanconstruction.org/pdf/ObsoleteTheory.pdf H. Müller, J. Jahnke, D. Smith, M-A. Storey, S. Tilley, and K. Wong. “Reverse

engineering a roadmap.” International Conference on Software Engineering Proceedings of the Conference on The Future of Software Engineering (ICSE 2000: Limerick, Ireland). pp. 47-60.

I. Jacobson, M. Griss, and P. Jonsson. Software Reuse: Architecture, Process and Organization for Business Success. Addison Wesley Professional June 1, 1997.