Concurrent Software Engineering: Coordinating Distributed ViewPoints for Managing Inconsistency Bashar Nuseibeh, Anthony Finkelstein, Jeff Kramer Department of Computing, Imperial College, 180 Queen's Gate, London, SW7 2BZ {ban, acwf, jk}@doc.ic.ac.uk Steve Easterbrook School of Cognitive & Computing Sciences, University of Sussex, Falmer, Brighton, BN1 9QH easterbrook@cogs.susx.ac.uk Extended Abstract Concurrent engineering involves the collaboration and coordination of a physically distributed team with variable opportunities for communication with one another. Traditional approaches to the problems of distributed working use a central database, or repository, to which all team members have communication access. Consistency is managed in this database through strict access control and version management, along with a common data model or schema. Such centralised approaches do not adequately support the reality of distributed engineering, where communication with a central database cannot always be guaranteed, and access control rapidly becomes a bottleneck. The alternative, a fully decentralised environment, is seen to be problematic because of the difficulties of maintaining consistency between a large collection of agents. However, these problems can be overcome by recognising that maintaining global consistency at all times is an unnecessary burden. Indeed, it is often desirable to tolerate and even encourage inconsistency, to maximise design freedom, and to prevent premature commitment to design decisions. The focus therefore shifts from maintaining consistency to the management of inconsistencies. Our interests centre on the problems of requirements definition for large and complex systems. Although we concentrate especially on specification of software, we are generally concerned with composite systems, where the software components interact with a variety of different technologies. The development of such systems necessarily involves many people - each with their own perspective on the system defined by their skills, responsibilities, knowledge and expertise. The intersections between these perspectives are far from obvious because the knowledge within each perspective is represented in different ways. With concurrent development, different perspectives may be at different stages of elaboration and may each be subject to different development strategies. The problem of how to guide and organise development in this setting - many actors, sundry representation schemes, diverse domain knowledge, differing development strategies - we term "the multiple perspective problem". In this paper, we describe our approach to the multiple perspectives problem, which uses a distributed environment to support the development and comparison of different perspectives. Our philosophy is to avoid the need for any central database, and to tolerate inconsistency. In particular we focus on the problems of how coordination can be achieved without restricting the freedom to develop multiple perspectives. The paper presents a scenario to illustrate some of the issues raised by this approach. We then consider each issue in turn and describe how our approach addresses it. Related References * A. Finkelstein, J. Kramer, B. Nuseibeh, L. Finkelstein and M. Goedicke, "Viewpoints: A Framework for Multiple Perspectives in System Development", International Journal of Software Engineering and Knowledge Engineering, Special issue on "Trends and Future Research Directions in SEE", World Scientific Publishing Company Ltd., 2(1): 31-57, March 1992. * B. Nuseibeh and A. Finkelstein, "ViewPoints: A Vehicle for Method and Tool Integration", (In) Proceedings of the 5th International Workshop on Computer-Aided Software Engineering (CASE '92), 50-60, Montreal, Canada, 6-10th July 1992, IEEE CS Press. * B. Nuseibeh, J. Kramer and A. Finkelstein, "Expressing the Relationships Between Multiple Views in Requirements Specification", (In) Proceedings of the 15th International Conference on Software Engineering (ICSE-15), 187-196, Baltimore, Maryland, USA, 17-21st May 1993, IEEE CS Press. * A. Finkelstein, S. Easterbrook, J. Kramer and B. Nuseibeh, "Multi-view Requirements Engineering", (In) Proceedings of DRA Colloquium on Analysis of Requirements for Software Intensive Systems, 18-26, Defence Research Agency, Farnborough, GU14 6TD, 19-20th May 1993. * A. Finkelstein, D. Gabbay, A. Hunter, J. Kramer and B. Nuseibeh, "Inconsistency Handling in Multi-Perspective Specifications", (In) Proceedings of 4th European Software Engineering Conference (ESEC '93), 84-99, 13-17th September 1993, Garmisch, Germany, LNCS 717, Springer-Verlag. * B. Nuseibeh, A. Finkelstein and J. Kramer, "Method Engineering for Multi-Perspective Software Development", (to appear in) Information and Software Technology Journal, Butterworth-Heinemann, 1994. * S. Easterbrook, A. Finkelstein, J. Kramer and B. Nuseibeh, "Coordinating Distributed ViewPoints: The Anatomy of a Consistency Check", Technical report, Department of Computing, Imperial College, London, April 1994.