Upload
internet
View
103
Download
0
Embed Size (px)
Citation preview
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
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
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).).
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.
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);
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
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.
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
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
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.
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
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
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.
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*
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
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
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.
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
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
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
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
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
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
Protótipo - Protótipo - EASYCASE
Protótipo - Protótipo - EASYCASE
Protótipo - Protótipo - EASYCASE
Protótipo - Protótipo - EASYCASE
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..
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