• Nenhum resultado encontrado

Uma Ferramenta para Recuperação de Modelos de Processo de Software Reutilizáveis

N/A
N/A
Protected

Academic year: 2021

Share "Uma Ferramenta para Recuperação de Modelos de Processo de Software Reutilizáveis"

Copied!
6
0
0

Texto

(1)

Uma Ferramenta para Recuperação de Modelos de Processo

de Software Reutilizáveis

Ernani de O. Sales#, Salomão F. de Freitas#, *, Rodrigo Quites Reis#, *

#

Laboratório de Engenharia de Software

*Programa de Pós-Graduação em Ciência da Computação Centro de Ciências Exatas e Naturais

Universidade Federal do Pará (UFPA) Campus Universitário do Guamá - Belém – PA

{ernani, sfreitas, quites}@ufpa.br

Abstract. This paper presents the SearchEngine tool, which implements a simple yet flexible model to assist the retrieval of software process models from a repository. The proposed model adopts a Case-Based Reasoning (CBR) approach to retrieve software process models and its components. This approach proved to be useful in a broad range of applications that need to retrieve solutions for new problems based on their similarity to previous stored cases.

Resumo. Este artigo apresenta a ferramenta SearchEngine, que implementa um modelo simples e flexível para auxiliar a recuperação de modelos de processos de software de um repositório. O modelo proposto adota a técnica de Raciocínio Baseado em Casos (CBR) para recuperação de processos e seus componentes, a qual representa uma tecnologia comprovadamente eficiente para aplicações que necessitam recuperar soluções para novos problemas baseando-se na sua similaridade com casos anteriores.

1. Introdução

Process-Centered Software Engineering Environments (PSEEs) ou Ambientes de

Desenvolvimento de Software Orientados ao Processo constituem um tipo especial de ambiente de desenvolvimento de software para apoiar a definição rigorosa de processos de software, objetivando automatizar a gerência do desenvolvimento. Tais ambientes geralmente provêem serviços para análise, simulação, execução e reutilização das definições de processos, que cooperam no aperfeiçoamento contínuo de processos. Os modelos de processos de software descrevem o conhecimento de uma organização e, portanto, modelos que descrevem experiências bem sucedidas devem ser mantidos em um repositório, de forma a ser possível a sua reutilização em diferentes projetos. Quando modelos e componentes de processos estão armazenados em um repositório, é importante que estejam disponíveis mecanismos para selecionar, recuperar e adaptar os componentes reutilizáveis.

A verificação e seleção manual de processos de um repositório muitas vezes constituem um trabalho dispendioso e pouco preciso. Dessa forma, o desenvolvimento de apoio automatizado para a seleção e recuperação de processos é um importante requisito para prover a efetiva reutilização de processos.

(2)

A ferramenta WebAPSEE SearchEngine – doravante denominada SearchEngine

- aqui descrita fornece um mecanismo automatizado para recuperação de processos de um repositório. O mecanismo adota a técnica de Raciocínio Baseado em Casos (CBR) para recuperação de processos, calculando a similaridade entre processos no repositório e novos contextos específicos, representados por consultas fornecidas pelo usuário. Segundo Von Wangenheim (1999), a técnica de CBR representa uma tecnologia comprovadamente eficiente para aplicações que necessitam recuperar soluções para novos problemas baseando-se na sua similaridade com casos anteriores, armazenados em um repositório. A ferramenta SearchEngine está integrada ao ambiente WebAPSEE, o qual constitui um PSEE de Software Livre em desenvolvimento na Universidade Federal do Pará.

O texto é organizado como segue. A seção 2 apresenta uma visão geral da ferramenta proposta. A seção 3 descreve informalmente o algoritmo de cômputo de similaridade através de um exemplo. Finalmente, a seção 4 apresenta as considerações finais do texto.

2. Visão Geral do Funcionamento da SearchEngine

A busca de componentes de processos de software da ferramenta é baseada no modelo proposto por Reis (2002) e pode ser informalmente definido da seguinte maneira1. Primeiro, o usuário (gerente ou projetista de processos de software) especifica os casos sobre os quais fará a sua busca, ou seja, define o repositório alvo em que se encontram os processos de software a serem analisados (i.e., Processos Abstratos ou Concretos2). Depois, deve ser construída uma consulta pelo usuário a esse repositório em função de atributos distribuídos em cinco dimensões3 (Projeto, Processo, Organização, Ambiente e Software – em inglês) inserindo valores solicitados com um peso (discretizados em Alto, Médio ou Baixo) associado. Em seguida, o motor de busca calcula a similaridade entre a consulta do usuário e cada um dos processos existentes no repositório. Por fim, uma lista dos processos analisados em ordem decrescente de grau de similaridade com a consulta do usuário é retornada. A figura 1 ilustra uma visão geral deste funcionamento.

A arquitetura interna da ferramenta é composta por dois componentes internos à ferramenta: a interface gráfica com o usuário (GUI) e o motor de busca, onde ficam os algoritmos responsáveis para o cálculo de similaridade explicado anteriormente. Além disso, tem-se uma interface de busca realizada pelo SearchEngine que serve de comunicação entre a ferramenta e o ambiente WebAPSEE para o acesso aos processos de software reutilizáveis

1

A especificação formal do comportamento desta ferramenta e seu algoritmo de similaridade são apresentados através de especificações algébricas descritas em Reis (2002 Bergmann).

2

Processos Abstratos (também conhecidos como templates de processos) são modelos propostos para posteriormente serem adaptados e instanciados em contextos específicos. Processos Concretos constituem instâncias (parcialmente) executadas.

3

As cinco dimensões constituem uma contribuição do modelo de reutilização de processos de software proposto por Reis (2002), sendo uma adaptação da proposta original de Perry (1997) a luz da terminologia e prática no tópico de separation of concerns [IBM 2006].

(3)

Figura 1 Visão Geral do funcionamento do WebAPSEE-SearchEngine. .

3. Cálculo de Similaridade

O SearchEngine realiza o cálculo de similaridade da consulta do usuário com cada caso existente no repositório com o objetivo de extrair um coeficiente que represente o que esse caso possui de similar com a consulta - denominado de similaridade global. Para tal é feito o somatório das similaridades locais, ou seja, são somadas as similaridades de cada atributo da consulta do usuário com seu respectivo atributo no caso-base do repositório. Essa similaridade local por sua vez é calculada pelo somatório da similaridade de cada item adicionado a um atributo da consulta com o item desse atributo respectivo no caso-base multiplicado com seu respectivo peso associado, sendo que esse cálculo é feito de acordo com o tipo de similaridade do atributo de busca. A tabela 1 relaciona os tipos de similaridade adotados pela ferramenta.

(4)

TIPOS DE SIMILARIDADE VALORES POSSÍVEIS CÁLCULO APLICADO

Numérica Números inteiros ou reais

positivos Proporcionalidade Qualitativa para itens fixos

(QualFixed)

Termos pré-definidos para o atributo

Comparação com valores possíveis Qualitativa para itens

variáveis (QualVar)

Termos registrados, com possibilidade de novos itens

Distância do caminho entre termos na árvore de termos

Exata Termos registrados Comparação Exata

Texto Livre Qualquer tipo de texto Comparação Léxica

A tabela 2 apresenta uma consulta-exemplo de um usuário e um caso-base do repositório submetidos ao cálculo de similaridade global. As colunas Valor Consulta e

Peso são fornecidas pelo usuário: a primeira apresenta o valor solicitado e a segunda

uma escala de prioridades: Baixo, que equivale ao valor 10; Médio, a 50 e Alto, a 100. A coluna Valor Caso-Base apresenta os valores recuperados do repositório para uma instância identificada como 114.

Tabela 2 Exemplo do Cálculo de Similaridade

Dimensão Atributo Valor Consulta Valor Caso-Base Id=114 Comparação (tipo similaridade) Peso Simila ridade Similarid ade Local 90 0,4265 Baixo 4,265

Projeto Duration (dias)

120

211

0,5687 Baixo 5,687

9,952

Processo Complexity Medium Low 0,5 Baixo 5 5

Programador

JAVA 1 50

Analista 0.8 40

Organização Role Type(s) Programador JAVA Programador 0.9 Médio 45 135 Impressora 0 0

Ambiente Resource (s) Laptop

Laptop 1

Baixo

10

10

Software Output Artifact Type(s) Especificação formal orientada a modelo Especificação Algébrica 0,7 Baixo 7 7 Similaridade Global 166.952 Na dimensão Projeto – que contém atributos referentes a processos executados -

dois valores foram fornecidos pelo usuário no atributo Duration4 (90 e 120) e o valor 211 refere-se à duração em dias da instância recuperada. De acordo com o tipo de similaridade desse atributo (Numérico), o cálculo aplicado é proporcionalidade entre os valores da consulta e do caso-base, portanto, resultando no seguinte cálculo: 90/211 e 120/211, os quais são multiplicados pelo seu peso associado (em ambos os casos o valor é Baixo). Os valores então são somados resultando na similaridade local do atributo

Duration que totaliza 9,952.

4

Os atributos são rotulados em inglês em função do fato deste idioma ter sido usado na descrição de toda a documentação dos artefatos do projeto, o qual envolve cooperação internacional com instituições do exterior.

(5)

Na dimensão Processo, tem-se o atributo Complexity com um valor inserido tanto para a consulta (Medium) quanto para o caso-base (Low). Para esse atributo o tipo de similaridade é Qualitativo de Valores Fixos (QualFixed) e para tal é aplicado um cálculo peculiar ao atributo em questão. No caso do atributo Complexity, existem três valores possíveis: Low, Medium e High, sendo que cada valor desses possui um representante numérico, respectivamente, 3, 6 e 9. Dessa forma, o cálculo aplicado também é proporcionalidade entre os valores da consulta e do caso-base: 3/6 = 0,5, o qual é multiplicado pelo peso (Baixo), 0,5*10, resultando na similaridade local do atributo Complexity, 5.

Na dimensão Organização, tem-se o atributo Role Type(s) com um valor

inserido na consulta (Programador JAVA) e três valores inerentes ao caso-base (Programador JAVA, Analista e Programador). O cálculo aplicado para esse atributo, que possui tipo de similaridade do tipo QualVar, é feito a partir de uma busca na árvore de valores desse atributo no ambiente WebAPSEE. Ou seja, é verificada a existência dos valores na árvore e, se a resposta for afirmativa, é calcula a similaridade entre os dois termos pela distância dos valores na árvore. Por questão de espaço, este exemplo não é discutido aqui, mas segue o mesmo raciocínio do atributo Output Artifact Type(s). Na dimensão Ambiente, tem-se o atributo Resource(s) com um valor inserido

na consulta (Laptop), e três valores existentes ao caso-base (Impressora e Laptop). Como o cálculo aplicado é referente ao tipo de similaridade Exact, tem-se que as similaridades são 0, 0 e 10 haja vista o peso associado ao valor da consulta que é Baixo. Na dimensão Software, há o atributo Output Artifact Types com um valor tanto

para a consulta (Especificação formal orientada a modelo) quanto para o caso-base (Especificação Algébrica). O cálculo aplicado a esse atributo também se baseia na árvore de valores existente no ambiente WebAPSEE. E, no caso particular dessa consulta, a distância entre os dois valores é de 3 saltos na árvore da figura 3. Logo, a similaridade é 0,7 que multiplicada com o peso associado (Low), 0.7*10, resulta na similaridade local do atributo, 7.

Figura 2 Hierarquia de tipos para Artefatos de Software

Por fim, a similaridade global entre a consulta do usuário e o caso-base do repositório de id 114 é dada por: 9,952 + 5 + 135 + 10 + 7 = 166,952.

4. Considerações Finais

O SearchEngine é uma ferramenta que teve a sua funcionalidade inicialmente definida com o uso do método de especificação formal denominado PROSOFT-Algébrico [Nunes 1992]. Em 2002, um primeiro protótipo da ferramenta foi implementada para o ambiente PROSOFT-APSEE. A versão apresentada aqui neste texto se difere por estabelecer um baixo nível de acoplamento em relação ao ambiente servidor (WebAPSEE) e por permitir que todos os seus atributos – e a própria máquina de busca

(6)

– possam ser configurados com arquivos XML. Esta estratégia abre a possibilidade de generalizar o uso da ferramenta em outros contextos diferentes daquele explorado aqui, embora isto ainda não tenha sido verificado na prática. O desenvolvimento do

SearchEngine também adotou um modelo de processo denominado INRECA

[Bergmann 1999], que orienta o desenvolvimento de aplicações CBR.

É importante ressaltar que a ferramenta possui um papel importante no ciclo de reutilização de processos de software: o SearchEngine apóia a primeira etapa do ciclo de reutilização de Jorgensen (2001), o que ajuda a recuperação de instâncias e componentes de processos que frequentemente devem ser adaptados para contextos tecnológicos e organizacionais específicos. Fornecer apoio automatizado à adaptação de processos de software consiste o objetivo da pesquisa atual dos autores.

Por fim, a ferramenta SearchEngine, seus arquivos de documentação e uma base

de exemplos podem ser encontrados em http://www.labes.ufpa.br/webapseeSearchEngine, sendo que a mesma adere à licença

GNU-GPL (General Public License). Quando a primeira versão estável do ambiente WebAPSEE estiver disponível (prevista para o segundo semestre de 2006), esta ferramenta será vinculada a uma instância real do servidor de processos hospedado no Laboratório de Engenharia de Software da UFPA. A interação entre a ferramenta (cliente) e o ambiente (servidor) irá ocorrer através da passagem de objetos XML.

Agradecimentos

Este trabalho é apoiado pelo CNPq (processo 550451/2003-0) e FINEP (edital CT-INFO - 01/2003).

5. Referências

Bergmann, R. et al. Developing Industrial Case-Based Reasoning Applications. Berlin: Springer-Verlag, 1999. (Lecture Notes in Artificial Intelligence, v. 1612).

IBM Multi-Dimensional Separation of Concerns: An Overview. http://www.research.ibm.com/hyperspace/MDSOC.htm (Acesso em Maio de 2006). Jorgensen, H.; Carlsen, S. Writings in Process Knowledge Management: Management

of Knowledge Captured by Process Models. Oslo: SINTEF Telecom and Informatics, 2001. (Technical Report, n. STF40 A00011).

Nunes, D.J. Estratégia Data-driven no Desenvolvimento de Software. In: SIMPÓSIO BRASILEIRO DE ENGENHARIA DE SOFTWARE, SBES, 6., 1992, Gramado. Anais... [S.l.]: Sociedade Brasileira de Computação, 1992. p. 81-95.

Perry, D.E. Practical Issues in Process Reuse. In: INT. SOFTWARE PROCESS WORKSHOP, ISPW, 10., France. Proceedings... IEEE CS, June 1996.

Reis, R. Q. APSEE-Reuse: Um Meta-Modelo para Apoiar a Reutilização de Processos de Software. Tese de Doutorado. Porto Alegre: PPGCC-UFRGS, 2002.

Von Wangenheim, C.G. REMEX – A Case-Based Approach for Reusing Software Measurement Experienceware. Lecture Notes in Artificial Intelligence 1650. Int’l. Conference on Case-Based Reasoning, 3. (ICCBR-99). Proceedings... Seeon Monastery, Germany, July 1999. p.173-187. Berlin: Springer-Verlag, 1999.

Referências

Documentos relacionados

No âmbito da Década da Educação para o Desenvolvimento Sustentável (2005-2014) ambiciona-se uma escola renovada, capaz de direccionar a humanidade para um caminho

Os supercondutores magnéticos, volantes de inércia e os condensadores são apropriados para aplicações que necessitam de grande potência de saída em pouca

da quem praticasse tais assaltos às igrejas e mosteiros ou outros bens da Igreja, 29 medida que foi igualmente ineficaz, como decorre das deliberações tomadas por D. João I, quan-

Em relação aos conhecimentos de saúde oral constatou-se que pais/encarregados de educação e crianças estão informados sobre a presença, ou não, de dentes cariados, bem como,

Dessa maneira, os resultados desta tese são uma síntese que propõe o uso de índices não convencionais de conforto térmico, utilizando o Índice de Temperatura de Globo Negro e

O Departamento de Ar Isento de Óleo responde pela comercialização na Nigéria de compressores e equipamentos de ar comprimido, utilizados pela Indústria Pesada, nomeadamente

forficata recém-colhidas foram tratadas com escarificação mecânica, imersão em ácido sulfúrico concentrado durante 5 e 10 minutos, sementes armazenadas na geladeira (3 ± 1

O objetivo do curso foi oportunizar aos participantes, um contato direto com as plantas nativas do Cerrado para identificação de espécies com potencial