Bachelorand/ Masterand (all genders) - Modellsynthese aus PlantUML Diagrammen

Intern / Student, Full or part-time · Augsburg, Krumbach, Berlin, Ingolstadt, Erlangen, Leipzig, Münster, München, Karlsruhe

Read job description in:
Das ist die Herausforderung

In vielen Softwareprojekten spielen PlantUML-Diagramme eine entscheidende Rolle bei der Dokumentation und dem Entwurf der Systemarchitektur. Obwohl PlantUML eine einfache und effektive Möglichkeit bietet, komplexe Systeme visuell darzustellen, gibt es einen Nachteil: Die einzelnen Diagramme haben keine Beziehung zueinander. So können beispielsweise Elemente wie Klassen, die in verschiedenen Diagrammen wiederverwendet werden, nicht auf eine einheitliche Schreibweise überprüft werden. Ebenso haben die Entwickler in den Editoren keine Unterstützung, um Elemente aus anderen Diagrammen wiederzuverwenden. Es wäre z.B. sehr hilfreich, wenn der Editor über eine Code-Vervollständigung verfügen würde, die beim Erstellen eines Sequenzdiagramms die Namen der in einem Klassendiagramm definierten Klassen einträgt.

Was fehlt, ist ein Werkzeug, das aus den Diagrammen ein semantisch korrektes Modell erzeugen kann. Dieses Modell könnte dann genutzt werden, um die Diagramme in einem PlantUML-Editor auf Korrektheit zu prüfen und intelligente Funktionen wie die Code-Vervollständigung anzubieten und so die Arbeit der Entwickler zu unterstützen und die Konsistenz der Diagramme zu gewährleisten. 

Deine Aufgabe ist es, dieses Problem zu lösen: Entwickle eine Methode zur Synthese eines Modells aus PlantUML-Diagrammen, das sowohl die in den Diagrammen dargestellten Konzepte als auch die verwendeten Relationen erfasst, füge sie zu einem konsistenten Modell zusammen und erweitere den PlantUML VS.Code-Editor, um dieses Modell für die Codevervollständigung und -validierung zu verwenden.

Diese Aufgaben interessieren Dich
  • Analysieren der PlantUML-Syntax und der möglichen Diagrammtypen
  • Entwicklung eines Konzepts zur Extraktion der in PlantUML-Diagrammen enthaltenen Informationen
  • Implementierung von Algorithmen zur semantischen Modellsynthese
  • Entwicklung von Methoden zur Validierung der generierten semantischen Modelle
  • Integration dieser Methoden in einen PlantUML-Editor zur Unterstützung der Modellvalidierung und Codekomplettierung
  • Durchführen und Auswerten von Tests zur Überprüfung der Effektivität und Korrektheit des Ansatzes
Das zeichnet Dich aus
  • Du absolvierst einen Studiengang im Bereich Informatik oder einer vergleichbaren Fachrichtung an einer Universität oder Hochschule, vorzugsweise mit Schwerpunkt Softwaretechnik oder Modellierung.
  • Du besitzt die Fähigkeit, Dich selbstständig in neue Themengebiete einzuarbeiten, sowie strukturierte Arbeitsweise und analytisches Denkvermögen.
  • Du hast Interesse an den Forschungsthemen im Bereich Software-Engineering, insbesondere im Bereich der Modellierung und Diagrammanalyse.
  • Du hast bereits gute Kenntnisse in der Softwaremodellierung und Erfahrung mit UML oder ähnlichen Modellierungssprachen sowie Erfahrung in der Programmierung, idealerweise in einer für die Implementierung geeigneten Sprache wie Java oder Python.
  • Du verfügst über gute Englischkenntnisse in Wort und Schrift für die Recherche und Dokumentation der Arbeit.
  • Du bist neugierig und hast Lust, in einem technologisch hochmodernen Umfeld mitzuwirken und suchst nach einer Möglichkeit, Dein Wissen aus dem Studium umzusetzen und zu vertiefen.
Das bieten wir Dir
Vertrauensvolle Arbeitsatmosphäre
  • Offene, partnerschaftlich geprägte Unternehmenskultur
  • Flache Hierarchien
  • Großer Gestaltungsspielraum

Spannende und vielseitige Projekte

  • Hochkomplexe Aufgabenstellungen
  • Unterschiedliche und hochtechnisierte Branchen
  • Anspruchsvolle und namhafte Kunden

Inspirierende Expertenkultur

  • Interdisziplinäre Teams auf Augenhöhe
  • Wissensaustausch zwischen individuellen Expert*innen
  • Entscheidungen werden im Team gefällt

Persönliche Weiterentwicklung

  • Arbeit mit neuesten Technologien
  • Interne Tech Talks, externe Fortbildungen und Konferenzen
  • Mentoring-Programm mit regelmäßigem Feedback

Familien­freundlichkeit

  • Verschiedene Modelle zur Vereinbarung von Familie und Beruf
  • Flexibilität bei Arbeitszeiten
  • Beteiligung an Kosten für Kinderbetreuung

Diversität

  • Wir heißen Vielfalt willkommen
  • Wir setzen uns ein für Lebensgeschichten-, Generationen- und Geschlechter­gerechtigkeit
That is your challenge

In many software projects, PlantUML diagrams play a crucial role in the documentation and design of the system architecture. Although PlantUML provides a simple and effective way to visually represent complex systems, there is a drawback: each diagram has no relation to the others. For instance, elements such as classes that are reused across diagrams cannot be checked for consistent spelling. Likewise, developers have no support in the editors to reuse elements from other diagrams. It would be very helpful, e.g., if the editor had code completion that would fill in the names of classes defined in a class diagram when creating a sequence diagram.

What is missing is a tool that can generate a semantically correct model from the diagrams. This model could then be used to check the diagrams for correctness in a PlantUML editor and offer intelligent functions such as code completion, therefore supporting the work of developers and ensuring consistency of the diagrams. 

Your task is to fix this issue: develop a method for synthesising a model from PlantUML diagrams that captures both the concepts represented in the diagrams and the relations used, merge them into a consistent model, and extend the PlantUML VS.Code editor to use this model for code completion and validation.
These tasks interest you
  • Analyzing the PlantUML syntax and the possible diagram types
  • Developing a concept for extracting the information contained in PlantUML diagrams
  • Implementation of algorithms for semantic model synthesis
  • Development of methods for validating the generated semantic models
  • Integration of these methods into a PlantUML editor to support model validation and code completion
  • Execution and evaluation of tests to check the effectiveness and correctness of the approach
That makes you stand out
  • Your are studying computer science or a related field, preferably with a focus on software engineering or modeling.
  • You already have good knowledge of software modeling and experience with UML or similar modeling languages as well as experience in programming, ideally in a language suitable for implementation such as Java or Python.
  • You are interested in research topics in the field of software engineering, especially in the area of modeling and diagram analysis.
  • You have the ability to work independently in new areas, as well as a structured way of working and analytical thinking skills.
  • You have good written and spoken english skills for research and documentation of the work.
What we offer you
Work environment built on trust
  • Open corporate culture based on partnership
  • Flat hierarchies
  • Great creative leeway

Exciting and multifaceted projects

  • Highly complex tasks
  • Diverse high-tech industries
  • Discerning and renowned customers

Inspiring culture of expertise

  • Interdisciplinary teams on equal terms
  • Exchange of knowledge between individual experts
  • Decisions are taken on a team basis

Personal development

  • Work with the latest technologies
  • Internal tech talks, external training courses and conferences
  • Mentoring program with regular feedback

Family friendliness

  • Different models for reconciling family and professional life
  • Flexibility in working hours
  • Participation in childcare costs

Diversity 

  • We welcome diversity
  • We are committed to life story, generational and gender equality
We are looking forward to your application!
Many thanks for your interest in working at our company. Please fill out the following application form. If you have any difficulties uploading your data, please contact us via email at work@xitaso.com.
Uploading document. Please wait.
Please add all mandatory information with a * to send your application.