Software Engineering Group

Bericht vom Girls' Day 2017

Auch in diesem Jahr haben wir uns wieder am Girls’Day des Fakultät mit dem Programm ”Software Erleben mithilfe von 3D-Visualisierungen” beteiligt.
In drei Gruppen könnten jeweils 10 Schülerinnern ab der 8. Klasse aktuelle Trends innerhalb der Informatik kennenlernen und insbesondere auch selbst ausprobieren.

Im Rahmen unseres Forschungsprojektes „ExplorViz“ (https://www.explorviz.net)  haben wir den Schülerinnen die Gelegenheit gegeben, sich mit modernen Interaktionskonzepten, wie etwa einer HTC Vive 3D-Brille in Kombination mit einer Gestensteuerung, Software in einer 3D-Umgebung virtuell zu erkunden („Software erkunden“).

Interaktion mit der HTC Vive Gestensteuerung mit der Leap Motion

Weiterhin haben wir mit einem 3D-Drucker hergestellte 3D-Modelle zur Verfügung gestellt.
Mithilfe der Modelle könnten die Schülerinnen versuchen im Team eine solche Software anzusehen, zu verstehen und anschließend zu diskutieren („Software zum Anfassen“).

Gedrucktes 3D-Modell einer Software

Wir haben durchweg positives Feedback zu unserem Angebot erhalten. Hier eine Zusammenfassung:

Die Schülerinnen waren ganz beeindruckt, es hat Ihnen viel Spaß gemacht. Die lockere Art der Referenten und ihre gute Vorbereitung  haben eine gute Atmosphäre geschaffen. Zitat: "Die waren alle total nett und man hat gemerkt, dass die richtig Spaß an ihrer Arbeit haben."

Wir werden auch im kommenden Jahre wieder dabei sein und versuchen Schülerinnen die Informatik näher zu bringen!

Bericht Forschungsorientierte wissenschaftliche Hilfskraft von Josefine Wegert

Im Rahmen einer Hilfskraftstelle in der Arbeitsgruppe Software Engineering von Herrn Hasselbring beteiligte ich mich im Sommersemster 2016 für vier Monate á 40 Stunden am Forschungsprojekt ExplorViz im Team von Christian Zirkelbach.

ExplorViz ermöglicht Monitoring von großen Softwarelandschaften, indem u. a. Methodenaufrufe getrackt werden. Es visualisiert die untersuchte Softwarelandschaft mithilfe von 2D- und 3D-Modellen. Visualisierung ist ein wichtiges Mittel, um die oft komplexe Struktur einer Softwarelandschaft verständlich und übersichtlich darzustellen und somit das Arbeiten im Team mit der Software zu erleichtern.

Das Projekt ExplorViz ist open-source und unter GitHub verfügbar. Die durchgeführten Experimente, deren Ergebnisse in verschiedenen Papern veröffentlicht wurden, sollen replizierbar sein. Um dies zu erreichen, muss das Tool für jeden nutzbar sein, so dass die Experimente nachgestellt und die veröffentlichten Ergebnisse überprüft werden können. Hierfür ist eine verständliche Dokumentation unerlässlich, die es einem projektfremden Menschen ermöglicht, das Tool zu installieren und zu bedienen. Da ich zu Beginn der Hilfskraftstelle zu den projektfremden Menschen gehörte, bestand meine erste Aufgabe darin das Paper „Hierarchical Software Landscape Visualization for System Comprehension: A Controlled Experiment“ zu lesen und das darin erwähnte Experiment nachzustellen. Dies tat ich, indem ich mit den vorhandenen Informationen aus dem Paper, das Tool installierte und für das vermeintliche Experiment einrichtete. Aus meinen gesammelten Erfahrungen heraus entwickelte ich Verbesserungsvorschläge für die Dokumentation. Im Gespräch mit Projektinteressierten sind die Verbesserungen an der Dokumentation positiv erwähnt worden.

Im nächsten Schritt überarbeitete ich die Homepage des Projekts mit dem Ziel sie übersichtlicher zu gestalten und damit die Verfügbarkeit der Informationen zu erhöhen.

Zwei Studenten und eine Tasse KaffeeDes weiteren war ich als Tutorin auf dem Girls Day 2016 tätig. Dort stellte ich den Schülerinnen ausgedruckte 3D-Modelle, die mit ExplorViz erstellt worden waren, vor und half ihnen, durch gezielte Fragen, die dargestellte Softwarelandschaft zu erkunden. Neben dieser Darstellung der Softwarelandschaft wurden an zwei anderen Stationen die 3D-Darstellung auf dem Bildschirm und  die 3D-Darstellung mit der 3D-Brille (Oculus Rift)  vorgestellt. Ich verglich mit den Schülerinnen die drei Darstellungsweisen und sprach über Vor- und Nachteile von diesen. Auch berichtete ich über Inhalte und meine Erfahrungen im Verlauf meines Informatikstudiums.

Zum Ende der Hiwi-Zeit arbeitete ich mich in den Programmcode von ExplorViz ein, um an der Verbesserung des Sourcecode-Viewers zu arbeiten. Mit dem Sourcecode-Viewer kann der Nutzer bei Bedarf von jedem Punkt im Modell zur zugehörigen Stelle im Quellcode springen.

Für die aus Gleichstellungsmitteln von Präsidium und Technischer Fakultät zur Förderung leistungsstarker Studentinnen finanzierte Hilfskraftstelle wurde ich von Herrn Hasselbring vorgeschlagen. Darüber bin ich froh, weil ich mich nicht von allein als wissenschaftliche Hilfskraft für die Forschung beworben hätte. Durch die Arbeit konnte ich Einblicke in den Forschungsalltag einer Arbeitsgruppe gewinnen. Da es mir gut gefallen hat, werde ich im Wintersemester das neue Mastermodul Forschungsprojekt ebenfalls in der Arbeitsgruppe Software Engineering belegen.

Introducing Type-Systems in Xtext-Languages

Domain-specific languages (DSL) are very popular among software developers, as they provide a more compact and constricted way to formulate certain aspects of the resulting system. There are already a wide range of different approaches and tool-chains to the topic of DSL development.

Link to the blog

Soot Tutorial

Setup

Available Versions

Soot is available in two versions: the official release version and the trunk version:

Current official release version: 2.5.0 (release year: 2005)

Current trunk version: ? (last modification: few days ago)

Command line call

For version 2.5.0

java -cp *soot-jar*;*classes-to-analyze*;*libraries*; soot.Main *main-class*

If the following error occurs then you do not use the version 2.5.0, but the trunk version:

soot.SootResolver$SootClassNotFoundException: couldn't find class: ...

For trunk version

java -cp *soot-jar*; soot.Main -cp *classes-to-analyze*;*libraries*; -pp soot.Main *main-class*

If the following error occurs then you compiled the *classes-to-analyze* with a different java version than you use to execute the command above.

Unknown tag in constant pool: *a number* at entry *another number* Exception in thread "main" java.lang.RuntimeException: Could not load classfile: java.lang.CharSequence

 

Command line arguments

Overview: https://ssebuild.cased.de/nightly/soot/doc/soot_options.htm

Example Eclipse project

gitlab URL: https://build.se.informatik.uni-kiel.de/gitlab/chw/SootTutorial

Official, but incomplete setup description

https://github.com/Sable/soot/wiki/Running-Soot

Entropy-based Architecture and Model Analysis

Models play an important role in software development and system operation. They are used for many different purposes including architecture models, adaptation plans, and runtime models. Their size, complexity, coupling, and cohesion have an impact on many uses of runtime models and on the evolution and adaptation of design time models and software. Therefore, it is necessary to measure these attributes and assess the model quality. Many approaches try to identify these attributes based on counting measures applied to the original artifacts. This has two downsides:

  1. Measurements are not comparable between metamodels.
  2. The measurement does not reflect the cognitive and computation effort necessary to process models.

Allen et al. (2007) introduced a information theory approach focusing the entropy of systems as the central measure for models. We present an extensible analysis tool realizing this measure and support a wide variety of input models.

Our tool supports an ever growing number of models and supports analysis graph visualizations.

Palladio Component Model presented as Aggregated Hypergraph. Line thinkness express the number of edges between nodes.

Supported Models

  • EMF/Ecore metamodels
  • GECO megamodels
  • Configurable analysis of Java projects
  • Behavior models of the Palladio Component Model (PCM)

Metrics

  • Hypergraph & Graph Complexity
  • Hypergraph & Graph Coupling
  • Graph Cohesion
  • McCabe Complexity of Java functions
  • Hypergraph & Graph Size in Nodes and Edges

Resources

 

Upcoming Events

Research Projects

  • more...

     ExplorVizLogo160x37[1].png    iobserve-logo-small    CloudMIG Xpress

     

    Future-Ocean-logo    kieker-logo       PubFlow

     

    teetime-logo   SpratGeRDI

Teaching