21.8.2013 SEMAT (Software Engineering Method and Theory)

Bei einem Abendvortrag der Firma OOSE stellten Axel Scheithauer und Dr. Marcus Winteroll heute SEMAT vor, eine Platform, die es ermöglicht, bestehende und zukünftige Praktiken, Muster und Methoden des Software-Engineerings zu beschreiben, so dass diese zusammengestellt, nachvollzogen, angewendet, verglichen, beurteilt, gemessen und gelehrt sowie wissenschaftlich untersucht werden können. (vgl. SEMAT Vision)

Struktur
SEMAT bedient die Arbeitsbereiche: Praxis (Practice Area), Theorie (Theory Area) und Gemeinschaft (Community Area), die sich um eine Essence drehen. Diese Essence besteht aus dem Kernel, der Kernbereichen benennt, die in jedem Software-Entwicklungs-Projekt beachtet werden müssen, sowie eine Meta-Sprache, mit der die Ausgestaltung dieser Kernbereiche in konkreten Prozessen beschrieben werden kann. Beispiele für solche Kernbereiche sind die Requirements, das Software-System (Produkt), die Entwicklungstätigkeiten, das Team und die Arbeitsweise.

Nutzen
Über dieses Paar aus Meta-Sprache und Kernbereichen werden Software-Entwicklungsprozesse vergleichbar. So können z.B. agile mit phasenorientierten Entwicklungsprozessen verglichen, Prozess-Tailorings beschreiben sowie die die Konseqzenzen von Prozess-Tailoring und Prozess-Wechseln beurteilt werden. Ich könnte mir auch gut vorstellen, mittels dieses Modells zu erläutern, wie agile Vorgehensmodelle die verschiedenen Aufgaben der Prozesschritte klassicher phasenorientierter Vorgehensmodelle abdecken. Dies könnte vielleicht ein guter Weg sein, agile Vorgehensmodelle denjenigen zu erklären, die durch jahrelange Erfahrung in den Denkmustern phasenorientierter Vorgehensmodelle gefangen sind, und die häufig vorkommende Angst nehmen, agil bedeute Chaos.

Alphas
Aus den Kernbereichen werden für jedes Prozessmodell sogenannte Alphas konkretisiert, Abstract-Level Progress Health Attributes. Dies sind Eigenschaften eines laufenden Projektes, anhand der der Projektstatus bewertet werden kann und gleichzeitig die nötigen Maßnahmen für den weiteren Fortschritt abgelesen werden können. Dazu wurde von Ivar Jacobsen ein Kartensystem entwickelt, welches vom OOSE Referenten Axel Scheithauer zu einem Status-Brett ausgebaut wurde, auf dem der Projektstatus ganzheitlich auf einen Blick darstellbar ist. Als Alphas kommen dabei auf der Kundenebene die Opportunity (geschäftlicher Nutzen) und Stakeholder, auf der Lösungs-Ebene die Anforderungen und das Software-System (Produkt) sowie auf der Unternehmungs-Ebene die Tätigkeiten (Work), das Team sowie die Arbeitsweise (Way of Working) vor. Für jeden dieser Alphas sind Stufen definiert, z.B. beim Team könnten dies die altbekannten forming, storming, norming, und performing sein, wobei im Vortrag eine leicht abgewandlete Skala vorgestellt wurde.

Alphas

Unterstützer
Als ich die Liste der Unterstützer (Signatories) überflog, kam es mir vor wie ein Rundflug über die Landschaft von herausragenden Software-Engineers, die mir in meinem Berufsleben begegnet sind, z.B. Ivar Jacobsen (Use Cases / UML), Capers Jones (Function Points and Cost Estimation), Robert Martin Uncle Bob (Software Craftsmenship), Bertrand Meyer (OOP/OOD), Ken Schwaber (Scrum), Ian Sommerville (Software Engineering), Ed Yourdon (SA/SD, OOA/OOD, Death March), Erich Gamma (Design Patterns) und Tom Gilb (Software Metrics, Software Inspection) – um nur eine kleine Auswahl zu nennen. In Anbetracht dieser Schwergewichte ist SEMAT vielleicht eine Unternehmung, die man im Auge behalten sollte.

VN:F [1.9.22_1171]
Rating: 3.0/5 (4 votes cast)
SEMAT (Software Engineering Method and Theory), 3.0 out of 5 based on 4 ratings