Das Software Process Engineering Metamodel (SPEM, engl. Metamodell für Entwicklungsprozesse der Softwaretechnik), im Juni 2005 von der Object Management Group (OMG) verabschiedet, wurde explizit für die Modellierung und den Austausch von Entwicklungsprozessen der Softwaretechnik entwickelt. Ab der Version 2.0 vom April 2008 steht SPEM für Software & Systems Process Engineering Meta-Model (Metamodell für Entwicklungsprozesse der Software- und Systemtechnik).
Herkunft und Einsatz
Der Grund für die Schaffung des Metamodells war die in den vorhergehenden Jahrzehnten entstandene Vielfalt unvereinbarer Beschreibungssprachen. Es konnte sich in der Industrie keine standardisierte Prozessbeschreibung für die Softwareentwicklung etablieren.
Die OMG machte sich deshalb an die Arbeit, einen eindeutigen Regelsatz mit Notationselementen für die Industrie und vor allem mit der Industrie zu entwickeln und zu standardisieren.
Der schon 1997 veröffentlichte Unified Modeling Language Standard (UML) von OMG diente SPEM als Basis, weshalb SPEM auch als ein „subset“ von UML definiert wurde. „Subset“ bedeutet eine „teilweise“ Wiederverwendung von UML-Metamodell-Elementen in SPEM.
Der Unterschied zwischen UML und SPEM ist, dass UML ein Industriestandard für eine Modellierungssprache (Notation) von Systemen ist. SPEM dagegen ist ein Industriestandard für eine Modellierungssprache von Prozessen und „Prozessfamilien“. SPEM beschreibt nicht, wie die Planung oder die Durchführung eines Prozesses auszusehen hat, dafür gibt es genügend andere Projektvorgehensmodelle (z. B.: V-Modell XT (VXT)). Jedoch ist es die primäre Aufgabe beider Standards (UML / SPEM), den Austausch von Prozessen und Systemen möglichst einfach zu halten, so dass jeder, der Wissen über UML / SPEM besitzt, diese auch „lesen“ kann.