Grenzen in der Software-Analytik erweitern | 2020

Inhaltsverzeichnis:

Anonim

Die Softwareanalyse ist ein relativ neues Forschungsgebiet, das sich zu Beginn des 21. Jahrhunderts förmlicher entwickelt hat. Dabei wird die große Datenmenge analysiert, die während des Software-Lebenszyklus erzeugt wurde, einschließlich Quellcode, Fehlerberichte und Benutzer-Feedback. Durch die Analyse dieser Daten können Softwareentwickler die Softwareentwicklung und -leistung verbessern.

David Lo, Assistenzprofessor an der Singapore Management University School für Informationssysteme (SIS), hat in den letzten sechs Jahren zahlreiche Forschungsarbeiten zu diesem Thema veröffentlicht.

"Meine Arbeit ist motiviert durch die hohen Kosten für die Entwicklung und Wartung von Softwaresystemen und die Wichtigkeit, Systeme von hoher Qualität zu liefern", sagt Professor Lo. "Es sind neue Innovationen erforderlich, um Tools und Techniken zu entwickeln, mit denen die Kosten für Softwareentwicklung und -wartung niedrig und die Qualität der Softwaresysteme hoch gehalten werden können."

Der Anstieg an Software-Daten, der in letzter Zeit online veröffentlicht wurde, bietet hervorragende Möglichkeiten, maßgeschneiderte Lösungen zu erstellen, mit denen Software-Engineering-Aufgaben automatisiert werden können, erklärt er.

"Die Möglichkeit, neue Lösungen für konkrete Probleme zu finden, reizt mich am meisten", sagt er.

Obwohl Software-Engineering schon seit einiger Zeit Teil von Informationssystemen ist, gibt es immer noch eine Vielzahl von Problemen, die gelöst werden müssen.Das Gebiet hat sich in den letzten Jahren mit der Einführung neuer Plattformen, Prozesse und Programmiertools zur Erstellung von Softwareprodukten rasant entwickelt. Dies schafft nicht nur neue Herausforderungen, sondern auch neue Möglichkeiten, erklärt Professor Lo.

"Die Fähigkeit, diese Herausforderungen zu verstehen und mit ihnen umzugehen und Lösungen zu entwickeln, um sie nicht allein, sondern mit Studenten und Kollegen aus Wissenschaft und Industrie auf der ganzen Welt anzusprechen, macht meinen Job interessant und befriedigend", sagt er.

Im Jahr 2014 veröffentlichte Professor Lo eine Studie, die er zusammen mit zwei anderen SMU-Kollegen durchführte, in der sie einen Algorithmus entwickelten, um eine Suchmaschine für Quellcode zu erstellen (Befehle, die zu einem Softwareprogramm zusammengefügt werden). Zuvor wurden viele Code-Suchtechniken vorgeschlagen, die jedoch nur vom Durchsuchen von Text abhingen. Quellcode ist jedoch kein reiner Text, sondern enthält voneinander abhängige Elemente, damit das Softwareprogramm einen Ausführungsprozess ausführt. Professor Lo und seine Kollegen entwickelten eine Technik namens AutoQuery, mit der Programmierer mithilfe von Abhängigkeitsabfragen aus kleinen Codefragmenten nach Codes suchen konnten. Die Technik berücksichtigte die Codestruktur, anstatt nur den Text zu betrachten.

Bessere Möglichkeiten zum Debuggen

Software-Programme enthalten häufig Defekte oder Fehler, die erkannt und repariert werden müssen. Dieses manuelle "Debuggen" erfordert normalerweise viel wertvolle Zeit und Ressourcen. Um Entwicklern zu helfen, effizienter zu debuggen, wurden automatisierte Debugging-Lösungen vorgeschlagen. Eine Lösungsfamilie geht die Informationen durch, die in Fehlerberichten verfügbar sind. Ein anderer geht die Informationen durch, die durch Ausführen einer Reihe von Testfällen gesammelt wurden. Professor Lo stellt fest, dass es bisher ein "Missing Link" gab, das verhindert, dass diese Arbeitsthemen miteinander kombiniert werden.

Professor Lo hat zusammen mit Kollegen von der SMU einen automatisierten Debugging-Ansatz namens Adaptive Multimodal Bug Localization (AML) entwickelt. AML sammelt Fehlerbehebungshinweise sowohl aus Fehlerberichten als auch aus Testfällen und führt eine statistische Analyse durch, um Programmelemente zu lokalisieren, die wahrscheinlich Fehler enthalten. Darüber hinaus passt sich AML an verschiedene Arten von Fehlern an.

"AML kann den manuellen Prozess des Findens eines Fehlers in einem großen Programm reduzieren", erklärt er. "Während die meisten früheren Studien nur die Anwendbarkeit ähnlicher Lösungen für kleine Programme und künstliche Fehler belegen, kann unser Ansatz den Debugging-Prozess für viele echte Fehler automatisieren, die große Programme betreffen", erklärt er.

Professor Lo und seine Kollegen präsentierten die AML auf der 10. gemeinsamen Tagung der European Software Engineering Conference und dem ACM SIGSOFT Symposium über die Grundlagen des Software Engineerings in Italien. Derzeit planen sie, mit mehreren Industriepartnern Kontakt aufzunehmen, um AML einen Schritt näher an die Integration als Softwareentwicklungstool heranzuführen.

Multidisziplinärer Ansatz

Professor Lo ist begeistert von der multidisziplinären Arbeit mit seinen SMU-Kollegen. "Neben Kollegen, die sich auf ähnliche Forschungsbereiche spezialisiert haben, arbeite ich mit vielen anderen Kollegen aus den fünf Forschungsbereichen der School of Information Systems zusammen", sagt er. "Ich habe von ihrem vielfältigen Fachwissen profitiert, um Herausforderungen zu lösen, die ich sonst nicht allein hätte lösen können, und um Möglichkeiten zu erkennen, die mir sonst nicht aufgefallen wären. Diese Kooperationen haben zu vielen Arbeiten geführt, die auf verschiedenen internationalen Konferenzen und Konferenzen veröffentlicht wurden Zeitschriften. "

Professor Lo hofft auch auf eine zukünftige Zusammenarbeit mit Kollegen anderer Schulen der SMU. "Ich bin fest davon überzeugt, dass ein multidisziplinärer Ansatz zu ganzheitlichen Forschungsarbeiten führen wird, die die Grenzen der Forschung in neue und interessante Richtungen erweitern", sagt er.

Beispielsweise sucht er derzeit nach Wegen, um kooperative Arbeitsabläufe in Software-Organisationen und in Open-Source-Teams zu optimieren. Ein Projekt dieser Art würde Fachwissen aus verschiedenen Bereichen wie Organisationsverhalten, Psychologie und Gruppenverhalten, empirische Analyse, angewandte Statistik und Spieltheorie erfordern. Professor Lo plant auch, die Problemlösungs- und mentalen Aufgabenprozesse zu untersuchen, die Softwareentwickler durchlaufen. Dieses Projekt würde von der Expertise seiner Kollegen von der School of Social Sciences in Psychology profitieren, sagt er.

Neben seinen Forschungsprojekten unterrichtet Professor Lo an der SMU eine Vielzahl von Bachelor- und Master-Studiengängen im Bereich Software Engineering. Er betreut Undergraduate-Projekte, bei denen Teams von Studenten Softwarelösungen für echte Kunden entwickeln müssen, und arbeitet eng mit Doktoranden der SMU zusammen, um seine Forschungsideen umzusetzen.

"Die SMU bietet Fakultätsmitgliedern umfangreiche Unterstützung für Forschungsarbeiten, beispielsweise Reisestipendien für Vorträge auf Konferenzen, Gastprofessoren und Hardwareunterstützung, um Forschungsaktivitäten zu erleichtern." Die Forschung hat die Einreichung von Forschungsstipendien in hohem Maße unterstützt, und die SMU-Bibliothek hat mich in hohem Maße dabei unterstützt, meine Arbeit sichtbarer zu machen. "

Eines der Forschungsziele von Professor Lo ist die Entwicklung einer Software-Analyselösung im Internet-Maßstab. Mit der internetbasierten Softwareanalyse können riesige Mengen passiver Softwaredaten in unzähligen diversifizierten Online-Repositorys analysiert werden, um manuelle, mühsame und fehleranfällige Softwareentwicklungsaufgaben in automatisierte Aktivitäten umzuwandeln, die effizient und in hoher Qualität ausgeführt werden können. Dies geschieht, indem die Weisheit der Masse geerntet wird, die durch jahrelange Entwicklungsbemühungen von Tausenden von Entwicklern gesammelt wurde, die in diesen passiven, verteilten und diversifizierten Datenquellen verborgen sind. "Ich bin der festen Überzeugung, dass dies wegweisend sein wird, da bisher keine Software-Analysetechnik auf ganzheitliche Weise einen Sinn für Software-Engineering-Daten in dieser Größenordnung und Vielfalt hat", so Professor Lo.