5 maschinelle Lerntools zur Erleichterung der Softwareentwicklung

Wir präsentieren Ihnen fünf KI-gesteuerte Entwicklungstools, die die automatische Vervollständigung von Code, die Erkennung von Code-Schwachstellen und sogar die hochmoderne Codegenerierung ermöglichen. [...]

Diese fünf Tools nutzen maschinelles Lernen, um Ihre Arbeit bei der Softwareentwicklung um einiges zu erleichtern (c) Pixabay.com

Die meisten Diskussionen von Entwicklern, die maschinelles Lernen nutzen, drehen sich um die Erstellung von KI-basierten Anwendungen und die Tools, mit denen diese erstellt werden: TensorFlow, PyTorch, Scikit-Lernen, und so weiter.

Doch es gibt noch einen anderen Weg, wie sich maschinelles Lernen auf die Softwareentwicklung auswirkt: durch neue Entwicklungstools, die maschinelle Lerntechniken einsetzen, um die Programmierung einfacher und produktiver zu gestalten. Hier sind fünf Projekte – drei kommerzielle, zwei experimentelle -, die das maschinelle Lernen für Entwickler im Entwicklungsprozess zum Erfolg führen.

Kite

Kite ist ein Code-Vervollständigungstool, das für die meisten großen Code-Editoren erhältlich ist und maschinelle Lerntechniken verwendet, um Ihren Code während der Eingabe zu vervollständigen.

Das von Kite verwendete maschinelle Lernmodell wird erzeugt, indem öffentlich zugänglicher Code auf GitHub verwendet wird, daraus ein abstrakter Syntaxbaum abgeleitet und dieser als Grundlage für das Modell verwendet wird. Laut Kite ermöglicht dies, dass Auto-Vorschläge und Auto-Vervollständigungen aus dem Kontext und der Absicht des Codes hergeleitet werden können, statt nur aus dem Text.

Im Moment ist Kite nur für Python-Entwickler verfügbar, aber der Go-Support ist in Arbeit. Und obwohl Kite ursprünglich nur für Windows- und MacOS-Benutzer verfügbar war, unterstützt es nun auch Linux.

Im Jahr 2017 verursachte Kite einige Bedenken in der Open-Source-Community über den Umgang mit Benutzerdaten und die Modifikation des autocomplete-python-Pakets für Atom. Das Unternehmen hat beide Bedenken ausgeräumt und behauptet, dass Kite den Benutzercode nicht mehr an seine Cloud-Server zurückschickt, sondern die gesamte Verarbeitung lokal durchführt, und ausdrücklich erklärt, dass das autocomplete-python-Paket ein von Kite finanziertes Paket ist.

Codota

Codota ist äußerlich ähnlich wie Kite. Es verwendet ein maschinelles Lernmodell, das auf Java- und Kotlin-Code geschult ist, um Autovervollständigungen für diese Sprachen während der Eingabe zu empfehlen. Wie Kite verwendet Codota den Syntaxbaum des Codes, nicht nur seinen Text, als Daten für die Erstellung seiner Modelle.

Im Gegensatz zum überarbeiteten Kite nutzt Codota einen Cloud-basierten Dienst, um Vorhersagen zu generieren und zu bedienen. Gemäß der Dokumentation des Dienstes sendet Codota jedoch keinen Benutzercode an den Codota-Server, sondern nur „minimale Kontextinformationen aus der aktuell bearbeiteten Datei, die es uns ermöglichen, Vorhersagen auf der Grundlage des aktuellen lokalen Umfangs zu treffen“.

Codota ist für Windows, MacOS und Linux verfügbar, aber die Editorunterstützung ist auf IntelliJ, Android Studio und Eclipse (Luna oder höher) beschränkt. Dies ist angesichts des Fokus auf Java und Kotlin-Sprachen sinnvoll. Das Unternehmen verweist darauf, dass die Unterstützung für andere Sprachen in Arbeit ist, wobei JavaScript zu den ersten in der Reihe gehört. (Beta-Unterstützung für WebStorm, die JetBrains JavaScript IDE, ist ab sofort verfügbar.)

Die kostenlose Version von Codota verwendet Prognosen, die aus frei verfügbarem Code erstellt wurden. Die Enterprise-Version (Preise auf Anfrage) kann private Code-Repositories für Schulungen nutzen.

DeepCode

DeepCode führt automatisierte, KI-gesteuerte Überprüfungen von Code durch, um potenzielle Sicherheitsschwachstellen zu erkennen. Wie Kite und Codota analysiert DeepCode den in öffentlichen Repositorien verfügbaren Code, um nach gemeinsamen Mustern zu suchen. DeepCode verwendet diese Muster jedoch, um Sicherheitslücken zu identifizieren.

DeepCode konzentriert sich auf die „Taint- Analyse“, die bestimmt, wie Benutzereingaben behandelt werden, bevor sie einen sicherheitskritischen Punkt erreichen. Daten, die direkt von der Benutzereingabe zu einer SQL-Abfrage gehen, ohne zu überprüfen, ob sie sicher weitergegeben werden können, gelten als „verdorben“ (tainted) und lösen einen Alarm aus.

Die kritischen Fehler, die DeepCode zu kennzeichnen vorgibt, beinhalten gängige Sicherheitsprobleme, die in Webanwendungen auftreten: Cross-Site-Scripting, SQL-Injektionsangriffe, Remotecodeausführung und Pfad-Traversal-Angriffe.

Die Analysen von DeepCode sind für GitHub- und Bitbucket-Repositories verfügbar und kosten nichts für Open-Source-Projekte oder private Projekte mit bis zu 30 Entwicklern. DeepCode ist auch für Scans von lokalem Code Hosting (z.B. GitHub Enterprise) verfügbar, wobei die Preise nur auf Anfrage erhältlich sind.

Microsoft PROSE

PROSE ist ein Akronym für „PROgram Synthesis using Examples“. Dieses Microsoft-Projekt ist ein SDK zur Generierung von Code aus Sample-Input und -Output. Somit ist PROSE ein Toolkit, das verwendet werden könnte, um prädiktive Codierungswerkzeuge zu entwickeln, und nicht ein prädiktives Codierungswerkzeug selbst.

Mögliche PROSE-Anwendungen sind beispielsweise die Transformation von Texten (eine davon ist die Microsoft-eigene „Flash Fill“-Funktion in Excel), die Extraktion von Daten aus Textdateien (z.B. Log Analytics) und die prädiktive Dateibearbeitung (z.B. die Aufteilung von Text in Spalten durch Beispiele).

Pix2code

Die Prämisse von Pix2code klingt wie Science Fiction. Füttern Sie ihm den Screenshot einer grafischen Benutzeroberfläche, und Pix2code generiert Code, der diese GUI darstellt. Pix2code verwendet ein Deep-Learning-Modell, das auf einem mit der Software gelieferten Datensatz trainiert wurde, um GUIs in den Formaten Android XML, iOS Storyboard und HTML/CSS zu erstellen. Pix2code ist ein experimentelles Forschungsprojekt („shared for educational“).

*Serdar Yegulalp ist Senior-Autor bei InfoWorld und beschäftigt sich mit maschinellem Lernen, Containerisierung, Devops, dem Python-Ökosystem und regelmäßigen Reviews.


Mehr Artikel

Frauen berichten vielfach, dass ihre Schmerzen manchmal jahrelang nicht ernst genommen oder belächelt wurden. Künftig sollen Schmerzen gendersensibel in 3D visualisiert werden (c) mit KI generiert/DALL-E
News

Schmerzforschung und Gendermedizin

Im Projekt „Embodied Perceptions“ unter Leitung des AIT Center for Technology Experience wird das Thema Schmerzen ganzheitlich und gendersensibel betrachtet: Das Projektteam forscht zu Möglichkeiten, subjektives Schmerzempfinden über 3D-Avatare zu visualisieren. […]

News

KI ist das neue Lernfach für uns alle

Die Mystifizierung künstlicher Intelligenz treibt mitunter seltsame Blüten. Dabei ist sie weder der Motor einer schönen neuen Welt, noch eine apokalyptische Gefahr. Sie ist schlicht und einfach eine neue, wenn auch höchst anspruchsvolle Technologie, mit der wir alle lernen müssen, sinnvoll umzugehen. Und dafür sind wir selbst verantwortlich. […]

Case-Study

Erfolgreiche Migration auf SAP S/4HANA

Energieschub für die IT-Infrastruktur von Burgenland Energie: Der Energieversorger hat zusammen mit Tietoevry Austria die erste Phase des Umstieges auf SAP S/4HANA abgeschlossen. Das burgenländische Green-Tech-Unternehmen profitiert nun von optimierten Finanz-, Logistik- und HR-Prozessen und schafft damit die Basis für die zukünftige Entflechtung von Energiebereitstellung und Netzbetrieb. […]

FH-Hon.Prof. Ing. Dipl.-Ing. (FH) Dipl.-Ing. Dr. techn. Michael Georg Grasser, MBA MPA CMC, Leiter FA IT-Infrastruktur der Steiermärkischen Krankenanstaltengesellschaft m.b.H. (KAGes). (c) © FH CAMPUS 02
Interview

Krankenanstalten im Jahr 2030

Um sich schon heute auf die Herausforderungen in fünf Jahren vorbereiten zu können, hat die Steiermärkische Krankenanstaltengesellschaft (KAGes) die Strategie 2030 formuliert. transform! sprach mit Michael Georg Grasser, Leiter der Fachabteilung IT-Infrastruktur. […]

Be the first to comment

Leave a Reply

Your email address will not be published.


*