Ivar Jacobson and Ed SeidewitzA New Software Engineering
Communications of the ACM, Dec. 2014, 57 (12): 49-54
CS 791zGraduate Topics on Software Engineering
University of Nevada, RenoDepartment of Computer Science & Engineering
Outline
Introduction Engineering as Craft Supported by Theory Agility, Methods, Practices The SEMAT Kernel Conclusions
2
Proposal of a new paradigm shift in SE
3
Introduction
SE set of practices are largely adapted from other disciplines, e.g., project management, design blueprints, process control
Traditional engineering disciplines afford a lot of “up-front work” because their strong foundations
This hasn’t work that well in SE, where coders are those who actually make things happen
4
Introduction
Coding, as a craft discipline, can build on the experience of masters
Nevertheless, a craft discipline can take you only so far
True engineering combines craftsmanship with an applied theoretical foundation
From this point of view SE is not engineering
5
Introduction
What is needed is a new SE built on the experience of software craftsmen, capturing their understanding in a foundation that then can be used to educate new generations of practitioners
The SEMAT (Software Engineering Method and Theory) initiative has taken off for exactly this purpose
6
Engineering as Craft Supported by Theory
A method is a description of a way to carry out an endeavor, such as developing software
Methods are derived from experience: Rules of thumb -> guidelines -> standards
In the past, in craftsmanship, methods were guarded by masters and carefully passed down to trusted apprentices
As a craftsmanship evolves, a common understanding (of its methods) is captured in a theory
A theoretical foundation is the key for disciplined engineering analysis (see electromagnetic theory for EE, or aerodynamics for aeronautical engineering)
7
Engineering as Craft Supported by Theory
Engineering experience is distilled into theory, which then promotes better engineering, and then back again
SE did not have such underlying theory, although some may say this should be computer science
Other consider formal methods as foundation for SE, yet they are hardly applied in practice
In general, in SE various competing methodologies existed, without a unifying foundational theory
Creating a new theory of SE will take time, so the proposed approach is to capture commonalities among successful methods by using a new framework
8
Agility, Methods, Practices
Agile SD is about flexibility and adaptability in the face of changing requirements
Agile teams take charge of their own work A lack of agility is a central failure of traditional SE Complicated software systems have a certain kind
of “intellectual rigidity” Agile development supports the practitioner in
building software, rather than requiring the practitioner to support the process
9
Agility, Methods, Practices
To introduce agility, we need to look at the basic things the practitioners do – their practices
A method can be viewed as composed of a set of practices For example, the XP method includes practices such as pair
programming and continuous integration; Scrum includes maintaining a backlog, daily scrums, sprints
A team can evolve its method both in small and large steps Practices can be promoted by organizations; practitioners can
adopt, adapt, and apply them Here, a new SE foundation is needed, to provide a common
underpinning for them the SEMAT kernel
10
The SEMAT Kernel
The SEMAT kernel for SE can be seen as the minimal set of things that are universal to all software development endeavors
It consists of 3 parts: A means to measure progress and health of an endeavor A categorization of the activities needed to advance the
progress of an endeavor A set of competencies necessary to carry such activities
11
The SEMAT Kernel
The kernel defines seven dimensions (or alphas) for measuring this progress: Opportunity, stakeholders, requirements, software system,
work, team, and way of working Each alpha has a set of specific states, that help monitor
progress The idea is to provide an intuitive tool for practitioners
to reason about the progress and health of their endeavors in a common, method-independent way
The kernel is formally defined as part of the Essence specification standardized through the OMG
12
The SEMAT Kernel
13
The SEMAT Kernel
14
The SEMAT Kernel
15
The SEMAT Kernel
16
The SEMAT Kernel
17
Conclusion
The SEMAT kernel-based Essence approach is proposed as a new paradigm shift in SE
It aims at helping teams be agile when working with methods and measure progress in a meaningful way
The real shift, however, depends on participation and contributions from practitioners
18
Top Related