Tag Archives: exercise

Software Engineering II, WS1011

Alle notwendigen Schritte zur Codegenerierung aus eurem Hausautomatisierungsdiagramm findet ihr hier: CodegenerierungMitMWE

Ich habe versucht, dort alles so genau wie möglich zu beschreiben.

Die GenerateCodeAction sieht bei mir so aus: GenerateCodeAction

Für die Umsetzung benötigt ihr eine weitere ctr Datei, die ihr als Abhängigkeit in euer Projekt einfügen müsst. Sie enthält notwendige Klassen aus dem MWE Framework, die ihr in der entsprechenden Action braucht, um die Codegenerierung von dort aus anstoßen zu können. Diese ctr könnt ihr hier herunterladen.

Viel Erfolg, ein frohes Weihnachtsfest und einen guten Rutsch. Bei Fragen wie immer einfach Mail an mich.

Nina

Software Engineering II, WS1011

Wie versprochen die Anleitung um Grafiken als Darstellung in euren Editor einzubinden.

Hierzu ist es notwendig, einige Dinge in eurem Projekt einzufügen, damit der Editor immer korrekt funktioniert und die Bilder richtig geladen werden.
Laden von Bildern und anderen Ressourcen funktioniert in Eclipse über das Plugin beziehungsweise das ResourceBundle zu welchem das Plugin gehört.

  1. Legt euch in eurem Projekt einen neuen Ordner für die Grafiken an. Ich hab den bei mir einfach images genannt. Dieser Ordner liegt direkt unterhalb des Projektes und wird alle Grafiken die ihr anzeigen wollt enthalten.
  2. Legt euch im src Ordner des Projektes ein neues Package an, in welches ihr eine sogenannte Activator Klasse legt. Bei mir heißt diese Klasse SmartIOActivator. Sie ist dafür zuständig die Grafiken korrekt zu laden und von der Platte zu lesen. Ihr könnt hier im wesentlichen meine Klasse weiter benutzen.
    Meine Klasse findet ihr hier: SmartIOActivator.java
  3. Legt euch nun ebenfalls im src Ordner eures Projektes ein neues Package an, in welches Ihr die Java Klassen für eure Figures legt. Hier ist für jede Grafik die ihr anzeigen wollt eine eigene Klasse notwendig. Die folgende Grafik zeigt meine Ordner und Paketstruktur nach dem Anlegen der einzelnen Ordner und Klassen:
  4. Die Klassen für eure Figures sollten von org.eclipse.draw2d.ImageFigure erben. Die Klasse an sich tut nicht viel, als Beispiel meine Klasse zum laden einer Glühbirne für die Lichter:
    package de.unikassel.se.se2.smartio.editor.figures;
    import org.eclipse.draw2d.ImageFigure;
    
    import de.unikassel.se.se2.smartio.SmartIOActivator;
    
    public class LightFigure extends ImageFigure {
    
        public LightFigure() {
        super(SmartIOActivator.imageDescriptorFromPlugin(SmartIOActivator.ID,
              "images/Light.png").createImage(), 0);
        }
    }
  5. Nun ist noch in der Manifest.MF Datei zu beachten, dass die neuen Packages mit exportiert werden und der images Ordner im binary build mit eingebaut wird.
  6. Das Runtime Tab der Manifest Datei sollte in etwa so:
  7. Das Build Tab der Manifest Datei in etwa so:

    aussehen.
  8. Alles was nun noch zu tun bleibt, ist die korrekte Annotation in unser Fujaba Klassendiagramm einzufügen. Ich habe an meine Klasse Light folgendes als Tag rangeschrieben:
  9.       @gmf.node(label="name",figure="de.unikassel.se.se2.smartio.editor.figures.LightFigure",label.placement="external")
    

    Dies bewirkt, dass aus unserem Licht ein Knoten wird, der mit der gewünschten LightFigure dargestellt wird, als Label soll das Name attribut der Klasse angezeigt werden und zusätzlich soll das Label außerhalb der Figure platziert sein, damit wir hier nicht mitten in unserer Grafik herumschreiben.

  10. Mit diesen Annotationen wie gewohnt neu Generieren und alle gewohnten Schritte zum Erstellen des Editors neu Ausführen. Viel Spaß
Compiler Construction, WS1011

Für die zukünftige Abgabe der Übungen erhält jeder Teilnehmer Zugriff auf ein eigenes CVS-Repository, über das die eigene Implementierung verwaltet werden soll. Dadurch wird die Bewertung für uns vereinfacht und Ihr könnt sicher sein, dass alle Abgaben auch bei uns ankommen.


Hierzu sollte sich jeder, der noch keinen Account auf dem Fusion Forge besitzt, dort registrieren. Jeder mit existierendem Account ist bereits einem Projekt zugewiesen worden (unter “Mein Account” -> “Meine persönliche Seite” -> “Projekte” muss es aufgeführt sein). Alle Teilnehmer (egal ob neuer oder existierender Account), die noch ein solches Projekt benötigen, melden sich am besten kurz per Mail (den gewählten Accountnamen auf dem Fusion Forge nicht vergessen mitzuschicken, damit ich euch zuordnen kann), damit ich es erstellen und euch zuweisen kann.


Die URL zu eurem CVS-Repository findet ihr, wenn ich euer Projekt auswählt und in der oberen Leiste auf “SCM” klickt.


Ändert die Namen eurer (Eclipse-)Projekte bitte derart, dass sie ein Namenskürzel von euch enthalten, bevor ihr sie eincheckt. Das ermöglicht uns die schnellere Zuordnung.


Die Bewertung der einzelnen Übungen erfolgt über diese Projekte. Dazu werden sie zum angegebenen Abgabezeitpunkt mit dem von Euch eingepflegten Stand ausgelesen. Später hinzugefügte Änderungen können für die jeweilige Übung nicht gewertet werden. Abgaben per Mail bitte nur in Ausnahmefällen.


Bei Unklarheiten oder Fragen meldet Euch am Besten kurz per Mail oder kommt bei mir vorbei (R1338).