Your SlideShare is downloading. ×
Artigo Um Mapeamento Sistemático sobre Padrões de Software para Reengenharia de Sistemas
Artigo Um Mapeamento Sistemático sobre Padrões de Software para Reengenharia de Sistemas
Artigo Um Mapeamento Sistemático sobre Padrões de Software para Reengenharia de Sistemas
Artigo Um Mapeamento Sistemático sobre Padrões de Software para Reengenharia de Sistemas
Artigo Um Mapeamento Sistemático sobre Padrões de Software para Reengenharia de Sistemas
Artigo Um Mapeamento Sistemático sobre Padrões de Software para Reengenharia de Sistemas
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Artigo Um Mapeamento Sistemático sobre Padrões de Software para Reengenharia de Sistemas

882

Published on

Este trabalho teve como objetivo investigar, …

Este trabalho teve como objetivo investigar,
catalogar e classificar os padrões para reengenharia de sistemas
publicados em conferências e workshops PLoP (Pattern
Languages of Programs), por meio de um estudo de mapeamento
sistemático. Além da catalogação bibliográfica, o estudo apresenta
a totalização dos padrões quanto ao tipo de processo de
reengenharia; o levantamento das linguagens de programação
abordadas, as Conferências e Workshops onde os padrões foram
publicados, bem como a evolução das publicações por ano. Quanto
à classificação, os padrões de reengenharia foram categorizados
de acordo com as disciplinas do RUP (Rational Unified Process).
Palavras-chave— Sistemas Legados. Reengenharia. Padrões de
Software. PLoP. RUP. Mapeamento Sistemático.

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
882
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
37
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Um Mapeamento Sistemático sobre Padrões de Software para Reengenharia de Sistemas E. S. Ramos e M. M. A. Brasil Resumo— Este trabalho teve como objetivo investigar, software são descrições que aconselham soluções práticas paracatalogar e classificar os padrões para reengenharia de sistemas determinado problema; podendo ser aplicados durante apublicados em conferências e workshops PLoP (Pattern modelagem e codificação de um software, de acordo com oLanguages of Programs), por meio de um estudo de mapeamento contexto e as circunstâncias apresentadas. Os padrões desistemático. Além da catalogação bibliográfica, o estudo apresentaa totalização dos padrões quanto ao tipo de processo de software aplicados na reengenharia visam registrar oreengenharia; o levantamento das linguagens de programação conhecimento sobre como modificar softwares legados, ajudamabordadas, as Conferências e Workshops onde os padrões foram a diagnosticar problemas, e identificam as soluções maispublicados, bem como a evolução das publicações por ano. Quanto apropriadas aos novos requisitos [8]. Nesse sentido, umaà classificação, os padrões de reengenharia foram categorizados catalogação bibliográfica, bem como uma classificação dessesde acordo com as disciplinas do RUP (Rational Unified Process). padrões, pode ajudar o engenheiro de software a localizar e Palavras-chave— Sistemas Legados. Reengenharia. Padrões de identificar rapidamente o melhor padrão a ser utilizado em seuSoftware. PLoP. RUP. Mapeamento Sistemático. projeto de reengenharia de software. Abstract— Through a systematic mapping studies, this II. MAPEAMENTO SISTEMÁTICOwork aimed to investigate, catalog and classify the patternsfor systems reengineering published in conferences and O mapeamento sistemático é um tipo de revisãoworkshops PLoP (Pattern Languages of Programs). In addition to sistemática, onde se realiza uma revisão mais ampla doscataloging literature, the study presents the aggregation of estudos primários, em busca de identificar quais evidênciasstandards regarding the type of process reengineering, estão disponíveis, bem como identificar lacunas no conjuntothe survey of programming languages discussed, as well as dos estudos primários onde seja direcionado o foco de revisõesconferences and workshops and the development of publications sistemáticas futuras e identificar áreas onde mais estudosper year. Regarding classification, patterns of reengineering were primários precisam ser conduzidos [9]. O estudo decategorized according to the disciplines of the RUP (Rational mapeamento sistemático fornece uma visão geral de uma áreaUnified Process). de pesquisa, identificando a quantidade, tipo de pesquisas, Keywords— Legacy Systems. Reengineering. Software resultados disponíveis, além de freqüências de publicações aoPatterns. PLoP. RUP. Systematic Mapping Studies. longo do tempo para identificar tendências [10]. I. INTRODUCÃO O presente artigo apresenta a pesquisa de [11], na qual foi realizado um mapeamento sistemático, por ser mais adequado As organizações têm um alto custo de dinheiro quando ao escopo da mesma, utilizando-se da mesma metodologia deinvestem em um software e, para que haja um retorno base da revisão sistemática com a intenção de se obter umafinanceiro satisfatório, este software é utilizado por muitos revisão rigorosa, confiável e passível de auditoria. O capítulo aanos [1]. Em contrapartida, o software é um produto que deve seguir apresenta o processo do mapeamento sobre os padrõesestar em constante evolução de acordo com mudanças nas de reengenharia de sistemas conduzido neste trabalho, bemregras de negócio das organizações, necessidade de melhoria como analisa os resultados de acordo com as questões dedo processo produtivo ou adequação do produto ou serviço que pesquisa previamente definidas.utiliza tecnologia da informação [2]. A esses softwaresutilizados ao longo do tempo pelas organizações dá-se o nome III. MAPEAMENTO SITEMÁTICO SOBRE PADRÕES DEde sistemas legados. Tais sistemas normalmente não possuem SOFTWARE PARA REENGENHARIA DE SISTEMASdocumentação, ou possuem documentação desatualizada.Esses, dentre outros fatores, dificultam e aumentam o custo da A. Planejamento – Definição do Protocolomanutenção dos mesmos; incentivando os pesquisadores a 1) Descrição do Problemabuscarem soluções que facilitem a redução dos custos com amanutenção [3]. Para que os sistemas legados se mantenham alinhados às expectativas dos negócios das organizações, é necessário que Quando um importante sistema legado não tem mais haja constantemente a manutenção e evolução dos mesmos.capacidade de suportar as mudanças em seus requisitos, Devido à criticidade existente em projetos que prevêem acomumente, é submetido ao processo de reengenharia [4], que manutenção ou evolução de um sistema legado, a utilização deconsiste em um processo de análise de sistemas legados que Padrões de Software apresenta-se como uma alternativa viávelidentifica e representa seus componentes em um nível mais alto no sentido de minimizar o consumo de tempo e de esforço,de abstração [5]. A reengenharia de sistemas apresenta-se como melhorar a qualidade do produto final e, por conseguinte,um dos maiores desafios para os engenheiros de software, pois, diminuir os custos financeiros do projeto à organização. Paraembora trate um problema comum e persistente nas diminuir a dificuldade de entendimento e utilização, se fazorganizações, seus resultados interferem diretamente na necessário um esquema de organização dos padrões existentes,continuidade dos negócios das mesmas [6]. que tratam de reengenharia em sistemas legados. Diante desse contexto, os padrões de software surgem como 2) Objetivouma ferramenta capaz de auxiliar o engenheiro de software emum processo de reengenharia. Conforme [7] os padrões de O foco deste mapeamento sistemático foi identificar,
  • 2. catalogar, e classificar os Padrões de Software documentados Languages Of Program; ParaPLoP - Workshop on Parallelpara reengenharia, com o intuito de contribuir de forma Programming Patterns; Scrum PLoP; Viking PLoP - Nordicsubstancial no entendimento dos mesmos e torná-los de fácil Conference On Pattern Languages Of Programs; PEAM -consulta para o engenheiro de software. Pretendendo realizar European Workshop on Patterns for Enterprise Architectureainda um levantamento dos padrões publicados por tipo de Management; ChiliPloP; KoalaPLoP e MensorePLoP.processo, linguagem de programação, conferências/workshopse ano de publicação. 6) Critérios para Inclusão e Exclusão dos Estudos 3) Questões de Pesquisa Os critérios definidos para inclusão e exclusão dos estudos são apresentados a seguir na Tabela I. Os estudos que não As questões a serem respondidas ao final da pesquisa são: atenderam aos critérios abaixo descritos foram desconsiderados. Q1. Quais os padrões de reengenharia publicados nas Conferências e Workshops especializados em padrões de TABELA I. CRITÉRIOS DE INCLUSÃO E EXCLUSÃO software? 1 Os estudos devem ter sido publicados nas Conferências e Workshops Q2. Como se classificam os padrões de reengenharia, listados no item 5. publicados nas Conferências e Workshops especializados 2 Os estudos devem estar escritos em inglês ou português; 3 Os estudos devem estar disponíveis na web; em padrões de software, quanto às disciplinas do processo 4 Os estudos que apresentem alguma das strings de busca em seu título, de engenharia de software RUP? resumo/abstract ou palavras-chaves; Q3. Os padrões publicados apresentados abordam qual 5 Os estudos devem apresentar a proposta de um ou mais padrões de tipo de processo de reengenharia: Engenharia Reversa, reengenharia em sistemas. Engenharia Avante ou Reestruturação? Q4. Os usos conhecidos dos padrões publicados abordam 7) Critério de Qualidade dos Estudos quais linguagens de programação? A única questão considerada para a qualidade dos estudos é Q5. Quais Conferências e Workshops têm apresentado em apresentada a seguir na Tabela II. Após a seleção dos estudos, seus anais padrões para reengenharia de sistemas? Em somente foram considerados os padrões que apresentaram a quais anos? Quem se destaca em números de estudos e descrição completa do mesmo, garantindo dessa forma a padrões publicados? integridade do resultado da revisão. TABELA II. CRITÉRIO DE QUALIDADE População: Publicações contendo Padrões de Software. 1 Os estudos apresentam padrões de reengenharia documentados em um Intervenção: Padrões de Software para Reengenharia. formato de escrita de padrões, descritos de forma explícita e organizada. Resultados: Catalogação bibliográfica dos padrões dereengenharia; classificação dos padrões de reengenharia; 8) Método de Avaliação dos Estudostotalização dos padrões quanto ao tipo de processo dereengenharia; levantamento das linguagens de programação Cada estudo, realizado de acordo com o métodoabordadas em padrões de reengenharia; levantamento da estabelecido para a pesquisa de fontes primárias, foi avaliadoevolução das publicações de padrões de reengenharia. de acordo com os critérios para inclusão e exclusão. Os estudos que se enquadraram nesses critérios foram utilizados para a 4) Palavras-Chave finalidade do mapeamento sistemático. As palavras-chave utilizadas como strings de busca foram 9) Método de Extração dos Dadosas seguintes: sistema legado; software legado; aplicaçãolegada; padrão de reengenharia; engenharia reversa; engenharia A extração dos dados foi realizada como descrito abaixo:avante; reestruturação; reengenharia; legacy system; a) Pesquisador aplica a estratégia de pesquisa para identificarreengineering pattern; reverse engineering; forward os potenciais estudos primários. A identificação dos estudosengineering; restructuring; e reengineering. primários é realizada por meio da leitura do título, 5) Método Utilizado para Pesquisa de Fontes Primárias resumo/abstract e palavras–chave em busca das strings de busca. A busca é registrada por meio de um Formulário de O método utilizado para a pesquisa de fontes primárias foi Condução da Revisão;realizar buscas nos anais das conferências PLoP (Pattern b) O conjunto de estudos é selecionado a partir da verificaçãoLanguages of Programs), grupo de conferências anuais dos critérios de inclusão e exclusão. A seleção 1apoiadas pelo The Hillside Group , com o objetivo de (inclusão/exclusão) dos estudos é feita por meio de umadesenvolver e aperfeiçoar a arte de padrões de projeto de leitura superficial dos estudos primários, tendo como focosoftware: PLoP – Conference On Pattern Languages Of identificar os critérios estabelecidos. A etapa de seleção éPrograms; Sugarloaf PLoP – Conferência Latino-Americana documentada em um Formulário de Seleção dos Estudos;em Linguagens de Padrões para Programação; EuroPLoP - c) Todos os estudos incluídos como resultados da pesquisaEuropean Conference On Pattern Languages Of Programs; inicial são revisados, inteira e minuciosamente, por outroMeta EuroPLoP; Asian PLoP - Asian Conference On Pattern pesquisador. d) Os resultados são revisados por todos os pesquisadores1 envolvidos e quaisquer desacordos são discutidos e O The Hillside Group (http://hillside.net/) promove o uso, registro, análise esuporte às novas práticas de linguagens de padrões de software. resolvidos.
  • 3. e) Os resultados da revisão, que conta com os detalhes das TABELA III. CATALOGAÇÃO DOS PADRÕES DE REENGENHARIA DE pesquisas realizadas nos estudos primários selecionados, SISTEMAS são registrados em um Formulário de Extração dos Dados. Id Título Referência 1 Preparar o Processo de Reengenharia [12] 10) Método da Síntese dos Dados 2 Planejar o Processo de Reengenharia 3 Acompanhar o Progresso de Reengenharia Foi realizada uma meta-análise sobre os dados quantitativos 4 Realizar Inspeção de Garantia de Qualidadedos estudos. Os dados dos estudos selecionados foram 5 Controlar a Configuraçãocomparados, com a finalidade de realçar as similaridades e 6 Elaborar Lista de Procedimentos e Funçõesdiferenças entre os estudos de acordo com as questões da 7 Elaborar Lista de "Chama/Chamado Por" 8 Modelar Dados do Software Legadopesquisa. 9 Criar Lista de AnomaliasB. Condução da Revisão 10 Criar Visão OO de Dados 11 Criar Diagramas de Caso de Uso do MASA Dentre as fontes definidas inicialmente no protocolo 12 Descrever Casos de Uso do MASAsomente não foi possível obter acesso aos anais das 13 Abstrair Diagrama de Pseudo-ClassesConferências ChiliPloP; KoalaPLoP; e MensorePLoP. Desta 14 Criar Diagramas de Caso de Uso do MAS 15 Descrever Casos de Uso do MASforma, a busca foi realizada em 57 Anais de 9 tipos de 16 Elaborar Diagrama de Classes de ProjetoConferências e Workshops especializadas em Padrões de 17 Construir Diagramas de SequênciaSoftware, conforme detalhado a seguir: 18 Implementar as Classes 19 Implementar a Lógica de Armazenamento • PLoP: 17 edições, entre 1994 e 2004; 20 Implementar a Lógica de Apresentação • Sugarloaf PLoP: 08 edições, entre 2001 e 2010; 21 Speculate about Domain Objects [13] 22 Reconstruct the Persistent Data • EuroPLoP: 16 edições, entre 1996 e 2011; 23 Identify the Largest • Meta EuroPLoP: 01 edição em 2011; 24 Recover the Refactorings • Asian PLoP: 01 edição em 2010; 25 Tie Code and Questions [14] • ParaPLoP: 03 edições, entre 2009 e 2011 26 Transform Self Conditional to Subclassing [15] 27 Transform Client Conditional to Polymorphism • Scrum PLoP: 02 edições, entre 2010 e 2011; 28 Apply State • Viking PLoP: 07 edições, entre 2002 e 2008; e 29 Apply Null Object • PEAM: 02 edições, em 2009 e 2010. 30 Type Check Elimination in a Provider Hierarchy [4] 31 Type Check Elimination in Clients O processo de busca foi executado utilizando as palavras- 32 The Bridge to the New Town [16] 33 Reengineering for Parallelism [17]chave definidas (subseção 3.4) e seguindo o método de 34 Mile-Wide, Inch Deep [18]pesquisa de fontes primárias do protocolo (subseção 3.5). 35 Keeper of the Flame 36 Archetype A consulta obteve êxito somente nas seguintes fontes: 37 Iniciar Análise dos Dados [5] • PLoP: 3 estudos encontrados e pré-selecionados. 38 Definir Chaves 39 Identificar Relacionamentos • Sugar Loaf PLoP : 6 encontrados e pré-selecionados. 40 Criar Visão OO dos Dados • EuroPLoP: 7 encontrados e pré-selecionados. 41 Obter Cenários 42 Construir Diagramas de Use Cases Desta forma, 16 estudos foram contabilizados, os quais 43 Elaborar a Descrição de Use Casesforam lidos e verificados através dos critérios de inclusão e 44 Tratar Anomalias 45 Definir as Classesexclusão estabelecidos. Dos 16 artigos pré-selecionados, 12 46 Definir Atributosestavam de acordo com todos os critérios previstos no 47 Analisar Hierarquiasprotocolo de revisão e tiveram seus dados extraídos e 48 Definir Métodosanalisados. Os 4 estudos excluídos não atendiam ao critério de 49 Construir Diagramas de Seqüênciainclusão e exclusão. 50 Definir hierarquia Chama/Chamado [3] 51 Identificar Casos de UsoC. Apresentação, Análise e Discussão dos Resultados 52 Identificar Supostas Classes e Supostos Atributos 53 Identificar Supostos Métodos Aqui são respondidas as questões de pesquisa delineadas no 54 Identificar Relacionamentosplanejamento da revisão. Nos 12 estudos selecionados, 67 55 Identificar Cardinalidadespadrões para reengenharia foram identificados. 56 Criar Supostas Classes e Supostos Atributos 57 Alocar Supostos Métodos nas Supostas Classes1) Resultados obtidos para a questão 1 (Q1 - Quais os padrões 58 Criar Especificações das Classes e dos Atributos 59 Criar Especificações dos Métodos de reengenharia publicados nas Conferências e Workshops 60 Criar Casos de Uso especializados em padrões de software?) 61 Criar Diagrama de Seqüência 62 Criar Especificações dos Relacionamentos e Foi realizada a catalogação bibliográfica dos 67 padrões Cardinalidadesselecionados no mapeamento sistemático, a qual é apresentada 63 Definir Plataforma [6] 64 Converter o Banco de Dadosna Tabela III. Alguns estudos [13] [18] ainda citavam padrões 65 Implementar Métodoscom suas descrições incompletas, os quais foram 66 Realizar Melhorias de Interfacedesconsiderados para não afetarem as questões de pesquisa do 67 Reverse Variability Engineering [19]mapeamento sistemático.
  • 4. 2) Resultados obtidos para a questão 2 (Q2- Como se Análise e Projeto 6 Elaborar Lista de Procedimentos e Funções classificam os padrões de reengenharia, publicados nas 7 Elaborar Lista de "Chama/Chamado Por" 8 Modelar Dados do Software Legado Conferências e Workshops especializados em padrões de 9 Criar Lista de Anomalias software, quanto às disciplinas do processo de engenharia 10 Criar Visão OO de Dados de software RUP?) 13 Abstrair Diagrama de Pseudo-Classes 16 Elaborar Diagrama de Classe do Projeto 17 Construir Diagramas de Sequência Os padrões foram classificados de acordo com as 9 21 Speculate about Domain Objects disciplinas do RUP, observando as características e propostas 22 Reconstruct the Persistent Data de cada padrão apresentado, relacionado-os com os propósitos 23 Identify the Largest e atividades realizadas em cada disciplina. Não foram levadas 24 Recover the Refactorings em consideração as linguagens ou grupos dos padrões, somente 26 Transform Self Conditional to Subclassing 27 Transform Client Conditional to Polymorphism suas características individuais. A Fig. 1 mostra graficamente a 28 Apply State distribuição dos padrões após a classificação realizada. 29 Apply Null Object 30 Type Check Elimination in a Provider Hierarchy 31 Type Check Elimination in Clients 33 Reengineering for Parallelism 34 Mile-Wide, Inch Deep 35 Keeper of the Flame 36 Archetype 37 Iniciar Análise dos Dados 38 Definir Chaves 39 Identificar Relacionamentos 40 Criar Visão OO dos Dados 41 Obter Cenários 44 Tratar Anomalias 45 Definir as Classes 46 Definir Atributos 47 Analisar Hierarquias Figura 1. Porcentagem de Padrões por Disciplina do RUP 48 Definir Métodos 49 Construir Diagramas de Seqüência Observa-se que a disciplina Análise e Projeto, com o 50 Definir hierarquia Chama/Chamado percentual de 66%, abrange o maior número dos padrões de 52 Identificar Supostas Classes e Supostos reengenharia, seguida da disciplina Requisitos com 13%. Já as Atributos 53 Identificar Supostos Métodos disciplinas Testes e Implantação não são apresentadas no 54 Identificar Relacionamentos gráfico porque não envolvem nenhum padrão de reengenharia 55 Identificar Cardinalidades selecionado durante o mapeamento sistemático. A 56 Criar Supostas Classes e Supostos Atributos classificação dos padrões por disciplina do RUP é apresentada 57 Alocar Supostos Métodos nas Supostas Classes na Tabela IV. O número identificador (Id) corresponde a 58 Criar Especificações das Classes e dos Atributos seqüência definida na Tabela 3. 59 Criar Especificações dos Métodos 61 Criar Diagrama de Seqüência 62 Criar Especificações dos Relacionamentos e TABELA IV. CLASSIFICAÇÃO DOS PADRÕES DE REENGENHARIA POR Cardinalidades DISCIPLINA DO RUPDisciplina Id Padrão 67 Reverse Variability EngineeringModelagem de Negócios 1 Preparar o Processo de ReengenhariaRequisitos 11 Criar Diagramas de Caso de Uso do MASA 3) Resultados obtidos para a questão 3 (Q3 - Os padrões 12 Descrever Casos de Uso do MASA 14 Criar Diagramas de Caso de Uso do MAS publicados apresentados abordam qual tipo de processo de 15 Descrever Casos de Uso do MAS reengenharia?) 41 Obter Cenários 42 Construir Diagramas de Use Cases No que se refere ao processo de reengenharia, os padrões 43 Elaborar a Descrição de Use Cases 51 Identificar Casos de Uso apresentados apresentam o seguinte panorama: 60 Criar Casos de UsoGerência de Projeto 2 Planejar o Processo de Reengenharia • Total de Padrões de Engenharia Reversa: 49; 3 Acompanhar o Progresso de Reengenharia • Total de Padrões de Engenharia Avante: 10; 4 Realizar Inspeção de Garantia de Qualidade • Total de Padrões de Reestruturação: 3.Implementação 18 Implementar as Classes 19 Implementar a Lógica de Armazenamento A Fig. 2 representa de forma clara o quanto a Engenharia 20 Implementar a Lógica de Apresentação 25 Tie Code and Questions Reversa é o processo predominante abordado nas publicações, 64 Converter o Banco de Dados representando 73% dos padrões apresentados e incluídos na 65 Implementar Métodos pesquisa, enquanto que a Engenharia Avante representa 13% e 66 Realizar Melhorias de Interface a Reestruturação apenas 5% dos padrões de reengenharia. AAmbiente 63 Definir Plataforma publicação de [12] apresenta ainda 05 padrões que não seConfiguração e Gerência 5 Controlar a Configuraçãode Mudança 32 The Bridge to the New Town enquadram nos três processos indicados. Os mesmos tratam da aplicação de diretrizes de qualidade durante o projeto.
  • 5. 5) Resultados obtidos para a questão 5 (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?) De acordo com os estudos selecionados, foi verificada a periodicidade das publicações sobre o tema analisado, bem como, o ranking dos padrões publicados, levando em conta a Conferência no qual o trabalho foi defendido e o ano de sua publicação. Na Fig. 4, pode-se verificar a evolução do número de publicações com padrões de reengenharia. Pode- se inferir que o número de publicações tem sido pequena,Figura 2. Percentual de Padrões por Processo de Reengenharia com exceção do ano de 2000 (um único trabalho foi o4) Resultados obtidos para a questão 4 (Q4 - Os usos responsável, pois apresentou uma linguagem de padrões) e conhecidos dos padrões publicados abordam qual tipo 2003. Também é importante ressaltar que a EuroPLoP apresenta um maior número publicações relacionadas ao de linguagem de programação?) tema pesquisado. Foram analisadas nos estudos quais as linguagens deprogramação que podem utilizar-se dos padrões dereengenharia. Dos 67 padrões selecionados durante omapeamento sistemático, 28% não citam ou não especificamuma linguagem de programação nos usos conhecidos dopadrão. Verificou-se então que as linguagens deprogramação abordadas nos estudos, de usos conhecidos naaplicabilidade dos padrões de reengenharia, são: Java (02padrões); Stalmak (07 padrões); C/C++ (11 padrões); Ada(11 padrões); Clipper (17 padrões); COBOL (17 padrões);RPGII (17 padrões); e Delphi (20 padrões) A Fig. 3 apresenta a quantidade de padrões que podemser empregados por cada linguagem de programação. Figura 4. Estudos publicados por ano.Enquanto a linguagem de programação Delphi abrange uma Quando se refere à quantidade de padrões apresentadosmaior quantidade de padrões de reengenharia, totalizando 20 nos artigos selecionados, a Fig. 5 mostra que o ano de 2003padrões, a linguagem Java apresenta a menor abrangência apresentou maior número. Conclui-se ainda que em secom apenas 2 padrões. Em geral, nota-se uma tratando de quantidade de padrões de reengenhariapredominância de linguagens de programação procedurais. apresentados, o SugarLoafPLoP se destaca com o maior Vale ressaltar que, embora alguns padrões apresentem número de publicações.como uso conhecido uma linguagem de programaçãoespecífica, nada impede que o mesmo padrão seja adaptadopara ser utilizado por outra linguagem. Figura 5. Padrões apresentados por ano Totalizando os anos de 2002 e 2003, o SugarLoafPLoP apresentou 50 padrões de reengenharia em 4 publicações. Enquanto o EuroPLoP apresentou 16 padrões em 7Figura 3. Quantidade de Padrões por Linguagem de Programação publicações (1998, 2000 e 2009) e o PLoP apresentou O estudo de [12] apresenta um bom exemplo disso, no apenas 1 padrão (2005) sobre o tema.qual os 20 padrões de reengenharia apresentados foramoriginalmente desenvolvidos para serem usados em um IV. CONCLUSÃOsistema desenvolvido na linguagem Clipper e depois foram Este trabalho teve por objetivo avaliar os padrões deinstanciados para softwares implementados em Delphi. software para reengenharia de sistemas por meio do
  • 6. processo de mapeamento sistemático, um modo mais amplo para o Processo de Engenharia Avante na Reengenharia Orientada ade se aplicar uma revisão sistemática. Objetos de Sistemas Legados Procedimentais”, in: Sugar Loaf PLoP 2003, Porto de Galinhas-PE, 2003. O mapeamento sistemático foi conduzido por um [7] C. Larman, “Utilizando UML e Padrões”, 3ª ed., São Paulo:protocolo de revisão que especificou os métodos utilizados Bookman, 2005.durante a condução do trabalho. Os critérios definidos no [8] G. S. Lemos, “PRE/OO – Um Processo de Reengenahria Orientadaprotocolo foram necessários e suficientes para se obter os a Objetos com Ênfase na Garantia da Qualidade”, 171f. Dissertaçãoestudos primários necessários para a realização da pesquisa. (Mestre em Ciência da Computação) – Universidade Federal de São Carlos, São Carlos, 2002.A realização de um mapeamento sistemático se mostra uma [9] B. Kitchenham, “Procedures for Performing Systematic Reviews”,metodologia eficaz, embora dispendiosa de tempo, que Technical Report Software Engineering Group, Keele University,envolve um trabalho árduo de leitura e análise dos estudos Australia, 2004.primários para se obter respostas às questões levantadas para [10] K. Petersen, R. Feldt, S. Mujtaba, M. Mattsson, “Systematica pesquisa. Mapping Studies in Software Engineering”, in: 12th International Conference on Evaluation and Assessment in Software Engineering, A partir dos resultados obtidos na pesquisa, foi possível Australia, 2008.responder às questões levantadas. Assim, foi possível [11] E. S. Ramos, M. M. A. Brasil, “Um Mapeamento Sistemático sobrerealizar a catalogação bibliográfica de 67 padrões Padrões de Software para Reengenharia de Sistemas”, 80f.relacionados à reengenharia de sistemas, bem como o Monografia (Especialização em Engenharia de Software comlevantamento dos processos e linguagens de programação Ênfase em Padrões de Software) – Universidade Estadual do Ceará,abordadas, além da classificação dos padrões selecionados Fortaleza-CE, 2011.de acordo com as disciplinas do processo de engenharia de [12] G. S. Lemos, E. Recchia, R. Penteado. R. Braga, “Padrões desoftware RUP. Acredita-se que a presente pesquisa Reengenharia auxiliados por Diretrizes de Qualidade de Software”, in: SugarLoafPLoP 2003, Porto de Galinhas- PE, 2003.apresenta benefícios nos seguimentos: acadêmico e [13] S. Demeyer. S. Ducasse, O. Nierstrasz, “A Pattern Language forprofissional. Reverse Engineering”, in: EuroPLoP 2000, Irsee – Germany, 2000. No que diz respeito ao benefício acadêmico, os [14] S. Demeyer, S. Ducasse, O. Nierstrasz, “Tie Code And Questions: alevantamentos quanto à linguagem de programação e ao Reengineering Pattern”, in: EuroPLoP 2000, Irsee – Germany,processo de reengenharia apontam quais as áreas necessitam 2000.de mais pesquisas. No que se refere à linguagem de [15] S. Demeyer, S. Ducasse, O. Nierstrasz, “Transform Conditionals: a Reengineering Pattern Language”, in: EuroPLoP 2000, Irsee –programação (levando em consideração os padrões que Germany, 2000.identificaram as linguagens de programação abordadas), [16] W. Keller, “The Bridge to the New Town - A Legacy Systemverificou-se que há um menor número de padrões que Migration Pattern”, in: EuroPLoP 2000, Irsee-Germany, 2000.atendem à reengenharia de linguagens de programação [17] B. Massingill, T. Mattson, B. Sanders, “Reengineering fororientadas a objetos. Quanto ao processo de reengenharia, Parallelism: An Entry Point into PLPP (Pattern Language forpadrões para a Engenharia Avante e para a Reestruturação Parallel Programming) for Legacy Applications”, in: PLoP 2005,estão em menor número (necessitando talvez de uma maior Monticello, Illinois, USA, 2005.atenção por parte dos pesquisadores), enquanto que padrões [18] A. O’Callaghan, “Patterns for Architectural Praxis”, in: EuroPLoPque tratam de Engenharia Reversa são a maioria. 2000, Irsee, NYrmany, 2000. [19] Schütz, “Reverse Variability Engineering”, in: EuroPLoP 2009, No que diz respeito ao benefício profissional, a Bavaria-Germany, 2009catalogação bibliográfica, bem como a classificaçãorealizada, beneficiam o engenheiro de software no momento Erivan de Sena Ramos é Especialista em Engenharia de Software comda seleção dos padrões a serem utilizados em um projeto de Ênfase em Padrões de Software pela UECE - Universidade Estadual doreengenharia. Deste modo, este trabalho apresenta-se como Ceará. Bacharel em Sistemas de Informação pela Universidade Estácio deuma fonte de consulta a padrões de reengenharia de Sá - Faculdade Integrada do Ceará. Atualmente é Analista de Sistemas na Politec Global IT Services, uma empresa da Indra Company, prestandosistemas, onde é possível eleger os padrões mais adequados serviços para o Banco do Nordeste do Brasil. Atua na área de Ciência dae de acordo com as disciplinas do processo de engenharia de Computação, com ênfase em Engenharia de Software, desempenhandosoftware. atividades relacionadas à análise de requisitos e reengenharia de sistemas. Marcia Maria Albuquerque Brasil é Mestre em Ciência da Computação REFERÊNCIAS da UECE e integrante do Grupo de Otimização em Engenharia de Software[1] I. Sommerville, “Engenharia de Software”, 8ª. ed., São Paulo: da UECE (GOES.UECE). Bacharel em Ciências da Computação pela Addison-Wesley, 2007. Universidade Estadual do Ceará UECE, com Especialização em Tecnologias de Banco de Dados pela Universidade de Fortaleza UNIFOR, é[2] E. P. Zanlorenci, R. C. Burnett, “Abordagem da Engenharia de Analista de Sistemas do Serviço Federal de Processamento de Dados Requisitos para Software Legado”, in: VI Workshop em Engenharia SERPRO. Atua na área de Ciência da Computação, com ênfase em de Requisitos, Piracicaba- SP, 2003. Engenharia de Software, onde desempenha atividades relacionadas ao[3] D. R. Peres, A. Alvaro, V. Fontanette, V. C. Garcia, A. F. Prado, R. desenvolvimento de software nas fases de requisitos e implementação. T. V. Braga, “TB-REPP - Padrões de Processo para a Engenharia Reversa baseado em Transformações”, in: Sugar Loaf PLoP 2003, Porto de Galinhas- PE, 2003.[4] S. Ducasse, R. Nebbe, T. Richner, “Type-Check Elimination: Two Reengineering Patterns”, in: EuroPLoP 1998, Irsee, Germany, 1998.[5] E. L. Recchia, R. Penteado, “FaPRE/OO: Uma Família de Padrões para Reengenharia Orientada a Objetos de Sistemas Legados Procedimentais”, in: Sugar Loaf PLoP, Rio de Janeiro, 2002.[6] E. L. Recchia, G. S. Lemos, R. Penteado, R. T. V. Braga, “Padrões

×