Inconsistency Management in Software Engineering: Survey and Open Research Issues

The development of complex software systems is a complex and lengthy activity that involves the participation and collaboration of many stakeholders (e.g. customers, users, analysts, designers, and developers). This results in many partial models of the developing system. These models can be inconsistent with each other since they describe the system from different perspectives and reflects the views of the stakeholders involved in their construction. Inconsistent software models can have negative and positive effects in the software development life-cycle. On the negative side, inconsistencies can delay and increase the cost of system development; do not guarantee some properties of the system, such as safety and reliability; and generate difficulties on system maintenance. On the positive side, inconsistencies can facilitate identification of some aspects of the system that need further analysis, assist with the specification of alternatives for the development of the system, and support elicitation of information about it. The software engineering community has proposed many techniques and methods to support the management of inconsistencies in various software models. In this paper, we present a survey of these techniques and methods. The survey is organized according to a conceptual framework which views inconsistency management as a process composed of six activities. These activities are the 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. This paper also presents the main contributions of the research work that has been conducted to support each of the above activities and identifies the issues which are still open to further research.

[1]  J. A. McDermid,et al.  Managing analytical complexity of safety critical systems using viewpoints , 1996, ISAW '96.

[2]  Virginie Wiels,et al.  V&V through inconsistency tracking and analysis , 1998, Proceedings Ninth International Workshop on Software Specification and Design.

[3]  Wolfgang Emmerich,et al.  Managing Standards Compliance , 1999, IEEE Trans. Software Eng..

[4]  Geoff P. Mullery,et al.  Acquisition-Environment , 1984, Advanced Course: Distributed Systems.

[5]  Matthias Jarke,et al.  Managing Multiple Requirements Perspectives with Metamodels , 1996, IEEE Softw..

[6]  Barry W. Boehm,et al.  Software requirements negotiation: some lessons learned , 1998, Proceedings of the 20th International Conference on Software Engineering.

[7]  Thomas R. Gruber,et al.  Toward principles for the design of ontologies used for knowledge sharing? , 1995, Int. J. Hum. Comput. Stud..

[8]  Matthias Jarke,et al.  Computational Mechanisms for Distributed Requirements Engineering , 1995, SEKE.

[9]  Bill Curtis,et al.  A field study of the software design process for large systems , 1988, CACM.

[10]  Howard Bowman,et al.  Cross-viewpoint consistency in open distributed processing , 1996, Softw. Eng. J..

[11]  Joyce J. Elam,et al.  Inside a software design team: knowledge acquisition, sharing, and integration , 1993, CACM.

[12]  Ian Sommerville,et al.  The viewpoints FAQ , 1996 .

[13]  Martin Glinz,et al.  An Integrated Formal Model of Scenarios Based on Statecharts , 1995, ESEC.

[14]  Nancy G. Leveson,et al.  Completeness and Consistency in Hierarchical State-Based Requirements , 1996, IEEE Trans. Software Eng..

[15]  George Spanoudakis,et al.  Reconciling requirements: a method for managing interference, inconsistency and conflict , 1997, Ann. Softw. Eng..

[16]  Bashar Nuseibeh,et al.  Managing inconsistent specifications: reasoning, analysis, and action , 1998, TSEM.

[17]  David Orchard,et al.  XML Linking Language (XLink) , 2001 .

[18]  Anthony Hunter,et al.  Quasi-classical Logic: Non-trivializable classical reasoning from incosistent information , 1995, ECSQARU.

[19]  William N. Robinson,et al.  Supporting multi-perspective requirements engineering , 1994, Proceedings of IEEE International Conference on Requirements Engineering.

[20]  George Spanoudakis,et al.  A Semi-automatic Process of Identifying Overlaps and Inconsistencies between Requirements Specifications , 1998 .

[21]  Fairclough Mazza,et al.  Software Engineering Standards , 1995 .

[22]  Gerard J. Holzmann,et al.  The Model Checker SPIN , 1997, IEEE Trans. Software Eng..

[23]  Axel van Lamsweerde,et al.  Managing Conflicts in Goal-Driven Requirements Engineering , 1998, IEEE Trans. Software Eng..

[24]  Olly Gotel,et al.  An analysis of the requirements traceability problem , 1994, Proceedings of IEEE International Conference on Requirements Engineering.

[25]  James D. Palmer,et al.  An integrated environment for requirements engineering , 1992, IEEE Software.

[26]  toExcel Extensible Markup Language (Xml) 1.0 Specifications: From the W3c Recommendations , 2000 .

[27]  Joseph R. Shoenfield,et al.  Mathematical logic , 1967 .

[28]  Bashar Nuseibeh,et al.  Viewpoints: A Framework for Integrating Multiple Perspectives in System Development , 1992, Int. J. Softw. Eng. Knowl. Eng..

[29]  Carlo Ghezzi,et al.  A framework for formalizing inconsistencies and deviations in human-centered systems , 1996, TSEM.

[30]  Bashar Nuseibeh,et al.  Using Abduction to Evolve Inconsistent Requirements Specification , 1999, Australas. J. Inf. Syst..

[31]  Wolfgang Emmerich An architecture for viewpoint environments based on OMG/CORBA , 1996, ISAW '96.

[32]  Bashar Nuseibeh,et al.  Decentralised Process Enactment in a Multi-Perspective Development Environment , 1995, 1995 17th International Conference on Software Engineering.

[33]  Kenneth L. McMillan,et al.  Symbolic model checking , 1992 .

[34]  Bashar Nuseibeh,et al.  Method engineering for multi-perspective software development , 1996, Inf. Softw. Technol..

[35]  Bashar Nuseibeh,et al.  Expressing the relationships between multiple views in requirements specification , 1993, ICSE '93.

[36]  Dov M. Gabbay,et al.  Making inconsistency respectable: a logical framework for inconsistency in reasoning , 1991, FAIR.

[37]  David Notkin,et al.  Model checking large software specifications , 1996, SIGSOFT '96.

[38]  John C. Shepherdson,et al.  Negation in Logic Programming , 1988, Foundations of Deductive Databases and Logic Programming..

[39]  Bashar Nuseibeh,et al.  Leveraging Inconsistency in Software Development , 2000, Computer.

[40]  Dov M. Gabbay,et al.  Making Inconsistency Respectable: Part 2 - Meta-level handling of inconsistency , 1993, ECSQARU.

[41]  Bill Curtis,et al.  Communication breakdowns and boundary spanning activities on large programming projects , 1987 .

[42]  King Sing Cheung,et al.  Consistency Analysis on Lifecycle Model and Interaction Model , 1998 .

[43]  Axel van Lamsweerde,et al.  Divergent views in goal-driven requirements engineering , 1996, ISAW/Viewpoints@FSE.

[44]  Bashar Nuseibeh,et al.  Coordinating distributed ViewPoints: the Anatomy of a Consistency Check , 1994 .

[45]  Barry W. Boehm,et al.  Theory-W Software Project Management: Principles and Examples , 1989, IEEE Trans. Software Eng..

[46]  Yonghao Ma,et al.  CATEGORICAL APPROACH TO GENERAL SYSTEMS THEORY , 1992 .

[47]  George Spanoudakis,et al.  Managing interference , 1996, ISAW '96.

[48]  Julio Cesar Sampaio do Prado Leite,et al.  Requirements Validation Through Viewpoint Resolution , 1991, IEEE Trans. Software Eng..

[49]  Michael Jackson,et al.  The meaning of requirements , 1997, Ann. Softw. Eng..

[50]  Dov M. Gabbay,et al.  Inconsistency Handling in Multi-Perspective Specifications , 1993, ESEC.

[51]  José Luiz Fiadeiro,et al.  Interconnecting formalisms: supporting modularity, reuse and incrementality , 1995, SIGSOFT FSE.

[52]  Nicola Guarino,et al.  The Ontological Level , 1994 .

[53]  William N. Robinson,et al.  Managing Requirements Inconsistency with Development Goal Monitors , 1999, IEEE Trans. Software Eng..

[54]  Steve Easterbrook,et al.  Cooperation or Conflict , 1993 .

[55]  Bashar Nuseibeh,et al.  Analysing inconsistent specifications , 1997, Proceedings of ISRE '97: 3rd IEEE International Symposium on Requirements Engineering.

[56]  D. Gabbay,et al.  Inconsistency Handling in Multiperspective Specifications , 1994 .

[57]  Axel van Lamsweerde,et al.  Handling Obstacles in Goal-Oriented Requirements Engineering , 2000, IEEE Trans. Software Eng..

[58]  David Harel,et al.  Statecharts: A Visual Formalism for Complex Systems , 1987, Sci. Comput. Program..

[59]  Barry W. Boehm,et al.  Identifying Quality-Requirement Conflicts , 1996, IEEE Softw..

[60]  Kevin Knight,et al.  Unification: a multidisciplinary survey , 1989, CSUR.

[61]  Mike Ainsworth,et al.  Formal validation of viewpoint specifications , 1996, Softw. Eng. J..

[62]  Klaus Pohl,et al.  Process-Centered Requirements Engineering , 1996 .

[63]  Susanna Ginali,et al.  A Categorical Approach to General Systems , 1978 .

[64]  Harold Ossher,et al.  From Dynamic Supertypes to Subjects: A Natural Way to Specify and Develop Systems , 1996, IBM Syst. J..

[65]  Bashar Nuseibeh,et al.  Managing inconsistencies in an evolving specification , 1995, Proceedings of 1995 IEEE International Symposium on Requirements Engineering (RE'95).

[66]  Siobhán Clarke,et al.  Composition of UML Design Models: A Tool to Support the Resolution of Conflicts , 1998 .

[67]  Wolfgang Emmerich,et al.  Consistency Management of Distributed Documents using XML and Related Technologies , 1999 .

[68]  Bashar Nuseibeh,et al.  ViewPoints: a vehicle for method and tool integration , 1992, [1992] Proceedings of the Fifth International Workshop on Computer-Aided Software Engineering.

[69]  Richard Waldinger,et al.  Achieving several goals simultaneously , 1977 .

[70]  William N. Robinson Interactive Decision Support for Requirements Negotiation , 1994 .

[71]  Barry Boehm,et al.  Comparing software system requirements negotiation patterns , 1999 .

[72]  Ian Sommerville,et al.  Requirements engineering with viewpoints , 1996, Softw. Eng. J..

[73]  Barry W. Boehm,et al.  Software Requirements Negotiation and Renegotiation Aids: A Theory-W Based Spiral Approach , 1995, 1995 17th International Conference on Software Engineering.

[74]  Constance L. Heitmeyer,et al.  Automated consistency checking of requirements specifications , 1996, TSEM.

[75]  George Spanoudakis,et al.  Viewpoints 96: international workshop on multiple perspectives in software development (SIGSOFT 96) workshop report , 1997, SOEN.

[76]  James L. Peterson,et al.  Petri net theory and the modeling of systems , 1981 .

[77]  Steve Easterbrook,et al.  Handling conflict between domain descriptions with computer-supported negotiation , 1991 .

[78]  Harold Ossher,et al.  Subject-oriented composition rules , 1995, OOPSLA.

[79]  Harry S. Delugach Analysing multiple views of software requirements , 1992 .

[80]  C. M. Sperberg-McQueen,et al.  Extensible Markup Language (XML) , 1997, World Wide Web J..

[81]  George Spanoudakis,et al.  An Evidential Framework for Diagnosing the Significance of Inconsistencies in UML Models , 2000 .

[82]  Howard Bowman,et al.  Constructive Consistency Checking for Partial Specification in Z , 1999, Sci. Comput. Program..

[83]  Michael Goedicke,et al.  A module concept for ViewPoints , 1996, ISAW '96.

[84]  Michael Jackson,et al.  Conjunction as composition , 1993, TSEM.

[85]  Matthias Jarke,et al.  Telos: representing knowledge about information systems , 1990, TOIS.

[86]  Steve M. Easterbrook,et al.  Using ViewPoints for inconsistency management , 1996, Softw. Eng. J..

[87]  Constance L. Heitmeyer,et al.  Consistency checking of SCR-style requirements specifications , 1995, Proceedings of 1995 IEEE International Symposium on Requirements Engineering (RE'95).

[88]  Geoff Mullery Tool support for multiple viewpoints , 1996, ISAW '96.

[89]  Bashar Nuseibeh,et al.  Towards a framework for managing inconsistency between multiple views , 1996, ISAW '96.