CSEPM - A Continuous Software Engineering Process Metamodel

CSEPM - A Continuous Software Engineering Process Metamodel

Presentation at the RCoSE Workshop 2017 in Buenos Aires, Argentinia

7cbae0b6c3348182a2a6968f52b21b89?s=128

Stephan Krusche

May 22, 2017
Tweet

Transcript

  1. 1.

    s.krusche@tum.de - www.skrusche.de - @skrusche RCoSE 2017 Stephan Krusche and

    Bernd Bruegge (May 22, 2017) CSEPM - A Continuous Software 
 Engineering Process Metamodel
  2. 2.

    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
  3. 3.

    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
  4. 4.

    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 <<stereotype>> Work Queue <<instanceOf>> <<stereotype>> Work Item <<instanceOf>> * <<Work Queue>> Sprint Backlog <<instanceOf>> <<Work Item>> Backlog Item <<instanceOf>> * <<instanceOf>> <<instanceOf>> Sprint 1 Backlog ID Name Difficulty 1 Search available Pedelecs Medium 2 Check working radius Large <<instanceOf>>
  5. 5.

    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
  6. 6.

    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
  7. 7.

    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
  8. 8.

    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
  9. 9.

    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
  10. 10.

    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
  11. 11.

    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)
  12. 12.

    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 …
  13. 13.

    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
  14. 14.

    s.krusche@tum.de - www.skrusche.de - @skrusche RCoSE 2017 Stephan Krusche and

    Bernd Bruegge (May 22, 2017) CSEPM - A Continuous Software 
 Engineering Process Metamodel