Ähnliche Anforderungen suchen – KI trifft objectiF RPM

by | 09.06.2023 | objectiF RM anwenden, objectiF RPM anwenden

Ich habe vor einer Weile auf der REConf 2023 den aktuellen Stand unserer neuen KI-Features in objectiF RPM in einem Vortrag präsentiert. In diesem Beitrag nehme ich das Thema noch einmal auf und beschreibe Ihnen anhand eines Beispiels wie KI Sie aktuell bei der Arbeit in objectiF RPM unterstützen kann.

Wir haben unterschiedliche Use Cases betrachtet, die wir in unserer Software umsetzen möchten oder schon umgesetzt haben:

  • Bestimmung von Ähnlichkeiten zwischen Anforderungen
  • Prüfung der Verständlichkeit von Anforderungen
  • Question / Answering
  • Summarization
  • Generieren von Testfällen für Anforderungen

Warum kann die Bestimmung von Ähnlichkeiten zwischen Anforderungen Ihnen im Requirements Engineering behilflich sein?

Nehmen wir an, Sie beschreiben durch RE ein großes System mit vielen Anforderungen auf unterschiedlichen Ebenen. Nehmen wir weiter an, dass Sie nicht allein für das Anforderungsmanagement verantwortlich sind, sondern mehrere Kollegen und Kolleginnen am Prozess beteiligt sind. Wie schnell kann hier die Übersicht verloren gehen. So wird oft sehr spät festgestellt, dass sich Duplikate von Anforderungen eingeschlichen haben oder dass ähnliche Anfoderungen vorliegen, die besser gemeinsam betrachtet werden sollten. Wenn also schon bei der Erfassung von Anforderungen Ähnlichkeiten erkannt werden, können aufwändige Umplanungen und mehrfache Aufwandsschätzungen vermieden werden. Insgesamt werden Sie schneller in ihrem Anforderungsprozess und Ihre Planung wird robuster.

Ähnlichkeiten zwischen Anforderungen – Ein Beispiel

In unserem Beispielprojekt führen wir das Requirements Engineering für einen intelligenten Kühlschrank mit Unterstützung von objectiF RPM durch. Der gesamte Prozess verläuft über die Erfassung von Stakeholder mit Ihren Anforderungen, die Erarbeitung von Systemanforderungen, sowie der damit verbundenen Systemarchitektur. In weiteren Schritten wird die Architektur in Module und Komponenten verfeinert und auch auf diesen Ebenen erfassen wir die Anforderungen an die Architekturelemente. Natürlich werden auf allen Anforderungsebenen Testfälle aus den Anforderungen abgeleitet. Zudem nutzen wir geeignete Diagrammtypen der UML und SysML, wie z.B. Blockdiagramme und Anforderungsdiagramme.

Das Kühlschrankfach mit Zugangsbeschränkung

Wir erfassen und verfeinern nun Modulanforderungen des Moduls Kühlschrankfach mit Zugangsbeschränkung.
Aus dem Produktmanagement wurde uns mitgeteilt, dass der Kühlschrank eine besondere Kindersicherung für Kinder erhalten soll, die älter als 10 Jahre sind. Da es schon die generelle Forderung nach einer Kindersicherung gibt und für diese auch schon eine Anforderung, können wir eine neue Anforderung von dieser ableiten.

Anforderungen ableiten im Blockdiagramm

Das können wir sehr einfach über das Kontextmenü der vorhandenen Basisanforderung erledigen. Hier sehen wir die Anforderung in einem Blockdiagramm, das die Architektur unseres Systems beschreibt und eine Auswahl von Modulanforderungen darstellt.

Beim Anlegen der Anforderung wird diese durch die KI-Funktionalität mit vorhandenen Anforderungen verglichen und es wird ein Prozentwert für die Übereinstimmung mit anderen Anforderungen bestimmt. Diese werden in absteigender Reihenfolge im Assessment-Fenster ausgegeben.

Vergleich mit vorhandenen Anforderungen durch KI

Damit dieser Vergleich stattfinden kann, haben wir objectiF RPM um optionale Komponenten erweitert, die auf einem gesonderten KI-Server installiert werden können. So können für alle neuen oder geänderten Anforderungen sogenannte Embedding-Vektoren durch das USE-Model der Fa. Google ermittelt werden. Diese Vektoren berechnen sich aus der Anforderungsbeschreibung dem Titel und werden in einer Milvus-Datenbank abgelegt. Durch eine einfache Abstandsberechnung zwischen dem Vektor der neuen Anforderung und den Vektoren aus der Datenbank bestimmt objectiF RPM den Grad an Übereinstimmung. All das passiert im Hintergrund ohne Ihr Zutun.

Nach der Eingabe unserer neuen Anforderung Fach mit Kindersicherung (Alter > 10 Jahre) stellen wir fest, dass es schon eine Anforderung Fach mit Kindersicherung (Alter < 10 Jahre) gibt. Da beide Anforderungen einen ähnlichen Aspekt beschreiben, wollen wir eine Abhängigkeit zwischen beiden anlegen. Das können wir einfach über das Bearbeiten-Menü in der Assessment Ausgabe erledigen.

Vergleich mit vorhandenen Anforderungen und Abhängigkeiten durch KI

Nun aktualisieren wir noch das Blockdiagramm um die beiden Anforderungen und ihre Beziehungen darzustellen.

Dazu öffnen wir über das Kontextmenü der Anforderung Fach mit Kindersicherung den Menüeintrag Kontext übernehmen und wählen die beiden Anforderungen aus.

Kontext abgeleiteter Anforderung übernehmen

Damit sind beide Anforderungen im Diagramm mit ihren Ableitebeziehungen zu sehen. Wollen wir nun auch noch die Abhängigkeitsbeziehung zwischen den beiden Anforderungen darstellen, so rufen wir über das Kontextmenü an einer beliebigen Stelle im Diagramm den Eintrag Beziehungen darstellen auf.
Und so sieht das Ergebnis aus:

Blockdiagramm mit abgeleiteten Anforderungen

Vorrausetzung zur Nutzung von KI in objectiF RPM

Wir haben die Architektur von objectiF RPM um ein paar Komponenten erweitert. Um die KI-Funktionen nutzen zu können benötigen Sie einen Linux-basierten Server, auf dem eine Docker-Infrastruktur installiert ist.

In dieser Docker-Umgebung werden mehrere Container ausgeführt. Zum einen Container der Milvus-Datenbank, die die Embedding-Vektoren speichert. Außerdem muss der Container des microTOOL AI Quality Assessment ausgeführt werden, den Sie mit unserem Server-Installationspaket geliefert bekommen.

objectiF RPM und Milvusdatenbank

Eine detaillierte Installationsanleitung können wir Ihnen zusenden. Geben Sie uns dazu gern Bescheid an [email protected].

Fazit

Durch die automatische Ermittlung von ähnlichen Anforderungen in Ihrem System, werden Sie in Zukunft Mehraufwände durch übersehene Beziehungen und Anforderungsduplikate vermeiden können. Das macht Sie schneller und erhöht die Qualität Ihres Requirements Engineering Prozesses. Dieser Funktion werden wir noch weitere KI-unterstützte Funktionen folgen lassen, ein paar davon habe ich Eingangs erwähnt. Aktuell arbeiten wir an der KI-gestützten Verständlichkeitsprüfung. Damit finden Sie dann sehr einfach unverständliche Anforderungen und können die Qualität der Anforderungen verbessern.

Sie sehen: Das Thema KI ist und bleibt spannend …