• Nenhum resultado encontrado

Software Product Lines (SPL)

No documento Framework generativa para edge devices (páginas 44-48)

Software Product Lines (SPL) é um portfólio de sistemas baseados em software

semelhante e produtos produzidos a partir de um conjunto partilhado de recursos, utilizando um meio comum de produção [23]. Ao considerar um portfólio de produtos como uma única entidade a ser gerida, ao contrário de gerir individualmente uma in- finidade de produtos, permite às organizações: diminuir o custo de desenvolvimento do produto, diminuir o time-to-market e aumentar a qualidade do produto [24]. Ou seja, a engenharia SPL não se foca só no desenvolvimento de um produto em par- ticular, mas sim numa família de produtos, identificando o que é comum e variável dentro da gama de produtos pertencentes à família de produtos em questão. Desta forma, é possível reutilizar o software entre os vários produtos.

O gráfico da figura 2.7, apresenta quais são os custos e benefícios da utilização de Engenharia SPL, em comparação com Engenharia focada num só produto.

Número de produtos

C

usto

Engenharia SPL Engenharia focada num produto

Baixos custos por produto

Alto investimento

inicial

Figura 2.7: Custos/Benefícios da Engenharia SPL. Baseado em [3]

Ao analisar o gráfico, verifica-se que a engenharia SPL exige um alto investi- mento inicial, pois obriga a olhar para uma família de produtos, percebendo o que é comum a cada produto e o que difere os vários produtos dessa família. No final, é desenvolvida uma framework que gere esse grau de variabilidade e facilita o desenvol- vimento de novos produtos. Todo esse processo demora tempo a ser implementado, mas depois de implementado, diminui o custo de desenvolvimento de novos produtos. Observando a curva que representa a engenharia focada a um só produto, pode- se verificar que este tipo de engenharia não exige tantos custos iniciais no desenvol- vimento do primeiro produto. E além disso, o tempo de desenvolvimento para os próximos produtos é bastante superior em relação à utilização de engenharia SPL.

Com isto, pode-se concluir que a utilização de engenharia SPL traz vantagens significativas a longo prazo em relação à engenharia focada num só produto.

2.3.1

Diagrama de Funcionalidades

Um diagrama de funcionalidades é uma representação gráfica utilizada em SPL, que fornece uma notação simples e intuitiva, para representar a variabilidade dos vários produtos pertencentes a uma família de produtos.

Com um diagrama de funcionalidades, é possível distinguir quais as funcionali- dades obrigatórias em todos os produtos, e as funcionalidades opcionais que podem ou não existir nos distintos produtos pertencentes à mesma família.

Funcionalidades Opcionais

f1

f2

C

Se a funcionalidade pai C for selecionada, as funcionalidades f1 e f2 podem opcionalmente serem incluídas. Funcionalidades Obrigatórias

f1

f2

C

Se a funcionalidade pai C for selecionada, as funcionalidades f1 e f2 têm obrigatoriamente de serem incluídas. Funcionalidades Alternativas

f1

f2

C

Se a funcionalidade pai C for selecionada, uma

das funcionalidades f1

ou f2 tem que ser

obrigatoriamente incluída.

Funcionalidades Acumulativas

f1

f2

C

Se a funcionalidade pai C for selecionada, pelo

menos uma das funcionalidades de f1 e f2 tem que ser

obrigatoriamente incluída. Funcionalidades Opcionais e Alternativas

f1

f2

C

Se a funcionalidade pai C for selecionada, só uma das funcionalidades de f1 ou f2 podem ser opcionalmente incluída.

Figura 2.8: Tipos de funcionalidades. Baseado em [4]

Na figura 2.8 estão presentes os tipos de funcionalidades mais usadas no de- senvolvimento de um diagrama de funcionalidades [4]. Os tipos de funcionalidades são:

• Funcionalidades opcionais: este tipo de funcionalidades, como o próprio nome indica, são funcionalidades que podem ou não ser incluídas caso a funcio- nalidade pai seja selecionada. Uma funcionalidade opcional é representada por

um segmento de reta, terminando numa circunferência sem preenchimento; • Funcionalidades obrigatórias: são funcionalidades que têm que ser incluídas

obrigatoriamente caso a funcionalidade pai seja selecionada. Uma funcionali- dade obrigatória é representada por um segmento de reta, terminando numa circunferência com preenchimento;

• Funcionalidades alternativas: indica que uma, e só uma, das funcionalida- des filha tem obrigatoriamente que ser incluída, caso a funcionalidade pai seja selecionada. Este tipo de funcionalidade é representado por segmentos de retas terminados em circunferências com preenchimento. Os segmentos de reta são sobrepostos por um arco sem preenchimento;

• Funcionalidade opcionais e alternativas: indica que uma, e só uma, das funcionalidades filha pode ser opcionalmente incluída caso a funcionalidade pai seja selecionada. Este tipo de funcionalidade é representado por segmentos de retas terminados em circunferências sem preenchimento. Os segmentos de reta são sobrepostos por um arco sem preenchimento;

• Funcionalidade acumulativa: indica que pelo menos uma das funcionalida- des filha tem que ser incluída caso a funcionalidade pai seja selecionada. Este tipo de funcionalidade é representado por segmentos de retas terminados em circunferências com preenchimento. Os segmentos de reta são sobrepostos por um arco com preenchimento.

Na figura 2.9, é apresentado um cenário de aplicação de um diagrama de fun- cionalidades, no qual tenta abranger os vários tipos de funcionalidades. O diagrama de funcionalidades exposto, mostra a variabilidade de funcionalidades presentes nos telemóveis.

O telemóvel tem obrigatoriamente de possuir mecanismo de acessibilidade, ecrã, microfone, altifalante, e algumas funcionalidades. Assim todos esses elementos são representados por funcionalidades obrigatórias.

O mecanismo de acessibilidade presente no telemóvel é obrigatório e pode ser através de um teclado, através de uma película touch ou através de ambos. Sendo assim representados por funcionalidades acumulativas.

O ecrã do telemóvel também é obrigatório e pode ser a cores ou a preto e branco. Desta forma são representados por funcionalidades alternativas.

As funcionalidades são divididas em dois tipos: funcionalidades básicas e fun- cionalidades extra.

As funcionalidades básicas são todas elas obrigatórias, ou seja, todos os telemó- veis têm que possibilitar fazer/receber chamadas e enviar/receber SMSs. Assim, são representadas por funcionalidades obrigatórias.

As funcionalidades extras, todas elas são facultativas. Opcionalmente, o telemó- vel pode ter a função de lanterna, MP3, GPS ou câmara. Sendo assim representadas por funcionalidades opcionais. Em relação à câmara, esta só pode ser selecionada se o telemóvel possuir um ecrã a cores.

Se for escolhida a funcionalidade MP3, pode ser fornecido com o telemóvel uns

earPhones ou uns headPhones. Apenas uma, ou até mesmo nenhuma, das opções é

aceite. Sendo estas funcionalidades opcionais alternativas.

Acessibilidade Ecrã

Telemóvel

Teclado Touch BrancoPreto e Cores

Funcionalidades Extras Câmara Lanterna Básicas Chamadas SMS MP3 GPS EarPhones HeadPhones Microfone Altifalante

Figura 2.9: Diagrama de funcionalidades de um telemóvel

No documento Framework generativa para edge devices (páginas 44-48)

Documentos relacionados