1 / 19

Gerador de código para camada de acesso a dados “VIRIATO”

Projecto de final de curso – 2004/2005. Gerador de código para camada de acesso a dados “VIRIATO”. APRESENTAÇÃO INTERCALAR 11 de Março de 2005. Agenda. Problema Solução Problemas associados à solução Soluções de implementação Desenho da aplicação Estado actual. 1. 2. 3. 4. 5. 6.

ania
Download Presentation

Gerador de código para camada de acesso a dados “VIRIATO”

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Projecto de final de curso – 2004/2005 Gerador de código para camada de acesso a dados“VIRIATO” APRESENTAÇÃO INTERCALAR 11 de Março de 2005 Instituto Superior de Engenharia de Lisboa Departamento de Engenharia de Electrónica e Telecomunicações Licenciatura em Engenharia Informática e de Computadores

  2. Agenda Problema Solução Problemas associados à solução Soluções de implementação Desenho da aplicação Estado actual 1 2 3 4 5 6 Instituto Superior de Engenharia de Lisboa Departamento de Engenharia de Electrónica e Telecomunicações Licenciatura em Engenharia Informática e de Computadores

  3. Agenda Problema Solução Problemas associados à solução Soluções de implementação Desenho da aplicação Estado actual 1 2 3 4 5 6 Instituto Superior de Engenharia de Lisboa Departamento de Engenharia de Electrónica e Telecomunicações Licenciatura em Engenharia Informática e de Computadores

  4. O Problema • O tempo de desenvolvimento de uma Data Access Layer • Código repetitivo (muda apenas o modelo de dados) • O que é automatizável? • Passagem do modelo de objectos para o modelo relacional • Método bastante utilizado mas com perda de metadata: nível de hierarquias entre os objectos e relação N-N Usar Reverse Engineering? Instituto Superior de Engenharia de Lisboa Departamento de Engenharia de Electrónica e Telecomunicações Licenciatura em Engenharia Informática e de Computadores

  5. Agenda Problema Solução Problemas associados à solução Soluções de implementação Desenho da aplicação Estado actual 1 2 3 4 5 6 Instituto Superior de Engenharia de Lisboa Departamento de Engenharia de Electrónica e Telecomunicações Licenciatura em Engenharia Informática e de Computadores

  6. A Solução • Automatização das tarefas repetidas • Criar uma Data Access Layer específica e strong typed • Gerar o código da Data Access Layer com base em informação passada ao sistema • Disponibilizar o código gerado ao programador Instituto Superior de Engenharia de Lisboa Departamento de Engenharia de Electrónica e Telecomunicações Licenciatura em Engenharia Informática e de Computadores

  7. A Solução - Entradas do sistema • Model engineering • Construído a partir de um modelo de tipos descritos na linguagem UML • Uma das metodologias aconselhadas para modelação de problemas Instituto Superior de Engenharia de Lisboa Departamento de Engenharia de Electrónica e Telecomunicações Licenciatura em Engenharia Informática e de Computadores

  8. A Solução Framework Viriato Modelo UML Código compilado ou em ficheiros fonte Instituto Superior de Engenharia de Lisboa Departamento de Engenharia de Electrónica e Telecomunicações Licenciatura em Engenharia Informática e de Computadores

  9. Agenda Problema Solução Problemas associados à solução Soluções de implementação Desenho da aplicação Estado actual 1 2 3 4 5 6 Instituto Superior de Engenharia de Lisboa Departamento de Engenharia de Electrónica e Telecomunicações Licenciatura em Engenharia Informática e de Computadores

  10. Problemas associados à solução • Identificar um standard que represente o modelo de tipos, descrito na linguagem UML • Como gerar o código? • Como aumentar eficiência da Data Access Layer? Instituto Superior de Engenharia de Lisboa Departamento de Engenharia de Electrónica e Telecomunicações Licenciatura em Engenharia Informática e de Computadores

  11. Agenda Problema Solução Problemas associados à solução Soluções de implementação Desenho da aplicação Estado actual 1 2 3 4 5 6 Instituto Superior de Engenharia de Lisboa Departamento de Engenharia de Electrónica e Telecomunicações Licenciatura em Engenharia Informática e de Computadores

  12. Soluções de implementação • Utilização do standard XMI (XML Metadata Interchange) definido pela OMG – versão 1.2) • Uso de padrões de código parametrizáveis para a geração de código • Desenvolvimento de um mecanismo de cache • Código gerado para a plataforma .Net Instituto Superior de Engenharia de Lisboa Departamento de Engenharia de Electrónica e Telecomunicações Licenciatura em Engenharia Informática e de Computadores

  13. Soluções de implementação • Criação de tradutores (XSLT) do standard XMI para diferentes fabricantes Together <UML:Attribute xmi.id = 'S.16' name = ‘UmAtributo' visibility = ‘private' isSpecification = 'false' changeability = 'changeable' ownerScope = 'instance'> <UML:StructuralFeature.multiplicity> <UML:Multiplicity> <UML:Multiplicity.range> <UML:MultiplicityRange lower = '1' upper = '1'/> </UML:Multiplicity.range> </UML:Multiplicity> </UML:StructuralFeature.multiplicity> <UML:StructuralFeature.type> <Foundation.Core.Classifier xmi.idref = 'G.4'/> </UML:StructuralFeature.type> </UML:Attribute> . <UML:DataType xmi.id = 'G.4' name = 'String' visibility = 'public' isSpecification = 'false'/> Rational Rose <UML:Attribute xmi.id = 'S.291.2025.57.2' xmi.uuid = '41741876008C' name = ‘UmAtributo' visibility = 'private' isSpecification = 'false' ownerScope = 'instance' changeability = 'changeable' targetScope = 'instance' type = 'G.1' > <UML:StructuralFeature.multiplicity> <UML:Multiplicity > <UML:Multiplicity.range> <UML:MultiplicityRange xmi.id = 'id.2921925.1' lower = '1' upper = '1' /> </UML:Multiplicity.range> </UML:Multiplicity> </UML:StructuralFeature.multiplicity> </UML:Attribute> . <UML:DataType xmi.id = 'G.1' name = 'String' visibility = 'public' isSpecification = 'false' isRoot = 'false' isLeaf = 'false' isAbstract = 'false' /> Instituto Superior de Engenharia de Lisboa Departamento de Engenharia de Electrónica e Telecomunicações Licenciatura em Engenharia Informática e de Computadores

  14. Soluções de implementação • Modelo descrito em linguagem intermédia <ViriatoClass Name="Class3" Visibility="public" Abstract="false" Namespace="xmiTest"> <ViriatoAttribute Name="FieldClass1" Visibility="private" Type="xmiTest.testePackage.Class1" Changeability="changeable"/> <ViriatoAttribute Name=“UmAtributo" Visibility="private" Type=“String" Changeability="changeable"/> </ViriatoClass> Instituto Superior de Engenharia de Lisboa Departamento de Engenharia de Electrónica e Telecomunicações Licenciatura em Engenharia Informática e de Computadores

  15. Agenda Problema Solução Problemas associados à solução Soluções de implementação Desenho da aplicação Estado actual 1 2 3 4 5 6 Instituto Superior de Engenharia de Lisboa Departamento de Engenharia de Electrónica e Telecomunicações Licenciatura em Engenharia Informática e de Computadores

  16. Desenho da aplicação Viriato Templates XSLT Framework Fabricante Modelo descrito em linguagem intermédia Gerador de código Código compilado ou em ficheiros fonte XMI Instituto Superior de Engenharia de Lisboa Departamento de Engenharia de Electrónica e Telecomunicações Licenciatura em Engenharia Informática e de Computadores

  17. Agenda Problema Solução Problemas associados à solução Soluções de implementação Desenho da aplicação Estado actual 1 2 3 4 5 6 Instituto Superior de Engenharia de Lisboa Departamento de Engenharia de Electrónica e Telecomunicações Licenciatura em Engenharia Informática e de Computadores

  18. Estado actual • Tradutores (XSLT) do standard XMI • Gerador de Código com base em templates • Camada de acesso a dados sem mecanismo de cache • Acessos sistemáticos à fonte de dados Instituto Superior de Engenharia de Lisboa Departamento de Engenharia de Electrónica e Telecomunicações Licenciatura em Engenharia Informática e de Computadores

  19. Alunos Orientadores • João Manso (24480) • Pedro Rainho (24533) • Rodrigo Guerreiro (24628) • Luís Falcão • Paulo Pereira Instituto Superior de Engenharia de Lisboa Departamento de Engenharia de Electrónica e Telecomunicações Licenciatura em Engenharia Informática e de Computadores

More Related