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