Qualitätssteigerung auf Code-Ebene

Icon zum Thema Deeplearning

Deep Learning

Identifizierung der Merkmale von gutem und schlechtem Code durch Deep-Learning-Verfahren

Icon zum Thema Künstliche Intelligenz

Effizient

Effiziente Live-Prüfung der Codequalität durch Nutzung eines umfangreichen und komprimierten Wissens aus vorhandenen Softwareprojekten

Icon zum Thema Codequalität

Codequalität

Codequalität anhand des umfangreichen Wissens aus einer Vielzahl von Softwareprojekten und Expertise erfahrener Softwareentwickler bewerten

{Motivation}

Softwarequalität ist der Erfolgsfaktor

1

Problem: Qualitätsdefizite

Qualitätsdefizite, die aus Zeit- und Kostengründen im Rahmen von immer kürzerer Entwicklungszyklen entstehen, führen zu Folgekosten sowie abnehmender Produktivität und Innovationsfähigkeit. 69 % aller Softwareprojekte scheitern oder können nur mit signifikanten Mehrkosten abgeschlossen werden.

2

Schwäche: Qualitätsmodelle

Um Qualitätsdefizite möglichst frühzeitig zu erkennen, werden Qualitätsmodelle eingesetzt. Eine fundamentale Schwäche von Qualitätsmodellen ist jedoch, dass diese auf vordefinierten statischen Metriken struktureller Softwareeigenschaften beruhen, welche meist willkürlich ausgewählter Metriken verwenden.

3

Nachteil: Hohe Kosten

Ein weiteres Problem sind die hohen Kosten für die Datenerfassung, -pflege und -analyse. Außerdem ist nicht garantiert, dass die im Kontext tatsächlich relevanten Qualitätsbeziehungen erfasst werden. Zudem erfordert der Aufbau geeigneter Qualitätsmodelle umfangreiches Wissen im Bereich Softwaremessung, welches in vielen kleinen und mittleren Unternehmen (KMU) oft nicht oder nur eingeschränkt vorhanden ist.

{Das Ziel}

Entwicklung eines neuartigen KI-basierten Tools

Automatisierte projektdatenbasierte Modellierung und Bewertung von Softwarequalität für KMU

Icon zum Thema Codequalität

Codequalität

Im Vergleich zu bestehenden Ansätzen wird eine deutlich präzisere, situativere und genauere Beurteilung der Codequalität angestrebt.

Icon zum Thema Open Source

Open Source

Es wird eine große Menge von Open-Source-Softwareprojekten, für die es neben Code auch Qualitätsindikatoren gibt, integriert.

Icon zum Thema Deep Learning

Deep Learning

Mittels Deep-Learning-Verfahren wird aus dem Wissen zur Codestruktur die Eigenschaften „guten“ und „schlechten“ Codes erlernt.

Icon zum Thema Transfer Learning

Transfer Learning

Mittels Transfer Learning wird das Modell automatisiert an einen spezifischen Projektkontext angepasst. Ziel sind nachvollziehbare Ergebnisse.

{Die Anwendung}

DeepQuali nutzt eine direkte Analyse

DeepQuali nutzt die explorative, direkte Analyse von Softwareprojektdaten aus externen und lokalen Repositories. Dort liegen reichhaltige Informationen zur Qualität während der Entwicklung und des Betriebs vor.

Unter anderem Softwarecode, Change-Historien, Commit Messages, Wartungsaufwand, Issue-Beschreibungen, Testergebnisse und Ausfallberichte. Dazu identifizieren wir strukturelle Muster, die allen Instanzen eines bestimmten Softwareartefakts gemeinsam sind; bestimmen und quantifizieren wir Beziehungen zwischen strukturellen Mustern und der Quality-in-Use von Software; und lokalisieren wir die Bereiche der Software mit den größten Qualitätsdefiziten.

Kreisdiagramm
Balkendiagramm

Verbessert Produktqualität sowie Prozesseffizienz

Die DeepQuali-Methodik und die Werkzeuge können von Unternehmen in ihre Tool-Suites integriert oder von Anbietern von Qualitätsmanagementsoftware übernommen und in deren Lösungen integriert werden. Der Einsatz der DeepQuali-Lösung verbessert sowohl die Produktqualität als auch die Prozesseffizienz (Zeit und Kosten) grundlegend.

Quality Hotspots und deren Ursachen werden identifiziert und Maßnahmen werden gezielt abgeleitet. Kosten für die Erstellung und Wartung von Software lassen sich unter Berücksichtigung der gemessenen technischen Schuld präziser und prognostizierter steuern. Der eingesparte Aufwand wird für die Entwicklung kundenrelevanter Funktionen frei. Dank Transfer Learning kann der Ansatz auch bei KMU ohne KI-Expertise verwendet werden.

{Partner}

QAWARE Logo

Ansprechpartner:
Dr. Marcus Ciolkowski
https://www.qaware.de

Frauenhofer Logo

Ansprechpartner:
Dr. Andreas Jedlitschka
https://iese.fraunhofer.de/

let's dev Logo

Ansprechpartner:
Dr. Anton Strahilov
https://letsdev.de