Ivar Jacobson and Ed Seidewitz A New Software Engineering Communications of the ACM, Dec. 2014, 57...

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

of 18

  • date post

    16-Jan-2016
  • Category

    Documents

  • view

    215
  • download

    0

Embed Size (px)

Transcript of Ivar Jacobson and Ed Seidewitz A New Software Engineering Communications of the ACM, Dec. 2014, 57...

Role Coll Music Stand

Ivar Jacobson and Ed SeidewitzA New Software EngineeringCommunications of the ACM, Dec. 2014, 57 (12): 49-54

CS 791zGraduate Topics on Software EngineeringUniversity of Nevada, RenoDepartment of Computer Science & EngineeringOutlineIntroductionEngineering as Craft Supported by TheoryAgility, Methods, PracticesThe SEMAT KernelConclusions

22Proposal of a new paradigm shift in SE 3

3IntroductionSE 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 foundationsThis hasnt work that well in SE, where coders are those who actually make things happen 44IntroductionCoding, as a craft discipline, can build on the experience of mastersNevertheless, a craft discipline can take you only so farTrue engineering combines craftsmanship with an applied theoretical foundationFrom this point of view SE is not engineering

5

5IntroductionWhat 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 practitionersThe SEMAT (Software Engineering Method and Theory) initiative has taken off for exactly this purpose

66Engineering as Craft Supported by TheoryA method is a description of a way to carry out an endeavor, such as developing softwareMethods are derived from experience: Rules of thumb -> guidelines -> standardsIn the past, in craftsmanship, methods were guarded by masters and carefully passed down to trusted apprenticesAs a craftsmanship evolves, a common understanding (of its methods) is captured in a theoryA theoretical foundation is the key for disciplined engineering analysis (see electromagnetic theory for EE, or aerodynamics for aeronautical engineering)

77Engineering as Craft Supported by TheoryEngineering experience is distilled into theory, which then promotes better engineering, and then back againSE did not have such underlying theory, although some may say this should be computer scienceOther consider formal methods as foundation for SE, yet they are hardly applied in practiceIn general, in SE various competing methodologies existed, without a unifying foundational theoryCreating a new theory of SE will take time, so the proposed approach is to capture commonalities among successful methods by using a new framework

88Agility, Methods, PracticesAgile SD is about flexibility and adaptability in the face of changing requirementsAgile teams take charge of their own workA lack of agility is a central failure of traditional SEComplicated software systems have a certain kind of intellectual rigidityAgile development supports the practitioner in building software, rather than requiring the practitioner to support the process

99Agility, Methods, PracticesTo introduce agility, we need to look at the basic things the practitioners do their practicesA method can be viewed as composed of a set of practicesFor example, the XP method includes practices such as pair programming and continuous integration; Scrum includes maintaining a backlog, daily scrums, sprintsA team can evolve its method both in small and large stepsPractices can be promoted by organizations; practitioners can adopt, adapt, and apply themHere, a new SE foundation is needed, to provide a common underpinning for them the SEMAT kernel

1010The SEMAT KernelThe SEMAT kernel for SE can be seen as the minimal set of things that are universal to all software development endeavorsIt consists of 3 parts:A means to measure progress and health of an endeavorA categorization of the activities needed to advance the progress of an endeavorA set of competencies necessary to carry such activities1111The SEMAT KernelThe kernel defines seven dimensions (or alphas) for measuring this progress:Opportunity, stakeholders, requirements, software system, work, team, and way of workingEach alpha has a set of specific states, that help monitor progressThe idea is to provide an intuitive tool for practitioners to reason about the progress and health of their endeavors in a common, method-independent wayThe kernel is formally defined as part of the Essence specification standardized through the OMG

1212The SEMAT Kernel13

13The SEMAT Kernel14

14The SEMAT Kernel15

15The SEMAT Kernel16

16The SEMAT Kernel17

17ConclusionThe SEMAT kernel-based Essence approach is proposed as a new paradigm shift in SEIt aims at helping teams be agile when working with methods and measure progress in a meaningful wayThe real shift, however, depends on participation and contributions from practitioners

1818