Capítulo 5 – Biblioteca de Componentes Web Brechó-VCM

5.2 Biblioteca Brechó

A biblioteca Brechó compõe o Projeto Brechó (BRECHÓ, 2010), desenvolvido pelo Grupo de Reutilização de Software da COPPE/UFRJ, que visa pesquisar tópicos relacionados a repositórios e à indústria de componentes e serviços. A biblioteca Brechó consiste em um sistema de informação web (repositório) com uma base de dados de componentes e serviços, produtores e consumidores, e conta com mecanismos de armazenamento, documentação, publicação, busca e recuperação. Esta biblioteca considera um conceito flexível de componente, que inclui todos os artefatos produzidos no desenvolvimento (processo, modelos, manuais, código fonte, binário, testes etc.) e, assim, permite a aquisição de diferentes conjuntos de artefatos empacotados ou disponibilizados como serviços (quando possível), atrelados a licenças personalizadas e configuráveis. A estrutura de documentação é fundamentada em categorias e formulários dinâmicos e configuráveis a elas associados, que favorecem a construção da documentação de componentes na forma de um mosaico, uma vez que estes podem pertencer a várias categorias ao mesmo tempo. A Brechó também gerencia um mapa de reutilização e o estabelecimento e inferência de dependências entre componentes.

Com o intuito de melhor explicitar todos os tipos de informações que um componente possui, a organização interna da biblioteca Brechó é dividida em alguns níveis, conforme mostrado na Figura 5.1. O primeiro nível, Componente, representa

conceitualmente as entidades armazenadas na biblioteca (e.g., File Compressor). O nível seguinte, Distribuição, representa um corte funcional sobre as entidades, fornecendo conjuntos de funcionalidades que são desejadas por grupos específicos de usuários (e.g., Standard, Professional e Enterprise). O terceiro nível, Release, representa um corte temporal sobre as distribuições, definindo as versões dos artefatos que implementam as entidades em um determinado instante no tempo (e.g., a distribuição Enterprise possui a release FC_Enterprise_1.4.5).

A partir desse nível, as entidades passam a ter informações concretas sobre suas implementações, em diferentes níveis de abstração (e.g., artefatos de análise, desenho, código fonte e binário) e diferentes empacotamentos podem ser definidos para permitir a reutilização efetiva de parte destes níveis (e.g., um pacote contendo os artefatos desenho e binário). Dessa forma, o nível Pacote permite que seja feito um corte em níveis de abstração, possibilitando o agrupamento de artefatos de acordo com um público alvo (e.g., a release FC_Enterprise_1.4.5 possui o pacote Binary e o pacote

Source). O nível Serviço é um nível de abstração específico que viabiliza a reutilização

de uma release através de serviços Web. Por fim, o nível Licença possibilita a definição de direitos e deveres sobre pacotes e serviços. Para cada pacote ou serviço, podem ser estabelecidas licenças específicas, que garantem direitos e deveres de produtores e consumidores, devendo uma delas ser escolhida para a reutilização (e.g., GPL License).

(a)

Figura 5.1 – Organização interna da biblioteca Brechó (MARINHO et al., 2009c)

Além disso, a biblioteca Brechó apresenta as seguintes funcionalidades (WERNER et al., 2007, WERNER et al., 2009):

• Mecanismos de dependência física (entre licenças) e de dependência lógica (entre

Isso acontece devido ao fato de que a dependência de uma release em relação a outra, na prática, se concretiza sob o ponto de vista do consumidor (que realiza atividades de aquisição) quando um determinado pacote, contendo um conjunto de artefatos da primeira, é atrelado a uma licença que o torna efetivamente dependente de um pacote de artefatos, também atrelado a uma licença, da segunda release; • Mecanismos de controle de publicação de componentes pelo gerente da biblioteca,

de acordo com o Processo de Gerência de Reutilização implantado;

• Mecanismos para facilitar a publicação de componentes, incluindo os conceitos de entidades default (devido aos vários níveis da organização interna da biblioteca

Brechó) e de empacotamento automático de artefatos;

• Mecanismos de controle de versão de componentes e de serviços, possível pela organização interna discutida acima;

• Mecanismo de busca, composto pelo módulo de refinamento e flexibilização de buscas, que possibilita a utilização combinada das técnicas de palavras-chave e de hierarquia de termos (i.e., categorias) (Seção 2.3.1), e ainda realizar a filtragem dos componentes por elementos presentes em sua documentação; e pelo módulo de busca sintática, que alerta os usuários sobre prováveis erros de digitação no momento da busca por palavras-chave, sugerindo palavras com grafias similares; • Mecanismo de avaliação, dividido em módulo de avaliação de componentes, que

permite ao consumidor emitir a sua opinião a respeito do componente que ele recuperou da biblioteca (grau de satisfação e feedback textual); e módulo de visualização de avaliações, que permite a consumidores e produtores observarem graficamente (e.g., percentual e opiniões) as avaliações feitas por consumidores; • Mecanismo de categorização, possuindo um módulo de sugestão de categorias, que

permite que o produtor, ao publicar um componente, sugira uma categoria de forma manual e/ou semi-automática, com base em sugestões da Web; e um módulo de organização de categorias e sugestões, que apóia o administrador na tarefa de reorganizar as categorias ao realizar pesquisas na Web para identificar similaridades entre sugestões e categorias existentes, além de notificar os produtores cujas sugestões foram aceitas, ou que possuem componentes em categorias passíveis de exclusão (RAPOSO, 2007);

• Desenvolvimento de uma API de serviços de acesso às funcionalidades da biblioteca para sua integração com outras ferramentas (e.g., a carga dinâmica de plug-ins do

ambiente de reutilização Odyssey (MURTA et al., 2004) armazenados na biblioteca

Brechó (FERNANDES et al., 2007), e a integração com a ferramenta Microsoft

Team Foundation Server (TFS, 2009) para facilitar o processo de publicação direta

de componentes sem precisar acessar a biblioteca Brechó).

No tocante ao tratamento de questões econômicas na biblioteca Brechó, inicialmente, MARINHO (2008) desenvolveu o Mecanismo de Tarifação, responsável por coordenar diferentes formas de aquisição (ou uso) de artefatos (ou serviços) de componentes publicados. Este mecanismo combina os Modelos Pré e Pós-pago do domínio de telefonia celular com conceitos do domínio bancário, no qual usuários têm um limite de crédito para gastar em compras, mas eles podem comprar créditos para compensar o débito (Modelo Pós-pago) ou para acumular créditos (Modelo Pré-pago). Esta informação é configurada em cada perfil (conta de usuário) pelo gerente da biblioteca (MARINHO et al., 2009c). Além disso, a biblioteca Brechó coordena o processo de transferência de créditos durante a recuperação de componentes e serviços, utiliza o conceito de carrinho de compras (ver Seção 4.7) para auxiliar o consumidor durante atividades de aquisição e permite a visualização de um histórico de compras.

No documento Publicações do PESC BRECHÓ-VCM: Uma Abordagem Baseada em Valor para Mercados de Componentes (páginas 120-123)