Slide 1

Slide 1 text

[email protected] - www.skrusche.de - @skrusche RCoSE 2017 Stephan Krusche and Bernd Bruegge (May 22, 2017) CSEPM - A Continuous Software 
 Engineering Process Metamodel

Slide 2

Slide 2 text

Stephan Krusche and Bernd Bruegge — CSEPM - A Continuous Software Engineering Process Metamodel Introduction 2 • The term “software engineering” (SE) was proposed in the 1960s to overcome “chaos” (software crisis) using a defined process control model • In the 1990s, agile methods changed the emphasis from defined to empirical process control Empirical Process Not entirely planned Inspect and adapt Defined Process Planned Follows strict rules Avoids deviations

Slide 3

Slide 3 text

Stephan Krusche and Bernd Bruegge — CSEPM - A Continuous Software Engineering Process Metamodel Motivation • Jez Humble defined a model for continuous delivery: the goal is to keep software in a state so that changes to it can be released at any time • Jan Bosch coined the term continuous software engineering (CSE) • However, there has not yet been an attempt to model software engineering continuously • Main objective: create a software process metamodel to describes the continuous and unexpected nature of SE through workflows that can be interrupted by change events ➡Continuous Software Engineering Process Metamodel: CSEPM ➡Improve communication about CSE and formalize tailoring, customization and extension possibilities 3

Slide 4

Slide 4 text

Stephan Krusche and Bernd Bruegge — CSEPM - A Continuous Software Engineering Process Metamodel CSEPM in the Meta Object Facility 4 MOF Layer Type Example M3 - Meta Metamodel Meta Object Facility M2 - Metamodel (Generic concepts) CSEPM M1 - Model (Way of working) Process Model M0 - Reality (What actually happens) Concrete Process Class <> Work Queue <> <> Work Item <> * <> Sprint Backlog <> <> Backlog Item <> * <> <> Sprint 1 Backlog ID Name Difficulty 1 Search available Pedelecs Medium 2 Check working radius Large <>

Slide 5

Slide 5 text

CSEPM: Static process metamodel (simplified) 5 Workflow Model Change Model -load -state : State +customize() +activate() +sleep() +receive(Event) Workflow +modifyItem() +proritizeItem() Work Queue Configuration Management Model -state : State -priority : Int +interrupt() +resume() Work Item Artifact (Resource) Sleep Ready Running Blocked Finished < < e n u m > > State Activity Project Management Model +tailor() Process Project Outcome Controlled Item +send() Event +addObserver() +removeObserver() +notify() Event Subject +update() Event Observer Service (Tool) Feedback Task Version Milestone Phase Review Release Iteration * * * * * 1 * * 0..* * 1..* * * * depend on require create activate subscribe / create

Slide 6

Slide 6 text

Stephan Krusche and Bernd Bruegge — CSEPM - A Continuous Software Engineering Process Metamodel CSEPM: Lifecycle for a Workflow 6 Active Finished Blocked activate sleep stop resume interrupt Sleep End Start Rugby Receive Event Rugby Send Event

Slide 7

Slide 7 text

Stephan Krusche and Bernd Bruegge — CSEPM - A Continuous Software Engineering Process Metamodel CSEPM: Lifecycle for a Workflow (Example) 7 Design Change Analysis Design New Requirement Design Change New Requirement Active Finished Blocked activate sleep stop resume interrupt Sleep End Start Rugby Send Event Feature Change Architecture Change Implementation Change Rugby Receive Event

Slide 8

Slide 8 text

Stephan Krusche and Bernd Bruegge — CSEPM - A Continuous Software Engineering Process Metamodel CSEPM: Dynamic process metamodel 8 Start Workflow Perform Work Incoming Event Activate Workflow Workflow Outgoing Event Stop Workflow Project End Workflow Customization Stop Workflow Customize Workflow Workflow Start Workflow Start Workflow Start Subscribe to Events Project End Sleep Work finished? Sleep Project Start Sleep No Yes Start Workflow Perform Work Incoming Event Activate Workflow Workflow Outgoing Event Stop Workflow Project End Workflow Customization Stop Workflow Customize Workflow Workflow Start Workflow Start Workflow Start Subscribe to Events Project End Sleep Work finished? Sleep Project Start Sleep No Yes Start Workflow Perform Work Incoming Event Activate Workflow Workflow Outgoing Event Stop Workflow Project End Workflow Customization Stop Workflow Customize Workflow Workflow Start Workflow Start Workflow Start Subscribe to Events Project End Sleep Work finished? Sleep Project Start Sleep No Yes Start Workflow Perform Work Incoming Event Activate Workflow Workflow Outgoing Event Stop Workflow Project End Workflow Customization Stop Workflow Customize Workflow Workflow Start Workflow Start Workflow Start Subscribe to Events Project End Sleep Work finished? Sleep Project Start Sleep No Yes Start Workflow Perform Work Incoming Event Activate Workflow Workflow Outgoing Event Stop Workflow Project End Workflow Customization Stop Workflow Customize Workflow Workflow Start Workflow Start Workflow Start Subscribe to Events Project End Sleep Work finished? Sleep Project Start Sleep No Yes

Slide 9

Slide 9 text

Stephan Krusche and Bernd Bruegge — CSEPM - A Continuous Software Engineering Process Metamodel CSEPM Instance of a Sequential Model: Waterfall 9 Requirements Elicitation Problem Statement Elicit requirements Analysis Requirements Analysis Document Analyze ... ... ... Deployment Deployed Software Deploy Requirements Elicitation finished Requirements Elicitation finished Analysis finished ... ... Testing finished Project Start Software deployed Project End Project Start Project End Sleep Sleep Sleep Sleep

Slide 10

Slide 10 text

Stephan Krusche and Bernd Bruegge — CSEPM - A Continuous Software Engineering Process Metamodel CSEPM Instance of an Iterative Model: Unified Process 10 Inception Candidate Architecture Iterate Elaboration Iterate Executable Architecture Construction Iterate Intermediate Release Transition Iterate Final Release Lifecycle Objective Lifecycle Architecture Lifecycle Objective Lifecycle Architecture Initial Operational Capability Initial Operational Capability Product Release Project End Project Start Project Start Iteration needed? Iteration needed? Iteration needed? Iteration needed? Project End No Yes No Yes Yes Yes No No

Slide 11

Slide 11 text

Stephan Krusche and Bernd Bruegge — CSEPM - A Continuous Software Engineering Process Metamodel CSEPM Instance of an Agile Model: Scrum 11 Sprint N Kickoff Meeting Create Product Backlog Initial Product Backlog Revise Product Backlog Sprint Planning Meeting Create Sprint Backlog Sprint Backlog N Develop Backlog Item Build Product Increment Product Increment N Sprint Review Meeting Feedback Revised Product Backlog Time based Release Feedback Report Project End Product Backlog revised Product Backlog created Product Backlog created Feedback Report Time based Release Project finished? Development done? Project Start Project End No Yes Yes No Paradigm Standard(TUM - Institut fuer Informatik - Lehrstuhl 1)

Slide 12

Slide 12 text

Stephan Krusche and Bernd Bruegge — CSEPM - A Continuous Software Engineering Process Metamodel 12 Development Review Management Release Management Feedback Management Requirements Elicitation Analyze Finished? Backlog Item ready for development Merge Request Merge Request Review Quality ok? yes yes Backlog Item finished Merge Need feedback? Release Request no yes no Improvement Request Improvement Request Release Request Release Feedback Report Feedback Report Analyze Feedback New Backlog Item Backlog Item ready for Development Is new requirement? New Backlog Item Change Request yes no Change Request Specify Prioritize Design Implement Test CSEPM Instance of a Continuous Model: Rugby (simplified) Backlog Item finished Use …

Slide 13

Slide 13 text

Stephan Krusche and Bernd Bruegge — CSEPM - A Continuous Software Engineering Process Metamodel Conclusion • CSEPM is an empirical process metamodel for continuous software engineering • It also allows to model instances for sequential, iterative and agile process models • It treats development activities as parallel running workflows to enable rapid cycles • It allows tailoring, customization and extension ➡ CSEPM helps to understand the continuous and unexpected nature of software engineering 13

Slide 14

Slide 14 text

[email protected] - www.skrusche.de - @skrusche RCoSE 2017 Stephan Krusche and Bernd Bruegge (May 22, 2017) CSEPM - A Continuous Software 
 Engineering Process Metamodel