Skip to main content

Detecting Patterns of Poor Design Solutions Using Constraint Propagation

  • Conference paper
Model Driven Engineering Languages and Systems (MODELS 2008)

Part of the book series: Lecture Notes in Computer Science ((LNPSE,volume 5301))

Abstract

We are proposing an approach for applying design patterns that consists of recognizing occurrences of the modeling problem solved by the design pattern (problem pattern) in input models, which are then transformed according to the solution proposed by the design pattern (solution pattern). In this paper, we look at the issue of identifying instances of problem patterns in input models, and marking the appropriate entities so that the appropriate transformations can be applied. Model marking within the context of MDA is a notoriously difficult problem, in part because of the structural complexity of the patterns that we look for, and in part because of the required design knowledge– and expertise. Our representation of design problem patterns makes it relatively easy to express the pattern matching problem as a constraint satisfaction problem. In this paper, we present our representation of design problem patterns, show how matching such patterns can be expressed as a constraint satisfaction problem, and present an implementation using ILOG JSolver, a commercial CSP solver.

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

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 149.00
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Alikacem, E., Sahraoui, H.A.: Détection d’anomalies utilisant un langage de description règle de qualité. In: Rousseau, R., Urtado, C., Vauttier, S. (eds.) LMO 2006, pp. 185–200 (2006)

    Google Scholar 

  2. Arcelli, A., Masiero, S., Raibulet, C.: Elemental Design Patterns Recognition In Java. In: 13th IEEE Int. Work. Software Technology and Engineering Practice, pp. 196–205 (2005)

    Google Scholar 

  3. Bacchus, F., van Beek, P.: On the Conversion between Non-Binary and Binary Constraint Satisfaction Problems. In: 15th Conf. on Artificial Intelligence, pp. 311–318 (1998)

    Google Scholar 

  4. Chun, A.: Constraint Programming in Java with JSolver. In: 1st Int. Conf. and Exhibition on the Practical Application of Constraint Technologies and Logic Programming (1999)

    Google Scholar 

  5. Ciupke, O.: Automatic Detection of Design Problems in Object-Oriented Reengineering. In: TOOLS 30, pp. 18–32. IEEE Computer Society Press, Los Alamitos (1999)

    Google Scholar 

  6. El-Boussaidi, G., Mili, H.: A Model-driven Framework for Representing and Applying Design Patterns. In: 31st COMPSAC, vol. 1, pp. 97–100 (2007)

    Google Scholar 

  7. Gamma, E., Helm, R., Johnson, R., Vlissides, J.: Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley, Reading (1995)

    Google Scholar 

  8. Guéhéneuc, Y.-G., Jussien, N.: Using Explanations for Design Patterns Identification. In: IJCAI 2001 Workshop on Modelling and Solving problems with constraints, pp. 57–64 (2001)

    Google Scholar 

  9. Gil, J., Maman, I.: Micro Patterns in Java Code. In: 20th conference on Object oriented programming systems languages and applications, OOPSLA 2005, pp. 97–116 (2005)

    Google Scholar 

  10. Horvath, A., Varro, G., Varro, D.: Generic search plans for matching advanced graph patterns. In: The 6th International GT-VMT Workshop (2007)

    Google Scholar 

  11. Model Driven Architecture Guide, http://www.omg.org/cgi-bin/doc?omg/03-06-01

  12. Mili, H., El-Boussaidi, G.: Representing and Applying Design Patterns: What Is the Problem? In: Briand, L.C., Williams, C. (eds.) MoDELS 2005. LNCS, vol. 3713, pp. 186–200. Springer, Heidelberg (2005)

    Chapter  Google Scholar 

  13. Mili, H., Mili, F., Mili, A.: Reusing software: Issues and research directions. IEEE Transactions on Software Engineering 21(6), 528–562 (1995)

    Article  Google Scholar 

  14. Partsch, H., Steinbruggen, R.: Program Transformation Systems. Computing Surveys 15(3), 199–236 (1983)

    Article  MathSciNet  Google Scholar 

  15. Rudolf, M.: Utilizing Constraint Satisfaction Techniques for Efficient Graph Pattern Matching. In: Ehrig, H., Engels, G., Kreowski, H.-J., Rozenberg, G. (eds.) TAGT 1998. LNCS, vol. 1764, pp. 238–251. Springer, Heidelberg (2000)

    Google Scholar 

  16. Sahraoui, H., Boukadoum, M., Lounis, H., Ethève, F.: Predicting Class Libraries Interface Evolution: an investigation into machine learning approaches. In: The 7th APSEC (2000)

    Google Scholar 

  17. Tsang, E.P.K.: Foundations of Constraint Satisfaction. Academic Press, London (1993)

    Google Scholar 

  18. Varro, G., Friedl, K., Varro, D.: Adaptive Graph Pattern Matching for Model Transformations using Model-sensitive Search Plans. In: Karsai, G., Taentzer, G. (eds.) GraMot 2005. ENTCS, vol. 152, pp. 191–205 (2006)

    Google Scholar 

  19. Zimmer, W.: Relationships between design patterns. In: Pattern Languages of Program Design. Addison-Wesley, Reading (1994)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Krzysztof Czarnecki Ileana Ober Jean-Michel Bruel Axel Uhl Markus Völter

Rights and permissions

Reprints and permissions

Copyright information

© 2008 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

El-Boussaidi, G., Mili, H. (2008). Detecting Patterns of Poor Design Solutions Using Constraint Propagation. In: Czarnecki, K., Ober, I., Bruel, JM., Uhl, A., Völter, M. (eds) Model Driven Engineering Languages and Systems. MODELS 2008. Lecture Notes in Computer Science, vol 5301. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-87875-9_14

Download citation

  • DOI: https://doi.org/10.1007/978-3-540-87875-9_14

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-87874-2

  • Online ISBN: 978-3-540-87875-9

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics