Projekt

Zurück zur Übersicht

Agile Software Analysis

Gesuchsteller/in Nierstrasz Oscar
Nummer 162352
Förderungsinstrument Projektförderung (Abt. I-III)
Forschungseinrichtung Institut für Informatik Universität Bern
Hochschule Universität Bern - BE
Disziplinen Informatik
Beginn/Ende 01.01.2016 - 31.12.2018
Bewilligter Betrag 708'852.00
Alle Daten anzeigen

Keywords (4)

Clone detection, Software evolution, Meta-modeling, Software architecture

Lay Summary (Deutsch)

Lead
Software-Entwickler verbringen viel ihrer Zeit nicht mit dem Programmieren neuer Codes sondern mit dem Analysieren bestehender Quellcodes. Aktuelle Integrierte Entwicklungsumgebungen bieten weniger an als Textverarbeitungssysteme für Programme, welche nur eine begrenzte Unterstützung für die Entwickler zur Abfrage und Analyse von Softwaresystemen anbieten. In der Fortsetzung unseres laufenden SNF-Projektes (http://scg.unibe.ch/asa) suchen wir nach neuen Wegen, um den Entwicklern zu ermöglichen, effiziente Antworten über detaillierte Fragen der Softwaresysteme in der Entwicklung zu geben.
Lay summary

In diesem Projekt erforschen wir neue Wege, um Software Entwicklern in der Beantwortung von Fragen in Bezug auf die entwickelte Software zu unterstützen. 
Das Projekt ist in vier parallele Forschungsteile für Doktoranden aufgebaut.

Im ersten Teil, „Bewegliche Gewinnung/Methoden von Modellen“ erforschen wir wie Software Quellcodes und die dazugehörenden Informationen in Software Modellen umgesetzt, einfach abgefragt, analysiert und effizient gestaltet werden können. Die grösste Herausforderung ist es, solche Modelle ohne grossen Entwicklungsaufwand in einer komplexen Parsing-Technologie schnell zu programmieren und zu verfeinern. 

Im zweiten Teil „Kontextabhängiger Werkzeugaufbau“ streben wir danach, Entwickler so zu unterstützen, dass neue Werkzeuge die gezielt für die Anwendungsdomäne funktionieren, möglichst einfach und schnell gebaut werden können.

Der dritte Teil „Ökosystem mining“ stellt Entwicklern nützliche Informationen über andere zusammenhängende Projekte wie z.B. wiederverwendbare Code-Beispiele, Möglichkeiten zur Software Erneuerung, verbreitete Softwarefehler und Fehlerbehebung zur Verfügung. 

Zum Schluss in Teil „Evolutionäre Überwachung“ verfolgen wir die Entwicklung des Softwaresystems  mit dem Ziel, die Entwickler über Schwachstellen und Verbesserungsmöglichkeiten laufend zu informieren. 

 

Direktlink auf Lay Summary Letzte Aktualisierung: 22.10.2015

Verantw. Gesuchsteller/in und weitere Gesuchstellende

Mitarbeitende

Verbundene Projekte

Nummer Titel Start Förderungsinstrument
144126 Agile Software Assessment 01.01.2013 Projektförderung (Abt. I-III)

Abstract

Software developers actually spend much of their time not producing new code, but analysing the existing code base. Integrated Development Environments (IDEs) however are mostly glorified text editors, and offer only limited support for developers to query and analyse software systems. In this continuation of our running SNF project (http://scg.unibe.ch/asa), we proceed to explore new ways to enable developers to efficiently answer detailed questions about the software system under development. Like its predecessor, this project is designed as four related PhD tracks (including two end-of-thesis subprojects). We avoid any critical dependencies between the tracks, while offering many possibilities for fruitful collaboration. - Agile Model Extraction. Here we address the question: "How can we rapidly extract models from unknown source code?" The key insight is that we do not need precise parsers to extract useful models from software. By using approximate parsing techniques combined with heuristics to automatically recognise common programming language features, we expect to be able to iteratively construct analysable models of complex software systems in a fraction of the time it would take to build a conventional model importer. - Context-Aware Tooling. In this track we tackle the question: "How do we close the abstraction gap between application domains and IDEs?" We plan to extend and generalise our previous work on highly configurable tools, such as debuggers, browsers and inspectors, that can easily be adapted to the context of a given project, and enhance both the source code and the IDE itself with domain-specific and project-specific information. In particular, we will focus on domain-specific ways to present and query software systems. - Ecosystem Mining. Here we ask: "How can we mine the ecosystem to automatically discover intelligence relevant to a given project?" When evolving source code, developers commonly make use of dedicated social media (i.e., question and answer fora) as well as general search engines to search for answers to technical questions. In addition to these sources, the software ecosystem of related software systems can be a rich source of useful information, if properly analysed. We plan to mine these ecosystems to locate common, reusable code examples, opportunities for refactoring, common bugs, and bug fixes. - Evolutionary Monitoring. Finally we address the question: "How can we steer the evolution of a software system by monitoring stakeholder needs, technical debt, and ecosystem trends?" By monitoring the activities of the stakeholders (i.e., both users and developers), we hope to infer their needs and the chronic problems of the system. By monitoring "technical debt" (i.e., pain points where effort should be invested to avoid the future escalation of these problems), we expect to be able to better prioritise future development activities. By monitoring technical trends from the ecosystem, we expect to be able to detect new opportunities and also better estimate the cost of future change. In addition to disseminating the results of the research through academic publications, we will continue to release software artifacts (tools, IDE extensions etc.) as part of the Pharo development environment and the Moose analysis platform used by a wide community of academic and industrial partners.