Skip to content

Software Engineering II Blog

Intended Audience

Students of computer science, master degree.

Topics

Modern interactive software tools conform to a common architecture:

  • some meta model or syntax graph stores the logical data
  • some unparser create visual representation of the data on the screen
  • some interactive commands and transformation may change the logical data
  • some readers and writers load and store the logical data or exchange it with other tools
  • some generators may generate source code, table data, html, … from the logical data
  • some federation platform may be used to combine different tools to tool chains and workbenches

Training and Coding material

Use this Fujaba model for referencing Java System Library classes inside your own Fujaba Model for the editor: JavaClasses.ctr

Use this Fujaba model for referencing Eclipse classes inside your own Fujaba Model for the editor: EclipseClasses.ctr

SE 2 Termin

Hallo an alle,

als Termin für die Notenvergabe von SE2 haben wir unter allgemeiner Zustimmung den 12.04.2011 festgelegt.

Ich bitte alle, die offiziell an der Vorlesung teilnehmen und eine Note auf ihre im Semester geleistete Arbeit haben möchten, sich per Email bei mir zu melden, um eine Uhrzeit auszumachen.

Bis dann,

Nina

Tagged ,

Quickfixes

Hallo,
auch wenn die Quickfixes in eurem Projekt NICHT zu implementieren sind, für alle Interessierten hier eine kleine Demo wie es prinzipiell gehen würde. (Wir gerade in der Vorlesung gezeigt).
Quickfixes

Tagged , , , ,

Model Validation

Screencast der Vorlesung: Model Validation

Folien zur Vorlesung: ModelValidation.pdf

Tagged , ,

Vorlesung fällt wegen Krankheit aus!!!

Hallo alle Mann,

die Vorlesung Software Engineering II findet heute, 10.01.2011, nicht statt.

Wir sehen uns dann nächste Woche in alter Frische.

Gruß,

Nina

Tagged ,

Codegenerierung mit MWE

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

Tagged , , ,

Custom Figures in GMF Diagrammen mit Eugenia

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ß
Tagged , , ,

Software Engineering II WS1011 Lecture 07 Code Gen

Screen cast SE2WS1011L07CodeGen.html

Tagged , ,

Software Engineering II WS1011 Lecture 06 Simulation Discussion

Screen cast SE2WS1011L06SimulationDiscussion.html (now without music)

Tagged , ,

Software Engineering II WS1011 Lecture 05 Simulation

Screen cast SE2WS1011L05Simulation.html

SE_2_ToolConstructionWS1011.ppt

Tagged , , ,

Software Engineering II WS1011 Lecture 04 Repositories

Screen cast SE2WS1011L04Repositories.html

Tagged , ,