SFB 501 Teilprojekt A3 Entwicklung großer Systeme mit generischen Methoden Datenbankunterstützung für Softwareentwicklungsprozesse SERUM-Prozeß Generating Software Engineering Repositories using UML Parameter +type 1 n Classifier Spezifikation (from Core) Modifiziere bestehende Repository Manager Spezifikation (from Core) +owner n +parameter {ordered} Erstelle initiale Repository Manager Spezifikation 1 +type 0..1 +feature Feature (from Core ) UML-Model n 0..1 [initial] m Struktur (Class, Interface, DataType, Association, ...) BehavioralFeature StructuralF eature (from Core) (from Core) [vordefiniert] m Object Constraint Language (OCL) Überprüfe ‘Domain Guidelines’ Operation Attribute (from Core) (from Core) [ok] Produktdatenmodell Ergänze um Basiselemente UML Model +versionableStructure [geprüft (DG)] VersionableStructure UML Model Verfeinerung 1 SERUM Framework: technologieunabhängiger Teil +version 0..n + version 0..n VS_ClassStructure Wähle Design Pattern [erweitert] Version 1 q vordefinierte Basiselemente q vordefinierte Verfeinerungsoperationen (SERUM DesignPattern) 0..n + version V_ClassStructure +pdo 0 ..n 0..n +pda +pda 0 .. n PDA PDO SERUM Design Pattern 0..n +pdo 0 ..n [ausgewählt] m Parameter: Welche Teile des Modells sollen verfeinert werden? m Vorbedingungen: Darf das DesignPattern angewendet werden? m Zusicherungen: Was darf zukünftig nicht mehr geändert werden? m Skript: Wie wird das Modell verändert? 0..n Erweiterte Spezifikation pda_Feature_owner 1 +owner q Modellierungsrichtlinien 1 0..1 +owner Feature Classifier 0..n 1 +feature [nicht fertig] 0..n pda_Classifier_feature 1 [ok] Produktdatenmodell (für Versionierung) Model Guidelines Überprüfe ‘Framework Guidelines’ m Verhalten (StateMachine, ActivityGraph, ...) q deskriptive Sprache zur Spezifikation weiterer Integritätsbedingungen Domain Guidelines [ko] Spezifikation basierend auf dem UML-Metamodell q standardisiert (OMG), weit verbreitet, objektorientiert q graphische Modellierung und Spezifikation q umfangreiche Modellierungselemente verfügbar n {o rdered} [vordefiniert] +feature m Domain Guidelines Entspricht die Spezifikation den Vorgaben aus der Domäne? m Framework Guidelines Entspricht die Spezifikation den Richtlinien des Frameworks? m Template Guidelines Entspricht die Spezifikation den Anforderungen des Generators? [ko] [ok] ModelElement (from Core ) Konfiguration UML Model [geprüft(MG)] +parent Wähle SERUM Template Generalizable Element SERUM Template SERUM Framework: technologieabhängiger Teil +specialization 1 n 1 n Generalization (from Core) (from Core) +child +generalization m Rahmenarchitektur [ausgewählt] m Regeln zur Code-Generierung Informix SQL Überprüfe ‘Template Guidelines’ q unvollständiger Repository Manager q Konfiguration kompatibler Komponenten (SERUM Template) m vorgefertigte Code-Templates zur Vervollständigung m fertige Komponenten zur Komposition [ok] UML Model [geprüft(TG)] [ko] Konfiguriere Template create row type data_generalizable_element_ty (...) under data_model_element_ty; create table generalizable_element_ta of type generalizable_element_ty ( ... ) under model_element_ta; m Parameter für Generierungsregeln, Code-Templates und fertige Komponenten Generierungsregeln Generiere Repository Manager Generische API Generierte API Repository Manager generieren Generierung Repository Manager q Erzeugung von Code mit den Generierungsregeln Repository-Server m Typen, Tabellen, Views, Trigger, UDRs, ... m API-Klassen, ... Teste Repository Manager [ok] [modifizierte Spezifikation] UMLModell ModellAbbildung ProduktDaten [ko] q Vervollständigung der Templates q Parametrisierung der Komponenten q Kombination der entstandenen Artefakte [anderes Template] Repository Manager SE R UM