Präsentation einer Codegenerator Softwarelösung objectiF
Inhaltsverzeichnis Allgemeines Beispiel Fazit MDSD - Präsentation des objectiF Tools2
Allgemeines objectiF wird von der Firma microTOOL seit 1992 vertrieben(aktuelle Version 7.1) microTOOL wurde 1984 in Berlin gegründet microTOOL bietet drei Softwarelösungen an objectiF, näheres folgt später case/4/0, MDSD-Tool in-Step, Kollaborationstool MDSD - Präsentation des objectiF Tools3
Grundprinzip des MDD MDSD - Präsentation des objectiF Tools4
Ablauf der Modelltransformation MDSD - Präsentation des objectiF Tools5
objectiF Einsatzbereiche objectiF verwenden als … Zentrales, transaktionssicheres, mehrbenutzerfähiges Repository Erweiterte Modellierungsfunktionen für die professionelle Entwicklung Breite Sprachunterstützung und Generierung von C#, C++, Java, VB.NET, BPEL, XSD und WSDL Reverse und Round Trip Engineering Generierung von Dokumentation Modellgetriebene Entwicklung (MDD – Model-Driven Development) Hohe Entwicklungsgeschwindigkeit durch Transformation fachlicher in technische Modelle mit Code-Generierung Sicheres, iteratives Transformieren MDSD - Präsentation des objectiF Tools6
objectiF im Bereich MDD MDSD - Präsentation des objectiF Tools7 Wichtige Eigenschaften von objectiF Iteratives Transformieren Fachliche Modelle kann man jederzeit ändern, erweitern und immer wieder transformieren. Alle manuellen Ergänzungen, im generierten Code, bleiben bei erneuter Transformation erhalten. Integrierte Technik zur Entwicklung eigener Modelltransformationen objectiF verfügt über eine homogene Umgebung sowohl für die modellgetriebene Anwendungsentwicklung als auch für die Entwicklung eigener Modelltransformationen, mit denen man die Anwendungsentwicklung automatisieren kann. Verkettung und Wiederverwendung von Modelltransformationen Damit kann man die Entwicklung ganzer Anwendungsfamilien durchgängig automatisieren. Dies bedeutet, hohe Qualität und Produktivität.
Beispiel Erzeugung einer Persistenzschicht in C# 1.Auswählen des gewünschten Typs MDSD - Präsentation des objectiF Tools8
Beispiel Erzeugung einer Persistenzschicht in C# 2. Systemname auswählen und Speicherort festlegen MDSD - Präsentation des objectiF Tools9
Beispiel Erzeugung einer Persistenzschicht in C# 3. Automatisch angelegte Struktur MDSD - Präsentation des objectiF Tools10
Beispiel Erzeugung einer Persistenzschicht in C# 4. Angelegte Struktur in VS MDSD - Präsentation des objectiF Tools11 Automatisch erzeugte Datei DatabaseInitializer.cs
Beispiel Erzeugung einer Persistenzschicht in C# 5. Fachliches Modell anlegen MDSD - Präsentation des objectiF Tools12 Entitätsklasse Company anlegen Entitätsklasse Person anlegen Aggregationsbeziehung Company hat Person
Beispiel Erzeugung einer Persistenzschicht in C# 6. Fachliche Klassen in NHibernateklassen transformieren MDSD - Präsentation des objectiF Tools13 Company.cs Company.hbm.xml
Was erzeugt objectiF aus dem fachlichen Modell Klasse mit dem Stereotyp «BusinessEntity»: Klasse mit dem Stereotyp «NHibernateClass» ID-Felder (Attribut und Property) GetHashCode-Methode Vergleichsoperationen Properties, die den Status des Entities anzeigen (EntityIsDeleted, EntityIsTransient,EntityIsPersistent) Versionsattribut mit Stereotyp «NHibernateAttribute» Attribut semanticVersion, mit dem ein Versionssprung erzwungen werden kann Methode Touch, die den Zähler von semanticVersion hochsetzt Funktionen für die Implementierung des IValidatable Interface Methoden für die Implementierung des ILifeCycle Interface Attribut für die NHibernate Session Zu jeder Methode, die die beiden Interfaces IValidatable und ILifecycle implementiert, wird eine gleichnamige, virtuelle Methode erzeugt, in der Code ergänzt werden kann. Die Methoden können in abgeleiteten Klassen überschrieben werden. XML-Elemente in den Konfigurationsdateien Attribut: Attribut mit dem Stereotyp «NHibernateAttribute» Property mit dem Stereotyp «NHibernateClassProperty» XML-Elemente in den Konfigurationsdateien Assoziation und Aggregation: Beziehungsattribute mit dem Stereotyp «OwnerAttribute» und «InverseAttribute» Beziehungs-Properties mit dem Stereotyp «NHibernateClassProperty» XML-Elemente in den Konfigurationsdateien Generalisierung (in den abgeleiteten Klassen): Methoden in den abgeleiteten Klassen, die die Methoden der Basisklasse überschreiben könne XML-Elemente in den Konfigurationsdateien MDSD - Präsentation des objectiF Tools14
Beispiel Erzeugung einer Persistenzschicht in C# 7. Generierte Klasse SessionManager.cs MDSD - Präsentation des objectiF Tools15 SessionManager.cs
Beispiel Erzeugung einer Persistenzschicht in C# 8. Anlegen der Testklasse SampleMain.cs MDSD - Präsentation des objectiF Tools16 SampleMain.cs
Beispiel Erzeugung einer Persistenzschicht in C# 9. Architekturmuster bauen MDSD - Präsentation des objectiF Tools17
Beispiel Erzeugung einer Persistenzschicht in C# MDSD - Präsentation des objectiF Tools18 Erweitern des fachlichen Modells
Beispiel Erzeugung einer Persistenzschicht in C# MDSD - Präsentation des objectiF Tools19
Beispiel Erzeugung einer Persistenzschicht in C# MDSD - Präsentation des objectiF Tools20 Technische Klassen
Fazit positiv guten Support gute Dokumentation negativ hohe Kosten Einarbeitungsaufwand nicht ganz einfache Bedienung MDSD - Präsentation des objectiF Tools21