Title: Um Processo
1Um 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
- II Workshop de Engenharia de Software
- UNESP FGP - UNIP
- Maria Istela Cagnin
- Orientador Prof. José Carlos Maldonado
- Maio/2005
2Roteiro
- 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
3Introduçã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
4Introduçã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).
5Motivação
- Uso de padrões de software e framework na
reengenharia - Uso de VVT 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
6Objetivos
- 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
7Linguagem 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(No Transcript)
9Exemplo 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?
10Exemplo de um Padrão da GRN
11Uso de um Padrão da GRN
12Framework 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)
13Fonte Braga, 2003
14Mé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.
15Mé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.
16Mé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
17Mé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
18Contribuiçõ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
19Processo Á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).
20Processo Ágil de Reengenharia baseado em
Linguagem de Padrões e Framework
21Processo Á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 VVT
- 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.
22Contribuiçõ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
23Processo de Evolução de Frameworks de Aplicação
24Processo 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) Func. Implementar a área que um livro pertence como tipo enumerado. Biblioteca (REENG) Perfectiva Atendi-do 1.1
03 Aparelho eletrônico possui proprietário Func. 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) Perfectiva Sendo atendi-do -
04 Emissão de etiquetas de mala direta Func. Implementar as etiquetas de mala direta a partir da criação da classe Etiqueta, contendo dois tamanhos de etiquetas pré-estabelecidos. Oficina Eletrônica (REENG) Perfectiva 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. Func. Um sub-sistema de segurança foi implementado em linguagem orientada a aspectos. - perfectiva Penden-te -
Histórico de Requisitos
25Contribuiçõ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
26Abordagem de Reúso de Teste - ARTe
27Abordagem 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)
28Abordagem 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
29Abordagem de Reúso de Teste
- Um estudo de caso observacional - Uso das
diretrizes de reúso
Informações Sem Reúso VVT Com Reúso VVT
Tempo reengenharia 67529 h 32040 h
Tempo VVT 57140 h 24030 h
Total casos de teste 354 695
47
84
75
42
50
30Contribuiçõ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
31Ferramenta de Apoio ao Controle de Versões
Framework
código fonte inserido manualmente
Aplicação v1
Aplicação v2
...
xxxxxxxxx
32(No Transcript)
33Ferramenta de Apoio ao Controle de Versões
Continua a instanciação
34Contribuiçõ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
35Pacote 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
36Limitaçõ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
37Trabalhos 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
38Trabalhos 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.
39Publicaçõ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.
40Publicaçõ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.
41Publicaçõ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.
42Um 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
- II Workshop de Engenharia de Software
- UNESP FGP - UNIP
- Maria Istela Cagnin (istela_at_icmc.usp.br)
- Orientador Prof. José Carlos Maldonado
- Maio/2005