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

News

Public Key Infrastructure: Best Practices für einen erfolgreichen Zertifikats-Widerruf

Um die Sicherheit ihrer Public Key Infrastructure (PKI) aufrecht zu erhalten, müssen PKI-Teams, sobald bei einer Zertifizierungsstelle eine Sicherheitslücke entdeckt worden ist, sämtliche betroffenen Zertifikate widerrufen. Ein wichtiger Vorgang, der zwar nicht regelmäßig, aber doch so häufig auftritt, dass es sich lohnt, PKI-Teams einige Best Practices für einen effektiven und effizienten Zertifikatswiderruf an die Hand zu geben. […]

News

UBIT Security-Talk: Cyberkriminalität wächst unaufhaltsam

Jedes Unternehmen, das IT-Systeme nutzt, ist potenziell gefährdet Opfer von Cyberkriminalität zu werden, denn die Bedrohung und die Anzahl der Hackerangriffe in Österreich nimmt stetig zu. Die Experts Group IT-Security der Wirtschaftskammer Salzburg lädt am 11. November 2024 zum „UBIT Security-Talk Cyber Defense“ ein, um Unternehmen in Salzburg zu unterstützen, sich besser gegen diese Bedrohungen zu wappnen. […]

Be the first to comment

Leave a Reply

Your email address will not be published.


*