23
UMA REVISÃO SISTEMÁTICA SOBRE PADRÕES DE SOFTWARE PARA REENGENHARIA DE SISTEMAS Aluno: Erivan de Sena Ramos Orientadora: Márcia Maria Albuquerque Brasil Fortaleza 2011 UNIVERSIDADE ESTADUAL DO CEARÁ Centro de Ciência e Tecnologia Especialização em Engenharia de Software com Ênfase em Padrões de Software

Apresentação Pesquisa Um Mapeamento Sistemático sobre Padrões de Software para Reengenharia de Sistemas

Embed Size (px)

DESCRIPTION

Apresentação Pesquisa Um Mapeamento Sistemático sobre Padrões de Software para Reengenharia de Sistemas.

Citation preview

Page 1: Apresentação Pesquisa Um Mapeamento Sistemático sobre Padrões de Software para Reengenharia de Sistemas

UMA REVISÃO SISTEMÁTICA SOBRE PADRÕES DE SOFTWARE PARA REENGENHARIA DE SISTEMAS

Aluno: Erivan de Sena RamosOrientadora: Márcia Maria Albuquerque Brasil

Fortaleza2011

UNIVERSIDADE ESTADUAL DO CEARÁCentro de Ciência e TecnologiaEspecialização em Engenharia de Software com Ênfase em Padrões de Software

Page 2: Apresentação Pesquisa Um Mapeamento Sistemático sobre Padrões de Software para Reengenharia de Sistemas

2/23

Roteiro

UMA REVISÃO SISTEMÁTICA SOBRE PADRÕES DE SOFTWARE PARA REENGENHARIA DE SISTEMAS

Objetivo Geral e Objetivos Específicos

Justificativa

Fundamentação Teórica

Metodologia

Protocolo da Revisão

Condução da Revisão

Análise de Discussão dos Resultados

Conclusão

Page 3: Apresentação Pesquisa Um Mapeamento Sistemático sobre Padrões de Software para Reengenharia de Sistemas

3/23

Investigar, catalogar e classificar os padrões de software para reengenharia de sistemas, publicados em conferências e workshops PLoP;

Realizar Catalogação bibliográfica;

Classificar padrões segundo as disciplinas do Rational Unified Process (RUP);

Identificar as linhas de pesquisa quanto aos processos de reengenharia e linguagens de programação adotadas nos padrões incluídos.

Objetivo Geral

UMA REVISÃO SISTEMÁTICA SOBRE PADRÕES DE SOFTWARE PARA REENGENHARIA DE SISTEMAS

Realizar uma revisão sistemática sobre padrões de software para reengenharia de sistemas

Objetivos Específicos

Page 4: Apresentação Pesquisa Um Mapeamento Sistemático sobre Padrões de Software para Reengenharia de Sistemas

4/23

UMA REVISÃO SISTEMÁTICA SOBRE PADRÕES DE SOFTWARE PARA REENGENHARIA DE SISTEMAS

Quando um importante sistema legado não tem mais capacidade de suportar as mudanças em seus requisitos, comumente, é submetido ao processo de reengenharia (DUCASSE et al., 1999)

A reengenharia de sistemas apresenta-se como um dos maiores desafios para os engenheiros de software, pois seus resultados interferem diretamente na continuidade dos negócios das mesmas (RECHIA et al., 2003).

Os padrões de software aplicados na reengenharia visam registrar o conhecimento sobre como modificar softwares legados, ajudam a diagnosticar problemas, e identificam as soluções mais apropriadas aos novos requisitos (LEMOS, 2002)

Uma catalogação bibliográfica, bem como uma classificação desses padrões pode ajudar o engenheiro de software a localizar e identificar rapidamente o melhor padrão a ser utilizado em seu projeto de reengenharia de software.

Justificativa

Page 5: Apresentação Pesquisa Um Mapeamento Sistemático sobre Padrões de Software para Reengenharia de Sistemas

5/23

UMA REVISÃO SISTEMÁTICA SOBRE PADRÕES DE SOFTWARE PARA REENGENHARIA DE SISTEMAS

PROCESSO DE ENGENHARIA DE SOFTWARE

Os processos de software mais utilizados atualmente na engenharia de software

são (SOMMERVILLE, 2007):

Modelo em Cascata: As atividades são separadas em fases;

Desenvolvimento Evolucionário: A execução das atividades realizada de forma

incremental;

Engenharia baseada em componentes: Aplica-se o reuso de componentes.

Entrega Incremental e Desenvolvimento Espiral: Priorizam a iteração do processo.

Rational Unified Process (RUP): combina todos os elementos dos demais

processos de engenharia de software

Fundamentação Teórica

Page 6: Apresentação Pesquisa Um Mapeamento Sistemático sobre Padrões de Software para Reengenharia de Sistemas

6/23

UMA REVISÃO SISTEMÁTICA SOBRE PADRÕES DE SOFTWARE PARA REENGENHARIA DE SISTEMAS

PROCESSO DE ENGENHARIA DE SOFTWARE

Devido à importância da utilização de um processo de engenharia de software e ao RUP apresentar-se como um processo maduro, reconhecido e que se destaca perante os demais processos existentes, o mesmo foi utilizado na classificação dos padrões incluídos neste estudo.

Fundamentação Teórica

Page 7: Apresentação Pesquisa Um Mapeamento Sistemático sobre Padrões de Software para Reengenharia de Sistemas

7/23

UMA REVISÃO SISTEMÁTICA SOBRE PADRÕES DE SOFTWARE PARA REENGENHARIA DE SISTEMAS

SISTEMAS LEGADOS

Os sistemas legados podem vir a apresentar uma lista bem longa de não-conformidades, tais como: projetos não-extensíveis; código complicado; documentação pobre ou inexistente; casos de teste e resultados que nunca foram arquivados; e um histórico de modificações mal gerido (PRESSMAN, 2006).

Mudanças em um sistema legado são importantes, pois é necessário que ele evolua, fique mais dinâmico, e apresente um valor a mais para os negócios (ARAÚJO, 2009) .

Fundamentação Teórica

Page 8: Apresentação Pesquisa Um Mapeamento Sistemático sobre Padrões de Software para Reengenharia de Sistemas

8/23

UMA REVISÃO SISTEMÁTICA SOBRE PADRÕES DE SOFTWARE PARA REENGENHARIA DE SISTEMAS

REENGENHARIA DE SISTEMAS

A reengenharia recupera as informações de projeto do sistema existente e ainda possibilita o uso de tais informações para a alteração e reconstituição do mesmo, sempre com o intuito de melhorar a qualidade global do sistema (PRESSMAN, 2006).

O processo de reengenharia é indicado para sistemas legados que ainda apresentam grande utilidade para a organização, mas que possuem uma manutenção difícil (LEMOS et al. 2003).

Fundamentação Teórica

Page 9: Apresentação Pesquisa Um Mapeamento Sistemático sobre Padrões de Software para Reengenharia de Sistemas

9/23

UMA REVISÃO SISTEMÁTICA SOBRE PADRÕES DE SOFTWARE PARA REENGENHARIA DE SISTEMAS

PADRÕES DE SOFTWARE

Diante dos problemas enfrentados pelos profissionais da indústria de software, surgem soluções comprovadamente boas e possíveis de serem reutilizadas. Os padrões de software tornam essas soluções mais acessíveis para serem utilizadas nos problemas recorrentes dos mais diversos domínios, seja organizacional, de análise, projeto ou implementação (OLIVEIRA, 2007).

Um esquema de organização para os padrões existentes é importante para tornar mínimo o esforço dos desenvolvedores na busca dos mais adequados a sua necessidade, pois quanto maior o número de padrões em um sistema de padrões, maior é a dificuldade de localizá-los, entendê-los e utilizá-los (VERONESE, 2002) (BUSCHMANN,1996).

Fundamentação Teórica

Page 10: Apresentação Pesquisa Um Mapeamento Sistemático sobre Padrões de Software para Reengenharia de Sistemas

10/23

UMA REVISÃO SISTEMÁTICA SOBRE PADRÕES DE SOFTWARE PARA REENGENHARIA DE SISTEMAS

PADRÕES DE SOFTWARE

A utilização de padrões na reengenharia pode reforçar a qualidade e a economia de tempo em projetos de manutenção de software legado. A identificação e a categorização de padrões possíveis de uso com este fim se apresentam como algo viável e importante, contribuindo para um processo de desenvolvimento de software de qualidade.

Fundamentação Teórica

Page 11: Apresentação Pesquisa Um Mapeamento Sistemático sobre Padrões de Software para Reengenharia de Sistemas

11/23

UMA REVISÃO SISTEMÁTICA SOBRE PADRÕES DE SOFTWARE PARA REENGENHARIA DE SISTEMAS

Revisão Sistemática: sintetiza os trabalhos existentes em conformidade com uma estratégia de busca pré-definida, garantindo a integridade da revisão.

Metodologia

CONCEPÇÃO ESTUDORESULTADO

S CONCLUSÃO

1 2 3

Uma abordagem das três etapas da Revisão Sistemática (BIOLCHINI et al., 2005).

Atividades da Revisão Sistemática (KITCHENHAM, 2004).

Page 12: Apresentação Pesquisa Um Mapeamento Sistemático sobre Padrões de Software para Reengenharia de Sistemas

12/23

Questões de Pesquisa:

Q1 - Quais os padrões de reengenharia publicados nas Conferências e Workshops especializados em padrões de software?

Q2 - Como se classificam os padrões de reengenharia, publicados nas Conferências e Workshops especializados em padrões de software, quanto às disciplinas do processo de engenharia de software RUP?

Q3 - Os padrões publicados apresentados abordam qual tipo de processo de reengenharia: Engenharia Reversa, Engenharia Avante ou Reestruturação?

Q4 - Os usos conhecidos dos padrões publicados abordam quais linguagens de programação?

Q5 - Quais Conferências e Workshops têm apresentado em seus anais padrões para reengenharia de sistemas? Em quais anos? Quem se destaca em números de estudos e padrões publicados?

População: Publicações contendo Padrões de Software.

Intervenção: Padrões de Software para Reengenharia.

Protocolo de Revisão

UMA REVISÃO SISTEMÁTICA SOBRE PADRÕES DE SOFTWARE PARA REENGENHARIA DE SISTEMAS

Page 13: Apresentação Pesquisa Um Mapeamento Sistemático sobre Padrões de Software para Reengenharia de Sistemas

13/23

UMA REVISÃO SISTEMÁTICA SOBRE PADRÕES DE SOFTWARE PARA REENGENHARIA DE SISTEMAS

Fontes Primárias Pesquisadas:

• PLoP: 17 edições, entre 1994 e 2004;

• Sugarloaf PLoP: 08 edições, entre 2001 e 2010;

• EuroPLoP: 16 edições, entre 1996 e 2011;

• Meta EuroPLoP: 01 edição em 2011;

• Asian PLoP: 01 edição em 2010;

• ParaPLoP: 03 edições, entre 2009 e 2011

• Scrum PLoP: 02 edições, entre 2010 e 2011;

• Viking PLoP: 07 edições, entre 2002 e 2008; e

• PEAM: 02 edições, em 2009 e 2010.

Condução da Revisão

Page 14: Apresentação Pesquisa Um Mapeamento Sistemático sobre Padrões de Software para Reengenharia de Sistemas

14/23

Strings de Busca:

Protocolo de Revisão

UMA REVISÃO SISTEMÁTICA SOBRE PADRÕES DE SOFTWARE PARA REENGENHARIA DE SISTEMAS

SISTEMA LEGADO

SOFTWARE LEGADO

APLICAÇÃO LEGADAPADRÃO DE REENGENHARIA

ENGENHARIA REVERSA

ENGENHARIA AVANTE

REESTRUTURAÇÃO

REENGENHARIA

LEGACY SYSTEM

REENGINEERING PATTERN

REVERSE ENGINEERING

FORWARD ENGINEERING

RESTRUCTURING

REENGINEERING

Page 15: Apresentação Pesquisa Um Mapeamento Sistemático sobre Padrões de Software para Reengenharia de Sistemas

15/23

Critérios de Inclusão:

Protocolo de Revisão

UMA REVISÃO SISTEMÁTICA SOBRE PADRÕES DE SOFTWARE PARA REENGENHARIA DE SISTEMAS

1 Os estudos devem ter sido publicados nas Conferências e Workshops PLoP

2 Os estudos devem estar escritos em inglês ou português;

3 Os estudos devem estar disponíveis na web;

4 Os estudos que apresentem alguma das strings de busca em seu título, resumo/abstract ou

palavras-chaves;

5 Os estudos devem apresentar a proposta de um ou mais padrões de reengenharia em sistemas.

Critérios de Qualidade:

1 Os estudos apresentam padrões de reengenharia documentados em um formato de escrita de

padrões, descritos de forma explícita e organizada.

Page 16: Apresentação Pesquisa Um Mapeamento Sistemático sobre Padrões de Software para Reengenharia de Sistemas

16/23

Método da Extração dos Dados:

Protocolo de Revisão

UMA REVISÃO SISTEMÁTICA SOBRE PADRÕES DE SOFTWARE PARA REENGENHARIA DE SISTEMAS

Aplicada estratégia de pesquisa para identificar estudos primários realizada por meio da leitura do título, resumo/abstract e palavras–chave com as strings de busca. A busca é registrada por meio de um Formulário de Condução da Revisão;

O conjunto de estudos é selecionado a partir da verificação dos critérios de inclusão e exclusão. A seleção (inclusão/exclusão) dos estudos é feita por meio de uma leitura superficial dos estudos primários, tendo como foco identificar os critérios estabelecidos. A etapa de seleção é documentada em um Formulário de Seleção dos Estudos;

Todos os estudos incluídos como resultados da pesquisa inicial são revisados, inteira e minuciosamente, por outro pesquisador.

Os resultados são revisados por todos os pesquisadores envolvidos e quaisquer desacordos são discutidos e resolvidos.

Os resultados da revisão, que conta com os detalhes das pesquisas realizadas nos estudos primários selecionados, são registrados em um Formulário de Extração dos Dados.

1

2

3

4

5

Page 17: Apresentação Pesquisa Um Mapeamento Sistemático sobre Padrões de Software para Reengenharia de Sistemas

17/23

UMA REVISÃO SISTEMÁTICA SOBRE PADRÕES DE SOFTWARE PARA REENGENHARIA DE SISTEMAS

Q1 - Quais os padrões de reengenharia publicados nas Conferências e Workshops especializados em padrões de software?

Realiza catalogação bibliográfica de 67 padrões, os quais atenderam os critérios de inclusão/exclusão e qualidade.

Obs.: A consulta obteve êxito somente nas seguintes fontes:

•PLoP: 3 estudos encontrados e pré-selecionados;

•Sugar Loaf PLoP : 6 encontrados e pré-selecionados; e

•EuroPLoP: 7 encontrados e pré-selecionados.

Dos 16 estudos pré-selecionados, 12 estavam de acordo com todos os critérios

previstos no protocolo de revisão e tiveram seus dados extraídos e analisados.

Análise e Discussão dos Resultados

Page 18: Apresentação Pesquisa Um Mapeamento Sistemático sobre Padrões de Software para Reengenharia de Sistemas

18/23

UMA REVISÃO SISTEMÁTICA SOBRE PADRÕES DE SOFTWARE PARA REENGENHARIA DE SISTEMAS

Q2 - Como se classificam os padrões de reengenharia, publicados nas Conferências e Workshops especializados em padrões de software, quanto às disciplinas do processo de engenharia de software RUP?

Análise e Discussão dos Resultados

Porcentagem de Padrões por Disciplina do RUP

As disciplinas Testes e Implantação não são apresentadas no gráfico porque não envolvem nenhum padrão de reengenharia selecionado durante a Revisão Sistemática.

Page 19: Apresentação Pesquisa Um Mapeamento Sistemático sobre Padrões de Software para Reengenharia de Sistemas

19/23

UMA REVISÃO SISTEMÁTICA SOBRE PADRÕES DE SOFTWARE PARA REENGENHARIA DE SISTEMAS

Q3 - Os padrões publicados apresentados abordam qual tipo de processo de reengenharia (Engenharia Reversa, Engenharia Avante, Reestruturação)?

Análise e Discussão dos Resultados

Percentual de Padrões por Processo de Reengenharia

Page 20: Apresentação Pesquisa Um Mapeamento Sistemático sobre Padrões de Software para Reengenharia de Sistemas

20/23

UMA REVISÃO SISTEMÁTICA SOBRE PADRÕES DE SOFTWARE PARA REENGENHARIA DE SISTEMAS

Q4 - Os usos conhecidos dos padrões publicados abordam qual tipo de linguagem de programação?

Análise e Discussão dos Resultados

Quantidade de Padrões por Linguagem de Programação

Page 21: Apresentação Pesquisa Um Mapeamento Sistemático sobre Padrões de Software para Reengenharia de Sistemas

21/23

UMA REVISÃO SISTEMÁTICA SOBRE PADRÕES DE SOFTWARE PARA REENGENHARIA DE SISTEMAS

Q5 - Quais Conferências e Workshops têm apresentado publicações com padrões de reengenharia de sistemas? Em quais anos? Quem se destaca em números de estudos e padrões publicados?

Análise e Discussão dos Resultados

Estudos publicados por ano Padrões apresentados por ano

Page 22: Apresentação Pesquisa Um Mapeamento Sistemático sobre Padrões de Software para Reengenharia de Sistemas

22/23

UMA REVISÃO SISTEMÁTICA SOBRE PADRÕES DE SOFTWARE PARA REENGENHARIA DE SISTEMAS

Conclusões

- Os levantamentos quanto à linguagem de programação e ao processo de reengenharia apontam quais as áreas necessitam de mais pesquisas:

- No que se refere à linguagem de programação verificou-se que há um menor número de padrões que atendem à reengenharia de linguagens de programação orientadas a objetos.

-Quanto ao processo de reengenharia, padrões para a Engenharia Avante e para a Reestruturação estão em menor número (necessitando talvez de uma maior atenção por parte dos pesquisadores), enquanto que padrões que tratam de Engenharia Reversa são a maioria.

-A catalogação bibliográfica, bem como a classificação realizada beneficiam o engenheiro de software no momento da seleção dos padrões a serem utilizados em um projeto de reengenharia.

Deste modo, este trabalho apresenta-se como uma fonte única de consulta a padrões de reengenharia de sistemas, onde é possível eleger os padrões mais adequados e de acordo com a disciplina do processo de engenharia de software.

Page 23: Apresentação Pesquisa Um Mapeamento Sistemático sobre Padrões de Software para Reengenharia de Sistemas

23/23

Erivan de Sena Ramos - [email protected]

Márcia Maria Albuquerque Brasil - [email protected]

Obrigado!