Code Defect AI
Altran hat ein Klassifikationssystem für Machine Learning entwickelt, um vorhersagen zu können, welche Quellcodedateien wahrscheinlich einen Fehler enthalten. Die Entwickler erhalten Erklärungen und die Faktoren, die für die spezifische Vorhersage verwendet wurden.
Erfahren Sie mehr zu Code Defect AI
Die Notwendigkeit
Fehler sind in der Software-Entwicklung unvermeidlich. Je später sie im Entwicklungslebenszyklus identifiziert werden, desto höher sind die Reparaturkosten. Wenn ein Fehler nach der Auslieferung entdeckt wird, sind die Kunden davon betroffen und die Entwickler verbringen mehr Zeit damit, das Problem zu reproduzieren und dann eine Lösung zu finden. Dieser Prozess der Fehleranalyse und -behebung ist zeit- und kostenaufwendig.
Die Idee
Bestimmte Muster in der Codebasis von Softwareprojekten tragen ein höheres Fehlerrisiko. Diese Muster können durch einen Klassifizierungs-Lernalgorithmus bestimmt werden, um das Risiko von Fehlern in einer Datei vorherzusagen. Dadurch kann ein Fehler frühzeitig erkannt werden, was die Kosten für die Fehlerbehebung minimiert.
Die Lösung
Für GitHub-Projekte werden benutzerdefinierte Klassifizierungsmodelle erstellt, die auf Metadaten basieren, die mit historischen Commits verknüpft sind. Wenn die Code Defect AI neue Commits des Entwicklers entdeckt, kann es vorhersagen, ob Dateien im Commit möglicherweise Fehler enthalten. Die Logik hinter der Vorhersage wird mithilfe von Local Interpretable Model-Agnostic Explanations (LIME) dargestellt, sodass Entwickler der Vorhersage vertrauen und von ihr profitieren können.
Bugs vor der Bereitstellung abfangen
Software durchläuft viele Zyklen von Kodieren, Testen, Fehlersuche und wieder Kodieren, um Fehler zu beseitigen. Altran und Microsoft haben Machine Learning-Modelle auf Azure eingesetzt, um potenzielle Fehler bereits früh in der Entwicklung schon nach wenigen Zyklen zu identifizieren und so Zeit und Geld zu sparen.
Technische Details zum Code Defect AI-Experiment
Beaufsichtigtes Lernen bei Machine Learning ermöglicht es den Algorithmen, ein Ergebnis auf der Grundlage historischer Input-/Output-Paare, d. h. gekennzeichneter Daten, vorherzusagen. Beaufsichtigtes Lernen wird als „Klassifizierungsproblem“ bezeichnet, wenn die Ausgabevariable eine diskrete Variable ist. Bestimmte Muster in der Codebasis von Softwareprojekten tragen ein höheres Fehlerrisiko. Wenn z. B. ein neuer Entwickler Änderungen an einer Datei vornimmt, die historisch gesehen eine höhere Fehlerhäufigkeit aufweist, betrifft ein Commit Dateien in mehreren Verzeichnissen oder die Codeaktualisierung ist über mehrere Bereiche der Datei verteilt. Diese Muster können durch einen Klassifizierungs-Lernalgorithmus bestimmt werden, um das Risiko von Fehlern in einer Datei eines Commits vorherzusagen. Dadurch kann der Fehler früher entdeckt werden (entspricht einem „shift left“ im Lebenszyklus), was die Kosten der Fehlerbehebung reduziert.
Für drei GitHub-Projekte wurden drei benutzerdefinierte Klassifizierungsmodelle erstellt, die auf Metadaten basieren, die mit historischen Commits verknüpft sind. Die markierten Trainingsdaten für das Modell wurden anhand der aus dem GitHub-Repository gesammelten Metadaten erstellt. Wenn die Code Defect AI neue Entwickler-Commits entdeckt, bezieht sie die Metadaten für die einzelnen Commits und die Dateien im Commit. Dann wird vorausgesagt, ob eine der Dateien im Commit das Risiko eines Bugs unter Verwendung des projektspezifischen Modells beinhaltet. Traditionelle Machine Learning-Modelle sind Black Boxes und die Logik hinter der Modellvorhersage ist nicht verfügbar. Die Logik hinter unserer Vorhersage wird anhand von Local Interpretable Model-Agnostic Explanations (LIME) dargestellt, so dass die Benutzer ein größeres Vertrauen in die Vorhersage entwickeln.
Ressourcen:

Sketch2Code
Sketch2Code wandelt handgeschriebene Zeichnungen in HTML-Prototypen um. Designer tauschen ihre Ideen auf einem Whiteboard aus, und Änderungen werden dann sofort im Browser angezeigt, wodurch die Zusammenarbeit zwischen Designer, Entwickler und Kunde verbessert wird.

JFK Files
Die JFK Files-Lösung umfasst 34.000 komplexe Dateien, darunter Fotos, Handschriften, Regierungsdokumente und mehr. Sie extrahiert daraus verwertbare Informationen. All diese Daten sind strukturiert und bieten neue Möglichkeiten, die Informationen zu durchsuchen.

Spektacom
Die Spektacom-Lösung verwendet einen Minisensor an einem Cricketschläger, um Daten zur Qualität, Geschwindigkeit, Drehung und Schwung des Schlags zu sammeln. Diese Daten werden zur Analyse der Qualität des Schlags verwendet, um Profis, Spielern und Trainern zu helfen, ihr Spiel zu verbessern.

PoseTracker
Die PoseTracker-Lösung verwendet Deep Learning, um die Position und Orientierung von Objekten zu verfolgen. Bei dieser Lösung wird die Kamera Ihres Mobiltelefons verwendet, um den Winkel, die Ausrichtung und die Entfernung eines Gegenstandes in Echtzeit zu messen und zu verfolgen.