Hilfe Warenkorb Kasse Konto Anmelden
                       
  Wirtschaft  
  Recht  
  Computer     Technik  
  Wissen  
  Medizin  
  Gesundheit  
  Psychologie  
  Pädagogik  
  Ratgeber     Sexualität  
  Erotik  
  Politik     Geschichte     Philosophie  
  Religion  
  Hobby  
  Reise  
  Belletristik  
Das heiße Eisen       Neuheiten       Preishits       Bestseller       Palm / Pocket PC       EPUB
     Download Reader
  Suchen und Finden
Schnellsuche



zur Expertensuche

  Tipps und Tricks
Freundschaftswerbung
Studentenermäßigung
Volltextsuche
Kapitelanzeige
Doppel-Download
Online-Lesen

  Newsletter
hier anmelden:

  Infos und Kontakt
Firmenkunden
Bibliotheken
Autoren
Buchhandel
Verlage
Presse
Werbepartner


Sprache wählen:
Modellgetriebene Softwareentwicklung - MDA und MDSD in der Praxis
  Großes Bild
 
Modellgetriebene Softwareentwicklung - MDA und MDSD in der Praxis
von: Georg Pietrek, Jens Trompeter (Hrsg.)
entwickler.press, 2007
 
Format: PDF, PDF
geeignet für: PC, MAC, Laptop Online-Lesen



Print-Preis:    €  39,90  
Preis:      33,90  
Sie sparen:      6,00  (15%)

Mehr zum Inhalt
Kapitelübersicht
Kurzinformation
Inhaltsverzeichnis
Leseprobe
Blick ins Buch
Fragen zum eBook?
256 Seiten
Download: 5461 KB
ISBN: 3939084115
PDF-Dokument anfordern
Leseprobe

5 Best Practices (S. 119-120)

In den bisherigen Kapiteln wurde viel über modellgetriebene Architekturen und modellgetriebene Entwicklung geschrieben. Kapitel 2 hat versucht MDA und MDSD in ihr Vorgehensmodell und ihre Projektorganisation einzuordnen. Kapitel 3 hat viel über Modelle und deren Metamodelle vermittelt, und es wurden verschiedene praxisrelevante Modellierungssprachen vorgestellt. Kapitel 4 hat sich dem Thema domänenspezifische Sprachen (DSL) angenommen.

In Kapitel 5 geht es nun um Best-Practices für die modellgetriebene Softwareentwicklung. Dieses Kapitel widmet sich den Themen Cartridge-Erstellung (eine Teilkomponente eines Code-Generators im Sinne von MDSD) und deren Integration in die Buildumgebung. Wir erläutern außerdem, wie die Cartridge und der generierte Quelltext einfach und sinnvoll dokumentiert werden kann und stellen Best-Practices zum Thema „handgeschriebener vs. generierter Code" vor. Zu diesen Themen gibt es viele Fragen, zu denen wir Lösungsansätze anbieten, die aus unserem Projektalltag stammen.

5.1 Entwicklung von Cartridges

5.1.1 Was sind Generatoren?

Aus den vorherigen Kapiteln wissen Sie, dass Sie einen Generator benötigen, um aus einem Modell Quelltext zu generieren. Aber wie kann ein solcher Generator aussehen und welche Bestandteile hat er? Ein Generator dient dem Zweck, aus einem Modell Artefakte zu generieren. Solche Artefakte können z.B. Programmcode, Konfiguration und Datenbankskripte sein. Um das zu erreichen, hat ein Generator verschiedene Bestandteile, die es ermöglichen, aus dem Modell die gewünschten Elemente zu extrahieren und daraus die gewünschten Artefakte zu generieren.

Funktionsweise eines Generators

Modelle, die mit der UML oder mit dem Eclipse Modeling Framework (EMF) erstellt wurden, bestehen in erster Linie aus XML-Dateien. Frühere Ansätze von Generatoren haben dies genutzt, indem sie das XML-Dokument mit einem DOM-Parser in den Speicher geladen und mit XSL-Stylesheets die Artefakte erzeugt haben. Bei größeren Modellen führte das regelmäßig zu sehr langen Generierungszeiten, wenn nicht sogar zu Abbrüchen, da die Systemressourcen oft nicht ausreichten.

Aus diesem Grund basieren moderne Generatoren auf einem Objektmodell, welches auf dem zugrundeliegenden Metamodell basiert, z.B. UML oder einem EMF-basierten Metamodell. Bekannte Vertreter dieser Objektmodelle sind Netbeans MDR, welches bei AndroMDA zum Einsatz kommt, und das Eclipse Modelling Framework (EMF). Dabei wird das XML-Dokument nicht mit einem DOM-Parser eingelesen und der DOMTree im Speicher gehalten, sondern mit einem schnellen SAX-Parser direkt auf das Objektmodell gemappt. Alle Aktionen – Transformationen, Generierungen – werden dann nur noch auf Basis des instanziierten Modells ausgeführt. Dieses Vorgehen ist deutlich ressourcenschonender und somit schneller. Ein weiterer deutlicher Mehrwert dieses Verfahrens ist die Möglichkeit, das instanziierte Modell der Templateengine zur Verfügung zu stellen.

Templates

Die Qualität eines Generators steht und fällt mit der Ausdrucksfähigkeit der verwendeten Templatesprache. AndroMDA verwendet Velocity und Freemarker. Beide Templatesprachen sind dynamisch typisiert. Das openArchitectureWare Framework verwendet die eigene Templatesprache xPand. xPand ist eine statisch typisierte Sprache. Doch wo ist der Unterschied zwischen einer statisch und einer dynamisch typisierten Sprache?

Bei einer statisch typisierten Sprache wird einer Variablen ein konkreter Typ zugeordnet, der nicht änderbar ist. Mit diesen Informationen kann ein besserer Editorsupport angeboten werden. Ein solcher Editor kann Features wie Online Syntax-Checking und Autocompletion haben. Bei dynamisch typisierten Sprachen ist es deutlich schwieriger, einen solchen Editor zur Verfügung zu stellen, da eine Variable jederzeit einen beliebigen Typ annehmen kann.



nach oben

© 2010 ciando GmbH | AGB | Impressum | Kontakt | F.A.Q.