27
sexta sexta - - feira, 30 de novembro de 2007 feira, 30 de novembro de 2007 GUICGAddin GUICGAddin 1 1 UNIVERSIDADE REGIONAL DE BLUMENAU PLUGIN PARA O EA: GERAÇÃO DE INTERFACES DE USUÁRIO A PARTIR DE UM PROJETO DE TELAS Acadêmico: Cleiton Eduardo Saturno Orientadora: Fabiane Barreto Vavassori Benitti

UNIVERSIDADE REGIONAL DE BLUMENAUcampeche.inf.furb.br/tccs/2007-I/2007-1cleitoneduardo... · 2007. 11. 30. · Planos de teste Diagramas da UML Interfaces de usuário... Visão geral

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

  • sextasexta--feira, 30 de novembro de 2007feira, 30 de novembro de 2007 GUICGAddinGUICGAddin 11

    UNIVERSIDADE REGIONAL DE BLUMENAU

    PLUGIN PARA O EA: GERAÇÃO DE INTERFACES DE USUÁRIO A PARTIR DE UM PROJETO DE TELAS

    Acadêmico: Cleiton Eduardo Saturno

    Orientadora: Fabiane Barreto Vavassori Benitti

  • sexta-feira, 30 de novembro de 2007 GUICGAddin 2

    Roteiro da apresentaçãoRoteiro da apresentação►► Introdução/JustificativaIntrodução/Justificativa►► Objetivos do trabalhoObjetivos do trabalho►► Embasamento teóricoEmbasamento teórico

    �� II--CASECASE�� EnterpriseEnterprise ArchitectArchitect�� COM/COM/ActiveXActiveX�� Geração de CódigoGeração de Código

    ►► Técnicas e ferramentasTécnicas e ferramentas►► EspecificaçãoEspecificação►► OperacionalidadeOperacionalidade►► Resultados e discussãoResultados e discussão►► ConclusãoConclusão►► ExtensõesExtensões

  • sexta-feira, 30 de novembro de 2007 GUICGAddin 3

    Recurso humano

    JustificativaJustificativa

    AutomationInterface

    Cliente Analista

    ImportExport

    Intuição

    Criatividade

    Lógica

    Percepção

    Sensibilidade

    Recurso computacional

  • sexta-feira, 30 de novembro de 2007 GUICGAddin 4

    ObjetivoObjetivo

    ►►PluginPlugin para a gerapara a geraçãção de co de cóódigo de telas de digo de telas de sistema a partir de um modelo de interface sistema a partir de um modelo de interface de usude usuáário projetado com o EA.rio projetado com o EA.

    �� componentes visuais: componentes visuais: screenscreen, , buttonbutton, , checkboxcheckbox, , comboboxcombobox, , panelpanel, radio e , radio e textboxtextbox;;

    �� gerar cgerar cóódigo fonte para as linguagens Java e digo fonte para as linguagens Java e DelphiDelphi..

  • sexta-feira, 30 de novembro de 2007 GUICGAddin 5

    II--CASECASE

    ►►Ferramentas CASE IntegradasFerramentas CASE Integradas

    ►►Sistemas com mais qualidadeSistemas com mais qualidade

    ►►Resposta rápida às mudançasResposta rápida às mudanças

    ►►Redução de custoRedução de custo

    Fundamentação Teórica

    O que e para quê?

  • sexta-feira, 30 de novembro de 2007 GUICGAddin 6

    II--CASECASEModelo Arquitetural

    Fundamentação Teórica

  • sexta-feira, 30 de novembro de 2007 GUICGAddin 7

    EnterpriseEnterprise ArchitectArchitect

    “o EA é uma ferramenta que cobre todos os “o EA é uma ferramenta que cobre todos os aspectos do ciclo de desenvolvimento, fornecendo aspectos do ciclo de desenvolvimento, fornecendo suporte para testes, manutenção e alterações de suporte para testes, manutenção e alterações de requisitos.”requisitos.”

    (LIMA 2005, p. 41(LIMA 2005, p. 41--42)42)

    �� Processos de negócioProcessos de negócio�� Modelagem para webModelagem para web�� Planos de testePlanos de teste�� Diagramas da UMLDiagramas da UML�� Interfaces de usuárioInterfaces de usuário�� ......

    Visão geral

    Fundamentação Teórica

  • sexta-feira, 30 de novembro de 2007 GUICGAddin 8

    EnterpriseEnterprise ArchitectArchitectDiagramas de telas

    Fundamentação Teórica

  • sexta-feira, 30 de novembro de 2007 GUICGAddin 9

    EnterpriseEnterprise ArchitectArchitect

    ►►O que é?O que é?Interface de automação

    Fundamentação Teórica

    obj

    App1 App2

    obj

    dll exe

    objobj

  • sexta-feira, 30 de novembro de 2007 GUICGAddin 10

    EnterpriseEnterprise ArchitectArchitect

    ►►O que pode ser feito com a IA do EA?O que pode ser feito com a IA do EA?

    �� Efetuar tarefas repetitivasEfetuar tarefas repetitivas

    �� Criar relatórios personalizadosCriar relatórios personalizados

    �� Efetuar consultas customizadasEfetuar consultas customizadas

    �� Gerar código a partir de diagramasGerar código a partir de diagramas

    Interface de automação

    Fundamentação Teórica

  • sexta-feira, 30 de novembro de 2007 GUICGAddin 11

    ComponentComponent ObjectObject ModelModel -- COMCOM

    ►►PadrãoPadrão para comunicação entre aplicaçõespara comunicação entre aplicações

    ►►Independente de plataforma e linguagemIndependente de plataforma e linguagem►►Trabalha por meio de interfacesTrabalha por meio de interfaces►►Classes identificadas por GUIDClasses identificadas por GUID

    � {20b1cb23-6968-4eb9-b7d4-a66d00d07cee}

    ►►Passagem de endereços de memória (obj)Passagem de endereços de memória (obj)

    Fundamentação Teórica

    [ id(0x000000CD) ]HRESULT _stdcall EA_Connect([in] IDispatch * Repository, [out, retval] BSTR * Value );

    function EA_Connect (const Repository: IDispatch): WideString; safecall;

    O que e para quê?

  • sexta-feira, 30 de novembro de 2007 GUICGAddin 12

    ActiveXActiveX

    Um controle Um controle ActiveXActiveX é “um documento é “um documento composto que é implementado como uma composto que é implementado como uma dlldllde que suportade que suporta

    , e , e ”.”.

    (CANTÙ, 2003, p. 387)(CANTÙ, 2003, p. 387)

    Fundamentação Teórica

    servidor dentro de processoservidor dentro de processoautomaçãoautomação edição visualedição visual ativação deativação de

    dentro para foradentro para fora

    O que é?

  • sexta-feira, 30 de novembro de 2007 GUICGAddin 13

    Geração Automática de CódigoGeração Automática de Código

    �� O que é um gerador de código?O que é um gerador de código?

    �� ConsistênciaConsistência

    �� ProdutividadeProdutividade

    �� Otimização de recursos humanosOtimização de recursos humanos

    �� PadronizaçãoPadronização

    Conceitos e vantagens

    Fundamentação Teórica

    50% do tempo

    48% do códigoIntuição

    Criatividade

    Lógica

    Percepção

    Sensibilidade

    CARNEGIE MELLON S.E.I.

  • sexta-feira, 30 de novembro de 2007 GUICGAddin 14

    Geração Automática de CódigoGeração Automática de CódigoDesenvolvimento de um gerador

    InícioEscrever Código

    TratarEntradas

    Templates

    DefinirTemplate

    Processadorde SaídaFim

    S

    N

    AI + EAP

    Fundamentação Teórica

  • sexta-feira, 30 de novembro de 2007 GUICGAddin 15

    Técnicas e Ferramentas UtilizadasTécnicas e Ferramentas Utilizadas

    ►► UMLUML�� Diagramas de caso de usoDiagramas de caso de uso�� Diagrama de classesDiagrama de classes�� Diagrama de componentesDiagrama de componentes

    ►► Ferramenta EAFerramenta EA►► Orientação a objetosOrientação a objetos►► Ambiente Ambiente DelphiDelphi 77►► Notação BNFNotação BNF►► GALSGALS

    Aplicação

    Especificação

  • sexta-feira, 30 de novembro de 2007 GUICGAddin 16

    Requisitos da aplicaçãoRequisitos da aplicação

    ►►Gerar componentes: Gerar componentes: screenscreen, , buttonbutton, , checkboxcheckbox, , comboboxcombobox, , panelpanel, radio , radio e e textboxtextbox

    ►►Gerar código para Gerar código para DelphiDelphi�� Formulários estáticos Formulários estáticos ((dfmdfm + + paspas))�� Formulários dinâmicos Formulários dinâmicos ((paspas))

    ►►Gerar código para JavaGerar código para Java

    Especificação

    Requisitos Funcionais

  • sexta-feira, 30 de novembro de 2007 GUICGAddin 17

    Requisitos da aplicaçãoRequisitos da aplicação

    ►►Compatibilidade com EA Versão 6.5 Compatibilidade com EA Versão 6.5 Professional Professional EditionEdition para Windowspara Windows

    ►►Compatibilidade com Versão 7.0 do Compatibilidade com Versão 7.0 do Ambiente Ambiente DelphiDelphi

    ►►Padrões VisuaisPadrões Visuais►►Usar Usar DelphiDelphi 7 na implementação7 na implementação►►Linguagem para criação de um Linguagem para criação de um templatetemplate

    Especificação

    Requisitos Não-funcionais

  • sexta-feira, 30 de novembro de 2007 GUICGAddin 18

    Diagrama de classesDiagrama de classesEspecificação

    Análise

  • sexta-feira, 30 de novembro de 2007 GUICGAddin 19

    Diagrama de ComponentesDiagrama de ComponentesEspecificação

  • sexta-feira, 30 de novembro de 2007 GUICGAddin 20

    Operacionalidade da AplicaçãoOperacionalidade da AplicaçãoOperacionalidade

  • sexta-feira, 30 de novembro de 2007 GUICGAddin 21

    Resultados e DiscussãoResultados e Discussão

    ►►Flexibilidade x integraçãoFlexibilidade x integração�� TaggedTagged ValuesValues�� NotesNotes

    ►►Portabilidade das telas diagramadasPortabilidade das telas diagramadas►►Limitações no uso do Limitações no uso do templatetemplate►►Não gera contêineres de componentesNão gera contêineres de componentes►►Não controla estrutura circular de herançaNão controla estrutura circular de herança►►Não implementa herança múltiplaNão implementa herança múltipla

  • sexta-feira, 30 de novembro de 2007 GUICGAddin 22

    ConclusãoConclusão

    SimSimLinguagem para criação de um Linguagem para criação de um templatetemplate

    SimSimUsar Usar DelphiDelphi 7 na implementação7 na implementação

    SimSimPadrões VisuaisPadrões Visuais

    SimSimCompatibilidade com Versão 7.0 do Ambiente Compatibilidade com Versão 7.0 do Ambiente DelphiDelphi

    SimSimEA Versão 6.5 Professional EA Versão 6.5 Professional EditionEdition para Windowspara Windows

    SimSimREQUISITOS FUNCIONAISREQUISITOS FUNCIONAIS

    SimSimGerar Gerar componentescomponentes screen, button, checkbox, screen, button, checkbox, comboboxcombobox, , panel, radio e textboxpanel, radio e textbox

    SimSimGerar código para Gerar código para DelphiDelphi e Java e Java

    ATENDIDOATENDIDOREQUISITOS FUNCIONAISREQUISITOS FUNCIONAIS

    Visual Basic e C#

    Memo, LabeledEdit, Label, ListBoxBitBtn, SpeedButton, MaskEdit, StringGrid, StatusBar

  • sexta-feira, 30 de novembro de 2007 GUICGAddin 23

    ConclusãoConclusão

    ►►Comprovação dos benefícios das IComprovação dos benefícios das I--CASECASE

    ►►Adequação das tecnologiasAdequação das tecnologias�� COM / COM / ActiveXActiveX�� GALSGALS

    ►►Flexibilidade dos Flexibilidade dos templatestemplates

  • sexta-feira, 30 de novembro de 2007 GUICGAddin 24

    ExtensõesExtensões►► Configuração de recursosConfiguração de recursos

    ►► Ampliação das funcionalidades do Ampliação das funcionalidades do templatetemplate

    ►► Analisador para o arquivo .Analisador para o arquivo .cmppcmpp

    ►► Implementação de contêineres de componentesImplementação de contêineres de componentes

    ►► Subdiretórios por diagrama/pacoteSubdiretórios por diagrama/pacote

    ►► Controle de estrutura circular de herançaControle de estrutura circular de herança

    ►► Controle de herança múltiplaControle de herança múltipla

  • sexta-feira, 30 de novembro de 2007 GUICGAddin 25

    FIMFIMSourceforceSourceforce LinksLinks

    Project Project InfoInfo

    http://sourceforge.net/projects/guicgaddin/http://sourceforge.net/projects/guicgaddin/

    Project FilesProject Files

    http://guicgaddin.cvs.sourceforge.net/guicgaddin/http://guicgaddin.cvs.sourceforge.net/guicgaddin/

  • sexta-feira, 30 de novembro de 2007 GUICGAddin 26

    II--CASECASEFerramentas CASE integradas

    GUICGAddin

    Outras Ferramentas

    ServiçosI-CASE

    Fundamentação Teórica

  • sexta-feira, 30 de novembro de 2007 GUICGAddin 27

    Padrão visual