Integrating Generative and Aspect-Oriented Technologies
Resumo
Over the last years, two new software engineering approaches have been proposed: generative programming and aspect-oriented software development. Generative programming addresses the study and definition of methods and tools that enable the automatic production of system families from a high-level specification. Aspect-oriented software development has been proposed as a technique for improving separation of concerns in the construction of OO software and supporting improved reusability and ease of evolution. The use of aspect-oriented techniques in a definition of a generative approach can bring benefits to the modeling and generation of crosscutting features since early development stages. This paper presents our experience in the definition of an aspect-oriented generative approach. The proposed approach explores the multi-agent systems domain to enable the code generation of agent architectures.
Referências
Bellifemine, F., Poggi, A., Rimassi, G. JADE: A FIPA-Compliant Agent Framework. Proc. Practical Applications of Intelligent Agents and Multi-Agents, pp. 97-108, April 1999.
Booch, G., Jacobson, I., Rumbaugh, J. Unified Modeling Language - User's Guide. Addison-Wesley,1999.
Budinsky, F., Steinberg, D., Merks, E., Ellersick, R., Grose, T. Eclipse Modeling Framework, Addison-Wesley, 2003.
Cechticky, V. et al. A Generative Approach to Framework Instantiation. Proceedings of the GPCE'2003, Erfurt, Germany, September 2003.
Chavez, C. A Model-Driven Approach to Aspect-Oriented Design. PhD Thesis, Computer Science Department, PUC-Rio, April 2004.
Colyer, A., Rashid,A., Blair,G. On the Separation of Concerns in Program Families. Technical Report, Computing Department, Lancaster University, January 2004.
Czarnecki, K., Eisenecker, U. Generative Programming: Methods, Tools, and Applications, Addison-Wesley, 2000.
Early Aspect Home-Page, Available at URL http://www.early-aspects.net/
Fayad, M., Schmidt, D., Johnson, R. Building Application Frameworks: Object-Oriented Foundations of Framework Design. John Wiley & Sons, September 1999.
Fontoura, M. et al. Using Domain Specific Languages to Instantiate Object-Oriented Frameworks. IEE Proceedings - Software, 147(4), 109-116, August 2000.
Gamma, E., Helm, R., Johnson, R., Vlissides, J. Design Patterns: Elements of Reusable Object-Oriented Software, Addison-Wesley Publishing, 1995.
Garcia, A. From Objects to Agents: An Aspect-Oriented Approach. PhD Thesis, Computer Science Department, PUC-Rio, April 2004.
Garcia, A., Cortés, M., Lucena, C. A Web Environment for the Development and Maintenance of E-Commerce Portals based on a Groupware Approach. Proceedings of the Information Resources Management Association International Conference (IRMA'01), Toronto, May 2001.
Garcia, A., Lucena, C. Software Engineering for Large-Scale Multi-Agent Systems. ACM Software Engineering Notes, Vol. 27, Number 5, September 2002, pp. 82-88.
Garcia, A., Lucena, C., Cowan,D. Agents in Object-Oriented Software Engineering. Software: Practice & Experience, Elsevier, V. 34, Issue 5, May 2004, pp. 489-521.
Garcia, A., Silva,V., Chavez, C., Lucena, C. Engineering Multi-Agent Systems with Aspects and Patterns. Journal Brazilian Computer Society, July 2002,1(8),pp.57-72.
Gray, J., Bapty, T., Neema, S., Schmidt, D., Gokhale,A., Natarajan,B. An Approach for Supporting Aspect-Oriented Domain Modeling. Proceedings of the GPCE'2003, pp. 151-168 Erfurt, Germany, September 2003.
Hanenberg, S., Unland, R., Schmidmeier, A. AspectJ Idioms for Aspect-Oriented Software Construction. Proceedings of the 8th European Conference on Pattern Languages of Programming (EuroPlop'03), Irsee, Germany, June 2003.
JAXB Eclipse Plug-in. Available at URL http://sourceforge.net/projects/jaxb-builder/
Kang, K., Cohen, S., Hess, J., Novak, W., Peterson, A. Feature-Oriented Domain Analysis (FODA): Feasibility Study. Technical Report CMU/SE4-90-TR-21, Software Engineering Institute, Carnegie Mellon University, 1990.
Kiczales, G., Hilsdale, E., Hugunin, J., Kersten, M., Palm, J., Griswold, W. Getting Started with AspectJ. Communications of the ACM. October 2001.
Kiczales, G., Lamping, J., Mendhekar, A., Maeda, C., Lopes, C., Loingtier, J.-M., Irwin, J. Aspect-Oriented Programming. In Proceedings of the ECOOP'97, LNCS (1241), Springer-Verlag, Finland, June 1997.
Lavender,R.,Schmidt,D. Active Object:an Object Behavioral Pattern for Concurrent Programming. In: Pattern Languages of Program Design, Addison-Wesley, 1996.
Pinto, M., Fuentes, L., Fayad, M., Troya, J. Separation of Coordination in a Dynamic Aspect Oriented Framework. Proceedings of the AOSD'02, April 2002, Enschede, Netherlands.
Pinto, M., Fuentes, L., Troya, J. DAOP-ADL: An Architecture Description Language for Dynamic Component and Aspect-Based Development. Proceedings of the GPCE'2003, Erfurt, Germany, September 2003, pp. 118-137.
Prieto-Diaz, R. Domain Analysis for Reusability. Proceedings of the 11th COMPSAC - Computer Software & Applications Conference, Tokyo, Japan, October 1987, pp. 23-29.
Prieto-Diaz, R., Arango, G. (Eds). Domain Analysis and Software Systems Modeling. IEEE Computer Society Press, Los Alamitos, CA, 1991.
Rashid, A., Moreira, A., Araújo, J. Modularization and Composition of Aspectual Requirements. Proceedings of the AOSD'2003. 2nd International Conference on Aspect-Oriented Software Development, ACM, pp. 11-20.
Shavor, S., D'Anjou, J., Fairbrother, S., Kehn, D., Kellerman, J., McCarthy, P. The Java Developer's Guide to Eclipse. Addison-Wesley, 2003.
Shonle, M., Lieberherr, K., Shah, A. XAspects: An Extensible System for Domain Specific Aspect Languages. In Companion of the OOPSLA'2003, pp. 28-37.
Silva, V., Garcia, A., Brandao, A., Chavez, C., Lucena, C., Alencar, P. Taming Agents and Objects in Software Engineering. In: Software Engineering for Large-Scale Multi-Agent Systems, LNCS 2603, Springer-Verlag, 2003.
Tarr, P., Osher, H., Harrison, W., Sutton Jr, S. N Degrees of Separation: Multi-Dimensional Separation of Concerns. In Proceedings of the 21st International Conference on Software Engineering (ICSE'99), May 1999, pp. 107-119.
XML Schema. Available at URL http://www.w3.org/XML/Schema.