DiCoSA - Distributed Collaborative Software Analysis

The goal of the DiCoSA research 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 unambigously 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 metamodel 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 objective is to devise collaborative analysis services, the possibility of choreography and their presentation in a web portal to enable collaborative analysis.