UML is an industrial standard for designing and developing object-oriented software. It provides number of notations for modeling different system views, but it still does not have any means of meticulously checking consistency among the models. These models can contain overlapping information which may lead to inconsistencies. If these inconsistencies are not detected and resolved properly at an early stage then it may result in many errors in implementation phase. In this paper, we present a survey of UML model, consistency checking techniques. For analysis of existing techniques, we identify some analysis parameters and construct an analysis table. The analysis table helps in the evaluation of existing techniques. We conclude that most of the approaches do not perform constraint consistency checking completely, diagram coverage is also limited. Most of the techniques are partially automated and require transformation in some intermediate representation.
In system development lifecycle, design phase plays an important role as a basis for implementation. During design phase system is modeled in such a way as to bridge the gap between analysis and implementation phase. Design phase is the most challenging phase of system lifecycle development. It is desirable to be able to detect model inconsistencies at an early stage, so that the inconsistencies will not be propagated to code or customer deliverables, such as, documentation [ 9].If design phase is modeled properly then process of up-gradation and maintenance of system becomes easy.
For the evaluation of system design, it is validated against user requirements and verified that system works as intended by the user. This is what we say design correctness which is of great importance because if the design is correct then chances of error occurrence in implementation phase are reduced. An important quality of design is that it should be understandable. To increase the design understandability different design methods and notations have been developed. But for the past few years UML  is accepted as an industrial standard for system modeling. The software design is usually represented as a collection of UML diagrams. UML is a very flexible modeling language as it provides number of notations for modeling different system perspectives. As the information contained in different UML diagrams may overlap (partially overlapping) or contradict and can lead to diagrams inconsistency.
In this paper, a survey of UML model consistency checking techniques is presented. Our scope is limited to consistency checking between UML class diagram and sequence diagram. We have identified some analysis parameters and on the basis of these parameters, an analysis table is constructed for the analysis of existing techniques. on the basis of parameters identified. Nearly all on hand consistency checking techniques provide consistency rules and using these rules consistency between UML models can be validated. The technique covering most of the consistency parameters is considered best.
This section contains the types of consistencies under consideration for the current survey from Mens et al. .
Vertical Consistency: Consistency checking is performed between different diagrams of same phase. Syntactic and semantic consistencies are also included in it.
Horizontal Consistency: Consistency checking is performed between different diagrams of same version.
Evolution Consistency: Consistency checking is performed between different versions of a same UML artifact.
Syntactic Consistency: This ensures that specification should match the abstract syntax of meta-model.
Semantic Consistency: This ensures that UML artifacts should be semantically well-suited with UML meta-model.
 is the existing survey published in 2008. In which author has surveyed horizontal consistency techniques. A set of parameters is identified and techniques were analyzed on the basis of identified parameters. But techniques belonging to vertical consistency checking are not considered.
In this section set of parameters for the analysis of existing techniques is provided.
Consistencies Checked: It identifies the consistency checks being covered. Possible values can be M for message, ML for multiplicity, ASC for association, CN for constraint and CL for class existence checking.
Transformation: It identifies whether the approach need transformation of UML model in some intermediate representation. Possible values can be No and the name of intermediate model.
Case Study: It determines whether approach is validated by applying it on any real life example. Possible values for this parameter are Yes and No.
Automatable: This parameter shows whether the approach can be implemented or not. Possible values include Yes, No and partial.
Tool Support: This parameter demonstrate if there exist any tool or whether this technique is implemented or not. Possible values for this are Yes, No and partial.
4. Existing Consistency Checking Techniques
In this section description of existing UML model consistency checking techniques is given. For consistency checking many techniques transform the UML model in some intermediate form, by applying the rules presented in different techniques.
Baruzzo and Comini: Comini and Baruzzo  present a framework for static verification of UML Diagrams consistency using OCL constraints. Author use design by contract strategy and define contracts by using OCL. Software contracts include pre- post conditions of method, class invariants and assertions. If any responsibility described in contracts is not met then this leads to the breakage of contract. First by using class diagram static description of system is given. Then contracts specifications are defined in classes of system, including pre-post conditions and class invariants. After that using structural induction verification method on sequence diagram is defined and decomposition of sequence diagram is done according to defined schema. Then conditions are imposed on various blocks of decomposed sequence diagram. Conditions that do not hold reflect an inconsistency. This technique has not been automated because it uses verification formulas that are undecidable.
Straeten et al.: Straeten et al [3,11] present a technique for consistency detection and resolution using DL (Description logic). Author has presented an inconsistency classification. First dimension is structural or behavioral inconsistencies and second dimension considers affected model type. In first case class and sequence diagrams are used while for second dimension four classifications of UML diagrams are made i.e. instance, Model, Meta-modal and Meta-Meta-Model. Conflicts can be found at instance level, model level or between model and instance level. The class of conflicts considered is instance definition missing which contains conflicts like classless instance, Dangling feature reference and Dangling association reference. A UML profile is also developed to support consistency of UML artifacts and then LOOM tool is used for translation of developed profile into DL. At the end Loom query processor is used for detection and resolution of inconsistencies. Consistency checking is performed for messages, associations and classes but not for constraints and multiplicity.
Krishnan: Krishnan  presents an approach for consistency checking based on translation of UML diagrams in state predicates. Only UML behavior diagrams are covered. After translation, PVS (prototype verification system) a theorem prover as well as a model checker is used to perform consistency checking. Main technique for consistency checking used is reasoning about the past, in which if for a given state, state predicate is satisfied then this indicates occurrence of event(s) in the past.
Muskens et al.: Muskens et al  present an approach for intra and inter phase consistency checking, which makes use of Partition Algebra using verification rules. The author finds two types of restrictions imposed by general diagrams on subordinate diagrams and these are obligations and constraints. Obligations are missing relations and constraints are those relations that are not allowed and it depends upon general and subordinate diagrams being used. Consistency checking is performed by deriving the rules from one view and imposing them on the other view. Consistency checking is performed for Associations, messages and constraints.
Egyed: Egyed  introduces a consistency checking technique known as View-Integra. Technique consists of two main steps. In first step UML diagrams are transformed into intermediate representation and then in second step those transformed diagrams are compared with other diagrams for consistency checking. In this technique the diagram to be compared is transformed in such a way that it becomes conceptually close to the diagram with which it is going to compare. This means that if sequence diagram is to be compared with class diagram then sequence diagram is converted to class diagram and then compared for consistency checking with actual class diagram. No consistency checking is performed nor any example is given and also automation of this approach is given.
H. Ehrig et al.: H. Ehrig et al  propose a technique to perform consistency checking between sequence and class diagram which are based on Attributed Typed Graphs and their transformation. First the author presents transformation of class diagram into graphs and sequence diagram into graph grammar. Graph consists of vertices and edges; here vertices are used to represent classes and edges are used to represent relationship or associations between those classes. To represent different data types, algebraic approach is used. Interaction graph grammar is used to represent sequence diagram because it represents interaction between messages. Consistency checking is performed for existence checking, visibility and multiplicity checking. In existence checking classes and association existence in both diagrams are verified. In visibility checking classes, attributes and operations are checked for visibility. The Multiplicity checking is performed by comparing the multiplicity in class diagram with all existing links in sequence diagram but no constraint consistency checking is performed. Approach does not provide any tool support.
Briand et al.: Briand et al  propose an approach for impact analysis based on UML model. UML sequence diagram, statechart diagram and class diagram are used for consistency assessments. This technique is applied before changes are implemented to estimate the effect of change. For this first consistency checking of UML model is performed and then changes are identified. Some rules are formally defined using OCL to determine the impact of change on different model elements. For automation of strategy a prototype tool is implemented which also executes consistency checking rules defined. Two case studies of ATM and Cruise Control are used to support the approach. Experimental analysis and results are also provided.
Paige et al. Paige et al  presents an approach to formalize and describe the implementation of consistency constraints between two views of BON i.e. class and collaboration diagram. For this purpose both model and meta-model are translated into predicate logic and PVS theorem prover is used to automate the proofs. Currently translation is done manually but it can be automated in future. Consistency checks performed includes sequencing consistency checks, Constraint checking with respect to consistency checking of test drivers against collaboration diagram.
In this article a survey is presented for UML consistency checking techniques. All the techniques are analyzed on the basis of identified parameters. As different techniques require transformation in intermediate representation. Technique given by Baruzzo and Comini is considered best as it does not require intermediate representation and also performs all types of consistency checking; only one drawback is that it has no tool support and as author reported that it cannot be automated due to verification formulas used.
 Object Management Group. Unified Modeling Language specification version 2.1.2. formal/2007-11-01, November 2007.
 A. Baruzzo and M. Comini. Checking UML Model Consistency. In Proceedings of CILC 2006 - Convegno Italiano di Logica Computazionale, pages 1–15, 2006
 Simmonds, J., Van Der Straeten, R., Jonckers, V., & Mens, T. Maintaining consistency between uml models using description logic. In Proceedings Langages et Modèles à Objets 2004, RSTI série L’Objet, 10(2-3), 231-244. Hermes Science Publications.
 P. Krishnan. Consistency Checks for UML. In the Proc. of the Asia Pacific Software engineering Conference (APSEC 2000), pages 162–169, December 2000.
 Muskens, J., Brill, R.J (2005). Generalizing Consistency Checking between Software Views. Proceedings of 5th Working IEEE/IFIP Conference on Software Architecture (WICSA‘05), pp. 169-180.
 A. Egyed. Scalable consistency checking between diagrams -The VIEWINTEGRA Approach. Proceedings of the 16th International Conference on Automated Software Engineering, San Diego, USA, November 2001
 H. Ehrig and A. Tsiolakis. Consistency analysis of UML class and sequence diagrams using Attributed Typed Graph Grammars. Proceedings of joint APPLIGRAPH/ GETGRATS workshop on Graph Transformation systems, Berlin, March 2000.
 L. C. Briand, Y. Labiche, L. O’Sullivan, and M. M. Sowka : Automated Impact Analysis of UML Models, Journal of Systems and Software, vol. 79, issue. 3, pp. 339-352, March 2006.
 R. F. Paige, J. S. Ostroff, Phillip J. Brooke. A Test-Based Agile Approach to Checking the Consistency of Class and Collaboration Diagrams. UK Software Testing Workshop, University of York, 4-5 September 2003.
 R. F. Paige, J. S. Ostroff, and P. J. Brooke. Checking the Consistency of Collaboration and class Diagrams using PVS. In Proc. Fourth Workshop on Rigorous Object-Oriented Methods, London, England, British Computer Society, March 2002
 Ragnhild Van Der Straeten, Tom Mens, and Jocelyn Simmonds. Maintaining Consistency between UML Models with Description Logic Tools. In ECOOP Workshop on Object-Oriented Reengineering, Darmstadt, Germany, July 2003.
 T. Mens, R. V-D. Straeten, and J. Simmonds : A Framework for Managing Consistency of Evolving UML Models, In H. Yang, editor, Software Evolution with UML and XML, chapter 1. Idea Group Inc., March 2005
 Usman, M. Nadeem, A. Tai-hoon Kim Eun-suk Cho, “A Survey of Consistency Checking Techniques for UML Models”, Advanced Software Engineering and Its Applications, Hainan Island, ASEA 2008, pp- 57-62
Table 1: Analysiations used in Table 1