Abstract
One of the main challenges in model-driven software engineering is to deal with design model inconsistencies. Automated techniques to detect and resolve these inconsistencies are essential. We propose to use the artificial intelligence technique of automated planning for the purpose of resolving software model inconsistencies. We implemented a regression planner in Prolog and validated it on the resolution of different types of structural inconsistencies for generated models of varying sizes. We discuss the scalability results of the approach obtained through several stress-tests and discuss the limitations of our approach.
Keywords
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
Almeida da Silva, M.A., Mougenot, A., Blanc, X., Bendraou, R.: Towards Automated Inconsistency Handling in Design Models. In: Pernici, B. (ed.) CAiSE 2010. LNCS, vol. 6051, pp. 348–362. Springer, Heidelberg (2010)
Blanc, X., Mougenot, A., Mounier, I., Mens, T.: Detecting model inconsistency through operation-based model construction. In: Proc. Int’l Conf. Software Engineering, vol. 1, pp. 511–520 (2008)
Bratko, I.: Prolog programming for artificial intelligence. Addison-Wesley (2001)
Demsky, B., Rinard, M.C.: Automatic detection and repair of errors in data structures. In: Int’l Conf. on Object Oriented Programming, Systems, Languages and Applications, pp. 78–95. ACM (2003)
Egyed, A.: Automatically detecting and tracking inconsistencies in software design models. IEEE Trans. Software Eng. 37(2), 188–204 (2011)
Egyed, A., Letier, E., Finkelstein, A.: Generating and evaluating choices for fixing inconsistencies in UML design models. In: Proc. Int’l Conf. Automated Software Engineering, pp. 99–108. IEEE (2008)
Hoffmann, J.: FF: The Fast-Forward Planning System. The AI Magazine (2001)
Hoffmann, J., Nebel, B.: The FF Planning System: Fast plan generation through heuristic search. Journal of Artificial Intelligence Research 14, 253–302 (2001)
Jiménez Celorrio, S.: Planning and Learning under Uncertainty. PhD thesis, Universidad Carlos III de Madrid (2010)
Jose, M., Majumdar, R.: Cause clue clauses: error localization using maximum satisfiability. In: Proc. Conf. on Programming Language Design and Implementation, pp. 437–446. ACM (2011)
Küster, J.M., Ryndina, K.: Improving Inconsistency Resolution with Side-Effect Evaluation and Costs. In: Engels, G., Opdyke, B., Schmidt, D.C., Weil, F. (eds.) MODELS 2007. LNCS, vol. 4735, pp. 136–150. Springer, Heidelberg (2007)
Mani, S., Sinha, V.S., Dhoolia, P., Sinha, S.: Automated support for repairing input-model faults. In: Int’l Conf. on Automated Software Engineering, pp. 195–204. ACM (2010)
Mens, T., Van Der Straeten, R.: Incremental Resolution of Model Inconsistencies. In: Fiadeiro, J.L., Schobbens, P.-Y. (eds.) WADT 2006. LNCS, vol. 4409, pp. 111–126. Springer, Heidelberg (2007), doi:10.1007/978-3-540-71998-4_7
Mens, T., Van Der Straeten, R., D’Hondt, M.: Detecting and Resolving Model Inconsistencies Using Transformation Dependency Analysis. In: Wang, J., Whittle, J., Harel, D., Reggio, G. (eds.) MoDELS 2006. LNCS, vol. 4199, pp. 200–214. Springer, Heidelberg (2006)
Mougenot, A., Darrasse, A., Blanc, X., Soria, M.: Uniform Random Generation of Huge Metamodel Instances. In: Paige, R.F., Hartman, A., Rensink, A. (eds.) ECMDA-FA 2009. LNCS, vol. 5562, pp. 130–145. Springer, Heidelberg (2009)
Nentwich, C., Emmerich, W., Finkelstein, A.: Consistency management with repair actions. In: Proc. 25th Int’l Conf. Software Engineering, pp. 455–464. IEEE Computer Society (May 2003)
Object Management Group. Unified Modeling Language: Superstructure version 2.3. formal/2010-05-05 (May 2010)
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 (September 2010)
Russell, S., Norvig, P.: Artificial Intelligence: A Modern Approach, 3rd edn. Prentice-Hall (2010)
Spanoudakis, G., 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 (2001)
Van Der Straeten, R.: Inconsistency management in model-driven engineering: an approach using description logics. PhD thesis, Vrije Universiteit Brussel (2005)
Van Der Straeten, R., Mens, T., Simmonds, J., Jonckers, V.: Using Description Logic to Maintain Consistency between UML Models. In: Stevens, P., Whittle, J., Booch, G. (eds.) UML 2003. LNCS, vol. 2863, pp. 326–340. Springer, Heidelberg (2003)
Van Der Straeten, R., Mens, T., Van Baelen, S.: Challenges in Model-Driven Software Engineering. In: Chaudron, M.R.V. (ed.) MODELS 2008. LNCS, vol. 5421, pp. 35–47. Springer, Heidelberg (2009)
Van Der Straeten, R., Pinna Puissant, J., Mens, T.: Assessing the Kodkod Model Finder for Resolving Model Inconsistencies. In: France, R.B., Kuester, J.M., Bordbar, B., Paige, R.F. (eds.) ECMFA 2011. LNCS, vol. 6698, pp. 69–84. Springer, Heidelberg (2011)
Xiong, Y., Hu, Z., Zhao, H., Song, H., Takeichi, M., Mei, H.: Supporting automatic model inconsistency fixing. In: Proc. ESEC/FSE 2009, pp. 315–324. ACM (2009)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2012 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Pinna Puissant, J., Van Der Straeten, R., Mens, T. (2012). Badger: A Regression Planner to Resolve Design Model Inconsistencies. In: Vallecillo, A., Tolvanen, JP., Kindler, E., Störrle, H., Kolovos, D. (eds) Modelling Foundations and Applications. ECMFA 2012. Lecture Notes in Computer Science, vol 7349. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-31491-9_13
Download citation
DOI: https://doi.org/10.1007/978-3-642-31491-9_13
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-31490-2
Online ISBN: 978-3-642-31491-9
eBook Packages: Computer ScienceComputer Science (R0)