Skip to main content
Log in

Resolving model inconsistencies using automated regression planning

  • Special Section Paper
  • Published:
Software & Systems Modeling Aims and scope Submit manuscript

Abstract

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.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Fig. 1
Fig. 2
Fig. 3
Fig. 4
Fig. 5
Fig. 6
Fig. 7
Fig. 8
Fig. 9
Fig. 10
Fig. 11
Fig. 12

Similar content being viewed by others

Notes

  1. The call predicate used as part of the can rule is a well-known Prolog meta-predicate [7].

  2. techpubs.borland.com/together/tec2006/en/readme.html.

  3. \(\bar{R}^2\) is defined as \(1-(1-R^2)\frac{n - 1}{n - p - 1}\), where \(R^2\) is the coefficient of determination, \(n\) is the sample size and \(p\) the number of parameters in the regression model.

  4. See http://c2.com/cgi/wiki?CodeSmell.

  5. findbugs.sourceforge.nets.

References

  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)

  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)

  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)

  4. Object Management Group: Unified Modeling Language: Superstructure version 2.3. formal/2010-05-05 May (2010)

  5. Ghallab, M., Nau, D., Traverso, P.: Automated Planning: Theory and Practice. Morgan Kaufmann, Burlington (2004)

  6. Russell, S., Norvig, P. : Artificial Intelligence: A Modern Approach, 3rd edn. Prentice Hall, Upper Saddle River (2010)

  7. Sterling, L.S., Shapiro, E.Y.: The Art of Prolog: Advanced Programming Techniques, 2nd edn. MIT Press, Cambridge (1994)

  8. Bratko, I.: Prolog Programming for Artificial Intelligence. Addison-Wesley, Boston (2001)

  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)

  10. Pinna Puissant, J.: Resolving Inconsistencies in Model-Driven Engineering using Automated Planning. PhD thesis, Université de Mons (2012)

  11. Jiménez Celorrio, S.: Planning and Learning under Uncertainty. PhD thesis, Universidad Carlos III de Madrid (2010)

  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)

  13. Hoffmann, J.: FF: the fast-forward planning system. AI Mag. 22(3):57–72 (2001)

    Google Scholar 

  14. Hoffmann, J., Nebel, B.: The FF planning system: fast plan generation through heuristic search. J. Artif. Intell. Res. 14, 253–302 (2001)

    MATH  Google Scholar 

  15. Blanc, X., Falleri, J.-R.: Internet software evolution with vpraxis. ERCIM News 2012(88) (2012)

  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)

  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)

  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)

  19. Egyed, A.: Automatically detecting and tracking inconsistencies in software design models. IEEE Trans. Softw. Eng. 37(2), 188–204 (2011)

    Article  Google Scholar 

  20. Van Der Straeten, R.: Inconsistency management in model-driven engineering: an approach using description logics. PhD thesis, Vrije Universiteit Brussel (2005)

  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)

  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)

  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)

  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)

  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)

  26. Fowler, M.: Refactoring: Improving the Design of Existing Code. Addison-Wesley, Boston (1999)

    Google Scholar 

  27. Pérez, J.: Refactoring Planning for Design Smell Correction in Object-Oriented Software. PhD thesis, ETSII, University of Valladolid (2011)

  28. Vere, S.A.: Planning in time: windows and durations for activities and goals. IEEE Trans. Pattern Anal. Mach. Intell. 5, 246–267 (1983)

    Article  Google Scholar 

  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)

  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)

  31. Marcelloni, F., Aksit, M.: Leaving inconsistency using fuzzy logic. Inf. Softw. Technol. 43(12), 725–741 (2001)

    Article  Google Scholar 

  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. 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)

  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)

  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)

  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)

  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)

  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. 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. Wu, D., Sirin, E., Hendler, J.A., Nau, D.S., Parsia, B.: Automatic web services composition using SHOP2. In: WWW (Posters) (2003)

  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. 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)

Download references

Acknowledgments

This work has been partially supported by the F.R.S.–FNRS through FRFC project 2.4515.09 “Research Center on Software Adaptability”; and by research project AUWB-08/12-UMH “Model-Driven Software Evolution”, an Action de Recherche Concertée financed by the Ministère de la Communauté française - Direction générale de l’Enseignement non obligatoire et de la Recherche scientifique, Belgium.

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Jorge Pinna Puissant.

Additional information

Communicated by Dr. Antonio Vallecillo and Dr. Juha-Pekka Tolvanen.

Rights and permissions

Reprints and permissions

About this article

Cite this article

Pinna Puissant, J., Van Der Straeten, R. & Mens, T. Resolving model inconsistencies using automated regression planning. Softw Syst Model 14, 461–481 (2015). https://doi.org/10.1007/s10270-013-0317-9

Download citation

  • Received:

  • Revised:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s10270-013-0317-9

Keywords

Navigation