Project

Back to overview

DiCoSA - Distributed Collaborative Software Analysis

English title DiCoSA - Distributed Collaborative Software Analysis
Applicant Gall Harald
Number 118063
Funding scheme Project funding (Div. I-III)
Research institution Institut für Informatik Universität Zürich
Institution of higher education University of Zurich - ZH
Main discipline Information Technology
Start/End 01.10.2007 - 30.09.2010
Approved amount 318'523.00
Show all

Keywords (4)

software engineering; software evolution; software services; software visualization

Lay Summary (English)

Lead
Lay summary
The goal of this project is to devise a distributed and col laborative software analysis platform to allow for interoperability of software quality analysis tools across organisational boundaries. Such tools will adhere to specific meta-models and ontologies for their category of analysis and offer a common service interface that enables their composite use on the Internet. These distributed analysis services shall be widely accessible in an incrementally augmented software quality analysis portal, where organisations and research groups can share their tools.
Direct link to Lay Summary Last update: 21.02.2013

Responsible applicant and co-applicants

Employees

Associated projects

Number Title Start Funding scheme
132175 SOSYA - Systems of Systems Analysis 01.10.2010 Project funding (Div. I-III)
132175 SOSYA - Systems of Systems Analysis 01.10.2010 Project funding (Div. I-III)
107584 COSE - Controlling Software Evolution 01.07.2005 Project funding (Div. I-III)

Abstract

Studies estimate the costs for the maintenance and evolution of large, complex software systems from 50% to 95% of the total costs in the software life-cycle. To reduce these costs several techniques and tools have been developed: to discover components that need to be modified when a new feature is integrated, to detect architectural shortcomings, or for pro ject managers to estimate the maintenance costs and allow for better planning. With current technologies, a software engineer needs to run several analysis tools, each one specialized on a particular aspect, ranging from pure source code analysis to duplication analysis, co-change analysis, and visualization. Tool interoperability is hampered because of various reasons, such as their stand-alone nature, their platform dependence, their different input and output formats, and, lastly, the variety of systems to analyze. This reduces the acceptance of such tools by software companies and significantly limits their usage. The goal of this project is to devise a distributed and collaborative software analysis platform to allow for interoperability of software quality analysis tools across organisational boundaries. Such tools will adhere to specific meta-models and ontologies for their category of analysis and offer a common service interface that enables their composite use on the Internet. These distributed analysis services shall be widely accessible in an incrementally augmented software quality analysis portal, where organisations and research groups can share their tools. In particular, the DiCoSA project aims to answer the following research questions: 1. How can the functionalities of the plethora of tools be offered as widely accessible analysis services, by providing a distributed and uniform access for the different services in a consistent way? How can services be composed to provide higher-level services? How can the advanced services be described in terms of lower-level services? 2. How can the body of knowledge about a software system be shared among geographically distant groups and organisations to allow for collaborative software analysis? What are effective ways to present the different kinds of information? How can the information produced by the services be used to incrementally enrich a body of knowledge about a software system to allow for advanced analysis workflows? For DiCoSA we propose the following research tracks: Distributed Software Analysis Architecture - We and other researchers recently developed meta-models to represent the source code, the change history, and the quality attributes of software systems. They will be the basis of our platform. The models of software systems will be managed in a universally accessible repository, and the data representation for the interoperability will be harmonized and stored in an unambiguously interpretable form. Furthermore, the architecture will have to keep track of the various tools at disposition. Metamodels & Ontologies - All analysis tools feature their own explicit or implicit meta-model of the data they can analyze. The goal is to provide one meta-model for various domain meta-models and their model transformation rules, which can map any model onto the structure of the analysis architecture. Due to the volatility of such tools and their implementation, we will rely on a representation of the domain of such tools by means of ontologies. We will define an extensible ontology vocabulary that is used by the analysis tools to represent their results as machine-processable meta-models. Service Description & Composition - The nature of external tools makes them hardly predictable in terms of the services they offer and in the way they offer them. Moreover, there is no clear mechanism to specify what a tool needs as prerequisite information to be able to function. We plan to develop a service description language by which the services offered by a tool can not only be described, but also composed into higher-level services. Collaborative Service Views - The user of a specific analysis service is not interested in low-level details, but only in the benefits of the services themselves. The ob jective is to devise collaborative analysis services, the possibility of choreography and their presentation in a web portal to enable collaborative analysis.
-