390 likes | 488 Views
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
E N D
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
Roteiro • Introdução • 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
Introdução • Evolução constante do software • 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
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).
Motivação • Uso de padrões de software e framework na reengenharia • Uso de VV&Tna reengenharia • Necessidade de apoio computacionalna 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 experimentalna reengenharia
Objetivos • Definir um processo ágil de reengenharia baseado em frameworkno 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 automatizadopara apoiar a iteratividade do processo ágil de reengenharia baseado em framework • Definir um pacote de experimentação
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)
Identificar o Recurso (1) Grupo 1: Identificação, quantificação e armazenamento do recurso Grupo 2: Transações feitas com o recurso Quantificar o Recurso (2) Armazenar o Recurso (3) Locar o Recurso (4) Comercializar o Recurso (6) Manter o Recurso (9) Cotar o Recurso (7) Cotar a Manutenção (10) Reservar o Recurso (5) Grupo 3: Detalhes da Transação Conferir a Entrega do Recurso (8) Identificar as Tarefas da Manutenção (14) Itemizar a Transação do Recurso (11) Pagar pela Transação do Recurso (12) Identificar as Peças da Manutenção (15) Identificar o Executor da Transação (13)
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)
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; • Softwarefuncionando é 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.
Métodos Ágeis • Elaboram pouca documentação; • Facilitam a incorporação de mudanças nosrequisitos; • Exigem que a equipede desenvolvimento seja pequena; • Preocupam-se com soluções simples; • Fornecem versõesdo 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çãodos usuários; • Exigem que desenvolvedorese representantes dos usuáriossejam bem informados, competentese autorizadospara tomar decisões; • Realizam testesno software constantemente.
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
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
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
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 sistemaalvo concomitantemente comolegado; • 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).
Processo Ágil de Reengenharia baseado em Linguagem de Padrões e Framework
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.
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
Processo de Evolução de Frameworks de Aplicação Histórico de Requisitos
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
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)
Abordagem de Reúso de Teste • Para cada requisito funcional do sistema • Identificar os padrõesque modelam o requisito funcional • Para cada padrão identificado • Estabelecer correspondência das classes do padrão com o requisitofuncional do sistema • Reutilizarcasos deteste 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; • Criarcasos de teste adicionais, se necessário. • FimPara • Verificar o uso correto dos padrões
Abordagem de Reúso de Teste • Um estudo de caso observacional - Uso das diretrizes de reúso 47% 84% 75% 42% 50%
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
Ferramenta de Apoio ao Controle de Versões Framework código fonte inserido manualmente Aplicação v1 Aplicação v2 ... xxxxxxxxx
Ferramenta de Apoio ao Controle de Versões Continua a instanciação
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
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: http://labes.icmc.usp.br/~istela/experimentos/index.htm
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
Trabalhos Futuros • Para eliminar as limitações do trabalho: • Conduzir estudos de caso de reengenharia com o PARFAIT com outros frameworks • Conduzir estudos de casocom 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 casoparacompletar a definição do pacote de experimentação • Replicar o pacote de experimentação para validá-loe evoluí-lo • Evoluira ferramenta GREN-WizardVersionControl
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 PARFAITno desenvolvimento de software e na engenhariareversa.
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: 2004. 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. 2004. p. 1-12. • 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: 2004. v. I, p. 231-243. • 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 2004. 2004. p. 73-78. • 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: 2004. p. 71-85.
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: 2004. p. 414-425. • 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. 2003. v. 1, p. 240-254. • 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, 2003. p. 9-16. • 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. 2003. p. 22-31. • 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. 2003. p. 1-10.
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.
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 (istela@icmc.usp.br) Orientador: Prof. José Carlos Maldonado Maio/2005