CS 791 z Graduate Topics on Software Engineering

  • Slides: 18
Download presentation
CS 791 z Graduate Topics on Software Engineering Ivar Jacobson and Ed Seidewitz A

CS 791 z Graduate Topics on Software Engineering Ivar Jacobson and Ed Seidewitz A New Software Engineering Communications of the ACM, Dec. 2014, 57 (12): 49 -54 University of Nevada, Reno Department of Computer Science & Engineering

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

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

Proposal of a new paradigm shift in SE 3

Introduction SE set of practices are largely adapted from other disciplines, e. g. ,

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,

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

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

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

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

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

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

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:

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 13

The SEMAT Kernel 14

The SEMAT Kernel 14

The SEMAT Kernel 15

The SEMAT Kernel 15

The SEMAT Kernel 16

The SEMAT Kernel 16

The SEMAT Kernel 17

The SEMAT Kernel 17

Conclusion The SEMAT kernel-based Essence approach is proposed as a new paradigm shift in

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