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
(2015), A Unified Approach to Architecture Conformance Checking, in Proceedings of the 12th Working IEEE/IFIP Conference on Software Architecture (WICSA).
A Unified Approach to Automatic Testing of Architectural Constraints
(2015), A Unified Approach to Automatic Testing of Architectural Constraints, in Software Engineering (ICSE), 2015 IEEE/ACM 37th IEEE International Conference, 2, 2.
Bounded seas
(2015), Bounded seas, in Computer Languages, Systems & Structures, 44, Part A, 114-140.
Explora: A Visualisation Tool for Metric Analysis of Software Corpora
(2015), Explora: A Visualisation Tool for Metric Analysis of Software Corpora, in VISSOFT'15: Proceedings of the 3rd IEEE Working Conference on Software Visualization.
Explora: Infrastructure for Scaling Up Software Visualisation to Corpora
(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, 1354.
GTInspector: A Moldable Domain-Aware Object Inspector
(2015), GTInspector: A Moldable Domain-Aware Object Inspector, in Proceedings of the Companion Publication of the 2015 ACM SIGPLAN Conference on Systems, Programming,.
Null Check Analysis
(2015), Null Check Analysis, in Extended Abstracts of the Eighth Seminar on Advanced Techniques and Tools for Software Evolution (SA.
On the Evaluation of a DSL for Architectural Consistency Checking
(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.
On Understanding How Developers Use the Spotter Search Tool
(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.
Parsing for agile modeling
(2015), Parsing for agile modeling, in Science of Computer Programming, 97, Part 1(0), 150-156.
Pervasive Software Visualizations
(2015), Pervasive Software Visualizations, in Proceedings of 3rd IEEE Working Conference on Software Visualization.
Polymorphism in the Spotlight: Studying its Prevalence in {Java} and {Smalltalk}
(2015), Polymorphism in the Spotlight: Studying its Prevalence in {Java} and {Smalltalk}, in Proceedings of the 2015 IEEE 23rd International Conference on Program Comprehension.
Practical domain-specific debuggers using the Moldable Debugger framework
(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
(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
(2015), Spotter: towards a unified search interface in IDEs, in Proceedings of the Companion Publication of the 2015 ACM SIGPLAN Conference on Systems, Programming,.
The Moldable Inspector
(2015), The Moldable Inspector, in Proceedings of the 2015 ACM International Symposium on New Ideas, New Paradigms, and Reflections on .
Towards moldable development tools
(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
(2014), A Quantitative Analysis of Developer Information Needs in Software Ecosystems, in Proceedings of the 2nd Workshop on Ecosystem Architectures (WEA'14).
Adaptable Visualisation Based On User Needs
(2014), Adaptable Visualisation Based On User Needs, in Pre-Proceedings of the 7th International Seminar Series on Advanced Techniques \& Tools for Software.
Bounded Seas: Island Parsing Without Shipwrecks
(2014), Bounded Seas: Island Parsing Without Shipwrecks, in Software Language Engineering, Lecture Notes in Computer Science 8706, 8706, 8706.
Delegation Proxies: The Power of Propagation
(2014), Delegation Proxies: The Power of Propagation, in Proceedings of the 13th International Conference on Modularity, MODULARITY '14.
Dicto: A Unified {DSL} for Testing Architectural Rules
(2014), Dicto: A Unified {DSL} for Testing Architectural Rules, in Proceedings of the 2014 European Conference on Software Architecture Workshops, ECSAW '14.
Evolutionary and Collaborative Software Architecture Recovery with Softwarenaut
(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?
(2014), How Do Software Architects Specify and Validate Quality Requirements?, in European Conference on Software Architecture (ECSA), 8627, 8627.
Mining frequent bug-fix code changes
(2014), Mining frequent bug-fix code changes, in Software Maintenance, Reengineering and Reverse Engineering (CSMR-WCRE).
Mining the Ecosystem to Improve Type Inference For Dynamically Typed Languages
(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 .
Overthrowing the Tyranny of Alphabetical Ordering in Documentation Systems
(2014), Overthrowing the Tyranny of Alphabetical Ordering in Documentation Systems, in 2014 IEEE International Conference on Software Maintenance and Evolution (ERA Track).
Pangea: A Workbench for Statically Analyzing Multi-Language Software Corpora
(2014), Pangea: A Workbench for Statically Analyzing Multi-Language Software Corpora, in Source Code Analysis and Manipulation (SCAM), 2014 IEEE 14th International Working Conference.
Predicting dependencies using domain-based coupling
(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
(2014), The Moldable Debugger: A Framework for Developing Domain-Specific Debuggers, in Software Language Engineering, Lecture Notes in Computer Science 8706, 8706, 8706.
The Moldable Inspector: a framework for domain-specific object inspection
(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
(2014), Top-Down Parsing with Parsing Contexts, in Proceedings of International Workshop on Smalltalk Technologies (IWST 2014).
Towards cheap, accurate polymorphism detection
(2014), Towards cheap, accurate polymorphism detection, in SATToSE'14: Pre-Proceedings of the 7th International Seminar Series on Advanced Techniques & Tools .
Towards Faster Method Search Through Static Ecosystem Analysis
(2014), Towards Faster Method Search Through Static Ecosystem Analysis, in Proceedings of the 2014 European Conference on Software Architecture Workshops, ECSAW '14 .
Analyzing PL/1 Legacy Ecosystems: An Experience Report
(2013), Analyzing PL/1 Legacy Ecosystems: An Experience Report, in Proceedings of the 20th Working Conference on Reverse Engineering, WCRE 2013.
Categorizing Developer Information Needs in Software Ecosystems
(2013), Categorizing Developer Information Needs in Software Ecosystems, in Proceedings of the 1st Workshop on Ecosystem Architectures.
Geo-Locating the Knowledge Transfer in StackOverflow
(2013), Geo-Locating the Knowledge Transfer in StackOverflow, in Proceedings of the 5th International Workshop on Social Software Engineering.
Incremental Dynamic Updates with First-class Contexts
(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
(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.
Towards a Moldable Debugger
(2013), Towards a Moldable Debugger, in Proceedings of the 7th Workshop on Dynamic Languages and Applications, 2013.
A Case Study on Type Hints in Method Argument Names in Pharo Smalltalk Projects
, 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.
Evaluating an Architecture Conformance Monitoring Solution
, Evaluating an Architecture Conformance Monitoring Solution, in Proceedings of the 7th IEEE International Workshop on Empirical Software Engineering in Practice (IW.
Marea: a Semi-automatic Decision Support System for Breaking Dependency Cycles
, 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.
Tracking Null Checks in Open-Source Java Systems
, Tracking Null Checks in Open-Source Java Systems, in Proceedings of the 23rd IEEE International Conference on Software Analysis, Evolution, and Reenginee.

Zusammenarbeit

Gruppe / Person Land
Formen 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
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.
-