This Article 
 Bibliographic References 
 Add to: 
Support for Managing Design-Time Decisions
May 2006 (vol. 32 no. 5)
pp. 299-314
The desirability of maintaining multiple stakeholders' interests during the software design process argues for leaving choices undecided as long as possible. Yet, any form of underspecification, either missing information or undecided choices, must be resolved before automated analysis tools can be used. This paper demonstrates how Constraint Satisfaction Problem Solution Techniques (CSTs) can be used to automatically reduce the space of choices for ambiguities by incorporating the local effects of constraints, ultimately with more global consequences. As constraints typical of those encountered during the software design process, we use UML consistency and well-formedness rules. It is somewhat surprising that CSTs are suitable for the software modeling domain since the constraints may relate many ambiguities during their evaluation, encountering a well-known problem with CSTs called the k-consistency problem. This paper demonstrates that our CST-based approach is computationally scalable and effective—as evidenced by empirical experiments based on dozens of industrial models.

[1] M.L. Begeman and J. Conklin, “The Right Tool for the Job,” Byte, vol. 13, no. 10, pp. 255-266, 1988.
[2] B. Boehm, A. Egyed, J. Kwan, and R. Madachy, “Using the WinWin Spiral Model: A Case Study,” Computer, pp. 33-44, 1998.
[3] G. Bruns and P. Godefroid, “Generalized Model Checking: Reasing about Partial State Spaces,” Proc. Int'l Conf. Concurrent Theory, pp. 168-182, 2000.
[4] E. Börger and D. Rosenzweig, “The WAM— Definition and Compiler Correctness,” Logic Programming: Formal Methods and Practical Applications, 1994.
[5] A.G. Cass and L.J. Osterweil, Requirements-Based Design Guidance: A Process-Centered Consistency Management Approach, Mar. 2002.
[6] K. Dohyung, “Java MPEG Player,”, 1999.
[7] J. Doyle, “A Truth Maintenance System,” Artificial Intelligence, vol. 12, no. 3, pp. 231-272, 1979.
[8] S. Easterbrook and M. Chechik, “A Framework for Multi-Valued Reasoning over Inconsistent Viewpoints,” Proc. 23rd Int'l Conf. Software Eng., pp. 411-420, May 2001.
[9] A. Egyed, “A Scenario-Driven Approach to Trace Dependency Analysis,” IEEE Trans. Software Eng., vol. 29, no. 2, pp. 116-132, Feb. 2003.
[10] A. Egyed, “Instant Consistency Checking for the UML ,” Proc. 28th Int'l Conf. Software Eng. (ICSE), May 2005.
[11] A. Egyed and B. Balzer, “Integrating COTS Software into Systems through Instrumentation and Reasoning,” Int'l J. Automated Software Eng. (JASE), vol. 13, no. 1, pp. 41-64, 2006.
[12] A. Finkelstein, D. Gabbay, A. Hunter, J. Kramer, and B. Nuseibeh, “Inconsistency Handling in Multi-Perspective Specifications,” IEEE Trans. Software Eng., vol. 20, no. 8, pp. 569-578, Aug. 1994.
[13] M. Gertz, “An Extensible Framework for Repairing Constraint Violations,” Proc. Workshop Foundations of Models and Languages for Data and Objects (FMLDO), pp. 41-56, 1996.
[14] R. Guindon, H. Krasner, and W. Curtis, “Breakdown and Processes during Early Activities of Software Design by Professionals,” Proc. Second Workshop Empirical Studies of Programmers, pp. 65-82, 1987.
[15] P. Henteryck, “Strategic Directions in Constraint Programming,” ACM Computing Surveys, vol. 28, no. 4, 1996.
[16] P. Hudak, The Haskell School of Expression. Cambridge Univ. Press, 2000.
[17] IBM, “Rational Rose,” http:/, 2006.
[18] D. Jackson, “Alloy: A Lightweight Object Modelling Notation,” ACM Trans. Software Eng. Methodology, vol. 11, no. 2, 2002.
[19] J. Kleer, “A Perspective on Assumption-Based Truth Maintenance,” Artificial Intelligence, vol. 59, no. 1, pp. 63-67, 1993.
[20] A.K. Mackworth, “Consistency in Networks of Relations,” J. Artificial Intelligence, vol. 8, no. 1, pp. 99-118, 1977.
[21] S. Mittal and B. Falkenhainer, “Dynamic Constraint Satisfaction Problems,” Proc. Eighth Nat'l Conf. Artificial Intelligence, pp. 25-32, 1990.
[22] G. Moerkotte and P.C. Lockemann, “Reactive Consistency Control in Deductive Databases,” ACM Trans. Database Systems, vol. 16, no. 4, pp. 670-702, 1991.
[23] C. Nentwich, W. Emmerich, and A. Finkelstein, “Consistency Management with Repair Actions,” Proc. 25th Int'l Conf. Software Eng. (ICSE), pp. 455-464, 2003.
[24] C. Nentwich, L. Capra, W. Emmerich, and A. Finkelstein, “xlinkit: A Consistency Checking and Smart Link Generation Service,” ACM Trans. Internet Technology, vol. 2, no. 2, pp. 151-185, 2002.
[25] J. Robins et al., “ArgoUML,” http:/, 2006.
[26] J. Rumbaugh, I. Jacobson, and G. Booch, The Unified Modeling Language Reference Manual. Addison Wesley, 1999.
[27] D. Sabin and E.C. Freuder, “Configuration as Composite Constraint Satisfaction,” Proc. First Artificial Intelligence and Manufacturing Research Planning, 1996.
[28] A. Tsiolakis and H. Ehrig, “Consistency Analysis of UML Class and Sequence Diagrams Using Attributed Graph Grammars,” Proc. Joint APPLIGRAPH/GETGRATS Workshop Graph Transformation Systems (GRATRA 2000), pp. 77-86, Mar. 2000.
[29] A. Van der Hoek, D. Heimbigner, and A.L. Wolf, “A Generic, Peer-to-Peer Repository for Distributed Configuration Management,” Proc. Int'l Conf. Software Eng. (ICSE '96), p. 308, 1996.
[30] D. Wile, “Program Developments: Formal Explanations of Implementations,” Comm. ACM, vol. 26, no. 11, 1983.

Index Terms:
UML, design choices, consistency checking, design alternatives, choice elimination.
Alexander Egyed, David S. Wile, "Support for Managing Design-Time Decisions," IEEE Transactions on Software Engineering, vol. 32, no. 5, pp. 299-314, May 2006, doi:10.1109/TSE.2006.48
Usage of this product signifies your acceptance of the Terms of Use.