Uma Arquitetura Aberta para Geradores de Artefatos
Resumo
A utilização de geradores de artefatos no processo de desenvolvimento de software proporciona ganhos de escala. Porém a adoção desta tecnologia está restrita a um pequeno número de organizações. A justificativa para esta realidade, além dos aspectos sociais e culturais da adoção de uma nova tecnologia, deve-se a complexidade na construção deste tipo de ferramenta. O presente trabalho descreve uma proposta de arquitetura aberta para geradores de artefatos resultante de pesquisas feitas nos últimos anos sobre simplificação do processo de construção de geradores. Na arquitetura proposta, cada módulo do gerador, é implementado independentemente dos demais módulos através de ferramentas de ampla utilização industrial. A arquitetura proposta foi implementada utilizando uma ferramenta CASE, um banco de dados relacional, e a linguagem de template ASP.
Referências
Czarnecki, K.; Eisenecker, U.; Generative Programming: Methods, Tools, and Applications; Addison Wesley; NJ; 2000
Clements, P; Northrop, L.; Software Product Lines: Practices and Patterns; Addison Wesley; NJ; 2002
Weiss, D.; Lai, C.; Software Product-Line Engineering: A Family-Based Software Development Process; Addison Wesley; NJ; 1999
Wake, W.; Extreme Prgramming Explored; Addison Wesley; NJ; 2001
Balzer, R.; "A Fifteen-Year Perspective on Automatic Programming"; In Ted J. Biggerstaff and Alan Perlis (Eds.); Software Reusability; Addison-Wesley/ACM Press; 1989; pp 289-311.
Batory, D.; Smaragdakis, Y.; "Application Generators"; Wiley Encyclopedia of Electrical and Electronics Engineering - Software Engineering Volume; John Wiley and Sons; 1999
Masiero, P.C.; Meira, C. A.; "Development and Instantiation of a Generic Application Generator"; J. Systems and Software; 23; 1993; pp 27-37.
Cleaveland, C.; "Building Application Generators"; IEEE Software 5(4); 1988; pp 25-33
Neighbors, J. M.; "Draco: A Method for Engineering Reusable Software Systems"; In Ted J. Biggerstaff and Alan Perlis (Eds.); Software Reusability; Addison-Wesley/ACM Press; 1989; pp 295-319
Levy, L.; "A Metaprogramming Method and Its Economic Justification"; IEEE Transactions on Software Engineering 12(2); 1986; pp 272-277
Hohenstein, U.; "An Approach for Generating Object-Oriented Interfaces for Relational Databases"; In Proceedings of the Second International Symposium on Constructing Software Engineering Tools; 2000; pp 101-111.
Milicev, D.; "Extended Object Diagrams for Transformational Specifications in Modeling Environments"; In Proceedings of the Second International Symposium on Constructing Software Engineering Tools; 2000; pp. 121-131.
Plantec, A.; Ribaud, V.; "Using and Re-using Application Genetarors"; In Proceedings of the First International Symposium on Constructing Software Engineering Tools; 1999; pp 59-65.
Emde-Boas, G. v.; "Architecture Based Code Generation from UML Models"; OOPSLA'2001 Workshop on Generative Programming; 2001; URL http://www.generative-programming.org/oopsla01-workshop.html
Staa, A.; Manual de Referência: Talisman: Ambiente de Engenharia de Software Assistido por Computador; Rio de Janeiro; 1993
Bettin, J.; "Practical Use of Generative Techniques in Software Development Projects: an Approach that Survives in Harsh Environments"; OOPSLA'2001 Workshop on Generative Programming; 2001; URL http://www.generative-programming.org/oopsla01-workshop.html
Rational Co.; Rose 98 Rose Extensibility User's Guide, 1998.
Franca, L.PA.; "Um Processo de Construção de Geradores de Artefatos"; Tese de Doutorado; PUC-Rio; 2000
Staa, A.; Franca, L.PA.; "Geradores de Artefatos: Implementação e Instanciação de Frameworks"; Anais do XV Simpósio Brasileiro de Engenharia de Software; SBC 2001; pp 302-315
Staa, A.; Franca, L.PA.; "ProtoBD: Prototipador de Modelo de Dados"; Anais do XIV Simpósio Brasileiro de Engenharia de Software; SBC 2000; pp 374-375
Staa, A.; Franca, L.PA.; "A Construction Process for Artifacts Generators using a CASE Tool"; ICSR7 Workshop on Generative Programming 2002; Austin; Texas; EUA, http://www.cwi.nl/events/2002/GP2002/GP2002-Proceedings.pdf
Brodsky, S.; "XMI Opens Application Interchange"; IBM, 1999. http://www-3.ibm.com/software/ad/standards/xmiwhite0399.pdf
Neighbors, J.; "Techniques for Generating Communicating Systems"; ICSR7 WorkShop on Generative Programming 2002; Austin, Texas, EUA, Apr. 2002; URL http://www.cwi.nl/events/2002/GP2002/GP2002-Proceedings.pdf
Nentwich, C.; Emmerich, W.; Finkelstein, A.; Zisman, A.; "BOX: Browsing objects in XML"; Software-Practice and Experience 30; 2000; pp 1661-1676
Cleaveland, C.; Program Generators using Java and XML; Prentice-Hall; 2000
Basset, P.; "Frame-Based Software Engineering"; IEEE Software 4(4); 1987; pp 916
Basset, P.; Framing Software Reuse; Prentice-Hall; 1996
Basset, P.; "The Theory and Practice of Adaptive Reuse"; Symposium on Software Reusability; 1997; pp 2-9
Oliveira, A.; Oliveira, J.; "Uma Arquitetura para Reduzir a Complexidade e Aumentar a Produtividade do Ciclo de Vida do Desenvolvimento de Sistemas"; Anais do XIII Simpósio Brasileiro de Engenharia de Software; SBC; 1999; pp 181-194
Barrére, T.; Prado, A.; Bonafé, V.; "CASE Orientada a Objetos com Múltiplas Visões de Requisitos e Implementação Automática de Sistemas-MVCASE"; Anais do XIII Simpósio Brasileiro de Engenharia de Software; SBC; 1999; pp 113-128