• Nenhum resultado encontrado

ANÁLISE DE EVOLUÇÃO DE SOFTWARE PARA RECUPERAÇÃO DA RASTREABILIDADE ENTRE DOCUMENTAÇÃO E CÓDIGO FONTE BASEADA EM MODELOS DE CARACTERÍSTICAS

N/A
N/A
Protected

Academic year: 2021

Share "ANÁLISE DE EVOLUÇÃO DE SOFTWARE PARA RECUPERAÇÃO DA RASTREABILIDADE ENTRE DOCUMENTAÇÃO E CÓDIGO FONTE BASEADA EM MODELOS DE CARACTERÍSTICAS"

Copied!
7
0
0

Texto

(1)

AN ´

ALISE DE EVOLUC

¸ ˜

AO DE SOFTWARE PARA

RECUPERAC

¸ ˜

AO DA RASTREABILIDADE ENTRE

DOCUMENTAC

¸ ˜

AO E C ´

ODIGO FONTE BASEADA EM

MODELOS DE CARACTER´ISTICAS

Autor: Allysson Costa e Silva1,

Orientador: Prof. Dr. Marcelo de Almeida Maia1 1Programa de P´os-Graduac¸˜ao em Ciˆencia da Computac¸˜ao

Universidade Federal do Uberlˆandia (UFU) Uberlˆandia – MG – Brasil

allysson@pos.facom.ufu.br,marcmaia@facom.ufu.br

N´ıvel: Mestrado

Ano de ingresso no programa: 2008 ´

Epoca esperada de conclus˜ao: Agosto/ 2010 Etapa conclu´ıda: parte dos cr´editos

Resumo. Durante o ciclo de vida de um sistema de software faz-se necess´aria a an´alise de sua evoluc¸˜ao para auxiliar os processos de compreens˜ao e manutenc¸˜ao do mesmo. Novos componentes s˜ao adicionados e alterados havendo uma demanda por uma documentac¸˜ao sistem´atica que reflita as alterac¸˜oes realizadas. A necessi-dade de localizac¸˜ao das diferenc¸as existentes entre diferentes vers˜oes de um software dificultada pela inexistˆencia de rastreabilidade da documentac¸˜ao para o c´odigo fonte ´e um ponto relevante nesta an´alise evolutiva. Neste trabalho ´e apresentada uma pro-posta para a an´alise de evoluc¸˜ao baseada na classificac¸˜ao dos rastros de execuc¸˜ao de determinadas funcionalidades presentes nos softwares analisados e na an´alise est´atica de reposit´orios de software para a identificac¸˜ao de elementos de c´odigo fonte modificados entre diferentes vers˜oes. Ser´a utilizada uma t´ecnica de Recuperac¸˜ao de Informac¸˜ao (LSI - indexac¸˜ao por semˆantica latente) para explicitar a rastreabilidade existente entre documentac¸˜ao e c´odigo fonte modificado. A aplicac¸˜ao da t´ecnica LSI indexar´a o c´odigo fonte modificado entre diferentes vers˜oes do programa analisado e utilizar´a como parˆametro de pesquisa o vocabul´ario extra´ıdo da base textual de documentac¸˜ao do sistema ao tentar restabelecer os v´ınculos entre documentac¸˜ao e c´odigo fonte. Desta forma, a rastreabilidade obtida aumentar´a a compreens˜ao do sistema pelos desenvolvedores.

Palavras-Chave. Palavras-Chave. Caracter´ısticas, c´odigo fonte, documentac¸˜ao, Indexac¸˜ao por Semˆantica Latente, rastreabilidade entre artefatos de software.

(2)

1. Caracterizac¸˜ao do Problema

Durante seu ciclo de vida, um sistema de software deve estar em constante modificac¸˜ao para que erros sejam corrigidos e haja um bom alinhamento entre as necessidades dos usu´arios finais e as func¸˜oes implementadas no c´odigo fonte. A manutenc¸˜ao da usabilidade do sistema depende da implementac¸˜ao de mudanc¸as que se documentadas aumentar˜ao a compreens˜ao do sistema durante as v´arias etapas do seu ciclo de vida.

[RIEBISCH 2004] ressalta que os desenvolvedores podem incorrer em erros quando realizam a introduc¸˜ao de mudanc¸as no sistema se a estrutura e comportamento do sistema n˜ao s˜ao bem compreendidos ou n˜ao ´e poss´ıvel mensurar o impacto trazido por tais mudanc¸as. Uma documentac¸˜ao incompleta, desatualizada ou mesmo inexistente representa um fator de risco para a compreens˜ao do sistema. Ainda que se tenha uma documentac¸˜ao dispon´ıvel, a falta de conex˜ao da mesma com outras partes do sistema dificulta o trabalho do desenvolvedor. Como exposto por [PASHOV et al. 2004], existe uma lacuna entre os diferentes n´ıveis de abstrac¸˜ao presentes no c´odigo fonte, documentac¸˜ao, e arquitetura do software. O conjunto de v´ınculos entre os artefatos citados s˜ao importantes para a compreens˜ao do sistema e nem sempre est˜ao documentados implicando sua recuperac¸˜ao.

A dificuldade em se estabelecer a rastreabilidade entre os diversos artefatos de software produzidos durante o desenvolvimento pode diminuir a compreens˜ao do sistema al´em de dificul-tar dificul-tarefas como an´alise de impacto de mudanc¸as e a justificativa da existˆencia de determinados elementos arquiteturais. Especificamente, a inexistˆencia de rastreabilidade entre documentac¸˜ao e c´odigo fonte alterado a cada nova vers˜ao de software constitui um empecilho a ser superado por novos desenvolvedores interessados em compreender o sistema para promover mudanc¸as no mesmo. O uso de t´ecnicas de Recuperac¸˜ao de Informac¸˜ao para recuperar a rastreabilidade entre documentac¸˜ao e c´odigo fonte tem sido aplicada com relativo sucesso [LUKINS et al. 2008], [ANTONIOL et al. 2000]. Entretanto um problema importante para a aplicac¸˜ao destas t´ecnicas refere-se ao fato do vocabul´ario da documentac¸˜ao nem sempre estar alinhado lexicamente com o vocabul´ario do c´odigo fonte para representar elementos semˆanticos equivalentes, ou seja, um vocabul´ario reflete o mundo do usu´ario e o outro reflete o mundo do desenvolvedor.

2. Fundamentac¸˜ao Te´orica

Esta sec¸˜ao apresenta os principais conceitos te´oricos necess´arios ao desenvolvimento deste tra-balho.

A engenharia de linha de produtos de software1 ´e uma abordagem para o

desenvolvi-mento de fam´ılias de sistemas de software onde o reuso de software ´e utilizado de forma sis-tem´atica. Como definido por [SEGURA et al. 2008], SPL representa um segmento de produtos de software compartilhando um conjunto comum de caracter´ısticas. Modelos de caracter´ısticas s˜ao geralmente utilizados para prover uma representac¸˜ao visual compacta de todos os produ-tos de uma SPL servindo como uma t´ecnica de modelagem do conhecimento para determinado dom´ınio de problema.

Geralmente, usu´arios e engenheiros de software se comunicam em func¸˜ao das fun-cionalidades que um sistema apresenta. [CZARNECKI e EISENECKER 2000] definem carac-ter´ıstica como as propriedades de um software que afetam diretamente usu´arios finais, ou seja, as funcionalidades presentes no software que podem ser observadas e controladas em tempo de execuc¸˜ao pelos usu´arios finais. Caracter´ısticas encapsulam o conhecimento do dom´ınio de um sistema de software representando uma excelente fonte de informac¸˜ao para a engenharia reversa

(3)

em processos de recuperac¸˜ao da arquitetura e de links de rastreabilidade entre artefatos de soft-ware. Utilizar modelos de caracter´ısticas como entidades de primeira classe para a an´alise da evoluc¸˜ao do software melhora a compreens˜ao e a recuperac¸˜ao de representac¸˜oes de seu projeto de alto n´ıvel[PASHOV et al. 2004].

A partir deste momento podemos pensar a relac¸˜ao existente entre requisitos e carac-ter´ısticas. Conforme [TRIGAUX e HEYMANS 2003], um requisito ´e uma condic¸˜ao ou capaci-dade que um componente ou sistema de software deve possuir para satisfazer um contrato, um padr˜ao, uma especificac¸˜ao ou outro documento formalmente imposto como exigˆencia ao projeto de desenvolvimento. Ainda segundo os autores em linhas de produtos de software os requisi-tos podem ser classificados em dois tipos principais: partes comuns que expressam requisirequisi-tos comuns definidos para um grupo de sistemas; partes vari´aveis que expressam os requisitos que s˜ao os incrementos necess´arios a um conjunto de requisitos comuns para a especificac¸˜ao de um sistema particular, correspondendo `as expectativas espec´ıficas de um cliente.

O espalhamento de caracter´ısticas pelo c´odigo fonte em um sistema tipicamente ori-entado a objetos nos leva a uma an´alise mais detalhada no sentido de se descobrir como cada componente do sistema contribui em tempo de execuc¸˜ao para a realizac¸˜ao de uma dada caracter´ıstica e qual a relac¸˜ao existente entre caracter´ısticas. Ao definir interesse [ROBILLARD e MURPHY 2007] consideram todo elemento do sistema que possa ser consid-erado uma unidade conceitual no dom´ınio, incluindo-se caracter´ısticas nesta classificac¸˜ao. Ele exp˜oe que a inadequada separac¸˜ao de caracter´ısticas pelo c´odigo fonte dificulta a evoluc¸˜ao do sistema. Como conseq¨uˆencia, o entendimento incompleto de uma caracter´ıstica na fase anterior a inclus˜ao de alterac¸˜oes no sistema, pode acarretar modificac¸˜oes incorretas, ineficientes ou que n˜ao respeitem o projeto atual do sistema. Para tanto ´e exposta a necessidade da documentac¸˜ao do espalhamento de interesses pelo c´odigo fonte o que facilitaria a descoberta do c´odigo fonte relacionado a determinada mudanc¸a a ser introduzida no sistema.

V´arias t´ecnicas tem sido utilizadas para auxiliar o processo de engenharia reversa em sistemas de software com a finalidade de recuperar a arquitetura do sistema e a rastreabilidade entre artefatos de software. LSI2 ´e uma t´ecnica utilizada no processamento de linguagem

natu-ral que se utiliza de semˆantica vetorial para a an´alise dos relacionamentos entre um conjunto de termos e documentos[VAN DER SPEK et al. 2008]. A id´eia central que caracteriza a aplicac¸˜ao da t´ecnica ´e a informac¸˜ao sobre os contextos em que determinadas palavras aparecem provendo um conjunto de restric¸˜oes respons´aveis pelo estabelecimento da similaridade semˆantica en-tre as palavras existentes na base de texto analisada[POSHYVANYK et al. 2007]. Em Engen-haria de Software LSI tem sido utilizada para diversas tarefas relacionadas a localizac¸˜ao de caracter´ısticas no c´odigo fonte de um programa, dentre as quais citam-se: reuso de software, identificac¸˜ao de tipos abstratos de dados, detecc¸˜ao de clones, recuperac¸˜ao de links de rastreabil-idade entre documentac¸˜ao e c´odigo fonte, rastreabilrastreabil-idade de requisitos e rastreabilrastreabil-idade entre outros artefatos de software.

[WERMELINGER et al. 2005] defendem que a integrac¸˜ao de dados de variadas fontes facilita a an´alise da evoluc¸˜ao hist´orica de um sistema de software. Segundo os autores, es-tas fontes podem ser: relat´orios de erros, solicitac¸˜ao de mudanc¸as, c´odigo fonte, informac¸˜oes de configurac¸˜ao, reposit´orios de vers˜oes, rastros de execuc¸˜ao do software, logs de erro, documentac¸˜ao, dentre outros. Identificar os rastros durante a execuc¸˜ao de caracter´ısticas pode aumentar a compreens˜ao sobre o comportamento do sistema ao revelar o relacionamento entre os componentes de software envolvidos na implementac¸˜ao de determinadas caracter´ısticas.

(4)

3. Caracterizac¸˜ao da contribuic¸˜ao

Ao final deste trabalho, espera-se obter uma abordagem capaz de prover ao desenvolvedor a visualizac¸˜ao das alterac¸˜oes ocorridas em componentes de software durante o processo evolutivo sob um ponto de vista de usu´ario externo ao sistema. Ap´os separar componentes alterados, ser´a formada uma base de c´odigo representada somente pelo c´odigo fonte alterado entre as vers˜oes analisadas. Procedendo a indexac¸˜ao deste conjunto de documentos por LSI, teremos um espac¸o semˆantico vetorial onde ser˜ao realizadas consultas baseadas na documentac¸˜ao que reflete as alterac¸˜oes realizadas no sistema. Com isso haver´a uma diminuic¸˜ao do espac¸o de busca por links de rastreabilidade da documentac¸˜ao do sistema para o c´odigo fonte. Ao facilitar a localizac¸˜ao de determinadas mudanc¸as no c´odigo fonte, ser˜ao agilizados os processos de entendimento e manutenc¸˜ao de software pelos desenvolvedores.

Geralmente a documentac¸˜ao aparece no sistema sob a forma de relat´orios de correc¸˜oes de erros, requisic¸˜oes de mudanc¸as, notas de vers˜ao e outras documentac¸˜oes que espelham de alguma maneira as mudanc¸as de requisitos solicitadas e implementadas a cada nova vers˜ao do software. A utilizac¸˜ao deste tipo de documentac¸˜ao na formulac¸˜ao das pesquisas relacionadas `a recuperac¸˜ao da informac¸˜ao de rastreabilidade mostra-se interessante em func¸˜ao do vocabul´ario e termos semˆanticos utilizados possu´ırem mais afinidade com a cognic¸˜ao humana. Para estre-itar as relac¸˜oes entre os vocabul´arios presentes na documentac¸˜ao e no c´odigo fonte ´e proposto neste trabalho a associac¸˜ao de termos do vocabul´ario do usu´ario a elementos do c´odigo fonte atrav´es do exerc´ıcio de roteiros de execuc¸˜ao nomeados e associados aos elementos de c´odigo executados. Espera-se com isso diminuir a lacuna entre os n´ıveis de abstrac¸˜ao expressos pelo c´odigo fonte e documentac¸˜ao do sistema.

Com este trabalho o desenvolvedor ter´a a sua disposic¸˜ao: as informac¸˜oes necess´arias para a localizac¸˜ao no c´odigo fonte das mudanc¸as expressas na documentac¸˜ao do sistema; uma vis˜ao do espalhamento da caracter´ıstica em an´alise pelos diversos componentes presentes em diferentes vers˜oes do software; uma aproximac¸˜ao dos vocabul´arios presentes no c´odigo fonte e na documentac¸˜ao melhorando a compreens˜ao do sistema.

4. Estado Atual do Trabalho

Atualmente, o trabalho encontra-se com a abordagem estabelecida, bem como algumas etapas auxiliares desenvolvidas. Na Figura 1 ´e apresentado um diagrama de atividades para ilustrar a abordagem realizada neste trabalho e descrita abaixo.

Inicialmente, para se obter um mapeamento entre caracter´ısticas e c´odigo fonte, prop˜oe-se a execuc¸˜ao de uma caracter´ıstica para diferentes vers˜oes de um sistema de software com coleta e separac¸˜ao de rastros em func¸˜ao dos passos do roteiro previamente estabelecido. Com os rastros de execuc¸˜ao coletados, dar-se-´a prosseguimento ao trabalho de busca de quais partes da caracter´ıstica em an´alise sofreram evoluc¸˜ao. A separac¸˜ao se justifica uma vez que estes rastros tem um elevado n´umero de elementos, e portanto, s˜ao de dif´ıcil interpretac¸˜ao do ponto de vista de entendimento do sistema. Dividir as caracter´ısticas em seus passos de execuc¸˜ao unit´arios, nomeando tais fragmentos a partir da vis˜ao do usu´ario final do sistema pode melhorar a busca por elementos de c´odigo associados `as mudanc¸as descritas na documentac¸˜ao do sistema. Uma vez coletados os rastros de execuc¸˜ao, ´e necess´ario averiguar quais classes e m´etodos do sistema foram realmente alterados ou acrescentados procedendo-se assim uma filtragem dos elementos dos rastros. Ao contrastar os rastros das duas vers˜oes analisadas verifi-caremos que alguns m´etodos novos s˜ao pertencentes `a vers˜ao mais nova do sistema e s˜ao iden-tificados como elementos de rastro exclusivos. Outros que sejam ideniden-tificados como elementos

(5)

Figura 1. Diagrama de atividades para o trabalho proposto

de rastros comuns `a execuc¸˜ao da caracter´ıstica nas duas vers˜oes do sistema analisado precisam de um tratamento especial. Para estes ´ultimos faremos uma an´alise est´atica atrav´es do seu reposit´orio de vers˜oes, onde poderemos comparar a implementac¸˜ao do c´odigo de cada vers˜ao para verificar se houve alterac¸˜oes. Identificados aqueles m´etodos que sofreram alterac¸˜oes, pro-cederemos a indexac¸˜ao desta base de c´odigo novo ou alterado, com a subseq¨uente criac¸˜ao do espac¸o semˆantico vetorial a partir da aplicac¸˜ao da t´ecnica LSI. Por fim, a realizac¸˜ao de pesquisas sobre o espac¸o produzido, tendo como parˆametro as mudanc¸as expressas na documentac¸˜ao do sistema, fornecer´a os links de rastreabilidade desejados.

At´e o presente momento foram instrumentalizadas t´ecnicas de recuperac¸˜ao de informac¸˜ao para localizac¸˜ao de caracter´ısticas no c´odigo fonte e exercitou-se roteiros de execuc¸˜ao de caracter´ısticas para alguns softwares com coleta de rastros de execuc¸˜ao al´em da especificac¸˜ao da abordagem do trabalho de pesquisa.

5. Trabalhos relacionados

Este projeto est´a fundamentado em outros trabalhos que investigam a recuperac¸˜ao da arquitetura e a evoluc¸˜ao do sistema com o aux´ılio de modelos de caracter´ısticas. O escopo do trabalho tamb´em abrange a rastreabilidade entre artefatos de software, destacando-se a aplicac¸˜ao de t´ecnicas de recuperac¸˜ao de informac¸˜ao para esta finalidade.

[GREEVY et al. 2006] discutem a necessidade de se descobrir como e porquˆe deter-minadas caracter´ısticas foram modificadas durante o processo evolutivo de um software, mais precisamente quais artefatos foram afetados com as mudanc¸as. Com a execuc¸˜ao das carac-ter´ısticas do sistema obt´em-se os rastros de execuc¸˜ao do sistema fragmentando-os e agrupando-os sob a forma vis˜oes para facilitar o entendimento. Com isso consegue-se mensurar o n´ıvel de participac¸˜ao dos elementos do c´odigo fonte na implementac¸˜ao da caracter´ıstica apontando-se

(6)

as raz˜oes que justificam as alterac¸˜oes expressas nas caracter´ısticas. Por fim, procede-se uma integrac¸˜ao de sistema para linhas paralelas de desenvolvimento de um mesmo software para validar a eficiˆencia do m´etodo proposto.

Em [SOBREIRA e MAIA 2008], os autores estabelecem um m´etodo para coleta e an´alise de rastros de execuc¸˜ao, provendo uma an´alise gr´afica da rastreabilidade entre c´odigo fonte e caracter´ısticas selecionadas do sistema. A ferramenta desenvolvida baseia-se na mon-tagem de matrizes que relacionam componentes de software e caracter´ısticas permitindo visu-alizar onde estas ´ultimas est˜ao implementadas no c´odigo fonte. A rastreabilidade entre c´odigo fonte e caracter´ısticas representa a grande contribuic¸˜ao deste trabalho. O desenvolvedor tem ao seu alcance a possibilidade de analisar quais partes do c´odigo fonte s˜ao afetadas pela alterac¸˜ao de uma caracter´ıstica.

[VAN DER SPEK et al. 2008] relatam um estudo sobre a recuperac¸˜ao de conceitos ar-quiteturais embutidos no c´odigo fonte baseado em Indexac¸˜ao por Semˆantica Latente (LSI). Os autores do artigo concluem, a partir de um estudo de caso, que a t´ecnica LSI ´e adequada para a localizac¸˜ao de conceitos arquiteturais no c´odigo fonte. Este trabalho contribui para a recuperac¸˜ao da rastreabilidade entre c´odigo fonte e a arquitetura aumentando a compreens˜ao do sistema.

Numa tentativa de facilitar a localizac¸˜ao do c´odigo fonte relacionado a um erro de sistema, [LUKINS et al. 2008] prop˜oem a utilizac¸˜ao de outra t´ecnica de recuperac¸˜ao de informac¸˜ao denominada LDA3. No artigo procede-se um estudo de caso onde contrasta-se os

resultados das pesquisas obtidas a partir da aplicac¸˜ao de LDA com estudos similares realizados em LSI. Os autores concluem, a partir da an´alise dos estudos de casos, ser eficiente a aplicac¸˜ao de LDA para a localizac¸˜ao do c´odigo fonte a ser alterado na correc¸˜ao de erros. Outro ponto relevante apontado diz respeito ao resultado das pesquisas serem fortemente dependentes da qualidade da consulta submetida, o que implicaria uma adaptac¸˜ao do vocabul´ario do usu´ario para o do desenvolvedor. Nosso trabalho prop˜oe o uso da nomeac¸˜ao de fragmentos de rastros de execuc¸˜ao com o vocabul´ario do usu´ario permitindo portanto a associac¸˜ao autom´atica deste vocabul´ario aos respectivos elementos de c´odigo.

O trabalho aqui apresentado agregar´a as informac¸˜oes advindas da classificac¸˜ao de ras-tros de execuc¸˜ao de caracter´ısticas como base para a aplicac¸˜ao de t´ecnicas de recuperac¸˜ao de informac¸˜ao, especificamente LSI, no intuito de explicitar a rastreabilidade entre documentac¸˜ao de sistema e c´odigo fonte. Com isso espera-se prover um melhor entendimento do sistema para a inclus˜ao e alterac¸˜ao de novas funcionalidades.

6. Avaliac¸˜ao dos resultados

Ser´a realizado um estudo de caso envolvendo a utilizac¸˜ao de trˆes softwares de c´odigo aberto que possuam reposit´orios de vers˜oes dispon´ıveis e documentac¸˜ao para as vers˜oes analisadas. Para avaliac¸˜ao da recuperac¸˜ao da rastreabilidade entre c´odigo fonte e documentac¸˜ao ser˜ao utilizados duas medidas bem peculiares a experimentos com recuperac¸˜ao de informac¸˜ao: revocac¸˜ao e precis˜ao[YATES e NETO 1999].

Referˆencias

ANTONIOL, G., CANFORA, G., CASAZZA, G., LUCIA, A. D., and MERLO, E. (2000). Information retrieval models for recovering traceability links between code and documenta-tion. In ICSM ’00: Proceedings of the International Conference on Software Maintenance (ICSM’00), page 40, Washington, DC, USA. IEEE Computer Society.

(7)

CZARNECKI, K. and EISENECKER, U. (2000). Generative programming: methods, tools, and applications. ACM Press/Addison-Wesley Publishing Co. New York, NY, USA.

GREEVY, O., DUCASSE, S., and GIRBA, T. (2006). Analyzing software evolution through feature views: Research articles. In J. Softw. Maint. Evol., volume 18, pages 425–456, New York, NY, USA. John Wiley & Sons, Inc.

LUKINS, S. K., KRAFT, N. A., and ETZKORN, L. H. (2008). Source code retrieval for bug localization using latent dirichlet allocation. In 15th Working Conference on Reverse Engi-neering. IEEE Computer Society.

PASHOV, I., RIEBISCH, M., and PHILIPPOW, I. (2004). Supporting architectural restructuring by analyzing feature models. In CSMR ’04: Proceedings of the Eighth Euromicro Working Conference on Software Maintenance and Reengineering, page 25, Washington, DC, USA. IEEE Computer Society.

POSHYVANYK, D., GUEHENEUC, Y. G., MARCUS, A., ANTONIO, G., and RAJLICH, V. (2007). Feature location using probabilistic ranking of methods based on execution scenarios and information retrieval. volume 33, pages 420–432, Piscataway, NJ, USA. IEEE Press. RIEBISCH, M. (2004). Supporting evolutionary development by feature models and

traceabil-ity links. page 370, Los Alamitos, CA, USA. IEEE Computer Society.

ROBILLARD, M. P. and MURPHY, G. C. (2007). Representing concerns in source code. volume 16, page 3, New York, NY, USA. ACM.

SEGURA, S., BENAVIDES, D., RUIZ-CORT ´ES, A., and TRINIDAD, P. (2008). Automated merging of feature models using graph transformations. Lecture Notes in Computer Science. Springer-Verlag. In press.

SOBREIRA, V. and MAIA, M. A. (2008). A visual trace analysis tool for understanding feature scattering. pages 337–338. 15th Working Conference on Reverse Engineering - WCRE 08. TRIGAUX, J. C. and HEYMANS, P. (2003). Software product lines: State of the art.

VAN DER SPEK, P., KLUSENER, S., and VAN DE LAAR, P. (2008). Towards recovering architectural concepts using latent semantic indexing. pages 253–257. 12th European Con-ference on Software Maintenance and Reengineering - CSMR 2008.

WERMELINGER, M., MENS, T., DUCASSE, S., DEMEYER, S., HIRSCHFELD, R., and JAZAYERI, M. (2005). Challenges in software evolution. In Eighth International Workshop on Principles of Software Evolution, pages 13–22.

YATES, R. B. and NETO, B. R. (1999). Modern information retrieval. Addison Wesley Long-man Publishing Co. Inc.

Referências

Documentos relacionados

5 “A Teoria Pura do Direito é uma teoria do Direito positivo – do Direito positivo em geral, não de uma ordem jurídica especial” (KELSEN, Teoria pura do direito, p..

Os profissionais da medicina do trabalho que preenchem a ficha de aptidão do trabalhador, ao assinalarem se o trabalhador se encontra apto, apto condicionalmente

Assim, o presente estudo tem como objetivos determinar o grau de conhecimento geral de um grupo de puérperas inquiridas relativamente ao PNV e à vacina contra o Meningococo

O Documento Orientador da CGEB de 2014 ressalta a importância do Professor Coordenador e sua atuação como forma- dor dos professores e que, para isso, o tempo e

Quando conheci o museu, em 2003, momento em foi reaberto, ele já se encontrava em condições precárias quanto à conservação de documentos, administração e organização do acervo,

Os principais objectivos definidos foram a observação e realização dos procedimentos nas diferentes vertentes de atividade do cirurgião, aplicação correta da terminologia cirúrgica,

psicológicos, sociais e ambientais. Assim podemos observar que é de extrema importância a QV e a PS andarem juntas, pois não adianta ter uma meta de promoção de saúde se

Os principais resultados obtidos pelo modelo numérico foram que a implementação da metodologia baseada no risco (Cenário C) resultou numa descida média por disjuntor, de 38% no