Aspect-oriented Code Generation
Resumo
O amadurecimento das abordagens de modelagem de software orientado a aspectos fornece subsídios para a geração automática de código a partir de modelos UML. Neste artigo são descritos diversos mecanismos para a geração de código a partir de modelos Theme/UML, e são discutidas algumas dificuldades envolvidas neste processo.
Referências
Amaya, P., Gonzalez, C. and Murillo, J. M. (2005), "Towards a Subject-Oriented Model-Driven Framework," in Aspect-Based and Model-Based Separation of Concerns in Software Systems.
ArgoUML (2005), http://argouml.tigris.org/, accessed on 2005-10.
Autogen (2005), http://www.gnu.org/software/autogen/, accessed on 2005-09.
Basch, M. and Sanchez, A. (2003), "Incorporating Aspects into the UML," in Third International Workshop on Aspect Oriented Modeling.
Biddle, R., Martin, A. and Noble, J. (2003), "No Name: Just notes on software reuse," in ACM SIGPLAN Notices, vol. 38, pp. 76-96.
Biggerstaff, T. J. (1998), "A perspective of generative reuse," in Annals of Software Engineering, vol. 5, pp. 169-226.
Biggerstaff, T. J. (1999), "Reuse technologies and their niches," in Proceedings of the 21st international conference on Software engineering. Los Angeles, California, United States: IEEE Computer Society Press.
Chaves, R. (2004), "Aspects and MDA: Creating aspect-based executable models," Master Thesis. Florianópolis.
Chavez, C. and Lucena, C. (2002), "A Metamodel for Aspect-Oriented Modeling," in Workshop on Aspect-Oriented Modeling with UML (AOSD-2002).
Clarke, S. (2001), "Composition of Object-Oriented Software Design Models," PhD thesis, Dublin City University, Dublin, Ireland.
Clarke, S. and Baniassad, E. (2004), "Theme: An Approach for Aspect-Oriented Analysis and Design," in Proceedings of the International Conference on Software Engineering 2004.
Clarke, S., Harrison, W., Ossher, H. and Tarr, P. (1999), "Subject-oriented design: towards improved alignment of requirements, design, and code," in ACM SIGPLAN Notices, vol. 34, pp. 325-339.
Clarke, S. and Walker, R. J. (2001), "Separating Crosscutting Concerns across the Lifecycle: From Composition Patterns to AspectJ and Hyper/J," in Technical Report TCD-CS-2001-15 and UBC-CS-TR-2001-05, Trinity College, Dublin and University of British Columbia.
Clarke, S. and Walker, R. J. (2002), "Towards a standard design language for AOSD," in Proceedings of the 1st international conference on Aspect-oriented software development. Enschede, The Netherlands: ACM Press.
CGN (2005), Code Generation Network, http://www.codegeneration.net/, accessed on 2005-09.
Dodds, L. (2005), “Code generation using XSLT”, [link], accessed on 2005-12.
Codegen (2005), http://forge.novell.com/modules/xfmod/project/?codegen, accessed on 200509.
CodeSmith (2005), http://www.ericjsmith.net/codesmith/, accessed on 2005-09.
Fowler, M. (1999), “Refactoring: improving the design of existing code,” Addison-Wesley Longman.
Gamma, E., Helm, R., Johnson, R. and Vlissides, J. (1994), “Design Patterns,” Addison-Wesley.
Garcia, A., Sant’Anna, C., Figueiredo, E., Kulesza, U., Lucena, C. and Staa, A. v. (2005), "Modularizing Design Patterns with Aspects: A Quantitative Study," in Proc. 4rd Int’ Conf. on Aspect-Oriented Software Development (AOSD-2005).
González, C., Murillo, J. M. and Amaya, P. A. (2005), "Aspect-Oriented Analysis: A MDA Based Approach," in Early Aspects: Aspect-Oriented Requirements Engineering and Architecture Design.
Groher, I. and Baumgarth, T. (2004), "Aspect-Orientation from Design to Code," in Early Aspects: Aspect-Oriented Requirements Engineering and Architecture Design.
Hannemann, J. and Kiczales, G. (2002), "Design pattern implementation in Java and AspectJ," in Proceedings of the 17th ACM conference on Object-oriented programming, systems, languages, and applications.
Kiczales, G., Hilsdale, E., Hugunin, J., Kersten, M., Palm, J. and Griswold, W. G. (2001), "An overview of AspectJ," in Proceedings of the 15th Europeen Conference on Object-Oriented Programming (ECOOP 2001).
Kiczales, G., Lamping, J., Mendhekar, A., Maeda, C., Lopes, C., Loingtier, J.-M. and Irwin, J. (1997), "Aspect-Oriented Programming," in Proceedings of the 11th Europeen Conference on Object-Oriented Programming (ECOOP-97).
Krueger, C. W. (1992), "Software Reuse," in ACM Computing Surveys, vol. 24, p. 131-183.
Kulesza, U., Garcia, A. F., Lucena, C. J. P. d. and Alencar, P. S. C. (2005), "A Generative Approach for Multi-agent System Development," in SELMAS 2004 Software Engineering for Multi-Agent Systems III.
Kulesza, U. and Lucena, A. G. C. (2004), "Towards a Method for the Development of AspectOriented Generative Approaches," in Early Aspects 2004: Aspect-Oriented Requirements Engineering and Architecture Design Workshop at OOPSLA 2004.
Marchal, B. (2004), “UML, XMI, and code generation”, http://www-128.ibm.com/developerworks/xml/library/x-wxxm23/.
Miller, J. and Mukerji, J. (2003), "MDA Guide Version 1.0.1." http://www.omg.org/docs/omg/03-06-01.pdf.
OMG MDA (2005), Model Driven Architecture, http://www.omg.org/mda/, accessed on 2005-11.
OMG MOF (2006), MetaObject Facility Specification, version 1.4, http://www.omg.org/mof/, accessed on 2006-02.
Monteiro, M. and Fernandes, J. (2005), "Towards a Catalog of Aspect-Oriented Refactorings," in Proc. 4rd Int’ Conf. on Aspect-Oriented Software Development (AOSD-2005).
Pawlak, R., Duchien, L., Florin, G., Legond-Aubry, F., Seinturier, L. and Martelli, L. (2002), "A UML Notation for Aspect-Oriented Software Design," in Workshop on Aspect-Oriented Modeling with UML (AOSD-2002).
Pinto, M., Fuentes, L. and Troya, J. M. (2005), "A Component and Aspect Dynamic Platform", in The Computer Journal 48(4):401-420.
Piveta, E. K., Hecht, M., Pimenta, M. S. and Price, R. T. (2005), "Bad Smells em Sistemas Orientados a Aspectos," in Simpósio Brasileiro de Engenharia de Software (SBES), Uberlandia Brazil.
Poseidon (2005), http://gentleware.com/, accessed on 10/2005.
Rashid, A., Chitchyan, R., Sawyer, P., Garcia, A., Alarcon, M. P., Bakker, J., Tekinerdogan, B., Clarke, S. and Jackson, A. (2005), "Survey of Aspect-Oriented Analysis and Design Approaches," in AOSD-Europe 2005-05.
Rational Software (2005), http://www-306.ibm.com/software/rational/, accessed on 2005-11.
Stein, D., Hanenberg, S. and Unland, R. (2002), "An UML-based Aspect-Oriented Design Notation," in Proc. 1st Int’ Conf. on Aspect-Oriented Software Development (AOSD-2002).
OMG UML (2004), Unified Modeling Language Specification, version 2.0, http://www.omg.org/technology/documents/formal/uml.htm, accessed on 2005-12-15.
Velocity (2005), http://jakarta.apache.org/velocity/, accessed on 2005-09.
OMG XMI (2005), XML Metadata Interchange Mapping Specification, version 2.1, http://www.omg.org/technology/documents/formal/xmi.htm, accessed on 2006-01.
XSLT 2.0 (2005), Extensible Stylesheet Language Transformations version 2.0, http://www.w3.org/TR/xslt20/, accessed on 2005-12.
ArgoUML (2005), http://argouml.tigris.org/, accessed on 2005-10.
Autogen (2005), http://www.gnu.org/software/autogen/, accessed on 2005-09.
Basch, M. and Sanchez, A. (2003), "Incorporating Aspects into the UML," in Third International Workshop on Aspect Oriented Modeling.
Biddle, R., Martin, A. and Noble, J. (2003), "No Name: Just notes on software reuse," in ACM SIGPLAN Notices, vol. 38, pp. 76-96.
Biggerstaff, T. J. (1998), "A perspective of generative reuse," in Annals of Software Engineering, vol. 5, pp. 169-226.
Biggerstaff, T. J. (1999), "Reuse technologies and their niches," in Proceedings of the 21st international conference on Software engineering. Los Angeles, California, United States: IEEE Computer Society Press.
Chaves, R. (2004), "Aspects and MDA: Creating aspect-based executable models," Master Thesis. Florianópolis.
Chavez, C. and Lucena, C. (2002), "A Metamodel for Aspect-Oriented Modeling," in Workshop on Aspect-Oriented Modeling with UML (AOSD-2002).
Clarke, S. (2001), "Composition of Object-Oriented Software Design Models," PhD thesis, Dublin City University, Dublin, Ireland.
Clarke, S. and Baniassad, E. (2004), "Theme: An Approach for Aspect-Oriented Analysis and Design," in Proceedings of the International Conference on Software Engineering 2004.
Clarke, S., Harrison, W., Ossher, H. and Tarr, P. (1999), "Subject-oriented design: towards improved alignment of requirements, design, and code," in ACM SIGPLAN Notices, vol. 34, pp. 325-339.
Clarke, S. and Walker, R. J. (2001), "Separating Crosscutting Concerns across the Lifecycle: From Composition Patterns to AspectJ and Hyper/J," in Technical Report TCD-CS-2001-15 and UBC-CS-TR-2001-05, Trinity College, Dublin and University of British Columbia.
Clarke, S. and Walker, R. J. (2002), "Towards a standard design language for AOSD," in Proceedings of the 1st international conference on Aspect-oriented software development. Enschede, The Netherlands: ACM Press.
CGN (2005), Code Generation Network, http://www.codegeneration.net/, accessed on 2005-09.
Dodds, L. (2005), “Code generation using XSLT”, [link], accessed on 2005-12.
Codegen (2005), http://forge.novell.com/modules/xfmod/project/?codegen, accessed on 200509.
CodeSmith (2005), http://www.ericjsmith.net/codesmith/, accessed on 2005-09.
Fowler, M. (1999), “Refactoring: improving the design of existing code,” Addison-Wesley Longman.
Gamma, E., Helm, R., Johnson, R. and Vlissides, J. (1994), “Design Patterns,” Addison-Wesley.
Garcia, A., Sant’Anna, C., Figueiredo, E., Kulesza, U., Lucena, C. and Staa, A. v. (2005), "Modularizing Design Patterns with Aspects: A Quantitative Study," in Proc. 4rd Int’ Conf. on Aspect-Oriented Software Development (AOSD-2005).
González, C., Murillo, J. M. and Amaya, P. A. (2005), "Aspect-Oriented Analysis: A MDA Based Approach," in Early Aspects: Aspect-Oriented Requirements Engineering and Architecture Design.
Groher, I. and Baumgarth, T. (2004), "Aspect-Orientation from Design to Code," in Early Aspects: Aspect-Oriented Requirements Engineering and Architecture Design.
Hannemann, J. and Kiczales, G. (2002), "Design pattern implementation in Java and AspectJ," in Proceedings of the 17th ACM conference on Object-oriented programming, systems, languages, and applications.
Kiczales, G., Hilsdale, E., Hugunin, J., Kersten, M., Palm, J. and Griswold, W. G. (2001), "An overview of AspectJ," in Proceedings of the 15th Europeen Conference on Object-Oriented Programming (ECOOP 2001).
Kiczales, G., Lamping, J., Mendhekar, A., Maeda, C., Lopes, C., Loingtier, J.-M. and Irwin, J. (1997), "Aspect-Oriented Programming," in Proceedings of the 11th Europeen Conference on Object-Oriented Programming (ECOOP-97).
Krueger, C. W. (1992), "Software Reuse," in ACM Computing Surveys, vol. 24, p. 131-183.
Kulesza, U., Garcia, A. F., Lucena, C. J. P. d. and Alencar, P. S. C. (2005), "A Generative Approach for Multi-agent System Development," in SELMAS 2004 Software Engineering for Multi-Agent Systems III.
Kulesza, U. and Lucena, A. G. C. (2004), "Towards a Method for the Development of AspectOriented Generative Approaches," in Early Aspects 2004: Aspect-Oriented Requirements Engineering and Architecture Design Workshop at OOPSLA 2004.
Marchal, B. (2004), “UML, XMI, and code generation”, http://www-128.ibm.com/developerworks/xml/library/x-wxxm23/.
Miller, J. and Mukerji, J. (2003), "MDA Guide Version 1.0.1." http://www.omg.org/docs/omg/03-06-01.pdf.
OMG MDA (2005), Model Driven Architecture, http://www.omg.org/mda/, accessed on 2005-11.
OMG MOF (2006), MetaObject Facility Specification, version 1.4, http://www.omg.org/mof/, accessed on 2006-02.
Monteiro, M. and Fernandes, J. (2005), "Towards a Catalog of Aspect-Oriented Refactorings," in Proc. 4rd Int’ Conf. on Aspect-Oriented Software Development (AOSD-2005).
Pawlak, R., Duchien, L., Florin, G., Legond-Aubry, F., Seinturier, L. and Martelli, L. (2002), "A UML Notation for Aspect-Oriented Software Design," in Workshop on Aspect-Oriented Modeling with UML (AOSD-2002).
Pinto, M., Fuentes, L. and Troya, J. M. (2005), "A Component and Aspect Dynamic Platform", in The Computer Journal 48(4):401-420.
Piveta, E. K., Hecht, M., Pimenta, M. S. and Price, R. T. (2005), "Bad Smells em Sistemas Orientados a Aspectos," in Simpósio Brasileiro de Engenharia de Software (SBES), Uberlandia Brazil.
Poseidon (2005), http://gentleware.com/, accessed on 10/2005.
Rashid, A., Chitchyan, R., Sawyer, P., Garcia, A., Alarcon, M. P., Bakker, J., Tekinerdogan, B., Clarke, S. and Jackson, A. (2005), "Survey of Aspect-Oriented Analysis and Design Approaches," in AOSD-Europe 2005-05.
Rational Software (2005), http://www-306.ibm.com/software/rational/, accessed on 2005-11.
Stein, D., Hanenberg, S. and Unland, R. (2002), "An UML-based Aspect-Oriented Design Notation," in Proc. 1st Int’ Conf. on Aspect-Oriented Software Development (AOSD-2002).
OMG UML (2004), Unified Modeling Language Specification, version 2.0, http://www.omg.org/technology/documents/formal/uml.htm, accessed on 2005-12-15.
Velocity (2005), http://jakarta.apache.org/velocity/, accessed on 2005-09.
OMG XMI (2005), XML Metadata Interchange Mapping Specification, version 2.1, http://www.omg.org/technology/documents/formal/xmi.htm, accessed on 2006-01.
XSLT 2.0 (2005), Extensible Stylesheet Language Transformations version 2.0, http://www.w3.org/TR/xslt20/, accessed on 2005-12.
Publicado
16/10/2006
Como Citar
HECHT, Marcelo Victora; PIVETA, Eduardo Kessler; PIMENTA, Marcelo Soares; PRICE, R. Tom.
Aspect-oriented Code Generation. In: SIMPÓSIO BRASILEIRO DE ENGENHARIA DE SOFTWARE (SBES), 20. , 2006, Florianópolis.
Anais [...].
Porto Alegre: Sociedade Brasileira de Computação,
2006
.
p. 209-223.
DOI: https://doi.org/10.5753/sbes.2006.21214.