JavaScript Hinweis: Bitte aktivieren Sie JavaScript in Ihrem Browser um alle Funktionen dieser Seite nutzen zu können.

Willkommen auf der Seite des SiDiff Structure-Based Slicing Configuration Editor

Ein Projekt des Softwaretechnik Praktikum 16/17 der Uni Siegen.

Das Projekt

In der modellbasierten Softwareentwicklung (MBSE) treten Modelle weitestgehend an die Stelle von Programmcode und müssen kollaborativ bearbeitet, gewartet und versioniert werden.

Ein Softwaresystem besteht dabei aus einem Netzwerk von koevolvierenden Modellen, welche unterschiedliche Sichten auf das System darstellen.

Im Gegensatz zu Code-zentrierten Softwareartefakten sind die Modelle häufig eng gekoppelt.

Diese enge oder auch strukturelle Kopplung verhindert, dass einzelne Modelle separat bzw. asynchron bearbeitet werden können.

Model Slicing ist eine Technik, um auf Basis von vordefinierten Bedingungen und unter Berücksichtigung allgemeiner Konsistenzbedingenen einzelne Elemente aus einem gegebenen Modell zu extrahieren.

Generische Model Slicer können auf unterschiedlichen Modelltypen arbeiten, benötigen jedoch eine Konfiguration für den jeweiligen Modelltyp.

Im Rahmen des Softwaretechnik Praktikums an der Universität Siegen haben wir den Editor für die Konfigurationen des Model Slicers erweitert, da das Erstellen einer Konfiguration mit dem urspünglichen Konfigurationseditor sehr umständlich war, weil der Benutzer die grafische Darstellung des Modells zur Hand nehmen musste, um zu entscheiden, welche referenzierten Modellelemente ebenfalls übernommen werden sollen, was besonders bei großen Modellen sehr problematisch und teilweise unmöglich ist.

Der während des Praktikums entstandene Editor bietet eine separate Ansicht für die Meta-Modelle der zu slicenden Modelle und unterstützt den Benutzer bei der Auswahl der Elemente durch die Markierung von referenzierten Elementen.

 

Die Projektbeschreibung

  • Technische Grundlagen

    Als Grundlage für unser Projekt diente ein bereits vorgegebener Slicer in Form eines Eclipse Plug-Ins. Im Laufe des Projekts haben wir dieses Plug-In um Funktionen und eine Benutzeroberfläche erweitert.

  • Der vorgegebene Slicer

    Der Slicer dient zum Ausschneiden einzeler Teilelemente eines Modells gemäß eines bestimmten Zwecks. Der Fokus liegt auf dem Static Model Slicing, bei dem eine Konfiguration benötigt wird um Teilelemente aufgrund struktureller Eigenschaften des Meta-Modells auszuschneiden.

  • Eclipse Plug-in Entwicklung

    Zielumgebung des Plug-Ins war die Eclipse IDE. Eclipse bietet die Möglichkeit die Entwicklungsumgebung mit Hilfe von Extension-Points zu erweitern. Diese sind XML-basierte Erweiterungsmöglichkeiten für Eclipse selbst oder bereits bestehende Plugins.

  • Ziel des Praktikums

    Ziel war es, einen Konfigurationsprozess für den gegebenen Model Slicer im Eclipse-Umfeld zu konzipieren und zu implementieren. Zum Funktionsumfang gehören interaktive Spezifikationen der konzeptuellen Struktur von Modellen, automatisierte Ableitungen einer Konfiguration aus der gegebenen Spezifikation und eine interaktive Auswahl der Slicing Kriterien und Konfigurationen. Der grafische Editor soll die Modelle in einer Baumstruktur darstellen. Bei einer Auswahl durch den Benutzer sollen automatisch weitere Elemente des Modells angezeigt werden, die bereits mit den ausgewählten Elementen verbunden sind. Des weiteren soll der Benutzer durch farblich kodierte Elemente in seiner Auswahl von Modell-Elementen unterstützt werden.

Der Projektverlauf

  • April 2017

    Schnittstellen: erster Entwurf

    Zuerst wurden die Schnittstellen der Logik und des Editors definiert, damit die Entwicklung von GUI und Logik weitestgehend unabhängig voneinander erfolgen kann. Für jedes Modellelement kann eine Schriftfarbe und Hintergrundfarbe definiert werden. Der Wizard ist ohnehin unabhängig von den anderen Komponenten, weswegen keine weiteren Schnittstellen erforderlich sind.

    Editor: erster Entwurf

    Unterstützung von mehreren importieren Modellen und Angabe von Constraints für Modellelemente.

  • Mai 2017

    Schnittstellen: Verbesserungen

    Veränderungen am Modell werden durch Commands durchgeführt, damit diese rückgängig gemacht / wiederholt werden können. Schriftstil (Kursiv, Fett) sowie Overlay-Icons können nun ebenfalls für jedes Modellelement angepasst werden.

    Logik: erster Entwurf

    Ein erster Entwurf der Logik mit Unterstützung für das Hinzufügen von Klassen und Berechnung der Checkbox-Zustände wurde erstellt.

    Befehl um Slicer auszuführen

    Ein Befehl wurde hinzugefügt, um direkt eine gegebene Konfiguration anzuwenden. Dies erleichtert das Testen.

    Logik: grundlegende Funktionalität

    Klassen und Referenzen können zur Konfiguration hinzugefügt werden. Referenzierte Klassen werden markiert.

    Editor: verbesserte Fehlerbehandlung

    Fehler in der Konfiguration werden auf einer zusätzlichen Seite angezeigt und markiert.

  • Juni 2017

    Wizard: grundlegende Funktionalität

    Die importieren Modelle können in einem zusätzlichen Dialog ausgewählt werden. Die anderen Einstellungen können ebenfalls bearbeitet werden.

    Editor: Autovervollständigung von Constaints

    Die Angabe von Constraints wird durch die automatische Vervollständigung erleichtert.

    Editor: gefilterte Anzeige und Outline

    Im Editor werden nur noch Pakete, Klassen und Referenzen angezeigt. Die Outline-View zeigt die importieren Modelle vollständig an.

  • Juli 2017

    View für alternative Elemente

    Eine View wurde erstellt, die dem Benutzer für eine Referenz alle möglichen Klassen anzeigt, die durch diese Referenz referenziert werden können.

    Editor: Unterstützung von überschreibenden Referenzen

    Referenzen einer Klassen können in den Unterklassen überschrieben werden und werden daher zusätzlich in den Unterklassen angezeigt.

    Logik: Bestätigungsdialog, Markierung von überschreibenden Referenzen, und änderebare Farben

    Überschreibende Referenzen werden markiert. Ein Bestätigungsdialog wird angezeigt, wenn Elemente mit Constraints entfernt werden, da diese dann ebenfalls verloren gehen. Die Farben der Markierung können in den Einstellungen angepasst werden.

    Wizard: Erstellung eines neuen Projekts, Auswahl der importieren Modelle direkt im Wizard

    Ein zusätzlicher Wizard zur Erstellung von Projekten für Slicing Konfigurationen wurde erstellt. Die zu importierenden Modelle können direkt im Wizard ausgewählt werden.




Phantasie ist wichtiger als Wissen, denn Wissen ist begrenzt.

Albert Einstein - Theoretischer Physiker



Der Guide




Erfolg hat nur der, der etwas tut, während er auf den Erfolg wartet.

Thomas Alva Edison - Erfinder



Das Team

Stephan

Projektleiter
Stephan

Marco

stellv. Projektleitung
Marco

Stefan

Leitung Dokumentation
Massimo



UNIX ist simple. Es erfordert lediglich Genialität um seine Einfachheit zu verstehen.

Dennis Ritchie - UNIX Entwickler



Sie haben Fragen?

Nehmen Sie noch heute mit uns Kontakt auf!