O desenvolvimento baseado em componentes (DBC), de acordo com as pesquisas em reutilização de software, apresenta-se como uma técnica que vem ganhando cada vez mais adeptos. Atualmente, a maioria dos produtos de software disponíveis no mercado utiliza uma abordagem de desenvolvimento em blocos monolíticos, formados por um grande número de partes interrelacionadas, onde o relacionamento entre estas partes não fica evidenciado através de uma interface bem definida.

O DBC tem como objetivo a definição de componentes interoperáveis, com interfaces bem definidas, evidenciando os tipos de relacionamentos permitidos por estes componentes, reduzindo a complexidade no desenvolvimento, assim como os custos, através da reutilização de componentes exaustivamente testados. As premissas de benefícios em qualidade, produtividade e manutenibilidade tornam o DBC uma estratégia potencialmente promissora para a indústria de software. No Brasil, a engenharia de software baseada em componentes é reconhecida, atualmente, como uma área estratégica para o crescimento da indústria brasileira de software, com pesquisas recentes encomendadas visando discutir a “viabilidade e diretrizes de uma estratégia nacional para componentes, com especial atenção para o uso de biblioteca de componentes”.

O amadurecimento de um mercado de componentes pode alavancar, em paralelo, outra técnica emergente e também potencialmente promissora: a engenharia de software baseada em serviços. Algumas vantagens destas arquiteturas completam algumas deficiências do DBC, como no caso da interoperabilidade. Os serviços podem ser compostos, orquestrados e invocados remotamente por consumidores por meio de interfaces e protocolos padronizados, levando ao desenvolvimento de arquiteturas de aplicações baseada em serviços. 


Entretanto, as diferentes tecnologias de desenvolvimento de componentes e serviços têm pouca utilidade na ausência de um mercado consumidor amadurecido. Este tipo de mercado, infelizmente, ainda não é uma realidade amadurecida no país. Dentre os principais inibidores a este amadurecimento, podemos destacar a baixa disponibilidade de componentes de software e a imaturidade dos canais de distribuição. Neste cenário, um elemento fundamental é a biblioteca de componentes, aumentando a oferta de componentes de boa qualidade, que sejam facilmente encontrados, compreendidos, adquiridos e reutilizados a partir da Internet.

Dentre algumas das características iniciais consideradas básicas para o desenvolvimento de um sistema para biblioteca de componentes de software, podemos destacar mecanismos de (i) publicação; (ii) documentação; (iii) armazenamento; (iv) pesquisa; e (v) recuperação de componentes de software. Em adição a este conjunto de características iniciais, são previstas extensões e refinamentos, de forma a atender a questões importantes do papel da biblioteca de componentes no amadurecimento do seu mercado. Como objetivos potenciais destas extensões e refinamentos, podemos destacar: (i) flexibilização do conceito de componentes e empacotamento personalizado; (ii) flexibilização do mecanismo de publicação; (iii) controle de versões e evolução de componentes; (iv) flexiblização e refinamento de mecanismos de pesquisa e recuperação eficientes; (v) gerenciamento de fornecedores e consumidores de componentes; (vi) gerenciamento de licenças e contratos na recuperação de componentes; (vii) mecanismos de publicação, negociação e execução de serviços remotos.
 

O projeto Brechó se apresenta como um arcabouço de pesquisa onde os conceitos apresentados acima são estudados e implementados em uma biblioteca de componentes. O protótipo desta biblioteca (http://reuse.cos.ufrj.br/brecho) consiste em um sistema de informação para WEB com uma base de dados de componentes, fornecedores e consumidores.
 

Financiamento