A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

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.

Apresentações semelhantes


Apresentação em tema: "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."— Transcrição da apresentação:

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 Prof(a). Dr(a). Juliana Herbert São Leopoldo, 29 de junho de Universidade do Vale do Rio dos Sinos – UNISINOS Ciência da Computação

2 Sumário Introdução Introdução Problema e Justificativa Problema e Justificativa Objetivos Objetivos Escopo Escopo Engenharia de Software Engenharia de Software Método Método Ferramenta de Geração Automática de Código Java Ferramenta de Geração Automática de Código Java Considerações Finais Considerações Finais

3 Introdução Nas últimas quatro décadas, acompanhamos uma evolução espantosa da tecnologia, sendo a Informática uma das áreas de conhecimento que mais evolui. Nas últimas quatro décadas, acompanhamos uma evolução espantosa da tecnologia, sendo a Informática uma das áreas de conhecimento que mais evolui. O aumento processamento dos computadores permitiu que sistemas de software cada vez mais complexos fossem produzidos, sendo necessário criar metodologias e regras para produzí-los. O aumento da capacidade de processamento dos computadores permitiu que sistemas de software cada vez mais complexos fossem produzidos, sendo necessário criar metodologias e regras para produzí-los. Na Engenharia de Software são utilizadas ferramentas para automatizar ou semi-automatizar os processos e os métodos de Na Engenharia de Software são utilizadas ferramentas para automatizar ou semi-automatizar os processos e os métodos de desenvolvimento de software. Então, foram desenvolvidas as ferramentas de Engenharia de Sistemas Assistidas por Computador – CASE (Computer-Aided Systems Engineering). Então, foram desenvolvidas as ferramentas de Engenharia de Sistemas Assistidas por Computador – CASE (Computer-Aided Systems Engineering).

4 Problema e Justificativa Um dos destaques de ferramentas CASE no Brasil é o Oracle Designer, sendo considerado a melhor ferramenta disponível no mercado, conforme pesquisa realizada pelo Governo da Bahia (ROCHA & RASKIN, 2002). Entretanto, não foram identificadas ferramentas para auxiliar na migração de metadados de sistemas armazenados no Oracle Designer para o paradigma orientado a objetos. Embora a Oracle comercialize uma ferramenta para o desenvolvimento OO, o JDeveloper, ela não promove uma forte integração com o dicionário do Oracle Designer. Dessa forma, as empresas de software usuárias do Designer estão fadadas a reescrever todo o código de seus sistemas para uma linguagem OO, como o Java. Logo, o desenvolvimento de uma ferramenta CASE e de processos que proporcionasse a migração para o paradigma OO, preservando o dicionário de dados, traria uma redução de custos de migração e aceleraria o processo de mudança de tecnologia.

5 Objetivos Objetivo Principal: Propor uma ferramenta CASE para geração de código em Java, usando técnicas convencionais de Engenharia de Software, a qual possibilite a importação de informações do dicionário de dados do Oracle Designer. Objetivos Específicos: revisão da literatura sobre Engenharia de Software, abordando processos e métodos de desenvolvimento, qualidade de software, análise de complexidade de código e, em especial, ferramentas CASE; revisão da literatura sobre Engenharia de Software, abordando processos e métodos de desenvolvimento, qualidade de software, análise de complexidade de código e, em especial, ferramentas CASE; especificar a ferramenta proposta, destacando: especificar a ferramenta proposta, destacando: o modelo de dados do Dicionário de Dados da Ferramenta CASE, para que informações de requisitos, gerenciamento, métricas e componentes de softwares possam ser armazenados e manipulados pela ferramenta; o modelo de dados do Dicionário de Dados da Ferramenta CASE, para que informações de requisitos, gerenciamento, métricas e componentes de softwares possam ser armazenados e manipulados pela ferramenta; a ferramenta para integrar a solução: diagramador ER (modelo entidade-relacionamento e navegador do dicionário de dados); a ferramenta para integrar a solução: diagramador ER (modelo entidade-relacionamento e navegador do dicionário de dados);

6 Objetivos Específicos: projetar um subsistema para integração com uma ferramenta CASE de mercado, no caso o software escolhido é o Oracle Designer6i; projetar um subsistema para integração com uma ferramenta CASE de mercado, no caso o software escolhido é o Oracle Designer6i; projetar um módulo para análise de complexidade estrutural de código gerado pela ferramenta; projetar um módulo para análise de complexidade estrutural de código gerado pela ferramenta; projetar o formulário de Time Recording Log definido pelo modelo Personal Software Process – PSP; projetar o formulário de Time Recording Log definido pelo modelo Personal Software Process – PSP; implementar a ferramenta proposta com as funções citadas anteriormente; implementar a ferramenta proposta com as funções citadas anteriormente; testar o protótipo da ferramenta, através de geração de código e da migração de um sistema cuja definição esteja armazenada no dicionário do Oracle Designer6i. testar o protótipo da ferramenta, através de geração de código e da migração de um sistema cuja definição esteja armazenada no dicionário do Oracle Designer6i. Objetivos

7 Escopo A ferramenta proposta é composta por um dicionário de dados, o qual armazena as definições das entidades, tabelas e módulos. A ferramenta proposta é composta por um dicionário de dados, o qual armazena as definições das entidades, tabelas e módulos. Todos estes elementos são organizados dentro de um projeto, que é o componente mestre das informações do dicionário de dados. Todos estes elementos são organizados dentro de um projeto, que é o 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á feita a tradução do código PL/SQL devido à dificuldade de conversão entre linguagens de programação. 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 entre linguagens de programação.

8 Engenharia de Software A Engenharia de Software é parte da Engenharia de Sistemas a qual está voltada ao desenvolvimento de sistemas com base em computadores, incluindo o desenvolvimento de hardware e de software e a engenharia de processos (SOMMERVILLE, 2003). Processo de Software Processo de Software Verificação e Validação de Software Verificação e Validação de Software Qualidade de Software Qualidade de Software Capability Maturity Model – CMM Capability Maturity Model – CMM Personal Software Process – PSP Personal Software Process – PSP Métodos de Desenvolvimento de Software Métodos de Desenvolvimento de Software Análise de Complexidade Estrutural de Código Análise de Complexidade Estrutural de Código Ferramentas CASE Ferramentas CASE

9 Engenharia de Software Processo de software Processo de software 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 simultaneamente à melhoria contínua dos produtos (HUMPRHEY, 1989). 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 simultaneamente à melhoria contínua dos produtos (HUMPRHEY, 1989). O Ciclo de Vida do Software Definição de Requisitos Projeto de Sistemas e de Software Implementação e Teste de Unidades Integração e Teste de Sistemas Operação e Manutenção

10 Engenharia de Software Verificação e validação Verificação e validação 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 atenda às necessidades dos clientes que estão pagando por ele. 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 atenda às necessidades dos clientes que estão pagando por ele. A diferença entre elas é sucintamente expressa por Boehn[1] (apud SOMMERVILLE, 2003, p.358) em que ao tratar da verificação ele questiona se estamos construindo certo o produto? e da validação se estamos construindo o produto certo? A diferença entre elas é sucintamente expressa por Boehn[1] (apud SOMMERVILLE, 2003, p.358) em que ao tratar da verificação ele questiona se estamos construindo certo o produto? e da validação se estamos construindo o produto certo?.[1] Qualidade de software Qualidade de software Pressman (2002, p. 500) : conformidade com requisitos funcionais e de desempenho explicitamente declarados, padrões de desenvolvimento explicitamente documentados e características implícitas, que são esperadas em todo o software desenvolvido profissionalmente. Pressman (2002, p. 500) : conformidade com requisitos funcionais e de desempenho explicitamente declarados, padrões de desenvolvimento explicitamente documentados e características implícitas, que são esperadas em todo o software desenvolvido profissionalmente. Partes diferentes são responsáveis pela garantia da qualidade do software: engenheiros de software, gerentes de projeto, clientes, pessoal de vendas e indivíduos que servem num grupo SQA (Software Quality Assurance) (HUMPHREY, 1989). Partes diferentes são responsáveis pela garantia da qualidade do software: engenheiros de software, gerentes de projeto, clientes, pessoal de vendas e indivíduos que servem num grupo SQA (Software Quality Assurance) (HUMPHREY, 1989). [ 1][ 1] BOEHN, B.W. Software engineering: R&D trends and defense needs. IN: Wegner, P. Directions in software tecnology. Cambridge, MA: MIT Press [ 1]

11 Engenharia de Software Capability Maturity Model OTIMIZADO Gerenciamento de mudança de processos Gerenciamento de mudanças tecnológicas Prevenção de defeitos DEFINIDO Revisão conjunta Coordenação intergrupos Engenharia de produto de software Gerenciamento de software integrado Programa de treinamento Definição do processo organizacional Foco no processo organizacional REPETITIVO Gerenciamento de configuração Garantia de qualidade do software Gerenciamento de subcontratados Visão geral e acompanhamento do projeto Planejamento do projeto Gerenciamento de requisitos INICIAL GERENCIADO Gerenciamento da qualidade do software Gerenciamento quantitativo dos processos Modelo SEI/CMM - Software Engineering Institute/SEI - Carnegie Mellon University

12 Engenharia de Software Personal Software Process Personal Software Process A metodologia Personal Software Process foi desenvolvida por Watts Humphrey para auxiliar desenvolvedores e pequenas equipes de desenvolvimento em suas necessidades de melhorias no processo de software pessoal (ESI CENTER, 2005). A metodologia Personal Software Process foi desenvolvida por Watts Humphrey para auxiliar desenvolvedores e pequenas equipes de desenvolvimento em suas necessidades de melhorias no processo de software pessoal (ESI CENTER, 2005). Enquanto o CMM está voltado para a melhoria do processo organizacional, o PSP está focado no desenvolvedor. Enquanto o CMM está voltado para a melhoria do processo organizacional, o PSP está focado no desenvolvedor. Métodos de Desenvolvimento de Software Métodos de Desenvolvimento de Software Método de Desenvolvimento Estruturado Método de Desenvolvimento Orientado a Objeto Análise de Complexidade Estrutural de Código Análise de Complexidade Estrutural de Código A análise de complexidade é formada por métricas, cujo emprego tem o objetivo de auxiliar o desenvolvedor a detectar componentes de software mais complexos, identificar características que possam ser modificadas, tornando estes componentes menos complexos (HERBERT, 1996). A análise de complexidade é formada por métricas, cujo emprego tem o objetivo de auxiliar o desenvolvedor a detectar componentes de software mais complexos, identificar características que possam ser modificadas, tornando estes componentes menos complexos (HERBERT, 1996). Métricas Estruturadas Métricas Estruturadas Métricas para Orientação a Objetos Métricas para Orientação a Objetos

13 Ferramentas CASE CASE combina software, hardware, e um banco de dados (um repositório contendo informações importantes sobre análise, design, construção de programas e testes) para criar um ambiente de Engenharia de Software análogo ao CAD (Computer Aided Design)/CAE (Computer Aided Engineering) para hardware (PRESSMAN, 2002). Geralmente, estas ferramentas estão integradas dentro de um ambiente sofisticado, com um repositório de dados, ferramentas para diagramação, editores de texto, geradores de código e ferramentas de teste (PRESSMAN, 2002). Benefícios Benefícios A tecnologia CASE permite aos desenvolvedores aumentar a qualidade e eficiência, resultando na melhoria do processo e redução de custos com a manutenção e desenvolvimento de sistemas. A tecnologia CASE permite aos desenvolvedores aumentar a qualidade e eficiência, resultando na melhoria do processo e redução de custos com a manutenção e desenvolvimento de sistemas. Problemas Problemas Segundo Lending e Chervany (1998), alguns desenvolvedores não utilizam ferramentas CASE por entenderem que ela limita a autonomia no desenvolvimento e, também, por empregar uma metodologia muito mais formal em relação aos desenvolvedores que não utilizam CASE no processo de desenvolvimento de software. Segundo Lending e Chervany (1998), alguns desenvolvedores não utilizam ferramentas CASE por entenderem que ela limita a autonomia no desenvolvimento e, também, por empregar uma metodologia muito mais formal em relação aos desenvolvedores que não utilizam CASE no processo de desenvolvimento de software.

14 Método Metodologia 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 Desenvolvimento de Arquitetura/ Metodologia*

15 Ferramenta de Geração Automática de Código Java Especificação: Especificação: Ferramenta CASE geradora de código Java, integrada ao Designer6i, com as características do dicionário de dados usado na ferramenta da Oracle. Ferramenta CASE geradora de código Java, integrada ao Designer6i, com as características do dicionário de dados usado na ferramenta da Oracle. 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 armazenados no dicionário de dados da ferramenta. 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 armazenados no dicionário de dados da ferramenta. Processo de Software da Ferramenta Processo de Software da Ferramenta Modelos de Dados Modelos de Dados

16 Processo 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 Time Recording Log Levantamento de Requisitos Testes Integração com o Oracle Designer

17 Processo de Modelagem de Dados Papéis EnvolvidosAnalistas de Sistemas Clientes/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ícioApós elicitação de requisitos, o processo é iniciado quando existirem informações consistentes. AtividadesAlimentar 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ídasModelo conceitual que representa as estruturas de dados que atendam os requisitos identificados. Condição de SaídaVerificaçã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.

18 Modelos 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 Time Recording Log Modelo Metadados do Time Recording Log

19 Modelo Metadados – Projetos e Entidades

20 Modelo Metadados – Implementação Física PROJETO # ID * NOME o OBJETIVO * DT_CRIACAO TABELA # ID * NOME o ABREVIACAO o ESPECIFICACAO * NOME_CHAVE_PRIMARIA COLUNA # ID * SEQ * NOME * TIPO o TAMANHO o DECIMAIS o COMENTARIO o CHAVE o VALOR_PADRAO o ORDEM o SEQ_ORDEM DOMINIO # ID * NOME * TIPO o VALOR_PADRAO o DESCRICAO VALOR DOMINIO # ID * SEQ * VALOR * SIGNIFIADO * ABREVIACAO INDICE # ID * NOME * INDICE_UNICO INDICE COLUNA * SEQ RELACAO TABELA # ID * NOME RELACAO COLUNA * SEQ COMPARTILHAMENTO TABELA 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

21 Modelo Metadados – Desenho de Módulos e Menus

22 Modelo Metadados – Repositório de Diagramas PROJETO # ID * NOME o OBJETIVO * DT_CRIACAO DIAGRAMA # ID * NOME o TITULO o AUTOR * TIPO o IMAGEM pertence possui

23 Modelo Metadados do Time Recording Log FASE PROJETO # COD * NOME * DT_CRIACAO PROJETO # ID * NOME o OBJETIVO * DT_CRIACAO TIME RECORDING LOG # DATA # HORA_INI o HORA_FIM o TEMPO_INTERRUPCAO o TEMPO_DELTA o COMENTARIOS * COMPLETADO o UNIDADES DESENVOLVEDOR # COD * NOME MODULO # ID * NOME * NOME_IMPLEMENTACAO * TIPO_MODULO usa e_usado pertence possui registrado registra pertence possui referencia referenciado

24 Protótipo - Protótipo - EASYCASE

25

26

27

28 Considerações Finais Este trabalho apresentou um para auxiliar as empresas de desenvolvimento que ainda utilizam o Oracle Designer para construir suas aplicações, mas desejam portar os seus produtos de software para a linguagem de programação Java. Este trabalho apresentou um protótipo de uma ferramenta CASE para auxiliar as empresas de desenvolvimento que ainda utilizam o Oracle Designer para construir suas aplicações, mas desejam portar os seus produtos de software 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 que forma o dicionário da ferramenta CASE; a especificação do modelo de dados que forma o dicionário da ferramenta CASE; desenvolvimento dos dos geradores de código ; desenvolvimento dos protótipos dos geradores de código Java e SQL DDL; especificação de um, podendo ser usado como um modelo de referência para a implantação do processo de software por empresas de desenvolvimento. especificação de um processo de desenvolvimento, podendo ser usado como um modelo de referência para a implantação do processo de software por empresas de desenvolvimento. Durante as fases de, ficou claro que a tarefa de projetar um dicionário de dados não é simples, pois o assunto Engenharia de Software é uma ampla área de pesquisa. Durante as fases de elicitação de requisitos, ficou claro que a tarefa de projetar um dicionário de dados não é simples, pois o assunto Engenharia de Software é uma ampla área de pesquisa. Outro aspecto importante a considerar são os modelos, sendo o segundo usado como ferramenta de acompanhamento das fases de um projeto através do. Outro aspecto importante a considerar são os modelos CMM e PSP, sendo o segundo usado como ferramenta de acompanhamento das fases de um projeto através do Time Recording Log.

29 Limitações e Extensões Futuras Limitações Limitações 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 entendimento do modelo de dados do repositório do CASE Oracle. 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 entendimento do modelo de dados do repositório do CASE Oracle. Mesmo sem todas as informações necessárias para efetuar, na sua totalidade, a integração com o Oracle Designer6i, a ferramenta de migração foi implementada parcialmente com algumas das informações sobre projetos. Mesmo sem todas as informações necessárias para efetuar, na sua totalidade, a integração com o Oracle Designer6i, a ferramenta de migração foi implementada parcialmente com algumas das informações sobre projetos. Extensões Futuras Extensões Futuras 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 dados armazenadas no dicionário; 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 dados armazenadas no dicionário; Implementar uma ferramenta de referência cruzada; Implementar uma ferramenta de referência cruzada; Implementar uma ferramenta para análise de impacto sobre alterações das estruturas de tabelas; Implementar uma ferramenta para análise de impacto sobre alterações das estruturas de tabelas; Implementar uma ferramenta de quality-check Implementar uma ferramenta de quality-check


Carregar ppt "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."

Apresentações semelhantes


Anúncios Google