Research Project


Handling Inconsistencies in Distributed Software Engineering Documents

Funded by EPSRC


1. Project Description

The size and complexity of current systems require collaboration and co-ordination of physically distributed teams of people during systems development. However, each person or group of people has their own perspectives and understanding on the system, resulting in multiple perspectives of a system. These multiple perspectives are defined based on the people skills, responsibilities, knowledge and expertise, producing multiple distributed documents related to system development. The described setting, the heterogeneity of products being developed, and the multiplicity of stakeholders and development participants may generate inconsistencies and conflicts in the distributed documents. These conflicts can be originated by (a) the different viewpoints that users and designers have about information during different phases of system development, (b) the different types of construct that exist in specifications, and (c) the fact that different specifications can result in different systems.

During different stages of systems development the multiple distributed documents that are produced need to be compatible. Inconsistency management is a multifaceted and complex activity that is fundamental to the success of software development. It  is composed of six sub-activities:  detection of overlaps, detection of inconsistencies, diagnosis of inconsistencies, handling of inconsistencies, tracking of inconsistencies, and specification and application of a management policy for inconsistencies. The inconsistency handling activity is concerned with: (a) the identification of  actions for dealing with inconsistencies; (b) the evaluation of cost and benefits that would arise from the application of the actions; (c) the evaluation of  risks that would arise from not resolving the inconsistencies; (d) the selection of  actions to be executed; and (e) the identification of  the correct moment and order in which the actions should be applied.
 

2. Aims and Objectives

The overall aim of the project is to allow inconsistency handling of distributed software engineering documents, in particular documents related to UML models. This aim breaks down into the following objectives:

Objective 1: To analyse various types of inconsistencies that may exist in documents related to UML models of distributed software development.

Objective 2: To classify these various inconsistencies.

Objective 3: To determine the actions that should be taken to remove inconsistencies based on the various types of inconsistencies.

Objective 4: To determine a formalism to express the actions.

Objective 5: To evaluate the cost/benefit and risk of applying and not applying the actions;

Objective 6: To decide when to perform the actions to remove inconsistencies and regulate the order in which the actions should be performed.

Objective 7: To deliver a prototype for removing inconsistencies of distributed UML model documents and evaluate the prototype in at least one case study.

Objective 8: To evaluate the extension of the approach to be used in different domains.

Our approach will be built on existing Internet technologies such as eXtensible Markup Language (XML) and related technologies (e.g. XSLT, XPath, XMI). The reasons for using XML and related technologies are as follows. First, XML has become a standard for exchanging and representing data on the Web. Second, XML can be used as a canonical way to represent UML models and, therefore, facilitating comparison and inconsistency management among these documents.   In addition, XML provides a simple syntax for data and is designed to bring structured information on the Web. It allows identification, exchange, processing and integration of distributed data.

3. Industrial Support

The research results of the project will be evaluated using case study material from active projects provided by
Philips Research Laboratories.

4. Principal Investigator

Dr. Andrea Zisman