12.07.2015 Aufrufe

Entwicklung und Anwendung eines Bezugsrahmens zur ...

Entwicklung und Anwendung eines Bezugsrahmens zur ...

Entwicklung und Anwendung eines Bezugsrahmens zur ...

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

Komponente ist. Dieses Vorgehen begründet sich darin, daß Rose eine Komponente auf eine physikalischeDatei abbildet, für die in Java die oben genannte Restriktion gilt. Die verwendeten Typenmüssen im Namensraum deklariert sein, ansonsten wird bei der Codeerzeugung eine Warnung generiert,aber der Quellcode trotzdem erzeugt. Die ANSI C++ Codeerzeugung beinhaltet keinerlei Syntaxüberprüfung<strong>und</strong> ist inhärent fehlerhaft. So kann es vorkommen, daß bei wiederholter Generierungeiner Quellcodedatei aus einer Klasse eine Attributdeklaration jedesmal neu erstellt wird, so daßdiese mehrmals vorkommt. Auf die Mechanismen der anderen Zielsprachen wird an dieser Stellenicht näher eingegangen, wobei noch zu erwähnen ist, daß sich die Reichweite der Überprüfung imallgemeinen zwischen der von Java <strong>und</strong> ANSI C++ bewegt, die damit die Extrema definieren.Bzgl. der Integration von Werkzeugen <strong>zur</strong> Codeerzeugung <strong>und</strong> –verwaltung ist zuerst der interneQuellcodeeditor zu nennen, der mittels <strong>eines</strong> Kontextmenüs aus Rose heraus <strong>zur</strong> Sichtung <strong>und</strong> Modifikationdes korrespondierenden Quellcodes von Modellelementen aufgerufen werden kann. DerEditor verfügt über die Möglichkeit der farblichen Hervorhebung von Schlüsselwörtern (syntaxhighlighting) für die Sprachen Java, C++, CORBA IDL <strong>und</strong> XML <strong>und</strong> die Einbindung <strong>eines</strong> Java-Compilers inkl. der Umleitung seiner Ausgaben in die Oberfläche des Editors. Allerdings ist die Integrationdes Quellcodeeditors nicht fehlerfrei gelungen, was sich in mehreren Aspekten bemerkbarmacht. So wird das Editorfenster, falls der Editor schon geöffnet <strong>und</strong> das Fenster maximiert ist, beidessen erneutem Aufruf verkleinert. Insbesondere beim Java-Modul kann es zusätzlich vorkommen,daß bei einem erneuten Aufruf weiterhin eine alte Version der Datei angezeigt wird <strong>und</strong> nicht die vonRose aktualisierte. Schließlich ist es nicht möglich das Modell abzuspeichern, wenn der Editor geöffnetist, da in diesem Falle Rose keinen Schreibzugriff auf die Modelldatei erlangen kann. Da der Editornormalerweise nicht auf das Modell zugreifen muß, entzieht sich diese Restriktion demunmittelbaren Verständnis. Ein weiterer Kritikpunkt, der bei Verwendung des Editors deutlich wird,ist die mangelnde Berücksichtigung der Dateinamenskonventionen des zugr<strong>und</strong>eliegenden Betriebsystemsbei der Benennung von Modellelementen. Wenn bspw. der Name einer Komponente odereiner Klasse in der Programmiersprache ein gültiger Bezeichner ist, aber Zeichen enthält, die vomBetriebssystem innerhalb <strong>eines</strong> Dateinamens nicht akzeptiert werden, so ist eine Anzeige des erzeugtenQuellcodes des Elements vom Tool aus mit dem integrierten oder einem externen Editors nichtmöglich, da Rose die konfligierenden Zeichen aus dem Namen entfernt <strong>und</strong> die Quellcodedatei beimAufruf durch den Editor nicht mehr gef<strong>und</strong>en wird. In diesem Fall wird ohne weitere Rückmeldungdes Systems bei der Kürzung des Namens oder beim Aufruf des Editors das leere Editorfensterangezeigt.Über die Nutzung <strong>eines</strong> Editors hinaus bietet Rose die Möglichkeit der Integration der Microsoft-Produkte Visual C++, Visual Basic <strong>und</strong> Visual J++, so daß sich die Funktionalität dieser<strong>Entwicklung</strong>sumgebungen für Rose-Modelle resp. deren korrespondierenden Quellcode nahtlosnutzen lassen. Dies bezieht sich auf die Möglichkeit des gegenseitigen Aufrufs, die Nutzung vonKlassenbibliotheken <strong>und</strong> die Compilierung von Code. Für Java kann auf ähnliche Weise dieUmgebung von Visual Age for Java genutzt werden <strong>und</strong> für Ada ist analog eine Schnittstelle fürRational Apex-vorgesehen.Die Realisierung der nötigen Funktionalität im Rahmen des Ro<strong>und</strong> Trip Engineering ist je nach Zielsprachehöchst unterschiedlich <strong>und</strong> mitunter konzeptuell fehlerhaft. Eine umfassende Unterstützungbzgl. Werkzeugintegration <strong>und</strong> Überprüfung semantischer Restriktionen ist dabei für Java vorgesehen,wobei die Integration anderer Sprachen weniger umfassend ist. Die Möglichkeit der Integrationbeliebiger Werkzeuge ist ohne die <strong>Entwicklung</strong> <strong>eines</strong> benutzerdefinierten Moduls nicht möglich <strong>und</strong>so mit einem relativ hohen Aufwand verb<strong>und</strong>en. Zusätzlich erschweren die wenig intuitiven da uneinheitlichenEinstellungsmöglichkeiten der einzelnen Module für die Codeerzeugung <strong>und</strong> -analyse dasAuffinden von Fehlerquellen im Rahmen des Ro<strong>und</strong> Trip Engineering. Insbesondere die Integration- 115 -

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!