o
Modellierung und Enactment mit ESSENCE
Michael Striewe, Michael Goedicke
Agenda
Motivation
Konzepte von ESSENCE
Metamodell
Kernel
Practices
Methoden
Enactment von ESSENCE
Fazit
o
Motivation
Dokumentation von Softwareentwicklungsmethoden ist essentiell
Zur Kommunikation innerhalb des Projekts
Zur Feststellung des Projektfortschritts
Zur Erkennung von Verbesserungspotentialen
Dokumentation von Softwareentwicklungsmethoden ist komplex
Informelle Dokumentation (Wikis, …) kaum automatisiert unterstützt
Formelle Dokumentation (SPEM, ISO 24744, …) nur von Experten wartbar
Kaum gemeinsame Basis für Vergleiche
Ziel: Ein leicht zugängliches Rahmenwerk für die agile Beschreibung und Ausführung von Softwareentwicklungsmethoden
“A Foundation for the Agile Creation and Enactment of Software Engineering Methods”, Request For Proposal, OMG Document: ad/2011-06-24
Konzepte von ESSENCE
ESSENCE enthält:
Ein Metamodell für die
(domänenunabhängige!) Beschreibung von Kernel, Practices und Methoden
Einen Kernel von essentiellen Elementen für die Domäne des Software Engineering
Ausführungssemantik für Instanzen des Metamodells
ESSENCE enthält nicht:
Fertige Practices oder Methoden
Spezielle Elemente, die nicht essentiell für die Domäne des Software Engineering sind
o
Das Metamodell der Sprache
Jedes dieser Elemente kann (physisch oder virtuell) durch eine Karte
kompakt dargestellt werden
Der ESSENCE Kernel (1)
Alphas modellieren:
Die essentiellen Elemente der Softwareentwicklung
Beziehungen zwischen diesen Elementen
o
Der ESSENCE Kernel (2)
Jedes Alpha hat:
Zustände
Checkpoint für diese Zustände
Einen “idealen Pfad” der Zustände
Der ESSENCE Kernel (3)
Außerdem im Kernel:
Activity Spaces
Competencies
o
Practices
Practices geben konkrete Handlungsempfehlungen:
Durch Nennung der benötigen Work Productsund Zuordnung zu Alphas
Durch Nennung der benötigten Activities und Zuordnung zu Activity Spaces
Durch Gruppierung von Elementen durch Patterns
Durch Hinzufügen domänenspezifischer Elemente (z.B. zusätzlicher Alphas)
Es gibt keine Mindestanforderungen an eine minimale Practice
Darstellung von Practices als Diagramme oder kleines Set von Karten
Methoden
Methoden sind Kompositionen von Practices auf Basis eines gemeinsamen Kernels
Identische Elemente werden verschmolzen
Methoden können in Relation zum Kernel verglichen werden
Darstellung von Methoden als großes Set von Karten
Zielorientierter Bottom-Up Ansatz (statt prozessorientierter Top-Down
Ansatz)
o
Enactment von ESSENCE (1)
Ausführung = “Die Karten auf den Tisch legen”
Enactment von ESSENCE (2)
o
Enactment von ESSENCE (3)
Feststellen des aktuellen Projektfortschritts
Über Checklisten der Zustände
Beliebige Zustandswechsel zu beliebigen Zeitpunkten
Identifikation der nächsten Schritte
Zielzustand wählen
Aktivitäten abfragen, die zum Zielzustand führen
Adaption der Practices und Methoden zur Laufzeit
Neue Elemente (Alphas, Work Products, Activities, …) hinzufügen
Elemente entfernen
Checklisten verändern
Fazit
Trennung von Metamodell der Sprache und Kernel
Komposition von Practices zu Methoden (bottom-up) statt Breakdown Structures (top-down)
Karten als leicht zugängliche Repräsentation
Schon passiert:
Nutzung in realen Projekten (z.B. Munich RE; siehe SEE-Vortrag)
Einreichung zur Standardisierung bei der OMG
Noch zu tun:
Wissenschaftliche Beobachtung der Anwendung
Aufbau von Practice-Bibliotheken
Open-Source Toolsupport