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

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

Um Processo Ágil de Reengenharia baseado em Framework

Apresentações semelhantes


Apresentação em tema: "Um Processo Ágil de Reengenharia baseado em Framework"— Transcrição da apresentação:

1 Um Processo Ágil de Reengenharia baseado em Framework
Universidade de São Paulo Instituto de Ciências Matemáticas e de Computação Departamento de Ciências de Computação e Estatística Um Processo Ágil de Reengenharia baseado em Framework II Workshop de Engenharia de Software UNESP – FGP - UNIP Maria Istela Cagnin Orientador: Prof. José Carlos Maldonado Maio/2005

2 Roteiro Introdução Contexto Contribuições
Motivação e Objetivos Contexto Linguagens de Padrões Frameworks Métodos Ágeis Contribuições Definição de um Processo Ágil de Reengenharia baseado em Linguagem de Padrões e Framework Definição de um Processo de Evolução de Frameworks de Aplicação Definição de uma Abordagem de Reúso de Teste Automatização de uma Ferramenta de apoio ao Controle de Versões Definição de um Pacote de Experimentação Limitações e Trabalhos Futuros

3 Introdução Evolução constante do software  Migração de dados
Constantes atividades de manutenção consome 70% do esforço no ciclo de vida (Pressman, 2004) Degradação do código fonte Documentação desatualizada código fonte: única documentação Sistemas Legados  Migração de dados Década 90 Surgimento dos termos (Chikofsky, 1990): Engenharia Reversa e Reengenharia Incremental

4 Introdução Algumas vantagens da reengenharia:
preserva a solução existente do negócio em uma nova arquitetura técnica (Sneed, 1995). em geral, promove custo efetivo e menos riscos do que desenvolver um novo sistema (Warren, 2002).

5 Motivação Uso de padrões de software e framework na reengenharia
Uso de VV&T na reengenharia Necessidade de apoio computacional na reengenharia Preocupação de entregar o software sem atraso e com custo não superior ao estimado na reengenharia Importância da engenharia de software experimental na reengenharia

6 Objetivos Definir um processo ágil de reengenharia baseado em framework no domínio de sistemas de informação Definir um processo de evolução de frameworks de aplicação Definir uma abordagem de reúso de teste que agrega recursos de teste funcional aos padrões de linguagens de padrões Fornecer suporte automatizado para apoiar a iteratividade do processo ágil de reengenharia baseado em framework Definir um pacote de experimentação

7 Linguagem de Padrões GRN
Contém 15 padrões de análise Pertence a um domínio específico Gestão de Recursos de Negócio concentrado na locação, comercialização e manutenção de recursos. utiliza alguns padrões de análise existentes é flexível Adição de atributos específicos da aplicação notação UML (Unified Modeling Language)

8 Transações feitas com o recurso
Quantificar o Recurso (2) Armazenar o Recurso (3) Locar o Recurso (4) Reservar o Recurso (5) Comercializar o Recurso (6) Cotar o Recurso (7) Conferir a Entrega do Recurso (8) Manter o Recurso (9) Cotar a Manutenção (10) Identificar as Tarefas da Manutenção (14) Identificar as Peças da Manutenção (15) Itemizar a Transação do Recurso (11) Pagar pela Transação do Recurso (12) Identificar o Executor da Transação (13) Identificar o Recurso (1) Grupo 1: Identificação, quantificação e armazenamento do recurso Grupo 2: Transações feitas com o recurso Grupo 3: Detalhes da Transação Here is a figure that shows the relationship among the patterns. The arrows suggest the order in which we apply the patterns, but this order is best explained in a particular section of each pattern, called “following patterns”. The main patterns of the language are Rent the Resource, Trade the Resource and Maintain the Resource. This is denoted by a thicker line in these patterns. Patterns 12, 13 and 14 are applicable to all transaction patterns. This is why they are placed within a box. Now I’ll briefly define the problem of each pattern.

9 Exemplo de um Padrão da GRN
Padrão 4: Locar o Recurso Contexto Sua aplicação lida com aluguel de recursos, que podem ser bens emprestados a um cliente por um certo período ou serviços efetuados por um especialista por determinado tempo. Você já identificou e quantificou tais recursos. Problema Como gerenciar aluguéis de recursos realizados por sua aplicação? Now I’ll show you one of the patterns. It is pattern number 4: Rent the Resource

10 Exemplo de um Padrão da GRN
Estrutura

11 Uso de um Padrão da GRN Exemplo

12 Framework GREN construção: baseada na linguagem de padrões GRN
armazenamento: banco de dados MySQL linguagem de programação: Smalltalk (VisualWorks 4.i.5) arquitetura: três camadas negócio, persistência e interface alternativas de instanciação manual (cookbook) ferramenta de instanciação (GREN-Wizard)

13 Fonte: Braga, 2003

14 Métodos Ágeis Década 90: reunião para estabelecer melhores práticas de desenvolvimento de software “Aliança Ágil” - Manifesto Ágil (Fevereiro/2001) 4 valores e 12 princípios Valores: Pessoas e interações são mais importantes do que processos e ferramentas; Software funcionando é mais importante do que documentação compreensiva; Participação dos clientes é mais importante do que negociação; Resposta a mudanças é mais importante do que seguir um plano.

15 Métodos Ágeis Elaboram pouca documentação;
Facilitam a incorporação de mudanças nos requisitos; Exigem que a equipe de desenvolvimento seja pequena; Preocupam-se com soluções simples; Fornecem versões do software em intervalos freqüentes (a cada hora, a cada dia, ou, mais usualmente, a cada mês ou a cada bimestre); Proporcionam constante interação e cooperação dos usuários; Exigem que desenvolvedores e representantes dos usuários sejam bem informados, competentes e autorizados para tomar decisões; Realizam testes no software constantemente.

16 Método eXtreme Programming
As idéias de XP não são novas e a maioria delas são tão velhas como programar (Beck, 2000). técnicas foram provadas durante décadas Utilizado por equipes de desenvolvimento de software de tamanho pequeno e médio Novidade! reconhecimento de que as pessoas são responsáveis para o sucesso dos projetos aumentar os níveis de competência individual e de colaboração

17 Método eXtreme Programming
Conjunto de 4 valores e 12 práticas Valores: 1) comunicação, 2) simplicidade, 3) feedback e 4) coragem. Práticas: 1) jogo do planejamento 2) versões pequenas 3) metáfora 4) projeto simples 5) testes constantes 6) refatoração constante 7) programação em pares 8) propriedade coletiva do código 9) integração contínua 10 semana de 40 horas 11) cliente presente 12) padrões de codificação

18 Contribuições Definição de um Processo Ágil de Reengenharia baseado em Linguagem de Padrões e Framework Definição de um Processo de Evolução de Frameworks de Aplicação Definição de uma Abordagem de Reúso de Teste Automatização de uma Ferramenta de apoio ao Controle de Versões Definição de um Pacote de Experimentação no contexto de reengenharia

19 Processo Ágil de Reengenharia baseado em Linguagem de Padrões e Framework
Objetivo: Migrar sistemas legados procedimentais para o paradigma OO Principais características: é incremental, iterativo e baseado em framework; considera diversas práticas ágeis (versões pequenas, cliente presente, testes constantes, jogo do planejamento, programação em pares, propriedade coletiva do código e integração contínua, metáfora e semana de 40 horas); é dirigido ao cliente e dirigido ao risco; utiliza “reengenharia guiada por teste”; executa o sistema alvo concomitantemente com o legado; não se limita a reproduzir a funcionalidade do sistema legado. o formato da documentação: elementos fundamentais do arcabouço do RUP (Rational Unified Process).

20 Processo Ágil de Reengenharia baseado em Linguagem de Padrões e Framework

21 Processo Ágil de Reengenharia baseado em Linguagem de Padrões e Framework
Dois estudos de caso de reengenharia prospectivos permitiram: refinar a documentação do PARFAIT observar a necessidade de evoluir framework GREN motivar a criação de um PRocesso de Evolução de Framework (PREF) Um estudo de caso observacional permitiu: coleta de dados: 84% do tempo gasto com VV&T observar a necessidade de associar recursos de teste aos padrões da linguagem de padrões motivar a criação uma Abordagem Reúso de Teste (ARTe) observar que a ferramenta GREN-Wizard não apoiava a iteratividade do PARFAIT.

22 Contribuições Definição de um Processo Ágil de Reengenharia baseado em Linguagem de Padrões e Framework Definição de um Processo de Evolução de Frameworks de Aplicação Definição de uma Abordagem de Reúso de Teste Automatização de uma Ferramenta de apoio ao Controle de Versões Definição de um Pacote de Experimentação no contexto de reengenharia

23 Processo de Evolução de Frameworks de Aplicação

24 Processo de Evolução de Frameworks de Aplicação
ID. Requisito Tipo Solução de projeto implementada na aplicação Aplica-ção Tipo de manut. Situa-ção Ver-são 01 Livros podem ter diversos autores. Func. Implementar os autores de um livro como atributo multivalorado da classe Livro. Biblioteca (REENG) Perfectiva Atendi-do 1.1 02 Livro pertence a uma determinada área (Exatas, Biológicas, Humanas) Implementar a área que um livro pertence como tipo enumerado. 03 Aparelho eletrônico possui proprietário Implementar o proprietário de um aparelho eletrônico na classe Aparelho como uma referência da classe Proprietário por meio de um tipo enumerado. Oficina Eletrônica (REENG) Sendo atendi-do - 04 Emissão de etiquetas de mala direta Implementar as etiquetas de mala direta a partir da criação da classe Etiqueta, contendo dois tamanhos de etiquetas pré-estabelecidos. Penden-te 06 É necessário autenticar os usuários do sistema, registrar os acessos efetuados e bloquear o acesso a determinadas operações do usuário, conforme o seu papel. Um sub-sistema de segurança foi implementado em linguagem orientada a aspectos. perfectiva Histórico de Requisitos

25 Contribuições Definição de um Processo Ágil de Reengenharia baseado em Linguagem de Padrões e Framework Definição de um Processo de Evolução de Frameworks de Aplicação Definição de uma Abordagem de Reúso de Teste Automatização de uma Ferramenta de apoio ao Controle de Versões Definição de um Pacote de Experimentação no contexto de reengenharia

26 Abordagem de Reúso de Teste - ARTe

27 Abordagem de Reúso de Teste - ARTe
Elaborar requisitos de teste de consistência (PASSO 3.1) Elaborar requisitos de teste de integridade (PASSO 3.2) Passos da ARTe instanciados para a GRN Elaborar requisitos de teste do Negócio (PASSO 4)

28 Abordagem de Reúso de Teste
Para cada requisito funcional do sistema Identificar os padrões que modelam o requisito funcional Para cada padrão identificado Estabelecer correspondência das classes do padrão com o requisito funcional do sistema Reutilizar casos de teste do padrão fimPara Reutilizar requisitos de teste que podem ser adaptados Derivar e documentar casos de teste baseado nos requisitos reusados; Reutilizar classes de equivalência que podem ser adaptadas; Derivar e documentar casos de teste baseados nas classes de equivalência reusadas; Criar casos de teste adicionais, se necessário. FimPara Verificar o uso correto dos padrões

29 Abordagem de Reúso de Teste
Um estudo de caso observacional - Uso das diretrizes de reúso Informações Sem Reúso VV&T Com Reúso VV&T Tempo reengenharia 675:29 h 320:40 h Tempo VV&T 571:40 h 240:30 h Total casos de teste 354 695 47% 84% 42% 75% 50%

30 Contribuições Definição de um Processo Ágil de Reengenharia baseado em Linguagem de Padrões e Framework Definição de um Processo de Evolução de Frameworks de Aplicação Definição de uma Abordagem de Reúso de Teste Automatização de uma Ferramenta de apoio ao Controle de Versões Definição de um Pacote de Experimentação no contexto de reengenharia

31 Ferramenta de Apoio ao Controle de Versões
Framework código fonte inserido manualmente Aplicação v1 Aplicação v2 ... xxxxxxxxx

32

33 Ferramenta de Apoio ao Controle de Versões
Continua a instanciação

34 Contribuições Definição de um Processo Ágil de Reengenharia baseado em Linguagem de Padrões e Framework Definição de um Processo de Evolução de Frameworks de Aplicação Definição de uma Abordagem de Reúso de Teste Automatização de uma Ferramenta de apoio ao Controle de Versões Definição de um Pacote de Experimentação no contexto de reengenharia

35 Pacote de Experimentação
Contém o planejamento parcial do experimento para avaliar a aplicabilidade do PARFAIT (meio acadêmico e industrial): completa: fases de definição, planejamento e operação não possui: fases análise e interpretação incompleta: fases de apresentação e enpacotamento Contém instrumentação necessária para apoiar os interessados na condução do experimento. URL:

36 Limitações Uso dos produtos da tese apenas com o GREN e GRN
PARFAIT, PREF, ARTe, Pacote Experimentação Processos PARFAIT e PREF são genéricos? Abordagem ARTe é flexível? Escalabilidade do PARFAIT aplicado apenas em sistemas de pequeno porte Ferramenta GREN-WizardVersionControl específica ao framework GREN impossibilita as práticas ágeis “propriedade coletiva do código” e “integração contínua” Não há validação completa do pacote de experimentação

37 Trabalhos Futuros Para eliminar as limitações do trabalho:
Conduzir estudos de caso de reengenharia com o PARFAIT com outros frameworks Conduzir estudos de caso com sistemas de médio e grande porte para observar a escalabilidade do PARFAIT Refinar a abordagem ARTe utilizando-a em outras linguagens de padrões Refinar o processo PREF utilizando-o em outros frameworks Conduzir estudos de caso para completar a definição do pacote de experimentação Replicar o pacote de experimentação para validá-lo e evoluí-lo Evoluir a ferramenta GREN-WizardVersionControl

38 Trabalhos Futuros Para evoluir o trabalho realizado:
Definir estratégias de teste para testar frameworks baseados em linguagens de padrões (GREN) Documentar os recursos de teste criados com a aplicação da abordagem ARTe em um formato específico (XML) Desenvolver uma ferramenta para gerenciar os hot spots das versões dos frameworks, apoiando o processo PREF. Desenvolver uma ferramenta para apoiar a aplicação do PARFAIT. Formalizar a equivalência funcional do sistema legado com o sistema alvo. Conduzir estudos de caso de reengenharia para avaliar o desempenho de cada prática ágil do PARFAIT. Conduzir estudos de caso para observar a aplicabilidade do PARFAIT no desenvolvimento de software e na engenharia reversa.

39 Publicações ARTIGOS COMPLETOS EM EVENTOS
CAGNIN, Maria Istela; MALDONADO, José Carlos; MASIERO, Paulo Cesar; BRAGA, Rosana Terezinha Vaccare; PENTEADO, Rosangela Dellosso. An Evolution Process for Application Frameworks. In: I WORKSHOP DE MANUTENÇÃO DE SOFTWARE MODERNA EM CONJUNTO COM XVIII SIMPÓSIO BRASILEIRO DE ENGENHARIA DE SOFTWARE, 2004, Brasília-DF. Primeiro Workshop de Manutenção de SoftWare Moderna. Brasília-DF: p. 1-8. CAGNIN, Maria Istela; PENTEADO, Rosangela Dellosso; GERMANO, Fernao Stella; MALDONADO, José Carlos. Evolução do PARFAIT: Um Processo de Reengenharia de Software Baseado em Framework. In: SIMPÓSIO DE DESENVOLVIMENTO E MANUTENÇÃO DE SOFTWARE DA MARINHA, 2004, Rio de Janeiro. IV Simpósio de Desenvolvimento e Manutenção de Software da Marinha p CAGNIN, Maria Istela; PAIVA, Débora Maria Barroso; MALDONADO, José Carlos; PENTEADO, Rosangela Dellosso; FORTES, Renata Pontin de Mattos; GERMANO, Fernão Stella. From DesignRationale to Reengineering Rationale: Lessons Learned in a Maintenance Pilot Case Study. In: JORNADAS IBEROAMERICANAS DE INGENIERÍA DEL SOFTWARE E INGENIERÍA DEL CONOCIMIENTO, 2004, Madrid, Espanha. 4ª Jornadas Iberoamericanas de Ingeniería del Software e Ingeniería del Conocimiento. Madrid-Espanha: v. I, p CAGNIN, Maria Istela; MALDONADO, José Carlos; PENTEADO, Rosangela Dellosso; BRAGA, Rosana Terezinha Vaccare; GERMANO, Fernão Stella. GREN-WizardVersionControl: Uma Ferramenta de Apoio ao Controle de Versão das Aplicações Criadas pelo Framework GREN. In: SESSÃO DE FERRAMENTAS EM CONJUNTO COM XVIII SIMPÓSIO BRASILEIRO DE ENGENHARIA DE SOFTWARE, 2004, Brasília-DF. XI Sessão de Ferramentas - SBES p CAGNIN, Maria Istela; MALDONADO, José Carlos; CHAN, Alessandra; PENTEADO, Rosangela Dellosso; GERMANO, Fernão Stella. Reuso na Atividade de Teste para Reduzir Custo e Esforço de VV\&T no Desenvolvimento e na Reengenharia de Software. In: SIMPÓSIO BRASILEIRO DE ENGENHARIA DE SOFTWARE, 2004, Brasília-DF. XVIII Simpósio Brasileiro de Engenharia de Software. Brasília-DF: p

40 Publicações ARTIGOS COMPLETOS EM EVENTOS (CONT.)
CAGNIN, Maria Istela; MALDONADO, José Carlos; BRAGA, Rosana Terezinha Vaccare; GERMANO, Fernão Stella; PENTEADO, Rosangela Dellosso. Uma Ferramenta de Apoio ao Controle de Versão das Aplicações Criadas por um Framework. In: CONFERÊNCIA LATINO-AMERICANA DE INFORMÁTICA, 2004, Arequipa-Peru. XXX Conferência Latino-Americana de Informática. Arequipa-Peru: p CAGNIN, Maria Istela; MALDONADO, José Carlos; GERMANO, Fernão Stella; MASIERO, Paulo Cesar; CHAN, Alessandra; PENTEADO, Rosangela Dellosso. An Agile Reverse Engineering Process based on a Framework. In: WORKSHOP EM ENGENHARIA DE REQUISITOS, 2003, Piracicaba. 6th International Workshop on Requirements Engineering v. 1, p CAGNIN, Maria Istela; MALDONADO, José Carlos; GERMANO, Fernão Stella; PENTEADO, Rosangela Dellosso. Investigation and Definition of a Computer-Aided Framework-based Agile Reengineering Process. In: WORKSHOP DE TESES EM ENGENHARIA DE SOFTWARE, 2003, Manaus, AM. VIII Workshop de Teses em Engenharia de Software e II Workshop de Teses e Dissertações em Banco de Dados. Manaus, AM: EDUA - Editora da Universidade Federal do Amazonas, p CAGNIN, Maria Istela; MALDONADO, José Carlos; GERMANO, Fernão Stella; PENTEADO, Rosangela Dellosso. PARFAIT: Towards a Framework-based Agile Reengineering Process. In: AGILE DEVELOPMENT CONFERENCE, 2003, Salt Lake City, UTHA. IEEE p CAGNIN, Maria Istela; MALDONADO, José Carlos; GERMANO, Fernão Stella; CHAN, Alessandra; PENTEADO, Rosangela Dellosso. Um Estudo de Caso de Reengenharia Utilizando o Processo PARFAIT.In: SIMPÓSIO DE DESENVOLVIMENTO E MANUTENÇÃO DE SOFTWARE DA MARINHA, 2003, Niterói, RJ. III Simpósio de Desenvolvimento e Manutenção de Software da Marinha p

41 Publicações ARTIGOS SUBMETIDOS EM EVENTOS
CAGNIN, Maria Istela; BRAGA, Rosana Terezinha Vaccare; GERMANO, Fernão Stella; CHAN, Alessandra; MALDONADO, José Carlos. Extending Patterns with Testing Implementation. In: SugarLoafPlop'2005, V Conferência Latino-Americana em Linguagens de Padrões para Programação, Campos do Jordão-SP, Agosto, 2005. CAGNIN, Maria Istela; PENTEADO, Rosângela; MASIERO, Paulo César; BRAGA, Rosana Terezinha Vaccare; MALDONADO, José Carlos. Process for Variability Control and Application Frameworks Evolution. In: IWPSE'2005, International Workshop on Principles of Software Evolution em conjunto com FSE/ESEC'2005. Lisboa, Portugal, Setembro, 2005. ARTIGO A SER SUBMETIDO EM PERIÓDICO CAGNIN, Maria Istela; PENTEADO, Rosângela; GERMANO, Fernão Stella; MALDONADO, José Carlos. Agile Reengineering with Reuse. In: JOURNAL OF SOFTWARE MAINTENANCE AND EVOLUTION: RESEARCH AND PRACTICE.

42 Um Processo Ágil de Reengenharia baseado em Framework
Universidade de São Paulo Instituto de Ciências Matemáticas e de Computação Departamento de Ciências de Computação e Estatística Um Processo Ágil de Reengenharia baseado em Framework II Workshop de Engenharia de Software UNESP – FGP - UNIP Maria Istela Cagnin Orientador: Prof. José Carlos Maldonado Maio/2005


Carregar ppt "Um Processo Ágil de Reengenharia baseado em Framework"

Apresentações semelhantes


Anúncios Google