Download - Ivar Jacobson and Ed Seidewitz A New Software Engineering Communications of the ACM, Dec. 2014, 57 (12): 49-54 CS 791z Graduate Topics on Software Engineering.

Transcript
Page 1: Ivar Jacobson and Ed Seidewitz A New Software Engineering Communications of the ACM, Dec. 2014, 57 (12): 49-54 CS 791z Graduate Topics on Software Engineering.

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

Page 2: Ivar Jacobson and Ed Seidewitz A New Software Engineering Communications of the ACM, Dec. 2014, 57 (12): 49-54 CS 791z Graduate Topics on Software Engineering.

Outline

Introduction Engineering as Craft Supported by Theory Agility, Methods, Practices The SEMAT Kernel Conclusions

2

Page 3: Ivar Jacobson and Ed Seidewitz A New Software Engineering Communications of the ACM, Dec. 2014, 57 (12): 49-54 CS 791z Graduate Topics on Software Engineering.

Proposal of a new paradigm shift in SE

3

Page 4: Ivar Jacobson and Ed Seidewitz A New Software Engineering Communications of the ACM, Dec. 2014, 57 (12): 49-54 CS 791z Graduate Topics on Software Engineering.

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

Page 5: Ivar Jacobson and Ed Seidewitz A New Software Engineering Communications of the ACM, Dec. 2014, 57 (12): 49-54 CS 791z Graduate Topics on Software Engineering.

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

Page 6: Ivar Jacobson and Ed Seidewitz A New Software Engineering Communications of the ACM, Dec. 2014, 57 (12): 49-54 CS 791z Graduate Topics on Software Engineering.

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

Page 7: Ivar Jacobson and Ed Seidewitz A New Software Engineering Communications of the ACM, Dec. 2014, 57 (12): 49-54 CS 791z Graduate Topics on Software Engineering.

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

Page 8: Ivar Jacobson and Ed Seidewitz A New Software Engineering Communications of the ACM, Dec. 2014, 57 (12): 49-54 CS 791z Graduate Topics on Software Engineering.

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

Page 9: Ivar Jacobson and Ed Seidewitz A New Software Engineering Communications of the ACM, Dec. 2014, 57 (12): 49-54 CS 791z Graduate Topics on Software Engineering.

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

Page 10: Ivar Jacobson and Ed Seidewitz A New Software Engineering Communications of the ACM, Dec. 2014, 57 (12): 49-54 CS 791z Graduate Topics on Software Engineering.

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

Page 11: Ivar Jacobson and Ed Seidewitz A New Software Engineering Communications of the ACM, Dec. 2014, 57 (12): 49-54 CS 791z Graduate Topics on Software Engineering.

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

Page 12: Ivar Jacobson and Ed Seidewitz A New Software Engineering Communications of the ACM, Dec. 2014, 57 (12): 49-54 CS 791z Graduate Topics on Software Engineering.

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

Page 13: Ivar Jacobson and Ed Seidewitz A New Software Engineering Communications of the ACM, Dec. 2014, 57 (12): 49-54 CS 791z Graduate Topics on Software Engineering.

The SEMAT Kernel

13

Page 14: Ivar Jacobson and Ed Seidewitz A New Software Engineering Communications of the ACM, Dec. 2014, 57 (12): 49-54 CS 791z Graduate Topics on Software Engineering.

The SEMAT Kernel

14

Page 15: Ivar Jacobson and Ed Seidewitz A New Software Engineering Communications of the ACM, Dec. 2014, 57 (12): 49-54 CS 791z Graduate Topics on Software Engineering.

The SEMAT Kernel

15

Page 16: Ivar Jacobson and Ed Seidewitz A New Software Engineering Communications of the ACM, Dec. 2014, 57 (12): 49-54 CS 791z Graduate Topics on Software Engineering.

The SEMAT Kernel

16

Page 17: Ivar Jacobson and Ed Seidewitz A New Software Engineering Communications of the ACM, Dec. 2014, 57 (12): 49-54 CS 791z Graduate Topics on Software Engineering.

The SEMAT Kernel

17

Page 18: Ivar Jacobson and Ed Seidewitz A New Software Engineering Communications of the ACM, Dec. 2014, 57 (12): 49-54 CS 791z Graduate Topics on Software Engineering.

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