Projekt

Zurück zur Übersicht

Agile Software Assessment

Gesuchsteller/in Nierstrasz Oscar
Nummer 144126
Förderungsinstrument Projektförderung (Abt. I-III)
Forschungseinrichtung Institut für Informatik Universität Bern
Hochschule Universität Bern - BE
Hauptdisziplin Informatik
Beginn/Ende 01.01.2013 - 31.12.2015
Bewilligter Betrag 650'000.00
Alle Daten anzeigen

Keywords (5)

Software evolution; Reflection; Software architecture; Meta-modeling; Reverse engineering

Lay Summary (Englisch)

Lead
A significant portion of software development effort is devoted to reading and understanding code. Unfortunately, mainstream integrated development environments 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.
Lay summary
Contents and goal of the project

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.

Scientific and social context

In this project we will work closely with actual developers to better understand current best practice in software analysis using available tools, and we will elicit analysis needs from a wide range of concrete projects.  In terms of concrete results, we expect to develop general and practical techniques to quickly construct analysis models and tools for given projects.  We also expect to provide some first steps towards the next generation of development environments.
Direktlink auf Lay Summary Letzte Aktualisierung: 01.11.2012

Verantw. Gesuchsteller/in und weitere Gesuchstellende

Mitarbeitende

Publikationen

Publikation
A Unified Approach to Architecture Conformance Checking
Caracciolo Andrea, Lungu Mircea, Nierstrasz Oscar, Caracciolo Andrea, Lungu Mircea, Nierstrasz Oscar (2015), A Unified Approach to Architecture Conformance Checking, in Proceedings of the 12th Working IEEE/IFIP Conference on Software Architecture (WICSA), 41-50, ACM Press, 41-50.
A Unified Approach to Automatic Testing of Architectural Constraints
Caracciolo Andrea, Caracciolo Andrea (2015), A Unified Approach to Automatic Testing of Architectural Constraints, in Software Engineering (ICSE), 2015 IEEE/ACM 37th IEEE International Conference on, 2, 871-874, 2, 871-874.
Bounded seas
Kurš Jan, Lungu Mircea, Iyadurai Rathesan, Nierstrasz Oscar, Kurš Jan, Lungu Mircea, Iyadurai Rathesan, Nierstrasz Oscar (2015), Bounded seas, in Computer Languages, Systems & Structures, 44, Part A, 114-140.
Explora: A Visualisation Tool for Metric Analysis of Software Corpora
Merino Leonel, Lungu Mircea, Nierstrasz Oscar, Merino Leonel, Lungu Mircea, Nierstrasz Oscar (2015), Explora: A Visualisation Tool for Metric Analysis of Software Corpora, in {VISSOFT}'15: Proceedings of the 3rd IEEE Working Conference on Software Visualization, 195-199, 195-199.
Explora: Infrastructure for Scaling Up Software Visualisation to Corpora
Merino Leonel, Lungu Mircea, Nierstrasz Oscar, Merino Leonel, Lungu Mircea, Nierstrasz Oscar (2015), Explora: Infrastructure for Scaling Up Software Visualisation to Corpora, in SATToSE'14: Post-Proceedings of the 7th International Seminar Series on Advanced Techniques & Tools , 1354, {CEUR} Workshop Proceedings (CEUR-WS.org), 1354.
GTInspector: A Moldable Domain-Aware Object Inspector
Chiçs Andrei, Gîrba Tudor, Nierstrasz Oscar, Syrel Aliaksei, Chiçs Andrei, Gîrba Tudor, Nierstrasz Oscar, Syrel Aliaksei (2015), GTInspector: A Moldable Domain-Aware Object Inspector, in Proceedings of the Companion Publication of the 2015 ACM SIGPLAN Conference on Systems, Programming,, 15-16, ACM, 15-16.
Null Check Analysis
Osman Haidar, Osman Haidar (2015), Null Check Analysis, in Extended Abstracts of the Eighth Seminar on Advanced Techniques and Tools for Software Evolution (SA, 86-88, 86-88.
On the Evaluation of a DSL for Architectural Consistency Checking
Caracciolo Andrea, Caracciolo Andrea (2015), On the Evaluation of a DSL for Architectural Consistency Checking, in Extended Abstracts of the Eighth Seminar on Advanced Techniques and Tools for Software Evolution (SA, 55-57, 55-57.
On Understanding How Developers Use the Spotter Search Tool
Kubelka Juraj, Bergel Alexandre, Chiçs Andrei, Gîrba Tudor, Reichhart Stefan, Robbes Romain, Syrel Aliaksei, Kubelka Juraj, Bergel Alexandre, Chiçs Andrei, Gîrba Tudor, Reichhart Stefan, Robbes Romain, Syrel Aliaksei (2015), On Understanding How Developers Use the Spotter Search Tool, in Proceedings of 3rd IEEE Working Conference on Software Visualization - New Ideas and Emerging Result, 145-149, IEEE, 145-149.
Parsing for agile modeling
Nierstrasz Oscar, Kurš Jan, Nierstrasz Oscar, Kurš Jan (2015), Parsing for agile modeling, in Science of Computer Programming, 97, Part 1(0), 150-156.
Pervasive Software Visualizations
Gîrba Tudor, Chiçs Andrei, Gîrba Tudor, Chiçs Andrei (2015), Pervasive Software Visualizations, in Proceedings of 3rd IEEE Working Conference on Software Visualization, 1-5, 1-5.
Polymorphism in the Spotlight: Studying its Prevalence in {Java} and {Smalltalk}
Milojković Nevena, Caracciolo Andrea, Lungu Mircea, Nierstrasz Oscar, Röthlisberger David, Robbes Romain, Milojković Nevena, Caracciolo Andrea, Lungu Mircea, Nierstrasz Oscar, Röthlisberger David, Robbes Romain (2015), Polymorphism in the Spotlight: Studying its Prevalence in {Java} and {Smalltalk}, in Proceedings of the 2015 IEEE 23rd International Conference on Program Comprehension, 186-195, IEEE Press, 186-195.
Practical domain-specific debuggers using the Moldable Debugger framework
Chiçs Andrei, Denker Marcus, Gîrba Tudor, Nierstrasz Oscar, Chiçs Andrei, Denker Marcus, Gîrba Tudor, Nierstrasz Oscar (2015), Practical domain-specific debuggers using the Moldable Debugger framework, in Computer Languages, Systems & Structures, 44, Part A, 89-113.
Propagation of Behavioral Variations with Delegation Proxies
Teruel Camille, Wernli Erwann, Ducasse Stéphane, Nierstrasz Oscar, Teruel Camille, Wernli Erwann, Ducasse Stéphane, Nierstrasz Oscar (2015), Propagation of Behavioral Variations with Delegation Proxies, in Transactions on Aspect-Oriented Software Development XII, 8989, 63-95.
Spotter: towards a unified search interface in IDEs
Syrel Aliaksei, Chiçs Andrei, Gîrba Tudor, Kubelka Juraj, Nierstrasz Oscar, Reichhart Stefan, Syrel Aliaksei, Chiçs Andrei, Gîrba Tudor, Kubelka Juraj, Nierstrasz Oscar, Reichhart Stefan (2015), Spotter: towards a unified search interface in IDEs, in Proceedings of the Companion Publication of the 2015 ACM SIGPLAN Conference on Systems, Programming,, 54-55, 54-55.
The Moldable Inspector
Chiçs Andrei, Gîrba Tudor, Nierstrasz Oscar, Syrel Aliaksei, Chiçs Andrei, Gîrba Tudor, Nierstrasz Oscar, Syrel Aliaksei (2015), The Moldable Inspector, in Proceedings of the 2015 ACM International Symposium on New Ideas, New Paradigms, and Reflections on , 44-60, ACM, 44-60.
Towards moldable development tools
Chiçs Andrei, Gîrba Tudor, Nierstrasz Oscar, Chiçs Andrei, Gîrba Tudor, Nierstrasz Oscar (2015), Towards moldable development tools, in Proceedings of the 6th Workshop on Evaluation and Usability of Programming Languages and Tools.
A Quantitative Analysis of Developer Information Needs in Software Ecosystems
Haenni Nicole, Lungu Mircea, Schwarz Niko, Nierstrasz Oscar, Haenni Nicole, Lungu Mircea, Schwarz Niko, Nierstrasz Oscar (2014), A Quantitative Analysis of Developer Information Needs in Software Ecosystems, in Proceedings of the 2nd Workshop on Ecosystem Architectures (WEA'14), 1-6, 1-6.
Adaptable Visualisation Based On User Needs
Merino Leonel, Merino Leonel (2014), Adaptable Visualisation Based On User Needs, in SATToSE'14: Pre-Proceedings of the 7th International Seminar Series on Advanced Techniques & Tools f, 71-74, 71-74.
Bounded Seas: Island Parsing Without Shipwrecks
Kurš Jan, Lungu Mircea, Nierstrasz Oscar, Kurš Jan, Lungu Mircea, Nierstrasz Oscar (2014), Bounded Seas: Island Parsing Without Shipwrecks, in Software Language Engineering, 8706, 62-81, Springer International Publishing, 8706, 62-81.
Delegation Proxies: The Power of Propagation
Wernli Erwann, Nierstrasz Oscar, Teruel Camille, Ducasse Stephane, Wernli Erwann, Nierstrasz Oscar, Teruel Camille, Ducasse Stephane (2014), Delegation Proxies: The Power of Propagation, in Proceedings of the 13th International Conference on Modularity, 1-12, ACM, 1-12.
Dicto: A Unified {DSL} for Testing Architectural Rules
Caracciolo Andrea, Lungu Mircea, Nierstrasz Oscar, Caracciolo Andrea, Lungu Mircea, Nierstrasz Oscar (2014), Dicto: A Unified {DSL} for Testing Architectural Rules, in Proceedings of the 2014 European Conference on Software Architecture Workshops.
Evolutionary and Collaborative Software Architecture Recovery with Softwarenaut
Lungu Mircea, Lanza Michele, Nierstrasz Oscar, Lungu Mircea, Lanza Michele, Nierstrasz Oscar (2014), Evolutionary and Collaborative Software Architecture Recovery with Softwarenaut, in Science of Computer Programming, 79(0), 204-223.
How Do Software Architects Specify and Validate Quality Requirements?
Caracciolo Andrea, Lungu Mircea, Nierstrasz Oscar, Caracciolo Andrea, Lungu Mircea, Nierstrasz Oscar (2014), How Do Software Architects Specify and Validate Quality Requirements?, in European Conference on Software Architecture (ECSA), 8627, 374-389, 8627, 374-389.
Mining frequent bug-fix code changes
Osman Haidar, Lungu Mircea, Nierstrasz Oscar, Osman Haidar, Lungu Mircea, Nierstrasz Oscar (2014), Mining frequent bug-fix code changes, in Software Maintenance, Reengineering and Reverse Engineering (CSMR-WCRE), 2014 Software Evolution Wee, 343-347, 343-347.
Mining the Ecosystem to Improve Type Inference For Dynamically Typed Languages
Spasojević Boris, Lungu Mircea, Nierstrasz Oscar, Spasojević Boris, Lungu Mircea, Nierstrasz Oscar (2014), Mining the Ecosystem to Improve Type Inference For Dynamically Typed Languages, in Proceedings of the 2014 ACM International Symposium on New Ideas, New Paradigms, and Reflections on , 133-142, 133-142.
Overthrowing the Tyranny of Alphabetical Ordering in Documentation Systems
Spasojević Boris, Lungu Mircea, Nierstrasz Oscar, Spasojević Boris, Lungu Mircea, Nierstrasz Oscar (2014), Overthrowing the Tyranny of Alphabetical Ordering in Documentation Systems, in 2014 IEEE International Conference on Software Maintenance and Evolution (ERA Track), 511-515, 511-515.
Pangea: A Workbench for Statically Analyzing Multi-Language Software Corpora
Caracciolo Andrea, Chiçs Andrei, Spasojević Boris, Lungu Mircea, Caracciolo Andrea, Chiçs Andrei, Spasojević Boris, Lungu Mircea (2014), Pangea: A Workbench for Statically Analyzing Multi-Language Software Corpora, in Source Code Analysis and Manipulation (SCAM), 2014 IEEE 14th International Working Conference on, 71-76, 71-76.
Predicting dependencies using domain-based coupling
Aryani Amir, Perin Fabrizio, Lungu Mircea, Mahmood Abdun Naser, Nierstrasz Oscar, Aryani Amir, Perin Fabrizio, Lungu Mircea, Mahmood Abdun Naser, Nierstrasz Oscar (2014), Predicting dependencies using domain-based coupling, in Journal of Software: Evolution and Process, 26(1), 50-76.
The Moldable Debugger: A Framework for Developing Domain-Specific Debuggers
Chiçs Andrei, Gîrba Tudor, Nierstrasz Oscar, Chiçs Andrei, Gîrba Tudor, Nierstrasz Oscar (2014), The Moldable Debugger: A Framework for Developing Domain-Specific Debuggers, in Software Language Engineering, 8706, 102-121, 8706, 102-121.
The Moldable Inspector: a framework for domain-specific object inspection
Chiçs Andrei, Gîrba Tudor, Nierstrasz Oscar, Chiçs Andrei, Gîrba Tudor, Nierstrasz Oscar (2014), The Moldable Inspector: a framework for domain-specific object inspection, in Proceedings of International Workshop on Smalltalk Technologies (IWST 2014).
Top-Down Parsing with Parsing Contexts
Kurš Jan, Lungu Mircea, Nierstrasz Oscar, Kurš Jan, Lungu Mircea, Nierstrasz Oscar (2014), Top-Down Parsing with Parsing Contexts, in Proceedings of International Workshop on Smalltalk Technologies (IWST 2014).
Towards cheap, accurate polymorphism detection
Milojković Nevena, Milojković Nevena (2014), Towards cheap, accurate polymorphism detection, in SATToSE'14: Pre-Proceedings of the 7th International Seminar Series on Advanced Techniques & Tools f, 54-55, 54-55.
Towards Faster Method Search Through Static Ecosystem Analysis
Spasojević Boris, Lungu Mircea, Nierstrasz Oscar, Spasojević Boris, Lungu Mircea, Nierstrasz Oscar (2014), Towards Faster Method Search Through Static Ecosystem Analysis, in Proceedings of the 2014 European Conference on Software Architecture Workshops, ACM.
Analyzing PL/1 Legacy Ecosystems: An Experience Report
Aeschlimann Erik, Lungu Mircea, Nierstrasz Oscar, Worms Carl, Aeschlimann Erik, Lungu Mircea, Nierstrasz Oscar, Worms Carl (2013), Analyzing PL/1 Legacy Ecosystems: An Experience Report, in Proceedings of the 20th Working Conference on Reverse Engineering, WCRE 2013, 441-448, 441-448.
Categorizing Developer Information Needs in Software Ecosystems
Haenni Nicole, Lungu Mircea, Schwarz Niko, Nierstrasz Oscar, Haenni Nicole, Lungu Mircea, Schwarz Niko, Nierstrasz Oscar (2013), Categorizing Developer Information Needs in Software Ecosystems, in Proceedings of the 1st Workshop on Ecosystem Architectures, 1-5, 1-5.
Geo-Locating the Knowledge Transfer in StackOverflow
Schenk Dennis, Lungu Mircea, Schenk Dennis, Lungu Mircea (2013), Geo-Locating the Knowledge Transfer in StackOverflow, in Proceedings of the 5th International Workshop on Social Software Engineering, 21-24, 21-24.
Incremental Dynamic Updates with First-class Contexts
Wernli Erwann, Lungu Mircea, Nierstrasz Oscar, Wernli Erwann, Lungu Mircea, Nierstrasz Oscar (2013), Incremental Dynamic Updates with First-class Contexts, in Journal of Object Technology, 12(3), 1-27.
On Planning an Evaluation of the Impact of Identifier Names on the Readability and Maintainability of Programs
Lungu Mircea, Kurš Jan, Lungu Mircea, Kurš Jan (2013), On Planning an Evaluation of the Impact of Identifier Names on the Readability and Maintainability of Programs, in {USER}'13: Proceedings of the 2nd Workshop on User evaluations for Software Engineering Researchers, 13-15, 13-15.
Towards a Moldable Debugger
Chiçs Andrei, Nierstrasz Oscar, Gîrba Tudor, Chiçs Andrei, Nierstrasz Oscar, Gîrba Tudor (2013), Towards a Moldable Debugger, in Proceedings of the 7th Workshop on Dynamic Languages and Applications.

Zusammenarbeit

Gruppe / Person Land
Formen der Zusammenarbeit
Prof. Dr. Michele Lanza, University of Lugano Schweiz (Europa)
- vertiefter/weiterführender Austausch von Ansätzen, Methoden oder Resultaten
- Forschungsinfrastrukturen
- Austausch von Mitarbeitern
Dr. Stéphane Ducasse, INRIA Lille Frankreich (Europa)
- vertiefter/weiterführender Austausch von Ansätzen, Methoden oder Resultaten
- Publikation
- Forschungsinfrastrukturen
- Austausch von Mitarbeitern
Prof. Dr. Radu Marinescu, Politehnica University of Timisoara Rumänien (Europa)
- vertiefter/weiterführender Austausch von Ansätzen, Methoden oder Resultaten

Auszeichnungen

Titel Jahr
European Smalltalk User Group 2015 Technology Innovation Award (1st prize) for GT Spotter 2015
SPLASH 2015 Distinguished Demo Award for GTInspector: A Moldable Domain-Aware Object Inspector 2015
European Smalltalk User Group 2014 Technology Innovation Award (1st prize) for GT Inspector 2014
IWST14 Best Paper Award (3rd prize) for The Moldable Inspector: A framework for domain-specific object inspection 2014
Software Language Engineering (SLE) 2014 Best Student Paper Award for The Moldable Debugger: A Framework for Developing Domain-Specific Debuggers 2014

Verbundene Projekte

Nummer Titel Start Förderungsinstrument
162352 Agile Software Analysis 01.01.2016 Projektförderung (Abt. I-III)
131827 Synchronizing Models and Code 01.10.2010 Projektförderung (Abt. I-III)

Abstract

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.- Meta-Tooling. Developers ask detailed and domain-specific questions about the software systems they are developing and maintaining. Specialized tools are needed to effectively answer these questions. Most IDEs do not provide suitable functionality to answer detailed questions about the design and implementation of software, as they focus on programming rather than software modeling. We plan to carry out empirical studies to better understand what questions developers ask about code, and what tools and techniques are most effective at supporting program understanding and software assessment. Meta tools are tools for building tools. We propose to construct an experimental meta-tooling environment to enable rapid composition of customized software assessment tools to support effective decision-making in the development process.- Agile Modeling. A key bottleneck to effective software assessment is the rapid construction of appropriate software models from program source code and the associated data sources. We propose to develop techniques to construct such models with the help of reusable and composable parsers targeting common programming language classes, user-guided parser refinement using island grammars, and semi-automated inference of structural features of program and data sources by analyzing lexical features such as indentation and textual content.- Large-Scale Software Analysis. Complex software systems generally exist within an even larger software ecosystem consisting of older versions of the systems, variants, and other client applications of the system or its parts. Being able to query and mine this large resource of information can be very helpful for developers to make informed decisions concerning the project at hand. We propose to develop an infrastructure to model and query large software data sets, including historical information and variants. We will seek to adapt and exploit big data analysis techniques to the particularities of large source code repositories and software ecosystems.- Architectural Monitoring. The architecture of a software system consists of the design constraints that guarantee non-functional properties, such as ease of evolution, good run-time performance, and rapid build times. Unfortunately architecture is rarely explicit in code, hence it must be recovered and tracked, sometimes at great cost in developer time. We propose to carry out empirical studies to identify and classify architectural constraints that arise in practice in software systems and let these studies influence the way in which we design mechanisms for the specification of constraints. We propose to develop techniques to monitor architectural evolution and integrate monitoring into the development process and environment; this promises to improve system stability, quality, and robustness.
-