Desenvolvimento de Ferramenta e de Processos para a Geração Automática de Código Java a partir...

29
Desenvolvimento de Ferramenta e Desenvolvimento de Ferramenta e de Processos para a Geração de Processos para a Geração Automática de Código Java a Automática de Código Java a partir de um Dicionário de partir de um Dicionário de Dados Dados Anderson Bestteti Santos Orientadora Prof(a). Dr(a). Juliana Herbert São Leopoldo, 29 de junho de 2005. São Leopoldo, 29 de junho de 2005. Universidade do Vale do Rio dos Sinos – UNISINOS Ciência da Computação

Transcript of Desenvolvimento de Ferramenta e de Processos para a Geração Automática de Código Java a partir...

Page 1: Desenvolvimento de Ferramenta e de Processos para a Geração Automática de Código Java a partir de um Dicionário de Dados Anderson Bestteti Santos Orientadora.

Desenvolvimento de Ferramenta e de Desenvolvimento de Ferramenta e de Processos para a Geração Automática Processos para a Geração Automática

de Código Java a partir de um de Código Java a partir de um Dicionário de DadosDicionário de Dados

Anderson Bestteti Santos

Orientadora Prof(a). Dr(a). Juliana Herbert

São Leopoldo, 29 de junho de 2005.São Leopoldo, 29 de junho de 2005.

Universidade do Vale do Rio dos Sinos – UNISINOS

Ciência da Computação

Page 2: Desenvolvimento de Ferramenta e de Processos para a Geração Automática de Código Java a partir de um Dicionário de Dados Anderson Bestteti Santos Orientadora.

SumárioSumário

IntroduçãoIntrodução Problema e JustificativaProblema e Justificativa ObjetivosObjetivos EscopoEscopo Engenharia de SoftwareEngenharia de Software MétodoMétodo Ferramenta de Geração Automática de Código JavaFerramenta de Geração Automática de Código Java Considerações FinaisConsiderações Finais

Page 3: Desenvolvimento de Ferramenta e de Processos para a Geração Automática de Código Java a partir de um Dicionário de Dados Anderson Bestteti Santos Orientadora.

IntroduçãoIntrodução

Nas últimas quatro décadas, acompanhamos uma Nas últimas quatro décadas, acompanhamos uma evolução evolução espantosa da tecnologiaespantosa da tecnologia, sendo a , sendo a InformáticaInformática uma das áreas de uma das áreas de conhecimento que mais evolui.conhecimento que mais evolui.

O O aumento aumento da capacidade de processamento processamento dos computadores dos computadores permitiu que permitiu que sistemas de softwaresistemas de software cada vez cada vez maismais complexos complexos fossem produzidos, sendo necessário criar metodologias e regras fossem produzidos, sendo necessário criar metodologias e regras para produzí-los.para produzí-los.

Na Na Engenharia de SoftwareEngenharia de Software são utilizadas ferramentas para são utilizadas ferramentas para automatizar ou semi-automatizarautomatizar ou semi-automatizar os processos e os métodos de os processos e os métodos de desenvolvimento de software.

Então, foram desenvolvidas as ferramentas de Então, foram desenvolvidas as ferramentas de Engenharia de Engenharia de Sistemas Assistidas por Computador – CASESistemas Assistidas por Computador – CASE ((Computer-Aided Computer-Aided Systems EngineeringSystems Engineering).).

Page 4: Desenvolvimento de Ferramenta e de Processos para a Geração Automática de Código Java a partir de um Dicionário de Dados Anderson Bestteti Santos Orientadora.

Problema e JustificativaProblema e Justificativa

Um dos Um dos destaquesdestaques de ferramentas de ferramentas CASECASE no no BrasilBrasil é o é o Oracle DesignerOracle Designer, , sendo considerado a melhor ferramenta disponível no mercado, conforme pesquisa sendo considerado a melhor ferramenta disponível no mercado, conforme pesquisa realizada pelo realizada pelo Governo da BahiaGoverno da Bahia (ROCHA & RASKIN, 2002). (ROCHA & RASKIN, 2002).

Entretanto, Entretanto, nãonão foram identificadas foram identificadas ferramentasferramentas para para auxiliar na migraçãoauxiliar na migração de de metadados de sistemas armazenados no metadados de sistemas armazenados no Oracle DesignerOracle Designer para o para o paradigma paradigma orientado a objetosorientado a objetos..

Embora a Embora a OracleOracle comercialize uma ferramenta para o desenvolvimento OO, o comercialize uma ferramenta para o desenvolvimento OO, o JDeveloperJDeveloper,, ela ela não promovenão promove uma uma forte integraçãoforte integração com o dicionário do com o dicionário do Oracle Oracle DesignerDesigner..

Dessa forma, as empresas de software usuárias do Dessa forma, as empresas de software usuárias do DesignerDesigner estão fadadas a estão fadadas a reescreverreescrever todo o todo o códigocódigo de seus sistemas para uma linguagem OO, como o de seus sistemas para uma linguagem OO, como o Java.Java.

Logo, o Logo, o desenvolvimentodesenvolvimento de uma ferramenta de uma ferramenta CASECASE e de e de processosprocessos que que proporcionasse a migração para o paradigma OO, preservando o dicionário de proporcionasse a migração para o paradigma OO, preservando o dicionário de dados, traria uma dados, traria uma redução de custosredução de custos de migração e de migração e aceleraria o processoaceleraria o processo de de mudançamudança de tecnologia. de tecnologia.

Page 5: Desenvolvimento de Ferramenta e de Processos para a Geração Automática de Código Java a partir de um Dicionário de Dados Anderson Bestteti Santos Orientadora.

ObjetivosObjetivos

Objetivo Principal:Objetivo Principal:Propor uma ferramenta CASE para geração de código em Java, Propor uma ferramenta CASE para geração de código em Java,

usando técnicas convencionais de Engenharia de Softwareusando técnicas convencionais de Engenharia de Software, , a qual a qual possibilite a ipossibilite a importação de informações do dicionário de dados do mportação de informações do dicionário de dados do

OracleOracle Designer.Designer.

Objetivos Específicos:Objetivos Específicos: revisão da literaturarevisão da literatura sobre Engenharia de Software, abordando sobre Engenharia de Software, abordando

processos e métodos de desenvolvimento, qualidade de software, processos e métodos de desenvolvimento, qualidade de software, análise de complexidade de código e, em especial, ferramentas análise de complexidade de código e, em especial, ferramentas CASE;CASE;

especificar a ferramentaespecificar a ferramenta proposta, destacando: proposta, destacando: o o modelo de dadosmodelo de dados do Dicionário de Dados da Ferramenta do Dicionário de Dados da Ferramenta

CASE, para que informações de requisitos, gerenciamento, CASE, para que informações de requisitos, gerenciamento, métricas e componentes de softwares possam ser métricas e componentes de softwares possam ser armazenados e manipulados pela ferramenta;armazenados e manipulados pela ferramenta;

a ferramenta para integrar a solução: a ferramenta para integrar a solução: diagramador ERdiagramador ER (modelo (modelo entidade-relacionamento e navegador do dicionário de dados);entidade-relacionamento e navegador do dicionário de dados);

Page 6: Desenvolvimento de Ferramenta e de Processos para a Geração Automática de Código Java a partir de um Dicionário de Dados Anderson Bestteti Santos Orientadora.

Objetivos Específicos: projetarprojetar um subsistema para um subsistema para integração integração com uma ferramenta com uma ferramenta

CASE de mercado, no caso o software escolhido é o CASE de mercado, no caso o software escolhido é o Oracle Oracle Designer6iDesigner6i;;

projetarprojetar um módulo para análise de um módulo para análise de complexidade estrutural complexidade estrutural de códigode código gerado pela ferramenta; gerado pela ferramenta;

projetarprojetar o formulário de o formulário de Time Recording LogTime Recording Log definido pelo definido pelo modelo modelo Personal Software ProcessPersonal Software Process – PSP; – PSP;

implementarimplementar a a ferramentaferramenta proposta com as funções citadas proposta com as funções citadas anteriormente; anteriormente;

testartestar o o protótipoprotótipo da ferramenta, através de geração de código da ferramenta, através de geração de código e da migração de um sistema cuja definição esteja armazenada e da migração de um sistema cuja definição esteja armazenada no dicionário do no dicionário do Oracle Designer6iOracle Designer6i..

ObjetivosObjetivos

Page 7: Desenvolvimento de Ferramenta e de Processos para a Geração Automática de Código Java a partir de um Dicionário de Dados Anderson Bestteti Santos Orientadora.

EscopoEscopo

A ferramenta proposta é composta por um dicionário de dados, o qual A ferramenta proposta é composta por um dicionário de dados, o qual armazena as definições das entidades, tabelas e módulos.armazena as definições das entidades, tabelas e módulos.

Todos estes elementos são organizados dentro de um projeto, que é o Todos estes elementos são organizados dentro de um projeto, que é o componente mestre das informações do dicionário de dados.componente mestre das informações do dicionário de dados.

Entretanto, as regras de negócio não serão tratadas, ou seja, não será Entretanto, as regras de negócio não serão tratadas, ou seja, não será feita a tradução do código PL/SQL devido à dificuldade de conversão feita a tradução do código PL/SQL devido à dificuldade de conversão entre linguagens de programação. entre linguagens de programação.

Page 8: Desenvolvimento de Ferramenta e de Processos para a Geração Automática de Código Java a partir de um Dicionário de Dados Anderson Bestteti Santos Orientadora.

Engenharia de SoftwareEngenharia de Software

A Engenharia de Software é parte da Engenharia de Sistemas a qual A Engenharia de Software é parte da Engenharia de Sistemas a qual está voltada ao desenvolvimento de sistemas com base em está voltada ao desenvolvimento de sistemas com base em

computadores, incluindo o desenvolvimento de hardware e de computadores, incluindo o desenvolvimento de hardware e de software e a engenharia de processos (SOMMERVILLE, 2003). software e a engenharia de processos (SOMMERVILLE, 2003).

Processo de SoftwareProcesso de Software Verificação e Validação de SoftwareVerificação e Validação de Software Qualidade de SoftwareQualidade de Software Capability Maturity ModelCapability Maturity Model – CMM – CMM Personal Software ProcessPersonal Software Process – PSP – PSP Métodos de Desenvolvimento de SoftwareMétodos de Desenvolvimento de Software Análise de Complexidade Estrutural de CódigoAnálise de Complexidade Estrutural de Código Ferramentas CASEFerramentas CASE

Page 9: Desenvolvimento de Ferramenta e de Processos para a Geração Automática de Código Java a partir de um Dicionário de Dados Anderson Bestteti Santos Orientadora.

Engenharia de SoftwareEngenharia de Software

Processo de softwareProcesso de software O processo de software é um conjunto de ferramentas, métodos e práticas que O processo de software é um conjunto de ferramentas, métodos e práticas que

usamos para obter um produto de software, que atenda aos objetivos planejados e usamos para obter um produto de software, que atenda aos objetivos planejados e simultaneamente à melhoria contínua dos produtos (HUMPRHEY, 1989). simultaneamente à melhoria contínua dos produtos (HUMPRHEY, 1989).

O Ciclo de Vida do SoftwareO Ciclo de Vida do Software

Definição de Definição de RequisitosRequisitos

Projeto de Sistemas e Projeto de Sistemas e de Software de Software

Implementação e Implementação e Teste de UnidadesTeste de Unidades

Integração e Teste de Integração e Teste de SistemasSistemas

Operação e Manutenção

Page 10: Desenvolvimento de Ferramenta e de Processos para a Geração Automática de Código Java a partir de um Dicionário de Dados Anderson Bestteti Santos Orientadora.

Engenharia de SoftwareEngenharia de Software

Verificação e validaçãoVerificação e validação Verificação e validação são os nomes dados aos processos de verificação e Verificação e validação são os nomes dados aos processos de verificação e

análise que asseguram que o software cumpra com suas especificações e análise que asseguram que o software cumpra com suas especificações e atenda às necessidades dos clientes que estão pagando por ele. atenda às necessidades dos clientes que estão pagando por ele.

A diferença entre elas é sucintamente expressa por BoehnA diferença entre elas é sucintamente expressa por Boehn[1][1] (apud (apud SOMMERVILLE, 2003, p.358) em que ao tratar da verificação ele questiona SOMMERVILLE, 2003, p.358) em que ao tratar da verificação ele questiona se se “estamos construindo certo o produto?”“estamos construindo certo o produto?” e da validação se e da validação se “estamos “estamos construindo o produto certo?”construindo o produto certo?”.

Qualidade de softwareQualidade de software Pressman (2002, p. 500) : “conformidade com requisitos funcionais e de Pressman (2002, p. 500) : “conformidade com requisitos funcionais e de

desempenho explicitamente declarados, padrões de desenvolvimento desempenho explicitamente declarados, padrões de desenvolvimento explicitamente documentados e características implícitas, que são esperadas explicitamente documentados e características implícitas, que são esperadas em todo o software desenvolvido profissionalmente”. em todo o software desenvolvido profissionalmente”.

Partes diferentes são responsáveis pela garantia da qualidade do software: Partes diferentes são responsáveis pela garantia da qualidade do software: engenheiros de software, gerentes de projeto, clientes, pessoal de vendas e engenheiros de software, gerentes de projeto, clientes, pessoal de vendas e indivíduos que servem num grupo SQA (Software Quality Assurance) indivíduos que servem num grupo SQA (Software Quality Assurance) (HUMPHREY, 1989). (HUMPHREY, 1989).

[[1]1] BOEHN, B.W. BOEHN, B.W. Software engineering: R&D trends and defense needsSoftware engineering: R&D trends and defense needs . IN: Wegner, P. . IN: Wegner, P. Directions in Directions in software tecnologysoftware tecnology. Cambridge, MA: MIT Press. 1979.. Cambridge, MA: MIT Press. 1979.

Page 11: Desenvolvimento de Ferramenta e de Processos para a Geração Automática de Código Java a partir de um Dicionário de Dados Anderson Bestteti Santos Orientadora.

Engenharia de SoftwareEngenharia de SoftwareCapability Maturity ModelCapability Maturity Model

OTIMIZADOOTIMIZADO

Gerenciamento de mudança de processos Gerenciamento de mudanças tecnológicasPrevenção de defeitos

DEFINIDODEFINIDO

Revisão conjunta Coordenação intergrupos Engenharia de produto de software Gerenciamento de software integrado Programa de treinamento Definição do processo organizacionalFoco no processo organizacional

REPETITIVOREPETITIVO

Gerenciamento de configuração Garantia de qualidade do software Gerenciamento de subcontratados Visão geral e acompanhamento do projetoPlanejamento do projeto

Gerenciamento de requisitos

INICIALINICIAL

GERENCIADOGERENCIADO

Gerenciamento da qualidade do software

Gerenciamento quantitativo dos processos

Modelo SEI/CMMModelo SEI/CMM - Software Engineering - Software Engineering Institute/SEI - Carnegie Mellon UniversityInstitute/SEI - Carnegie Mellon University

Page 12: Desenvolvimento de Ferramenta e de Processos para a Geração Automática de Código Java a partir de um Dicionário de Dados Anderson Bestteti Santos Orientadora.

Engenharia de SoftwareEngenharia de Software

Personal Software ProcessPersonal Software Process A metodologia A metodologia Personal Software ProcessPersonal Software Process foi desenvolvida por Watts foi desenvolvida por Watts

Humphrey para auxiliar desenvolvedores e pequenas equipes de Humphrey para auxiliar desenvolvedores e pequenas equipes de desenvolvimento em suas necessidades de melhorias no processo de desenvolvimento em suas necessidades de melhorias no processo de software pessoal (ESI CENTER, 2005).software pessoal (ESI CENTER, 2005).

Enquanto o CMM está voltado para a melhoria do processo organizacional, o Enquanto o CMM está voltado para a melhoria do processo organizacional, o PSP está focado no desenvolvedor.PSP está focado no desenvolvedor.

Métodos de Desenvolvimento de SoftwareMétodos de Desenvolvimento de Software Método de Desenvolvimento Estruturado Método de Desenvolvimento Orientado a Objeto

Análise de Complexidade Estrutural de CódigoAnálise de Complexidade Estrutural de Código A análise de complexidade é formada por métricas, cujo emprego tem o A análise de complexidade é formada por métricas, cujo emprego tem o

objetivo de auxiliar o desenvolvedor a detectar componentes de software objetivo de auxiliar o desenvolvedor a detectar componentes de software mais complexos, identificar características que possam ser modificadas, mais complexos, identificar características que possam ser modificadas, tornando estes componentes menos complexos (HERBERT, 1996).tornando estes componentes menos complexos (HERBERT, 1996).

Métricas EstruturadasMétricas Estruturadas Métricas para Orientação a ObjetosMétricas para Orientação a Objetos

Page 13: Desenvolvimento de Ferramenta e de Processos para a Geração Automática de Código Java a partir de um Dicionário de Dados Anderson Bestteti Santos Orientadora.

Ferramentas CASEFerramentas CASE

CASE combina software, hardware, e um banco de dados (um repositório CASE combina software, hardware, e um banco de dados (um repositório contendo informações importantes sobre análise, contendo informações importantes sobre análise, designdesign, construção de , construção de

programas e testes) para criar um ambiente de Engenharia de Software análogo programas e testes) para criar um ambiente de Engenharia de Software análogo ao CAD (ao CAD (Computer Aided DesignComputer Aided Design)/CAE ()/CAE (Computer Aided EngineeringComputer Aided Engineering) para ) para

hardware (PRESSMAN, 2002). hardware (PRESSMAN, 2002). Geralmente, estas ferramentas estão integradas dentro de um ambiente Geralmente, estas ferramentas estão integradas dentro de um ambiente sofisticado, com um repositório de dados, ferramentas para diagramação, sofisticado, com um repositório de dados, ferramentas para diagramação,

editores de texto, geradores de código e ferramentas de teste (PRESSMAN, editores de texto, geradores de código e ferramentas de teste (PRESSMAN, 2002). 2002).

BenefíciosBenefícios A tecnologia CASE permite aos desenvolvedores aumentar a qualidade e A tecnologia CASE permite aos desenvolvedores aumentar a qualidade e

eficiência, resultando na melhoria do processo e redução de custos com a eficiência, resultando na melhoria do processo e redução de custos com a manutenção e desenvolvimento de sistemas .manutenção e desenvolvimento de sistemas .

ProblemasProblemas Segundo Lending e Chervany (1998), alguns desenvolvedores não utilizam Segundo Lending e Chervany (1998), alguns desenvolvedores não utilizam

ferramentas CASE por entenderem que ela limita a autonomia no ferramentas CASE por entenderem que ela limita a autonomia no desenvolvimento e, também, por empregar uma metodologia muito mais formal desenvolvimento e, também, por empregar uma metodologia muito mais formal em relação aos desenvolvedores que não utilizam CASE no processo de em relação aos desenvolvedores que não utilizam CASE no processo de desenvolvimento de software.desenvolvimento de software.

Page 14: Desenvolvimento de Ferramenta e de Processos para a Geração Automática de Código Java a partir de um Dicionário de Dados Anderson Bestteti Santos Orientadora.

MétodoMétodoMetodologia de Desenvolvimento da FerramentaMetodologia de Desenvolvimento da Ferramenta

Adaptado de Nunamaker et al. (apud Morrison & George, 1995)

Protótipo

Conceito/Objetivo:Ferramenta para geração

automática de código JAVA

Implementação:Geração de Código - Oracle Developer e

PL/SQL

Oracle Designer

Identificação de requisitos: análise

do dicionário de dados*

Análise/Design*

Avaliação

Teste:Geração de código Java

Contribuições Práticas

Especificação da Ferramenta Case:

Processo de software; e,

Modelo de Dados

Protótipo EASYCASE

Problemas de Pesquisa:

Teoria sobre ES e CASE

Problema: inexistência de uma solução para a migração do Designer para Java

Questões de Pesquisa:

Proposta de Solução CASE

Revisão do Protótipo

Desenvolvimentode Arquitetura/ Metodologia*

Page 15: Desenvolvimento de Ferramenta e de Processos para a Geração Automática de Código Java a partir de um Dicionário de Dados Anderson Bestteti Santos Orientadora.

Ferramenta de Geração Automática de Ferramenta de Geração Automática de Código JavaCódigo Java

Especificação:Especificação: Ferramenta CASE geradora de código Java, integrada ao Ferramenta CASE geradora de código Java, integrada ao Designer6iDesigner6i, ,

com as características do dicionário de dados usado na ferramenta da com as características do dicionário de dados usado na ferramenta da

OracleOracle..

O CASE proposto trata da geração de código orientado a objetos a O CASE proposto trata da geração de código orientado a objetos a

partir da estrutura de módulos e do modelo entidade relacionamento partir da estrutura de módulos e do modelo entidade relacionamento

armazenados no dicionário de dados da ferramenta.armazenados no dicionário de dados da ferramenta.

Processo de Software da FerramentaProcesso de Software da Ferramenta

Modelos de DadosModelos de Dados

Page 16: Desenvolvimento de Ferramenta e de Processos para a Geração Automática de Código Java a partir de um Dicionário de Dados Anderson Bestteti Santos Orientadora.

Processo de Software da FerramentaProcesso de Software da Ferramenta

Modelagem de Dados

Design do Modelo Físico de Dados

Design de Módulos

Geração de Código para a

Implementação de Modelo Físico no Banco de Dados

Geração de Código para a

Implementação dos Módulos

Tim

e R

ec

ord

ing

Lo

g

Levantamento de Requisitos

Testes

Integração com o Oracle Designer

Page 17: Desenvolvimento de Ferramenta e de Processos para a Geração Automática de Código Java a partir de um Dicionário de Dados Anderson Bestteti Santos Orientadora.

Processo de Modelagem de Dados

Papéis Envolvidos Analistas de SistemasClientes/Usuários

Informações de Entrada

Informações obtidas a partir da elicitação de requisitos, ou seja, identificação de entidades, atributos (que compõe a chave-primária, os tipos de dados, a descrição), relacionamentos entre entidades para atender as necessidades do cliente.

Condição de Início Após elicitação de requisitos, o processo é iniciado quando existirem informações consistentes.

Atividades Alimentar o dicionário de dados da ferramenta, usando a ferramenta de navegação do dicionário de dados e o diagramador do modelo entidade relacionamento.

Saídas Modelo conceitual que representa as estruturas de dados que atendam os requisitos identificados.

Condição de Saída Verificação da consistência das informações armazenadas no dicionário de dados, por exemplo, todas as entidades do projeto devem possuir uma chave-primária.

Page 18: Desenvolvimento de Ferramenta e de Processos para a Geração Automática de Código Java a partir de um Dicionário de Dados Anderson Bestteti Santos Orientadora.

Modelos de DadosModelos de Dados

Modelo Metadados – Projetos e Entidades Modelo Metadados – Projetos e Entidades Modelo Metadados – Implementação Física Modelo Metadados – Implementação Física Modelo Metadados – Desenho de Módulos e Menus Modelo Metadados – Desenho de Módulos e Menus Modelo Metadados – Repositório de Diagramas Modelo Metadados – Repositório de Diagramas Modelo Metadados do Modelo Metadados do Time Recording LogTime Recording Log

Page 19: Desenvolvimento de Ferramenta e de Processos para a Geração Automática de Código Java a partir de um Dicionário de Dados Anderson Bestteti Santos Orientadora.

Mo

del

o M

etad

ado

s –

Pro

jeto

s e

En

tid

ades

Mo

del

o M

etad

ado

s –

Pro

jeto

s e

En

tid

ades

PROJETOPROJETO

# ID* NOMEo OBJETIVO* DT_CRIACAO

ENTIDADEENTIDADE# ID* NOMEo ABREVIACAOo ESPECIFICACAO

ATRIBUTOATRIBUTO# ID* SEQ* NOME* TIPOo TAMANHOo DECIMAISo COMENTARIOo CHAVEo VALOR_PADRAO* ORDEM* SEQ_ORDEM

RELACIONAMENTORELACIONAMENTO* CHAVE* CHAVE

DOMINIODOMINIO# ID* NOME* TIPOo VALOR_PADRAOo DESCRICAO

VALOR DOMINIOVALOR DOMINIO

# ID* SEQ* VALOR* SIGNIFIADO* ABREVIACAO

COMPARTILHAMENTO ENTIDADE

especificado

especifica

pertence

possui

originado

origem

destinado

destino

petence

possui

pertence

possui

usa

e_usado

pertence

possui

referencia

referenciada

Page 20: Desenvolvimento de Ferramenta e de Processos para a Geração Automática de Código Java a partir de um Dicionário de Dados Anderson Bestteti Santos Orientadora.

Mo

del

o M

etad

ado

s –

Imp

lem

enta

ção

Fís

ica

Mo

del

o M

etad

ado

s –

Imp

lem

enta

ção

Fís

ica

PROJETO# ID* NOMEo OBJETIVO* DT_CRIACAO

TABELA# ID* NOMEo ABREVIACAOo ESPECIFICACAO* NOME_CHAVE_PRIMARIA

COLUNA# ID* SEQ* NOME* TIPOo TAMANHOo DECIMAISo COMENTARIOo CHAVEo VALOR_PADRAOo ORDEMo SEQ_ORDEM

DOMINIO# ID* NOME* TIPOo VALOR_PADRAOo DESCRICAO

VALOR DOMINIO# ID* SEQ* VALOR* SIGNIFIADO* ABREVIACAO

INDICE# ID* NOME* INDICE_UNICO

INDICE COLUNA* SEQ

RELACAO TABELA# ID* NOME

RELACAO COLUNA* SEQ

COMPARTILHAMENTOTABELA

e_usada_por

usa

pertence

possui

petence

possui

pertence

possui

usa

e_usado

pertence

possui

pertence

possui

usa

e_usada

e_originado

origem

e_destinado

destino

pertence

possui

usa_ori

e_usada_ori

e_usada_dst

usa_dst

referencia

referenciada

pertence

possui

Page 21: Desenvolvimento de Ferramenta e de Processos para a Geração Automática de Código Java a partir de um Dicionário de Dados Anderson Bestteti Santos Orientadora.

Mo

del

o M

etad

ado

s –

Des

enh

o d

e M

ód

ulo

s e

Mo

del

o M

etad

ado

s –

Des

enh

o d

e M

ód

ulo

s e

Men

us

Men

us

COLUNA# ID* SEQ* NOME* TIPOo TAMANHOo DECIMAISo COMENTARIOo CHAVEo VALOR_PADRAOo ORDEMo SEQ_ORDEM

PROJETO# ID* NOMEo OBJETIVO* DT_CRIACAO

TABELA# ID* NOMEo ABREVIACAOo ESPECIFICACAO* NOME_CHAVE_PRIMARIA

MODULO# ID* NOME* NOME_IMPLEMENTACAO* TIPO_MODULO

MODULO USOTABELA* SEQo NOME* CONSULTA* INSERE* ALTERA* EXCLUI

HIERARQUIA MODULO* SEQ

MODULO USOCOLUNA* SEQ* OBRIGATORIA* MOSTRARo MASCARAo APRESENTACAO* CONSULTA* INSERE* ALTERA

COMPARTILHAMENTOMODULO

e_usada_por

usa

pertence

possui

pertence

possui

usa

e_usada e_usado

usa

pertence

possui

referencia

e_referenciado

usa

e_usada

possui

pertence

pertence

possui

e_referenciado

referencia

Page 22: Desenvolvimento de Ferramenta e de Processos para a Geração Automática de Código Java a partir de um Dicionário de Dados Anderson Bestteti Santos Orientadora.

Mo

del

o M

etad

ado

s –

Rep

osi

tóri

o d

e M

od

elo

Met

adad

os

– R

epo

sitó

rio

de

Dia

gra

mas

Dia

gra

mas

PROJETO# ID* NOMEo OBJETIVO* DT_CRIACAO

DIAGRAMA# ID* NOMEo TITULOo AUTOR* TIPOo IMAGEM

pertence

possui

Page 23: Desenvolvimento de Ferramenta e de Processos para a Geração Automática de Código Java a partir de um Dicionário de Dados Anderson Bestteti Santos Orientadora.

Mo

del

o M

etad

ado

s d

o

Mo

del

o M

etad

ado

s d

o T

ime

Rec

ord

ing

Lo

gT

ime

Rec

ord

ing

Lo

g FASE PROJETO

# COD* NOME* DT_CRIACAO

PROJETO# ID* NOMEo OBJETIVO* DT_CRIACAO

TIME RECORDING LOG# DATA# HORA_INIo HORA_FIMo TEMPO_INTERRUPCAOo TEMPO_DELTAo COMENTARIOS* COMPLETADOo UNIDADES

DESENVOLVEDOR# COD* NOME

MODULO# ID* NOME* NOME_IMPLEMENTACAO* TIPO_MODULO

usa

e_usado

pertence

possui

registrado

registra

pertence

possui

referencia

referenciado

Page 24: Desenvolvimento de Ferramenta e de Processos para a Geração Automática de Código Java a partir de um Dicionário de Dados Anderson Bestteti Santos Orientadora.

Protótipo - Protótipo - EASYCASE

Page 25: Desenvolvimento de Ferramenta e de Processos para a Geração Automática de Código Java a partir de um Dicionário de Dados Anderson Bestteti Santos Orientadora.

Protótipo - Protótipo - EASYCASE

Page 26: Desenvolvimento de Ferramenta e de Processos para a Geração Automática de Código Java a partir de um Dicionário de Dados Anderson Bestteti Santos Orientadora.

Protótipo - Protótipo - EASYCASE

Page 27: Desenvolvimento de Ferramenta e de Processos para a Geração Automática de Código Java a partir de um Dicionário de Dados Anderson Bestteti Santos Orientadora.

Protótipo - Protótipo - EASYCASE

Page 28: Desenvolvimento de Ferramenta e de Processos para a Geração Automática de Código Java a partir de um Dicionário de Dados Anderson Bestteti Santos Orientadora.

Considerações FinaisConsiderações Finais

Este trabalho apresentou um Este trabalho apresentou um protótipo de uma ferramenta CASE para auxiliar para auxiliar as empresas de desenvolvimento que ainda utilizam o as empresas de desenvolvimento que ainda utilizam o Oracle DesignerOracle Designer para para construir suas aplicações, mas desejam portar os seus produtos de software construir suas aplicações, mas desejam portar os seus produtos de software para a linguagem de programação Java.para a linguagem de programação Java.

Entre as contribuições do trabalho destacam-se: Entre as contribuições do trabalho destacam-se: a especificação do a especificação do modelo de dados que forma o dicionário da ferramenta CASE; que forma o dicionário da ferramenta CASE; desenvolvimento dos desenvolvimento dos protótipos dos geradores de código dos geradores de código Java e SQL

DDL;; especificação de um especificação de um processo de desenvolvimento, podendo ser usado , podendo ser usado

como um modelo de referência para a implantação do processo de software como um modelo de referência para a implantação do processo de software por empresas de desenvolvimentopor empresas de desenvolvimento . .

Durante as fases de Durante as fases de elicitação de requisitos, ficou claro que a tarefa de , ficou claro que a tarefa de projetar um dicionário de dados não é simples, pois o assunto Engenharia de projetar um dicionário de dados não é simples, pois o assunto Engenharia de Software é uma ampla área de pesquisaSoftware é uma ampla área de pesquisa..

Outro aspecto importante a considerar são os modelos Outro aspecto importante a considerar são os modelos CMM e PSP, sendo o , sendo o segundo usado como ferramenta de acompanhamento das fases de um projeto segundo usado como ferramenta de acompanhamento das fases de um projeto através do através do Time Recording Log..

Page 29: Desenvolvimento de Ferramenta e de Processos para a Geração Automática de Código Java a partir de um Dicionário de Dados Anderson Bestteti Santos Orientadora.

Limitações e Extensões FuturasLimitações e Extensões Futuras

LimitaçõesLimitações Durante o desenvolvimento da ferramenta de integração com o dicionário de dados Durante o desenvolvimento da ferramenta de integração com o dicionário de dados

do Oracle Disigner6i, foram encontradas dificuldades no que diz respeito ao do Oracle Disigner6i, foram encontradas dificuldades no que diz respeito ao entendimento do modelo de dados do repositório do CASE entendimento do modelo de dados do repositório do CASE OracleOracle..

Mesmo sem todas as informações necessárias para efetuar, na sua totalidade, a Mesmo sem todas as informações necessárias para efetuar, na sua totalidade, a integração com o integração com o Oracle Designer6iOracle Designer6i, a ferramenta de migração foi implementada , a ferramenta de migração foi implementada parcialmente com algumas das informações sobre projetos.parcialmente com algumas das informações sobre projetos.

Extensões FuturasExtensões Futuras Tendo definido o dicionário de dados do CASE proposto, é possível criar Tendo definido o dicionário de dados do CASE proposto, é possível criar

um conjunto de ferramentas para extrair informações sobre a qualidade das um conjunto de ferramentas para extrair informações sobre a qualidade das dados armazenadas no dicionário;dados armazenadas no dicionário;

Implementar uma ferramenta de referência cruzadaImplementar uma ferramenta de referência cruzada;; Implementar uma ferramenta para análise de impacto sobre alterações das Implementar uma ferramenta para análise de impacto sobre alterações das

estruturas de tabelasestruturas de tabelas;; Implementar uma ferramenta de Implementar uma ferramenta de quality-checkquality-check