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