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
Disziplinen 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
Analyzing PL/1 Legacy Ecosystems: An Experience Report
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.
Predicting dependencies using domain-based coupling
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.
How Do Software Architects Specify and Validate Quality Requirements?
Caracciolo Andrea, Lungu Mircea, Nierstrasz Oscar (2014), How Do Software Architects Specify and Validate Quality Requirements?, in European Conference on Software Architecture (ECSA), 8627, Springer Berlin Heidelberg, 8627.
Dicto: A Unified {DSL} for Testing Architectural Rules
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, ECSAW '14, ACM.
Pangea: A Workbench for Statically Analyzing Multi-Language Software Corpora
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, IEEE.
A Unified Approach to Automatic Testing of Architectural Constraints
Caracciolo Andrea (2015), A Unified Approach to Automatic Testing of Architectural Constraints, in Software Engineering (ICSE), 2015 IEEE/ACM 37th IEEE International Conference, 2, ACM Press, 2.
A Unified Approach to Architecture Conformance Checking
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), ACM Press.
On the Evaluation of a DSL for Architectural Consistency Checking
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 (S.
Towards a Moldable Debugger
Chiçs Andrei, Nierstrasz Oscar, Gîrba Tudor (2013), Towards a Moldable Debugger, in Proceedings of the 7th Workshop on Dynamic Languages and Applications, 2013.
The Moldable Inspector: a framework for domain-specific object inspection
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).
The Moldable Debugger: A Framework for Developing Domain-Specific Debuggers
Chiçs Andrei, Gîrba Tudor, Nierstrasz Oscar (2014), The Moldable Debugger: A Framework for Developing Domain-Specific Debuggers, in Software Language Engineering, Lecture Notes in Computer Science 8706, 8706, Springer International Publishing, 8706.
Practical domain-specific debuggers using the Moldable Debugger framework
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.
Categorizing Developer Information Needs in Software Ecosystems
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.
A Quantitative Analysis of Developer Information Needs in Software Ecosystems
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).
Top-Down Parsing with Parsing Contexts
Kurš Jan, Lungu Mircea, Nierstrasz Oscar (2014), Top-Down Parsing with Parsing Contexts, in Proceedings of International Workshop on Smalltalk Technologies (IWST 2014).
Bounded Seas: Island Parsing Without Shipwrecks
Kurš Jan, Lungu Mircea, Nierstrasz Oscar (2014), Bounded Seas: Island Parsing Without Shipwrecks, in Software Language Engineering, Lecture Notes in Computer Science 8706, 8706, Springer International Publishing, 8706.
Bounded seas
Kurš Jan, Lungu Mircea, Iyadurai Rathesan, Nierstrasz Oscar (2015), Bounded seas, in Computer Languages, Systems & Structures, 44, Part A, 114-140.
On Planning an Evaluation of the Impact of Identifier Names on the Readability and Maintainability of Programs
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.
Evolutionary and Collaborative Software Architecture Recovery with Softwarenaut
Lungu Mircea, Lanza Michele, Nierstrasz Oscar (2014), Evolutionary and Collaborative Software Architecture Recovery with Softwarenaut, in Science of Computer Programming, 79(0), 204-223.
Adaptable Visualisation Based On User Needs
Merino Leonel (2014), Adaptable Visualisation Based On User Needs, in Pre-Proceedings of the 7th International Seminar Series on Advanced Techniques \& Tools for Software.
Explora: Infrastructure for Scaling Up Software Visualisation to Corpora
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.
Explora: A Visualisation Tool for Metric Analysis of Software Corpora
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, IEEE.
Towards cheap, accurate polymorphism detection
Milojković Nevena (2014), Towards cheap, accurate polymorphism detection, in SATToSE'14: Pre-Proceedings of the 7th International Seminar Series on Advanced Techniques & Tools .
Polymorphism in the Spotlight: Studying its Prevalence in {Java} and {Smalltalk}
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, IEEE Press.
Parsing for agile modeling
Nierstrasz Oscar, Kurš Jan (2015), Parsing for agile modeling, in Science of Computer Programming, 97, Part 1(0), 150-156.
Mining frequent bug-fix code changes
Osman Haidar, Lungu Mircea, Nierstrasz Oscar (2014), Mining frequent bug-fix code changes, in Software Maintenance, Reengineering and Reverse Engineering (CSMR-WCRE).
Null Check Analysis
Osman Haidar (2015), Null Check Analysis, in Extended Abstracts of the Eighth Seminar on Advanced Techniques and Tools for Software Evolution (SA.
Towards Faster Method Search Through Static Ecosystem Analysis
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, ECSAW '14 , ACM.
Overthrowing the Tyranny of Alphabetical Ordering in Documentation Systems
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).
Mining the Ecosystem to Improve Type Inference For Dynamically Typed Languages
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 , ACM.
Propagation of Behavioral Variations with Delegation Proxies
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.
Incremental Dynamic Updates with First-class Contexts
Wernli Erwann, Lungu Mircea, Nierstrasz Oscar (2013), Incremental Dynamic Updates with First-class Contexts, in Journal of Object Technology, 12(3), 1-27.
Delegation Proxies: The Power of Propagation
Wernli Erwann, Nierstrasz Oscar, Teruel Camille, Ducasse Stephane (2014), Delegation Proxies: The Power of Propagation, in Proceedings of the 13th International Conference on Modularity, MODULARITY '14, ACM.
Geo-Locating the Knowledge Transfer in StackOverflow
Schenk Dennis, Lungu Mircea (2013), Geo-Locating the Knowledge Transfer in StackOverflow, in Proceedings of the 5th International Workshop on Social Software Engineering.
The Moldable Inspector
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 , ACM.
GTInspector: A Moldable Domain-Aware Object Inspector
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,, ACM.
Towards moldable development tools
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.
Pervasive Software Visualizations
Gîrba Tudor, Chiçs Andrei (2015), Pervasive Software Visualizations, in Proceedings of 3rd IEEE Working Conference on Software Visualization, IEEE.
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 (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, IEEE.
Spotter: towards a unified search interface in IDEs
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,, ACM.
Marea: a Semi-automatic Decision Support System for Breaking Dependency Cycles
Caracciolo Andrea, Aga Bledar, Lungu Mircea, Nierstrasz Oscar (accepted), Marea: a Semi-automatic Decision Support System for Breaking Dependency Cycles, in Proceedings of the 23rd IEEE International Conference on Software Analysis, Evolution, and Reenginee.
Evaluating an Architecture Conformance Monitoring Solution
Caracciolo Andrea, Lungu Mircea, Truffer Oskar, Levitin Kirill, Nierstrasz Oscar (accepted), Evaluating an Architecture Conformance Monitoring Solution, in Proceedings of the 7th IEEE International Workshop on Empirical Software Engineering in Practice (IW.
Tracking Null Checks in Open-Source Java Systems
Osman Haidar, Leuenberger Manuel, Lungu Mircea, Nierstrasz Oscar (accepted), Tracking Null Checks in Open-Source Java Systems, in Proceedings of the 23rd IEEE International Conference on Software Analysis, Evolution, and Reenginee.
A Case Study on Type Hints in Method Argument Names in Pharo Smalltalk Projects
Spasojević Boris, Lungu Mircea, Nierstrasz Oscar (accepted), A Case Study on Type Hints in Method Argument Names in Pharo Smalltalk Projects, in Proceedings of the 23rd IEEE International Conference on Software Analysis, Evolution, and Reenginee.

Zusammenarbeit

Gruppe / Person Land
Felder der Zusammenarbeit
Prof. Dr. Radu Marinescu, Politehnica University of Timisoara Rumänien (Europa)
- vertiefter/weiterführender Austausch von Ansätzen, Methoden oder Resultaten
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

Auszeichnungen

Titel Jahr
SPLASH 2015 Distinguished Demo Award for GTInspector: A Moldable Domain-Aware Object Inspector 2015
European Smalltalk User Group 2015 Technology Innovation Award (1st prize) for GT Spotter 2015
Software Language Engineering (SLE) 2014 Best Student Paper Award for The Moldable Debugger: A Framework for Developing Domain-Specific Debuggers 2014
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

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.