Software & Systems Modeling

, Volume 14, Issue 1, pp 461–481 | Cite as

Resolving model inconsistencies using automated regression planning

  • Jorge Pinna Puissant
  • Ragnhild Van Der Straeten
  • Tom Mens
Special Section Paper


One of the main challenges in model-driven software engineering is to automate the resolution of design model inconsistencies. We propose to use the artificial intelligence technique of automated planning for the purpose of resolving such inconsistencies through the generation of one or more resolution plans. We implemented Badger, a regression planner in Prolog that generates such plans. We assess its scalability on the resolution of different types of structural inconsistencies in UML models using both generated models and reverse-engineered models of varying sizes, the largest ones containing more than 10,000 model elements. We illustrate the metamodel-independence of our approach by applying it to the resolution of code smells in a Java program. We discuss how the user can adapt the order in which resolution plans are presented by modifying the cost function of the planner algorithm.


Automated planning Inconsistency resolution Software modeling 


  1. 1.
    Van Der Straeten, R., Mens T., Van Baelen, S.: Challenges in model-driven software engineering. In: Models in Software Engineering. Lecture Notes in Computer Science, vol. 5421, pp. 35–47. Springer, Berlin (2009)Google Scholar
  2. 2.
    George, S., Zisman, A.: Inconsistency management in software engineering: Survey and open research issues. In: Handbook of Software Engineering and Knowledge Engineering, pp. 329–380. World Scientific, Singapore (2001)Google Scholar
  3. 3.
    Balzer, R.: Tolerating inconsistency. In: Proceedings of the 13th International Conference on Software Engineering, ICSE ’91, pp. 158–165 IEEE Computer Society Press, Los Alamitos (1991)Google Scholar
  4. 4.
    Object Management Group: Unified Modeling Language: Superstructure version 2.3. formal/2010-05-05 May (2010)Google Scholar
  5. 5.
    Ghallab, M., Nau, D., Traverso, P.: Automated Planning: Theory and Practice. Morgan Kaufmann, Burlington (2004)Google Scholar
  6. 6.
    Russell, S., Norvig, P. : Artificial Intelligence: A Modern Approach, 3rd edn. Prentice Hall, Upper Saddle River (2010)Google Scholar
  7. 7.
    Sterling, L.S., Shapiro, E.Y.: The Art of Prolog: Advanced Programming Techniques, 2nd edn. MIT Press, Cambridge (1994)Google Scholar
  8. 8.
    Bratko, I.: Prolog Programming for Artificial Intelligence. Addison-Wesley, Boston (2001)Google Scholar
  9. 9.
    Pinna Puissant, J., Van Der Straeten, R., Mens, T.: Badger: a regression planner to resolve design model inconsistencies. In: Vallecillo, A., Tolvanen, J.-P., Kindler, E., Störrle, H., Kolovos, D.S. (eds.) ECMFA. Lecture Notes in Computer Science, vol. 7349, pp. 146–161. Springer, Berlin (2012)Google Scholar
  10. 10.
    Pinna Puissant, J.: Resolving Inconsistencies in Model-Driven Engineering using Automated Planning. PhD thesis, Université de Mons (2012)Google Scholar
  11. 11.
    Jiménez Celorrio, S.: Planning and Learning under Uncertainty. PhD thesis, Universidad Carlos III de Madrid (2010)Google Scholar
  12. 12.
    Pinna Puissant, J., Mens, T., Van Der Straeten, R.: Resolving model inconsistencies with automated planning. In: 3rd workshop on Living with Inconsistencies in Software Development, CEUR Workshop Proceeding (2010)Google Scholar
  13. 13.
    Hoffmann, J.: FF: the fast-forward planning system. AI Mag. 22(3):57–72 (2001)Google Scholar
  14. 14.
    Hoffmann, J., Nebel, B.: The FF planning system: fast plan generation through heuristic search. J. Artif. Intell. Res. 14, 253–302 (2001)MATHGoogle Scholar
  15. 15.
    Blanc, X., Falleri, J.-R.: Internet software evolution with vpraxis. ERCIM News 2012(88) (2012)Google Scholar
  16. 16.
    Mougenot, A., Darrasse, A., Blanc, X., Soria, M.: Uniform random generation of huge metamodel instances. In: European Conference on Model Driven Architecture—Foundations and Applications, pp. 130–145. Springer, Berlin (2009)Google Scholar
  17. 17.
    Xavier, B., Mougenot, A., Mounier, I., Mens, T.: Detecting model inconsistency through operation-based model construction. In: Proceedings of the International Conference on Software Engineering, vol. 1, pp. 511–520 (2008)Google Scholar
  18. 18.
    Le Noir, J. Delande, O., Exertier, D., Aurélio, M., da Silva, A., Blanc, X.: Operation based model representation: experiences on inconsistency detection. In: France, R.B., Malte Küster, J., Bordbar, B., Paige, R.F. (eds) ECMFA. Lecture Notes in Computer Science, vol. 6698, pp. 85–96. Springer, Berlin (2011)Google Scholar
  19. 19.
    Egyed, A.: Automatically detecting and tracking inconsistencies in software design models. IEEE Trans. Softw. Eng. 37(2), 188–204 (2011)CrossRefGoogle Scholar
  20. 20.
    Van Der Straeten, R.: Inconsistency management in model-driven engineering: an approach using description logics. PhD thesis, Vrije Universiteit Brussel (2005)Google Scholar
  21. 21.
    Nentwich, C., Emmerich, W., Finkelstein, A.: Consistency management with repair actions. In: Proceedings of the 25th International Conference on Software Engineering, pp. 455–464. IEEE Computer Society, New York (2003)Google Scholar
  22. 22.
    Korf, R.E.: Linear-space best-first search: summary of results. In: Proceedings of the Tenth National Conference on Artificial Intelligence, AAAI’92, pp. 533–538. AAAI Press, California (1992)Google Scholar
  23. 23.
    Egyed, A., Letier, E., Finkelstein, A.: Generating and evaluating choices for fixing inconsistencies in UML design models. In: Proceedings of International Conference on Automated Software Engineering, pp. 99–108. IEEE, New York (2008)Google Scholar
  24. 24.
    Xiong, Y., Hu, Z., Zhao, H., Song, H., Takeichi, M., Mei, H.: Supporting automatic model inconsistency fixing. In: Proceedings of ESEC/FSE 2009, pp. 315–324. ACM, New York (2009)Google Scholar
  25. 25.
    Van Der Straeten, R., Pinna Puissant, J., Mens, T.: Assessing the Kodkod model finder for resolving model inconsistencies. In: European Conference on Modelling Foundations and Applications. Lecture Notes in Computer Science, vol. 6698, pp. 69–84. Springer, Berlin (2011)Google Scholar
  26. 26.
    Fowler, M.: Refactoring: Improving the Design of Existing Code. Addison-Wesley, Boston (1999)Google Scholar
  27. 27.
    Pérez, J.: Refactoring Planning for Design Smell Correction in Object-Oriented Software. PhD thesis, ETSII, University of Valladolid (2011)Google Scholar
  28. 28.
    Vere, S.A.: Planning in time: windows and durations for activities and goals. IEEE Trans. Pattern Anal. Mach. Intell. 5, 246–267 (1983)CrossRefGoogle Scholar
  29. 29.
    Dean, T., Basye, K., Chekaluk, R., Hyun, S., Lejter, M., Randazza, M.: Coping with uncertainty in a control system for navigation and exploration. In: Proceedings of the 8th National Conference on Artificial Intelligence (AAAI), vol. 2, pp. 1010–1015. MIT Press, Boston (1990)Google Scholar
  30. 30.
    Mougenot, A., Blanc, X., Gervais, M.-P.: D-praxis: a peer-to-peer collaborative model editing framework. In: Proceedings of the 9th IFIP WG 6.1 International Conference on Distributed Applications and Interoperable Systems, DAIS ’09, pp. 16–29. Springer, Berlin (2009)Google Scholar
  31. 31.
    Marcelloni, F., Aksit, M.: Leaving inconsistency using fuzzy logic. Inf. Softw. Technol. 43(12), 725–741 (2001)CrossRefGoogle Scholar
  32. 32.
    Marcelloni, F., Aksit, M.: Fuzzy logic-based object-oriented methods to reduce quantization error and contextual bias problems in software development. Fuzzy Sets Syst. 145(1), 57–80 (2004)Google Scholar
  33. 33.
    Castro, S., Brichau, J., Mens, K.: Diagnosis and semi-automatic correction of detected design inconsistencies in source code. In: Proceedings of Internationall Workshop on Smalltalk Technologies, pp. 8–17. ACM, New York (2009)Google Scholar
  34. 34.
    Harman, M.: Search based software engineering. In Computational Science—ICCS 2006. Lecture Notes in Computer Science, vol. 3994, pp. 740–747. Springer, Berlin (2006)Google Scholar
  35. 35.
    Mens, T., Van Der Straeten, R., D’Hondt, M.: Detecting and resolving model inconsistencies using transformation dependency analysis. In: Proceedings of International Conference on Model Driven Engineering Languages and Systems. Lecture Notes in Computer Science, vol. 4199. pp. 200–214. Springer, Berlin (2006)Google Scholar
  36. 36.
    da Silva, M.A.A., Mougenot, A., Blanc, X., Bendraou, R.: Towards automated inconsistency handling in design models. In: Proceedings International Conference on Advanced Information Systems Engineering. Lecture Notes in Computer Science. Springer, Berlin (2010)Google Scholar
  37. 37.
    Küster, J.M., Ryndina, K.: Improving inconsistency resolution with side-effect evaluation and costs. In: Proceedings of International Conference on Model Driven Engineering Languages and Systems. Lecture Notes in Computer Science, vol. 4735, pp. 136–150. Springer, Berlin (2007)Google Scholar
  38. 38.
    Nau, D., Au, T.-C., Ilghami, O., Kuter, U., Murdock, J.W. Wu, D., Yaman, F.: Shop2: an HTN planning system. J. Artif. Intell. Res. 20:379–404 (2003)Google Scholar
  39. 39.
    Sirin, E., Parsia, B., Wu, D., Hendler, J.A., Nau, D.S.: HTN planning for web service composition using SHOP2. Web Semant. Sci. Serv. Agents World Wide Web 1(4), 377–396 (2004)Google Scholar
  40. 40.
    Wu, D., Sirin, E., Hendler, J.A., Nau, D.S., Parsia, B.: Automatic web services composition using SHOP2. In: WWW (Posters) (2003)Google Scholar
  41. 41.
    Memon, A.M., Pollack, M.E., Soffa, M.L.: Hierarchical GUI test case generation using automated planning. IEEE Trans. Softw. Eng. 27(2), 144–155 (2001)Google Scholar
  42. 42.
    Koehler, J., Nebel, B., Hoffmann, J., Dimopoulos, Y.: Extending planning graphs to an adl subset. In: Steel, S., Alami, R. (eds.) Recent Advances in AI Planning. Lecture Notes in Computer Science, vol. 1348, pp. 273–285. Springer, Berlin (1997)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2013

Authors and Affiliations

  • Jorge Pinna Puissant
    • 1
  • Ragnhild Van Der Straeten
    • 2
  • Tom Mens
    • 1
  1. 1.Service de Génie Logiciel, Institut COMPLEXYSUniversité de MonsMonsBelgium
  2. 2.Software Languages LabVrije Universiteit BrusselBrusselsBelgium

Personalised recommendations