Reuso na Engenharia de Software

O desenvolvimento baseado em componentes é uma das técnicas que deveria (mas não é, assunto para um próximo post) ser amplamente utilizada pelas empresas produtoras de software. O uso dela associado à elaboração de linhas de produtos reduz, significantemente, o redesenvolvimento de linhas de código. Para que o reuso seja eficiente em um ambiente produtivo, os arquitetos procuram expressar os relacionamentos entre as unidades de design, tais como web services e componentes de negócio. As técnicas de desenvolvimento baseadas em componentes envolvem composição e decomposição, além disso, o arquiteto tem o desafio de mapear as funcionalidades desejadas sobre os componentes.

Formalmente, os componentes são blocos de construção básicos, que alicerçam a engenharia de software baseada em reuso. A granularidade destes blocos implica na reusabilidade, produtividade e manutenção dos componentes.

Todo e qualquer componente pode ser classificado em três níveis: específico, comum e de infra-estrutura. Os componentes classificados como “de infra-estrutura” fazem parte da composição da maioria dos softwares de uma determinada empresa. Por outro lado, os componentes específicos possuem um alto grau de “dependência do domínio”, conseqüentemente, baixo grau de reutilização. Os comuns compõem um número restrito de produtos, reutilização qualificada como mediana.

É possível mapear a capacidade de automação de um processo de produção de software analisando as especificidade do modelo de negócio e a granularidade da base componente.

1 – Base de componente granular aplicada ao desenvolvimento de um produto permeado por um modelo de negócio com baixa especificidade favorece a automação do processo de construção do produto.

2 – Base de componente granular aplicada ao desenvolvimento de um produto permeado por um modelo de negócio com alta especificidade possibilita a reutilização de componentes de infra-estrutura e de alguns componentes comuns. Grande parte do tempo de desenvolvimento é utilizado para implmentação de componentes específicos. Neste contexto os índices de produtividade são parcialmente comprometidos.

3 – Base de componente não granular aplicada ao desenvolvimento de um produto permeado por um modelo de negócio com alta especificidade pode inviabilizar o projeto em relação aos aspectos produtivos.

Concluindo

Para se ter produtividade é necessário possuir uma base de componente extremamente granular e focar o seu desenvolvimento em domínios específicos do conhecimento, minimizando a especificidade do modelo de negócio (mantenha-se quadrante vermelho da figura).

Abraços

José Augusto Fabri – fabri@utfpr.edu.br

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: