Skip to content

Software written in C#. Generates Code from a UML-classdiagram modeled in yEd

Notifications You must be signed in to change notification settings

baristikir/CodeGenerator

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 

Repository files navigation

CodeGenerator

  1. Verwendung
    1. yEd-Notation
      1. Static
      2. Abstract
  2. Test-Komponenten Beschreibungen
    1. Test: CodeGenerator
    2. Test: Controller
    3. Test: Reader
    4. Test: Generator
  3. Authors
  4. License

Dieses Programm erstellt ".cs"-Dateien und füllt sie mit generiertem Quelltext, welcher auf der bereitgestellten ".graphml"-Datei beruht.

1. Verwendung

Nach dem Starten des Programms sollten zunächst, die fertige ".graphml"-Datei, als Quelle, und ein gewünschter lokaler Ausgabeort ausgewählt werden. Zu beachten ist, dass das Programm nur eine korrekte Form der ".graphml"-Datei akzeptiert.

1.1 yEd-Notation

In yEd ist nur die Palette, der UML Elemente, gültig. Zudem sind auch nur zwei Elemente richtig realisierbar vom Programm, Elemente: "Klasse" & "Generalisierung". Für die Umsetzung des Klassen Diagramms gelten die Allgemeinen Notations Regeln für die UML-Klassendiagramme, nach der C#-Ordnung.

Palette


1.1.1 Static

Für die Erzeugung statischer Methoden oder Attribute ist folgende Notation in yEd notwendig: Nach dem Access-Modifier (falls vorhanden) ist das Zeichen '*' notwendig.

Beispiel (siehe Bild):

static-Method






1.1.2 Abstract

Für eine Abstrakte Klasse ist folgende Notation in yEd notwendig: Unter der Einstellung Beschriftung ist der Schriftstil auf kursiv zu setzen.

Beispiel (siehe Bild):

abstract-class








2. Test-Komponenten Beschreibungen

2.1 Test: CodeGenerator

Um das Projekt als Ganzes zu testen, ist die Komponente "CodeGenerator.GUI" auszuführen. Beispieldateien hierfür sind im Gitlab-Repository zu finden (Einfacher Test: "classdiagram.graphml", Komplexer Test: "completedDiagram.graphml").

2.2 Test: Controller

Die Testkomponente des Controllers "CodeGenerator.ControllerTest" kreiert den Ausgabepfad im Verzeichnis der Program-Klasse und den Dateipfad der (im Verzeichnis der Komponente abgespeicherten) "classdiagram.cs"-Datei. Mit übergabe dieser Pfade, ruft sie die Methode StartProcess auf, welche die Komponenten "CodeGenerator.Reader" und "CodeGenerator.Generator" erstellt und einen Datenaustausch simuliert. Dabei erhält der Controller, nach übergabe des Dateipfades, vom Reader ein Datamodel und gibt dieses, zusammen mit dem Ausgabepfad, dem Generator weiter.

2.3 Test: Reader

Die Reader-Komponente besitzt im ganzen zwei Test-Komponenten, und zwar einmal "CodeGenerator.ReaderTest" und "CodeGenerator.ReaderUnitTest". Dabei stellt das Projekt "CodeGenerator.ReaderTest" die Haupt-Testkomponente dar. Diese Komponente erzeugt lediglich ein valides Datenmodell aus einem Klassendiagramm, welche in Form einer .Graphml Datei vorliegt. Die Ergebnisse werden in einer Konsolen-Applikation dargestellt. Sinn und Zweck dieser Test-Komponente ist es, feststellen zu können ob ein Datenmodell erzeugt werden kann und ob sie für die weiter Verarbeitung eine korrekte Struktur annimmt.

Das Projekt "CodeGenerator.ReaderUnitTest" testet die Reader-Komponente auf spezielle Fälle. Aus einem Klassendiagramm werden Werte geladen und jeweilige Objekte erzeugt. Diese werden mit den korrekten Ergebnissen, die eigentlich aus dem Diagramm entnommen werden sollten, verglichen. Diese Unit-Test's können innerhalb des Visual-Studio Testexplorers ausgeführt werden.

2.4 Test: Generator

Das Projekt "CodeGenerator.GeneratorTest" testet die Generator-Komponente. Zu Beginn wird ein Dummy-DataModel mit Attributen, Methoden, Interfaces und Klassen erstellt. Dieses wird dem Generator übergeben, zusammen mit einem Ausgabepfad. Das Ausgabepfad ist standardmäßig der Ordner "GeneratorTestFiles", welcher auf dem Desktop des aktuellen Nutzers erstellt wird, sollte er bisher nicht existieren.

3. Authors

  • Emircan Yüksel - GUI und Controller
  • Baris Tikir - Reader
  • Yannik Sahl - Generator und DataModel

4. License

Dieses Projekt ist lizensiert unter der MIT-Lizenz.

About

Software written in C#. Generates Code from a UML-classdiagram modeled in yEd

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages