Präsentation einer Codegenerator Softwarelösung
Download
Report
Transcript Präsentation einer Codegenerator Softwarelösung
Präsentation einer
Codegenerator Softwarelösung
objectiF
Inhaltsverzeichnis
Allgemeines
Beispiel
Fazit
MDSD - Präsentation des objectiF Tools
2
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 Tools
3
Grundprinzip des MDD
MDSD - Präsentation des objectiF Tools
4
Ablauf der Modelltransformation
MDSD - Präsentation des objectiF Tools
5
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 Tools
6
objectiF
im Bereich MDD
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.
MDSD - Präsentation des objectiF Tools
7
Beispiel
Erzeugung einer Persistenzschicht in C#
1. Auswählen des gewünschten Typs
MDSD - Präsentation des objectiF Tools
8
Beispiel
Erzeugung einer Persistenzschicht in C#
2. Systemname auswählen und
Speicherort festlegen
MDSD - Präsentation des objectiF Tools
9
Beispiel
Erzeugung einer Persistenzschicht in C#
3. Automatisch angelegte Struktur
MDSD - Präsentation des objectiF Tools
10
Beispiel
Erzeugung einer Persistenzschicht in C#
4. Angelegte Struktur in VS
Automatisch erzeugte Datei
DatabaseInitializer.cs
MDSD - Präsentation des objectiF Tools
11
Beispiel
Erzeugung einer Persistenzschicht in C#
5. Fachliches Modell anlegen
Entitätsklasse
Company anlegen
Aggregationsbeziehung
Company hat Person
MDSD - Präsentation des objectiF Tools
Entitätsklasse Person
anlegen
12
Beispiel
Erzeugung einer Persistenzschicht in C#
6. Fachliche Klassen in NHibernateklassen transformieren
Company.cs
Company.hbm.xml
MDSD - Präsentation des objectiF Tools
13
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 Tools
14
Beispiel
Erzeugung einer Persistenzschicht in C#
7. Generierte Klasse SessionManager.cs
SessionManager.cs
MDSD - Präsentation des objectiF Tools
15
Beispiel
Erzeugung einer Persistenzschicht in C#
8. Anlegen der Testklasse SampleMain.cs
SampleMain.cs
MDSD - Präsentation des objectiF Tools
16
Beispiel
Erzeugung einer Persistenzschicht in C#
9. Architekturmuster bauen
MDSD - Präsentation des objectiF Tools
17
Beispiel
Erzeugung einer Persistenzschicht in C#
Erweitern des fachlichen Modells
MDSD - Präsentation des objectiF Tools
18
Beispiel
Erzeugung einer Persistenzschicht in C#
MDSD - Präsentation des objectiF Tools
19
Beispiel
Erzeugung einer Persistenzschicht in C#
Technische Klassen
MDSD - Präsentation des objectiF Tools
20
Fazit
positiv
• guten Support
• gute Dokumentation
negativ
• hohe Kosten
• Einarbeitungsaufwand
• nicht ganz einfache
Bedienung
MDSD - Präsentation des objectiF Tools
21