Agile Software Assessment

Asa-logo.pngAgile Software Assessment is a project funded by the Swiss National Science Foundation (SNSF project # 200020-144126/1). Funding has been requested for a continuation project, Agile Software Analysis.

Funding: 650,000.— SFr.
Period: Jan 1, 2013 - Dec. 30, 2015
Collaborating teams: REVEAL research group, University of Lugano, Switzerland
RMod group, INRIA, Lille, France
Loose Research Group, Politehnica University of Timisoara, Romania
Keywords Software evolution; Reflection; Meta-modeling; Context-oriented programming; Clone detection; Software architecture; Reverse engineering

Summary

A significant portion of software development effort is devoted to reading and understanding code. Unfortunately, mainstream integrated development environments (IDEs) focus on low-level programming tasks rather than on supporting program comprehension and decision-making during software evolution. Analysis tools, on the other hand, usually have a narrow scope of applicability.

This project aims to enable software developers to quickly and effectively analyze complex software systems with the help of tools to rapidly construct, query and manipulate software models. We refer to this goal as agile software assessment, since developers are under constant pressure to assess the state of the system at hand in a timely fashion in order to carry out development and evolution tasks. The expected long term benefits of this research are improved developer efficiency, enhanced tool support during software development, and better quality software.

To this end, we propose four related research tracks: (i) Meta-Tooling will enable developers to rapidly develop custom tools to support decision-making, (ii) Agile Modeling will simplify the task of constructing and refining software models from source code and other data sources, (iii) Large-Scale Software Analysis will allow developers to process and exploit the large amount of additional data related to a project, and (iv) Architectural Monitoring will help developers track the evolution of architectural constraints in complex software.

For more information, please consult the Research Plan of the project [pdf].