This Article 
 Bibliographic References 
 Add to: 
Automatically Detecting and Tracking Inconsistencies in Software Design Models
March/April 2011 (vol. 37 no. 2)
pp. 188-204
Alexander Egyed, Johannes Kepler University, Linz
Software models typically contain many inconsistencies and consistency checkers help engineers find them. Even if engineers are willing to tolerate inconsistencies, they are better off knowing about their existence to avoid follow-on errors and unnecessary rework. However, current approaches do not detect or track inconsistencies fast enough. This paper presents an automated approach for detecting and tracking inconsistencies in real time (while the model changes). Engineers only need to define consistency rules—in any language—and our approach automatically identifies how model changes affect these consistency rules. It does this by observing the behavior of consistency rules to understand how they affect the model. The approach is quick, correct, scalable, fully automated, and easy to use as it does not require any special skills from the engineers using it. We evaluated the approach on 34 models with model sizes of up to 162,237 model elements and 24 types of consistency rules. Our empirical evaluation shows that our approach requires only 1.4 ms to reevaluate the consistency of the model after a change (on average); its performance is not noticeably affected by the model size and common consistency rules but only by the number of consistency rules, at the expense of a quite acceptable, linearly increasing memory consumption.

[1] U.A. Acar, A. Ahmed, and M. Blume, “Imperative Self-Adjusting Computation,” Proc. 35th ACM SIGPLAN-SIGACT Symp. Principles of Programming Languages, pp. 309-322, 2008.
[2] R. Balzer, “Tolerating Inconsistency,” Proc. 13th Int'l Conf. Software Eng., pp. 158-165, 1991.
[3] B. Belkhouche and C. Lemus, “Multiple View Analysis and Design,” Proc. Int'l Workshop Multiple Perspectives in Software Development, 1996.
[4] X. Blanc, I. Mounier, A. Mougenot, and T. Mens, “Detecting Model Inconsistency through Operation-Based Model Construction,” Proc. 30th Int'l Conf. Software Eng., pp. 511-520, 2008.
[5] B.W. Boehm, C. Abts, A.W. Brown, S. Chulani, B.K. Clark, E. Horowitz, R. Madacy, D. Reifer, and B. Steece, Software Cost Estimation with COCOMO II. Prentice Hall, 2000.
[6] L.C. Briand, Y. Labiche, and L. O'Sullivan, “Impact Analysis and Change Management of UML Models,” Proc. Int'l Conf. Software Maintenance, p. 256, 2003.
[7] L.A. Campbell, B.H.C. Cheng, W.E. McUmber, and K. Stirewalt, “Automatically Detecting and Visualising Errors in UML Diagrams,” Requirements Eng. J., vol. 7, pp. 264-287, 2002.
[8] B.H.C. Cheng, E.Y. Wang, and R.H. Bourdeau, “A Graphical Environment for Formally Developing Object-Oriented Software,” Proc. Sixth Int'l Conf. Tools with Artificial Intelligence, pp. 26-32, 1994.
[9] D. Dhungana, R. Rabiser, P. Grünbacher, K. Lehner, and C. Federspiel, “DOPLER: An Adaptable Tool Suite for Product Line Engineering,” Proc. 11th Int'l Software Product Line Conf., pp. 151-152, 2007.
[10] S. Easterbrook and B. Nuseibeh, “Using ViewPoints for Inconsistency Management,” IEE Software Eng. J., vol. 11, pp. 31-43, 1995.
[11] A. Egyed, “Automated Abstraction of Class Diagrams,” ACM Trans. Software Eng. and Methodology, vol. 11, pp. 449-491, 2002.
[12] A. Egyed, “Instant Consistency Checking for the UML,” Proc. 28th Int'l Conf. Software Eng., pp. 381-390, 2006.
[13] A. Egyed, “Fixing Inconsistencies in UML Design Models,” Proc. 29th Int'l Conf. Software Eng., pp. 292-301, 2007.
[14] A. Egyed and B. Balzer, “Integrating COTS Software into Systems through Instrumentation and Reasoning,” Int'l J. Automated Software Eng., vol. 13, pp. 41-64, 2006.
[15] A. Egyed, E. Letier, and A. Finkelstein, “Generating and Evaluating Choices for Fixing Inconsistencies in UML Design Models,” Proc. 23rd Int'l Conf. Automated Software Eng., 2008.
[16] W. Emmerich, “GTSL—an Object-Oriented Language for Specification of Syntax Directed Tools,” Proc. Eighth Int'l Workshop Software Specification and Design, pp. 26-35, 1996.
[17] S. Fickas, M. Feather, and J. Kramer, Proc. ICSE-97 Workshop Living with Inconsistency, 1997.
[18] A. Finkelstein, D. Gabbay, A. Hunter, J. Kramer, and B. Nuseibeh, “Inconsistency Handling in Multi-Perspective Specifications,” IEEE Trans. Software Eng., vol. 20, pp. 569-578, 1994.
[19] C. Forgy, “Rete: A Fast Algorithm for the Many Pattern/Many Object Pattern Match Problem,” Artificial Intelligence, vol. 19, pp. 17-37, 1982.
[20] I. Groher, A. Reder, and A. Egyed, “Instant Consistency Checking of Dynamic Constraints,” Proc. 12th Int'l Conf. Fundamental Approaches to Software Eng., 2010.
[21] J. Grundy, J. Hosking, and R. Mugridge, “Inconsistency Management for Multiple-View Software Development Environments,” IEEE Trans. Software Eng., vol. 24, no. 11, pp. 960-981, Nov. 1998.
[22] A.N. Habermann and D. Notkin, “Gandalf: Software Development Environments,” IEEE Trans. Software Eng., vol. 12, no. 12, pp. 1117-1127, Dec. 1986.
[23] S.M. Kaplan and G.E. Kaiser, “Incremental Attribute Evaluation in Distributed Language-Based Environments,” Proc. Fifth Ann. Symp. Principles of Distributed Computing, pp. 121-130, 1986.
[24] M. Lee, A.J. Offutt, and R.T. Alexander, “Algorithmic Analysis of the Impacts of Changes to Object-Oriented Software,” Proc. 34th Int'l Conf. Technology of Object-Oriented Languages and Systems, pp. 61-70, 2000.
[25] M. Lindvall and K. Sandahl, “Practical Implications of Traceability,” J. Software—Practice and Experience, vol. 26, pp. 1161-1180, 1996.
[26] A.K. Mackworth, “Consistency in Networks of Relations,” J. Artificial Intelligence, vol. 8, pp. 99-118, 1977.
[27] C. Nentwich, L. Capra, W. Emmerich, and A. Finkelstein, “xlinkit: A Consistency Checking and Smart Link Generation Service,” ACM Trans. Internet Technology, vol. 2, pp. 151-185, 2002.
[28] C. Nentwich, W. Emmerich, and A. Finkelstein, “Consistency Management with Repair Actions,” Proc. 25th Int'l Conf. Software Eng., pp. 455-464, 2003.
[29] B. Nuseibeh and A. Russo, “On the Consequences of Acting in the Presence of Inconsistency,” Proc. Ninth Int'l Workshop Software Specification and Design, pp. 156-158, 1998.
[30] S. Reiss, “Incremental Maintenance of Software Artifacts,” IEEE Trans. Software Eng., vol. 32, no. 9, pp. 682-697, Sept. 2006.
[31] J. Robins et al, “ArgoUML,” http:/, 2010.
[32] N. Roussopoulos, “An Incremental Access Method for ViewCache: Concept, Algorithms, and Cost Analysis,” ACM Trans. Database Systems, vol. 16, pp. 535-563, 1991.
[33] J. Rumbaugh, J. Ivar, and B. Grady, The Unified Modeling Language Reference Manual. Addison Wesley, 1999.
[34] M. Sabetzadeh, S. Nejati, S. Liaskos, S. Easterbrook, and M. Chechik, “Consistency Checking of Conceptual Models via Model Merging,” Proc. 15th IEEE Int'l Requirements Eng. Conf., 2007.
[35] W. Shen, K. Wang, and A. Egyed, “An Efficient and Scalable Approach to Correct Class Model Refinement,” IEEE Trans. Software Eng., vol. 35, no. 4, pp. 515-533, July/Aug. 2009.
[36] R.N. Taylor, R.W. Selby, M. Young, F.C. Belz, L.A. Clarce, J.C. Wileden, L. Osterweil, and A.L. Wolf, “Foundations of the Arcadia Environment Architecture,” Proc. Fourth Symp. Software Development Environments, 1998.
[37] A. Tsiolakis and H. Ehrig, “Consistency Analysis of UML Class and Sequence Diagrams Using Attributed Graph Grammars,” Proc. Conf. Graph Transformation and Graph Grammars, pp. 77-86, 2000.
[38] J. Warmer and A. Kleppe, The Object Constraint Language. Pearson Education, 2003.
[39] Y. Xiong, Z. Hu, H. Zhao, H. Song, M. Takeichi, and H. Mei, “Supporting Automatic Model Inconsistency Fixing,” Proc. Seventh Joint Meeting of the European Software Eng. Conf. and the ACM SIGSOFT Symp. Foundations of Software Eng., 2009.
[40] A. Zisman and A. Kozlenkov, “Knowledge Base Approach to Consistency Management of UML Specification,” Proc. 16th IEEE Int'l Conf. Automated Software Eng., pp. 359-363, 2001.

Index Terms:
Design tools and techniques, design.
Alexander Egyed, "Automatically Detecting and Tracking Inconsistencies in Software Design Models," IEEE Transactions on Software Engineering, vol. 37, no. 2, pp. 188-204, March-April 2011, doi:10.1109/TSE.2010.38
Usage of this product signifies your acceptance of the Terms of Use.