= #strong[Exposé zur Masterarbeit ]

#strong[Reverse Requirements Engineering bei bestehenden Softwareprodukten unterstützt durch KI – dargestellt am Beispiel der c-entron GmbH]

== #strong[1. Ausgangssituation und Unternehmenskontext]

Die c-entron GmbH ist ein mittelständisches Softwareunternehmen, das eine über viele Jahre gewachsene Windows-basierte ERP-Software für IT-Systemhäuser entwickelt und vertreibt. Die bestehende Lösung bietet viele komplexe Funktionen, basiert jedoch auf einer über Jahre gewachsenen Codebasis, deren funktionale und nicht-funktionale Anforderungen nie systematisch dokumentiert wurden.

Vor dem Hintergrund einer expansiven Vertriebspolitik ist eine Überarbeitung der Software notwendig, um eine Skalierbarkeit in der Entwicklung und Applikation zu gewährleisten. Hierzu ist die Migration von einer nativen Windows-Applikation zu einer modernen, webbasierten Plattform geplant. Diese Migration erfordert eine vollständige Neuentwicklung, die idealerweise auf einem strukturierten und vollständigen Anforderungskatalog basiert.

== #strong[2. Problemstellung]

Da für die bestehende Softwarelösung keine strukturierte und vollständige Dokumentation der Anforderungen existiert, fehlt eine belastbare Grundlage für die Neuentwicklung.

Die zentrale Herausforderung besteht daher darin, die Anforderungen der bestehenden Lösung effizient und systematisch zu rekonstruieren – ein Prozess, der als #emph[Reverse Requirements Engineering] bezeichnet wird. Um diesen Prozess möglichst effizient zu gestalten, sollen funktionale Requirements durch eine KI aus dem bestehenden code extrahiert und strukturiert beschrieben werden. Nicht funktionale Requirements sollen über Interviews mit Stakeholdern mit den Ergebnissen aus der KI Analyse abgeglichen werden.

#strong[3. Zielsetzung der Arbeit]

Ziel dieser Arbeit ist es, ein KI-gestütztes Verfahren zu entwickeln, zu evaluieren und pilotartig zu implementieren, das es erlaubt, mit Hilfe eines LLM-Agenten aus bestehendem Softwarecode vollständige und strukturierte Requirements für die geplante Webanwendung zu extrahieren. Dies schließt funktionale sowie nicht-funktionale Anforderungen ein.

Die Arbeit soll zudem ein konzeptionelles Prozessmodell aufzeigen, wie Unternehmen systematisch den Übergang von Altsoftware zu modernen Softwarearchitekturen – gestützt durch KI – gestalten können.

== #strong[4. Forschungsfragen]

- #strong[Grundlagen:]
  - Was sind Large Language Models (LLMs) und wie funktionieren sie?
  - Welche Anwendungsbereiche existieren für LLMs im Software Engineering?
- #strong[State of the Art:]
  - Welche Verfahren des Reverse Requirements Engineerings existieren aktuell?
  - Welche Best Practices existieren im klassischen Requirements Engineering?
  - Wie werden LLMs derzeit im Bereich Requirements Engineering eingesetzt?
- #strong[Anwendung:]
  - Wie kann der Einsatz von LLMs konkret helfen, Requirements aus bestehender Software zu extrahieren?
  - Welche Herausforderungen und Limitationen ergeben sich aus dem Einsatz von LLMs in diesem Kontext?
- #strong[Evaluation:]
  - Wie bewerten Stakeholder die Qualität der gewonnenen Anforderungen?
  - Welche nicht-funktionalen Anforderungen (Sicherheit, Performanz, Usability etc.) müssen zusätzlich berücksichtigt werden?

== #strong[5. Methodisches Vorgehen]

- #strong[Literaturrecherche:] Systematische Analyse wissenschaftlicher und praxisnaher Literatur zu LLMs und Requirements Engineering.
- #strong[Technologische Evaluation:] Untersuchung aktueller LLMs auf ihre Eignung für das Requirements Engineering.
- #strong[Interviews mit Stakeholdern:] Qualitative Erhebung nicht-funktionaler Anforderungen und Erwartungen an das zukünftige System.
- #strong[Pilotimplementierung:] Entwicklung eines LLM-basierten Prototyps (Agent) zur automatisierten Analyse und Extraktion von Requirements.
- #strong[Validierung:] Vergleich der extrahierten Anforderungen mit Stakeholder-Erwartungen sowie qualitativer Review durch Expert:innen der c-entron GmbH.