Variabilidade em Linha de Produto de Software - Engenharia de Software 33

Neste artigo veremos o conceito de variabilidade em linha de produto de software e como é possível identificar, delimitar e representar variabilidades por meio de modelos UML.

Atenção: esse artigo tem um vídeo complementar. Clique e assista!

De que se trata o artigo

Neste artigo veremos o conceito de variabilidade em linha de produto de software e como é possível identificar, delimitar e representar variabilidades por meio de modelos UML.

Para que serve

Introduzir o conceito de variabilidade em linha de produto de software, bem como fornecer uma forma de identificar, delimitar e representar variabilidade usando uma notação amplamente consolidada tanto na academia como na indústria.

Em que situação o tema é útil

Pesquisadores e gerentes/arquitetos de software que pretendem adotar ou estão em processo de transição do modelo tradicional de desenvolvimento de produtos individuais para a abordagem de linha de produto de software. Além disso, também devem ser consideradas as organizações que já possuem uma linha de produto, mas não realizam efetivamente a atividade de gerenciamento de variabilidades.

Neste artigo veremos como é possível identificar, delimitar e representar variabilidade em modelos de casos de uso, classes e componentes de linha de produto de software (LP) baseados na notação UML (Unified Modeling Language). Para tanto, utilizaremos a LP Arcade Game Maker (AGM) do Software Engineering Institute (SEI) para ilustrar os respectivos conceitos.

Linha de produto de software

A abordagem de linha de produto de software (LP) vem se consolidando com o passar dos anos como uma forma efetiva de reutilização de artefatos de software tanto na indústria quanto na academia [2][6][11]. Várias são as abordagens existentes na literatura que visam à melhoria do processo de adoção e desenvolvimento de LP, com base em conceitos amplamente conhecidos, como desenvolvimento baseado em componentes e arcabouços (frameworks) [3][8].

Uma LP representa um conjunto de sistemas de software que compartilham características comuns e gerenciáveis, que satisfazem as necessidades de um segmento particular do mercado ou de uma missão [1]. Esse conjunto de sistemas de software é também chamado de família de produtos. Os membros da família são produtos específicos desenvolvidos de maneira sistemática a partir da instanciação de uma infraestrutura comum de uma LP, chamada de núcleo de artefatos.

Tradução do termo em inglês core assets. Alguns autores utilizam o termo “ativos centrais” para representar todos os artefatos envolvidos no processo de desenvolvimento de LP, desde recursos humanos

O núcleo de artefatos é essencial para o desenvolvimento de LP, além de formar a sua base. Normalmente inclui a Arquitetura de LP (ALP), componentes reusáveis, modelos de domínios, requisitos da LP, planos de teste e modelos de características e de variabilidades.

O desenvolvimento de LP segue, normalmente, duas atividades etapas: a Engenharia de Domínio, que tem como objetivo desenvolver o núcleo de artefatos e Engenharia de Aplicação, na qual será instanciado o núcleo de artefatos para gerar diferentes produtos.

O Software Engineering Institute (SEI), por meio da iniciativa PLP (Product Line Practice), estabeleceu as atividades essenciais de uma abordagem de LP [11]. Essas atividades são: o Desenvolvimento do Núcleo de Artefatos, que corresponde à Engenharia de Domínio; o Desenvolvimento do Produto, que corresponde à Engenharia de Aplicação; e o Gerenciamento de LP. A Figura 1 ilustra as interações entre essas atividades.

Figura 1"

[...] continue lendo...
Ebook exclusivo
Dê um upgrade no início da sua jornada. Crie sua conta grátis e baixe o e-book

Artigos relacionados