SEMAT
SEMAT (Software Engineering Method and Theory) is an initiative launched in December 2009 by Ivar Jacobson, Bertrand Meyer, and Richard Soley to re-establish software engineering as a rigorous discipline with a sound theoretical foundation, a reusable library of practices, and a shared vocabulary for describing methods.
The initiative was motivated by a perception that software engineering had accumulated a vast catalogue of practices, methods, and frameworks – from the waterfall model through Rational Unified Process (RUP) to agile methods – without a common ground for comparing them. Practitioners had no shared language for describing what a practice contains, how practices combine into methods, or what is essential to any software endeavor regardless of the method chosen. SEMAT set out to provide that common ground, and to bridge the gap between the academic and practitioner communities.
Essence
SEMAT’s primary output is Essence, an Object Management Group (OMG) standard formally adopted in 2014. Essence comprises two parts.
- The Essence Kernel describes the universal elements of software engineering – the things every team always has, always does, and always produces, regardless of method. It is organized around alphas (the things that evolve, such as requirements, software systems, and teams), activities, and work products, with a small set of states each alpha progresses through.
- The Essence Language is a small modeling language for describing practices, composing them into methods, and assessing the state of an endeavor against the kernel.
The kernel is intended as a foundation on which a library of practices – agile, plan-driven, or otherwise – can be described in a uniform way and composed into ways of working suited to a particular team, domain, and context. Rather than prescribing a single method, Essence aims to make method elements explicit and comparable so that teams can reason about them.
Relation to other frameworks
SEMAT is complementary to, rather than a replacement for, bodies of knowledge and process-improvement frameworks. Where SWEBOK catalogues the established knowledge of the software engineering discipline, and the Capability Maturity Model assesses an organization’s process maturity, SEMAT provides a kernel and language for describing practices themselves. The three efforts address different questions: what the discipline knows, how mature an organization’s processes are, and how to describe and compose practices in the first place.
Reception
Essence has been adopted in a number of university courses and industrial pilots, and the SEMAT community maintains chapters in several countries. Adoption outside those circles has been limited. Critics have noted that the kernel and language add their own notational overhead, and that the value of a universal method kernel is hard to demonstrate against the prevailing tendency of teams to assemble ways of working pragmatically from familiar practices.
See also
- SWEBOK
- Capability Maturity Model
- Rational Unified Process (RUP)
- Agile software development
- Ways of working
References
- Jacobson, I., Meyer, B., and Soley, R. (2009). The SEMAT Initiative: A Call for Action. Dr. Dobb’s Journal.
- Object Management Group (2014). Essence 1.0. OMG standard.