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