Skip to main content

Identifying Code Generation Candidates Using Software Categories

  • Conference paper
  • First Online:
Model-Driven Engineering and Software Development (MODELSWARD 2015)

Part of the book series: Communications in Computer and Information Science ((CCIS,volume 580))

  • 643 Accesses

Abstract

Code generators are a crucial part of the model-driven development (MDD) approach. They systematically transform abstract models to concrete executable source code. Typically, a generator developer determines the code parts that should be generated and separates them from handwritten code. Since performed manually, this task often is time-consuming, labor-intensive, difficult to maintain and may produce more code than necessary. This paper presents an iterative approach for identifying candidates for generated code by analyzing the dependencies of categorized code parts. Dependency rules are automatically derived from a predefined software category graph and serve as basis for the categorization process. Generator developers can use this approach to systematically identify code generation candidates. The ideas and concepts of this paper were introduced at the MODELSWARD conference [1] and are extended in this contribution.

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 39.99
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Notes

  1. 1.

    The example is taken from [14] and reduced to only the aspects required to explain our approach.

  2. 2.

    This game (in German called Schafkopf or Schaffkopf) is a popular and complex Bavarian card game with thirty-two cards where four players play in dynamic alliances. The English translation Sheepshead is actually wrong as it comes from ancient times where the game was played on top (kopf) of a barrel (schaff). It has nothing to do with sheep.

  3. 3.

    Note that Swing classes are global (belonging to the JDK) and well-tested; hence meet the criteria of the category 0. But –as usually the user-interface should be exchangeable– Swing classes are not necessarily global in a specific software system.

  4. 4.

    In [14] also the Representation (R) category is presented. This category contains only software for transforming A category software to T and vice versa. It is a kind of cleaner version of AT. To demonstrate our approach, the R category can be neglected.

  5. 5.

    Note that a D-class that depends on a T-class is rather a DT-class.

References

  1. Mir Seyed Nazari, P., Rumpe, B.: Using software categories for the development of generative software. In: Hammoudi, S., Pires, L.F., Desfray, P., Filipe, J.F. (eds.) Proceedings of the 3rd International Conference on Model-Driven Engineering and Software Development, pp. 498–503. SciTePress, Angers (2015)

    Google Scholar 

  2. Kleppe, A.G., Warmer, J., Bast, W.: MDA Explained: the Model Driven Architecture: Practice and Promise. Addison-Wesley Longman Publishing Co., Inc, Boston (2003)

    Google Scholar 

  3. Rumpe, B.: Modellierung mit UML, 2te edn. Springer, Berlin (2011)

    Book  Google Scholar 

  4. France, R., Rumpe, B.: Model-driven development of complex software: a research roadmap. In: Future of Software Engineering 2007 at ICSE, pp. 37–54 (2007)

    Google Scholar 

  5. Kelly, S., Tolvanen, J.P.: Domain-Specific Modeling: Enabling Full Code Generation. Wiley, Hoboken (2008)

    Book  Google Scholar 

  6. Schindler, M.: Eine werkzeuginfrastruktur zur agilen entwicklung mit der UML/P. In: Aachener Informatik Berichte, Software Engineering. Shaker Verlag (2012)

    Google Scholar 

  7. Krahn, H., Rumpe, B., Völkel, S.: Roles in software development using domain specific modelling languages. In: Gray, J., Tolvanen, J.P., Sprinkle, J., (eds.) Proceedings of the 6th OOPSLA Workshop on Domain-Specific Modeling 2006 (DSM 2006), Volume TR-37 of Technical report., Portland, Oregon, USA, pp. 150–158. Jyväskylä University, Finland (2006)

    Google Scholar 

  8. Stahl, T., Voelter, M., Czarnecki, K.: Model-Driven Software Development: Technology, Engineering, Management. Wiley, Chichester (2006)

    Google Scholar 

  9. Fowler, M.: Domain Specific Languages. Addison-Wesley Professional, Boston (2010)

    Google Scholar 

  10. Rumpe, B.: Agile Modellierung mit UML. Xpert Press, 2nd edn. Springer, Berlin (2012)

    Book  Google Scholar 

  11. Greifenberg, T., Hölldobler, K., Kolassa, C., Look, M., Mir Seyed Nazari, P., Müller, K., Navarro Perez, A., Plotnikov, D., Reiss, D., Roth, A., Rumpe, B., Schindler, M., Wortmann, A.: A comparison of mechanisms for integrating handwritten and generated code for object-oriented programming languages. In: Hammoudi, S., Pires, L.F., Desfray, P., Filipe, J.F. (eds.) Proceedings of the 3rd International Conference on Model-Driven Engineering and Software Development, pp. 74–85. SciTePress, Angers (2015)

    Google Scholar 

  12. Clements, P., Northrop, L.: Software Product Lines: Practices and Patterns. Addison-Wesley, Reading (2002)

    Google Scholar 

  13. Pohl, K., Böckle, G., van der Linden, F.J.: Software Product Line Engineering: Foundations, Principles and Techniques. Springer-Verlag New York, Inc., Secaucus (2005)

    Book  MATH  Google Scholar 

  14. Siedersleben, J.: Moderne Software-Architektur: Umsichtig Planen, Robust Bauen mit Quasar. Dpunkt.Verlag GmbH, Heidelberg (2004)

    Google Scholar 

  15. Grönniger, H., Krahn, H., Rumpe, B., Schindler, M., Völkel, S.: MontiCore: a framework for the development of textual domain specific languages. In: 30th International Conference on Software Engineering (ICSE 2008), Companion Volume, Leipzig, Germany, 10–18 May 2008 (2008)

    Google Scholar 

  16. Krahn, H., Rumpe, B., Völkel, S.: Monticore: modular development of textual domain specific languages. In: Paige, R., Meyer, B. (eds.) TOOLS EUROPE 2008. LNBIP 11, vol. 11, pp. 297–315. Springer, Heidelberg (2008)

    Chapter  Google Scholar 

  17. Krahn, H., Rumpe, B., Völkel, S.: MontiCore: a framework for compositional development of domain specific languages. Int. J. Softw. Tools Technol. Transf. (STTT) 12, 353–372 (2010)

    Article  Google Scholar 

  18. Völkel, S.: Kompositionale entwicklung domänenspezifischer sprachen. In: Number 9 in Aachener Informatik-Berichte, Software Engineering. Shaker Verlag (2011)

    Google Scholar 

  19. Look, M., Navarro Pérez, A., Ringert, J.O., Rumpe, B., Wortmann, A.: Black-box integration of heterogeneous modeling languages for cyber-physical systems. In: Combemale, B., De Antoni, J., France, R.B. (eds.) Proceedings of the 1st Workshop on the Globalization of Modeling Languages (GEMOC). CEUR Workshop Proceedings, vol. 1102, Miami, Florida, USA (2013)

    Google Scholar 

  20. Haber, A., Look, M., Mir Seyed Nazari, P., Navarro Perez, A., Rumpe, B., Völkel, S., Wortmann, A.: Integration of heterogeneous modeling languages via extensible and composable language components. In: Hammoudi, S., Pires, L.F., Desfray, P., Filipe, J.F. (eds.) Proceedings of the 3rd International Conference on Model-Driven Engineering and Software Development, pp. 19–31. SciTePress, Angers (2015)

    Google Scholar 

  21. Murphy, G.C., Notkin, D., Sullivan, K.J.: Software reflexion models: bridging the gap between design and implementation. IEEE Trans. Softw. Eng. 27, 364–380 (2001)

    Article  Google Scholar 

  22. Terra, R., Valente, M.T.: A dependency constraint language to manage object-oriented software architectures. Softw. Pract. Experience 39, 1073–1094 (2009)

    Article  Google Scholar 

  23. Passos, L., Terra, R., Valente, M., Diniz, R., Mendon, N.: Static architecture-conformance checking: an illustrative overview. IEEE Softw. 27, 82–89 (2010)

    Article  Google Scholar 

  24. Bellon, S., Koschke, R., Antoniol, G., Krinke, J., Merlo, E.: Comparison and evaluation of clone detection tools. IEEE Trans. Softw. Eng. 33, 577–591 (2007)

    Article  Google Scholar 

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

    MATH  Google Scholar 

  26. Gil, J.Y., Maman, I.: Micro patterns in java code. In: Proceedings of the 20th Annual ACM SIGPLAN Conference on Object-oriented Programming, Systems, Languages, and Applications. OOPSLA 2005, pp. 97–116. ACM, New York (2005)

    Google Scholar 

  27. Clarke, P., Malloy, B., Gibson, P.: Using a taxonomy tool to identify changes in OO Software. In: Proceedings of Seventh European Conference on Software Maintenance and Reengineering, 2003, pp. 213–222 (2003)

    Google Scholar 

  28. Clarke, P.J., Babich, D., King, T.M., Kibria, B.G.: Analyzing clusters of class characteristics in OO applications. J. Syst. Soft. 81, 2269–2286 (2008)

    Article  Google Scholar 

  29. Zaidman, A., Demeyer, S.: Automatic identification of key classes in a software system using webmining techniques. J. Softw. Maintenance Evol. Res. Pract. 20, 387–417 (2008)

    Article  Google Scholar 

  30. Dragan, N., Collard, M.L., Maletic, J.I.: Reverse engineering method stereotypes. In: Proceedings of the 22nd IEEE International Conference on Software Maintenance. ICSM 2006, pp. 24–34. IEEE Computer Society, Washington (2006)

    Google Scholar 

  31. Dragan, N., Collard, M.L., Maletic, J.I.: Using method stereotype distribution as a signature descriptor for software systems. In: 2009 IEEE International Conference on Software Maintenance, ICSM 2009, pp. 567–570 (2009)

    Google Scholar 

  32. Dragan, N., Collard, M.L., Maletic, J.I.: Automatic identification of class stereotypes. In: Proceedings of the 2010 IEEE International Conference on Software Maintenance, ICSM 2010, pp. 1–10. IEEE Computer Society, Washington (2010)

    Google Scholar 

  33. Lanza, M., Ducasse, S.: A categorization of classes based on the visualization of their internal structure: the class blueprint. In: Proceedings of the 16th ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications, OOPSLA 2001, pp. 300–311. ACM, New York (2001)

    Google Scholar 

  34. Robbes, R., Ducasse, S., Lanza, M.: Microprints: a pixelbased semantically rich visualization of methods. In: In Proceedings of ESUG 2005, 13th International Smalltalk Conference, pp. 131–157 (2005)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Pedram Mir Seyed Nazari .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2015 Springer International Publishing Switzerland

About this paper

Cite this paper

Mir Seyed Nazari, P., Rumpe, B. (2015). Identifying Code Generation Candidates Using Software Categories. In: Desfray, P., Filipe, J., Hammoudi, S., Pires, L. (eds) Model-Driven Engineering and Software Development. MODELSWARD 2015. Communications in Computer and Information Science, vol 580. Springer, Cham. https://doi.org/10.1007/978-3-319-27869-8_21

Download citation

  • DOI: https://doi.org/10.1007/978-3-319-27869-8_21

  • Published:

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-319-27868-1

  • Online ISBN: 978-3-319-27869-8

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics