SlideShare una empresa de Scribd logo
1 de 4
Implementing Product Line Variabilities
Ailton Felix de L. Filho :: Michel Alves dos Santos ∗
Outubro de 2012
Conteúdo
1 Introdução 1
2 Requisitos de Apóio à Implementação 2
3 Quadro para Comparação de Abordagens de
Programação 2
3.1 Exemplos . . . . . . . . . . . . . . . . . . . 3
4 Avaliação 3
5 Conclusões 3
Referências 4
1 Introdução
A abordagem de linha de produto de software tem
como objetivo principal promover a geração de pro-
dutos específicos com base na reutilização de uma
infra-estrutura central.
Uma linha de produto representa um conjunto de
sistemas que compartilham características comuns
e gerenciáveis que satisfazem as necessidades de um
segmento particular do mercado ou de uma missão.
Esse conjunto de sistemas é também chamado de
família de produtos. Os membros da família são
produtos específicos desenvolvidos de maneira siste-
mática a partir de um conjunto comum de artefatos
da linha de produto.
O SEI (Software Engineering Institute), através
da iniciativa PLP (Product Line Practice), estabe-
leceu as atividades essenciais de uma abordagem de
linha de produto. Essas atividades, como podem ser
vistas na Figura 1, são o Desenvolvimento do Núcleo
de Artefatos, também conhecida como Engenharia
de Domínio, o Desenvolvimento do Produto, tam-
bém conhecida como Engenharia de Aplicação, e o
Gerenciamento da Linha de Produto [Jun05].
Uma infra-estrutura de linha de produto de soft-
ware cobre vários sistemas, isto devido ao número
de membros que uma linha de produto possui.
Para mostrar uma linha de produto, os assets (re-
cursos) de um software têm de cobrir todos os ele-
∗Bacharelandos em Ciência da Computação, Univer-
sidade Federal do Estado de Alagoas (UFAL). E-mail:
{afdlf2, michel.mas}@gmail.com. Disciplina: Linha de
Produto de Software. Docente Responsável: Arturo.
Figura 1: Atividades essenciais de linha de pro-
duto de software. Os três círculos indicam que
as atividades de uma linha de produto são alta-
mente interligadas e iterativas.
mentos da família do produto de onde o mesmo foi
construído e suas correspondentes regras de compo-
sição.
O artigo aborda a questão de manipulação de va-
riabilidade de linha de produto (ver [WEI99]) em
nível de código. Para esse fim várias abordagens de
implementação são examinadas com respeito ao uso
das mesmas em um contexto de linha de software.
A proposta do trabalho não é transmitir mais pre-
ocupação em tecnologias, mas somente informar so-
bre as possibilidades de seu uso para manipular va-
riabilidades de código em linha de produto. É dei-
xado claro também que o conjunto de abordagens
apresentado no trabalho não é completo.
Em [Cop95] um método de design que leva vanta-
gem do popular apóio a linguagem de programação
para múltiplos paradigmas é apresentado. O livro
mantém um foco nos problemas relacionados a com-
preensão de comunalidades e variabilidades, o que o
torna de interesse para a engenharia de linha de pro-
duto.
1
2 Requisitos de Apóio à Im-
plementação
As variabilidades podem ser inicialmente identifi-
cadas por meio do conceito de feature [VAN01]. Este
conceito teve origem na engenharia de domínio. Fe-
ature pode ser definida como uma característica de
um sistema que é relevante e visível para o usuário
final [KAN].
Toda variabilidade encontrada em um contexto
de linha de software pode ser conectada com uma
feature correspondente. A relação entre feature e
variabilidade é de 1 : N, pois a implementação da
mesma geralmente se encontra espalhada pelos ar-
quivos fontes e módulos.
Uma visão global dos tipos de features e o critério
para inclusão da mesma em uma instância de linha
de produto pode ser vista na Tabela 1.
Tipo de Feature Significado
Obrigatória A feature deve ser sempre incluída.
Opcional A feature é um complemento independente
que pode ser incluída ou não.
Alternativo A feature substitui uma outra feature quando
incluída.
Mutualmente Inclusiva
Para que uma feature seja incluída, outras
features específicas devem ser também
incluídas e vice-versa.
Mutualmente Exclusivas
Para que uma feature seja incluída, outras
features específicas não devem ser incluídas e
vice-versa.
Tabela 1: Tipos de features.
Variablidades podem ser principalmente classifi-
cadas como positivas e negativas. A Tabela 2 mostra
como as variablidades podem ser categorizadas.
Tipo de Variabilidade Significado
Positiva Quando adicionam funcionalidades.
Negativa Quando removem funcionalidade.
Opcional Quando um código é incluído.
Alternativo Quando um código é substituído.
Funcional Quando a funcionalidade muda.
Plataforma / Ambiente Quando a plataforma ou ambiente mudam.
Tabela 2: Tipos de features.
Um fator importante no gerenciamento de varia-
bilidade é o seu tempo de resolução. Ele indica em
qual momento uma ou mais variantes serão associa-
das a um determinado ponto de variação [VAN00].
O tempo de resolução de variabilidade pode ser
classificado como [ANA01]:
• Tempo de compilação;
• Tempo de ligação;
• Tempo de execução;
• Tempos de atualização.
O tempo de resolução de variabilidade restringe
a escolha de mecanismos de implementação de va-
riabilidade. Por exemplo, se uma variabilidade
é resolvida em tempo de execução, não se pode
implementá-la com um mecanismo que é definido
em tempo de compilação [FRI02].
Os principais parâmetros de variação são as inter-
faces e as implementações correspondentes. A inici-
alização de módulo também é considerada como um
possível parâmetro de variação.
Uma técnica de implementação claramente conta
com a escolha da linguagem de programação. A
decisão de qual linguagem usar é tipicamente resol-
vida sobre uma instânciação do produto. Portanto
a criação e descobrimento de uma aquitetura de re-
ferência para uma linha de produto como uma base
para instanciação de membros é uma das atividades
fundamentais dessa área.
3 Quadro para Comparação
de Abordagens de Progra-
mação
No artigo [MA01] (ver também [ANA01]), várias
abordagens para variabilidade de codificação são
apresentadas, onde o mesmo descreve as caracte-
rísticas de cada um delas, onde também, no mesmo
artigo, é possível encontrar uma matriz que faz com-
parações entre estas abordagens. São elas:
1. Agregação / Delegação: permite que obje-
tos deleguem funcionalidades;
2. Herança: adiciona funções básicas às super-
classes e funções especializadas às subclasses;
3. Parametrização: representa software reutili-
zável como uma biblioteca de componentes pa-
rametrizados;
4. Sobrecarga: esta técnica utiliza o mesmo
nome de um elemento para operar de manei-
ras diferentes;
5. Propriedades do Delphi: propriedades as-
sociadas a ações específicas como leitura ou
atualização de dados;
6. Carga Dinâmica de Classe: todas as classes
são carregadas na memória assim que estas são
necessárias;
7. Bibliotecas Estáticas: contém um conjunto
de funções exeternas que podem ser linkadas
em um aplicação depois da mesma ter sido
compilada;
2
8. Bibliotecas de Ligação Dinâminca: são
carregadas quando necessárias em uma aplica-
ção em tempo de execução;
9. Compilação Condicional: possibilita o con-
trole sobre os segmentos de código a serem in-
cluídos ou excluídos da compilação de um pro-
grama;
10. Frames: reuso hierárquico de entidades de
montagem de software;
11. Reflexão: é a habilidade de um programa ma-
nipular, na forma de dados, algo que representa
o estado de um programa durante sua própria
execução;
12. Programação Orientada a Aspecto: téc-
nica desenvolvida pela Xerox PARC (http:
//www.parc.com/);
13. Padrões de Projeto: muitos dos padrões de
projeto podem variar e fornecer soluções para
o gerenciamento de variabilidade.
3.1 Exemplos
Um dos exemplos das técnicas apresentadas é o
uso do Padrão de Projeto Builder. O Builder é um
exemplo de padrão de criação que pode ser usado
para carregar código variante em tempo de execu-
ção. Este padrão é adequado quando a lógica da
construção de objetos complexos deve ser separada
do usuário desses objetos e quando essa lógica deve
facilitar a construção de variações. A estrutura do
padrão pode ser vista na Figura 2.
Figura 2: Padrão Builder.
Product representa o objeto complexo a ser cons-
truído. O administrador coordena a construção do
produto pela chamada do objeto ConcreteBuilder.
Esse objeto implementa a mesma interface para cri-
ação de partes que é definida na classe abstrata Buil-
der. Porém, cada ConcreteBuilder cria partes dife-
rentes.
4 Avaliação
Qualquer decisão tomada durante o processo de
desenvolvimento do software pode comprometer a
sua qualidade final. Para se produzir software com
alta qualidade, é necessário investir em qualidade
em todos os pontos do processo.
Qualidade de software é um processo sistemático
que focaliza as etapas e artefatos produzidos com o
objetivo de garantir a conformidade de processos e
produtos, prevenindo e eliminando defeitos [Bar02].
Para avaliação, um critério de técnica de imple-
mentação deve ser definido e uma classificação deve
ser feita para expressar o grau de satisfação.
Escopo, flexibilidade, eficiência, compatilidade
binária são exemplos de qualidades fundamentais
que devem ser identificados para comparar e ava-
liar técnicas de implementação de linha de produto.
5 Conclusões
A gestão sistemática da variabilidade em nível de
código é um campo bastante imaturo. É chegada a
conclusão de que mais trabalhos nessa área devem
ser feitos.
Outra conclusão que se é chegada pelo trabalho
[MA01] é de que diferentes abordagens foram neces-
sárias para dar suporte a diferentes problemas. Isso
significa dizer que técnicas precisam ser mapeadas
para problemas conhecidos. Além disso, a combina-
ção de técnicas disponíveis é algo que não pode ser
evitado.
Referências
[ANA01] ANASTASOPOULOS, M. Implementing
product line variabilities, volume 26. ACM
SIGSOFT Software Engineering Notes,
May 2001.
[Bar02] Alexandre Bartié. Garantia de Qualidade
de Software. 2002.
[Cop95] James Coplien. Multi-Paradigm Design
for C++. 1995.
[FRI02] FRITSCH, C.; LEHN, A.; STROHM,
T. Evaluating variability implementation
mechanisms. In In: INTERNATIONAL
WORKSHOP ON PRODUCT LINE EN-
GINEERING, 2., 2002, Seattle. Procee-
dings, pages 59–64, 2002.
[Jun05] Edson A. Oliveira Junior. Um processo de
gerenciamento de variabilidade para linha
de produto de software. Departamento
de Informática, Universidade Estadual de
Maringá, 2005.
[KAN] KANG, K. Feature-oriented domain
analysis (foda) - feasibility study. Tech-
nical report, Technical Report CMU/SEI-
90-TR-21, SEI/CMU, Pittsburgh.
3
[MA01] Cristina G. Michalis A. Implementing pro-
duct line variabilities. Fraunhofer Insti-
tute for Experimental Software Enginee-
ring and Centre for Software Reliability
Department of Computing Science Uni-
versity of Newcastle, 2001.
[VAN00] VAN GURP, J.; BOSCH, J. Managing va-
riability in software product lines. In In:
THE WORKING IEEE/IFIP CONFE-
RENCE ON SOFTWARE ARCHITEC-
TURE, 2000, Amsterdam. Proceedings,
2000.
[VAN01] VAN GURP, J.; BOSCH, J. On the no-
tion of variability in software product li-
nes. In In: THE WORKING IEEE/IFIP
CONFERENCE ON SOFTWARE AR-
CHITECTURE, 2001, Amsterdam. Pro-
ceedings, 2001.
[WEI99] WEISS. D, CHI TAU, R. L. Software
product-line engineering: a family-based
software development process. 1999.
4

Más contenido relacionado

La actualidad más candente

Uml processo unificado
Uml   processo unificado Uml   processo unificado
Uml processo unificado Julia
 
Processo Unificado(RUP)
Processo Unificado(RUP)Processo Unificado(RUP)
Processo Unificado(RUP)elliando dias
 
Fermine como ferramenta de apoio à implantação do nível G do MPS.Br
Fermine como ferramenta de apoio à implantação do nível G do MPS.BrFermine como ferramenta de apoio à implantação do nível G do MPS.Br
Fermine como ferramenta de apoio à implantação do nível G do MPS.BrJuliana Cindra
 
Introdução à Engenharia de Requisitos e RUP
Introdução à Engenharia de Requisitos e RUPIntrodução à Engenharia de Requisitos e RUP
Introdução à Engenharia de Requisitos e RUPVagner Santana
 
Engenharia Software Rup
Engenharia Software   RupEngenharia Software   Rup
Engenharia Software RupFelipe
 
Dru - Desenvolvimento para Reuso
Dru - Desenvolvimento para ReusoDru - Desenvolvimento para Reuso
Dru - Desenvolvimento para ReusoJuliana Cindra
 
Introdução a Gerência de Configuração de Software
Introdução a Gerência de Configuração de SoftwareIntrodução a Gerência de Configuração de Software
Introdução a Gerência de Configuração de SoftwareCamilo Almendra
 
Implantacao.Processo.Fabrica.SL
Implantacao.Processo.Fabrica.SLImplantacao.Processo.Fabrica.SL
Implantacao.Processo.Fabrica.SLAnnkatlover
 
Definicao.Melhoria.Processos.Fabrica.SL
Definicao.Melhoria.Processos.Fabrica.SLDefinicao.Melhoria.Processos.Fabrica.SL
Definicao.Melhoria.Processos.Fabrica.SLAnnkatlover
 
Gerenciamento de Configuração
Gerenciamento de ConfiguraçãoGerenciamento de Configuração
Gerenciamento de ConfiguraçãoMarcelo Yamaguti
 
Ferramenta de apoio a gerência de configuração de software
Ferramenta de apoio a gerência de configuração de softwareFerramenta de apoio a gerência de configuração de software
Ferramenta de apoio a gerência de configuração de softwareelliando dias
 
Desenvolvimento baseado em Componentes e Arquitetura de Linhas de Produto - P...
Desenvolvimento baseado em Componentes e Arquitetura de Linhas de Produto - P...Desenvolvimento baseado em Componentes e Arquitetura de Linhas de Produto - P...
Desenvolvimento baseado em Componentes e Arquitetura de Linhas de Produto - P...sbcars
 
Metodologia de desenvolvimento de sistemas
Metodologia  de desenvolvimento de sistemasMetodologia  de desenvolvimento de sistemas
Metodologia de desenvolvimento de sistemasPriscila Stuani
 

La actualidad más candente (20)

Apresentação RUP
Apresentação RUPApresentação RUP
Apresentação RUP
 
Uml processo unificado
Uml   processo unificado Uml   processo unificado
Uml processo unificado
 
Processo Unificado(RUP)
Processo Unificado(RUP)Processo Unificado(RUP)
Processo Unificado(RUP)
 
MPS.BR
MPS.BRMPS.BR
MPS.BR
 
Fermine como ferramenta de apoio à implantação do nível G do MPS.Br
Fermine como ferramenta de apoio à implantação do nível G do MPS.BrFermine como ferramenta de apoio à implantação do nível G do MPS.Br
Fermine como ferramenta de apoio à implantação do nível G do MPS.Br
 
Introdução à Engenharia de Requisitos e RUP
Introdução à Engenharia de Requisitos e RUPIntrodução à Engenharia de Requisitos e RUP
Introdução à Engenharia de Requisitos e RUP
 
Engenharia Software Rup
Engenharia Software   RupEngenharia Software   Rup
Engenharia Software Rup
 
IBM Rational Unified Process
IBM Rational Unified ProcessIBM Rational Unified Process
IBM Rational Unified Process
 
Dru - Desenvolvimento para Reuso
Dru - Desenvolvimento para ReusoDru - Desenvolvimento para Reuso
Dru - Desenvolvimento para Reuso
 
Introdução a Gerência de Configuração de Software
Introdução a Gerência de Configuração de SoftwareIntrodução a Gerência de Configuração de Software
Introdução a Gerência de Configuração de Software
 
Aula2 processos sw
Aula2 processos swAula2 processos sw
Aula2 processos sw
 
Guday2015 - GUTS-RS
Guday2015 - GUTS-RSGuday2015 - GUTS-RS
Guday2015 - GUTS-RS
 
Implantacao.Processo.Fabrica.SL
Implantacao.Processo.Fabrica.SLImplantacao.Processo.Fabrica.SL
Implantacao.Processo.Fabrica.SL
 
Definicao.Melhoria.Processos.Fabrica.SL
Definicao.Melhoria.Processos.Fabrica.SLDefinicao.Melhoria.Processos.Fabrica.SL
Definicao.Melhoria.Processos.Fabrica.SL
 
Gerenciamento de Configuração
Gerenciamento de ConfiguraçãoGerenciamento de Configuração
Gerenciamento de Configuração
 
Ferramenta de apoio a gerência de configuração de software
Ferramenta de apoio a gerência de configuração de softwareFerramenta de apoio a gerência de configuração de software
Ferramenta de apoio a gerência de configuração de software
 
Desenvolvimento baseado em Componentes e Arquitetura de Linhas de Produto - P...
Desenvolvimento baseado em Componentes e Arquitetura de Linhas de Produto - P...Desenvolvimento baseado em Componentes e Arquitetura de Linhas de Produto - P...
Desenvolvimento baseado em Componentes e Arquitetura de Linhas de Produto - P...
 
UM ESTUDO SOBRE SOA
UM ESTUDO SOBRE SOAUM ESTUDO SOBRE SOA
UM ESTUDO SOBRE SOA
 
Metodologia de desenvolvimento de sistemas
Metodologia  de desenvolvimento de sistemasMetodologia  de desenvolvimento de sistemas
Metodologia de desenvolvimento de sistemas
 
Documento de requisitos
Documento de requisitosDocumento de requisitos
Documento de requisitos
 

Destacado

Sistemas de gestion de prevencion de riesgos laborales segun ohsas 18001
Sistemas de gestion de prevencion de riesgos laborales segun ohsas 18001Sistemas de gestion de prevencion de riesgos laborales segun ohsas 18001
Sistemas de gestion de prevencion de riesgos laborales segun ohsas 18001Fernando Emmanuel Miranda Paz
 
Tipos de marketing
Tipos de marketingTipos de marketing
Tipos de marketingyinat2
 
Copa sem escola - Série de reportagens sobre impactos da Copa na Educação
Copa sem escola - Série de reportagens sobre impactos da Copa na EducaçãoCopa sem escola - Série de reportagens sobre impactos da Copa na Educação
Copa sem escola - Série de reportagens sobre impactos da Copa na EducaçãoBruno Moreno
 
Código orgánico monetario y financiero
Código orgánico monetario y financieroCódigo orgánico monetario y financiero
Código orgánico monetario y financieroOjoAsambleaEc
 
Poweraulascuento
PoweraulascuentoPoweraulascuento
Poweraulascuento1Marina5
 
Disminución del desempleo en Colombia en abril de 2014
Disminución del desempleo en Colombia en abril de 2014Disminución del desempleo en Colombia en abril de 2014
Disminución del desempleo en Colombia en abril de 2014Hans Lamprea
 
Manual de antivirus
Manual de antivirusManual de antivirus
Manual de antivirusnavi96
 
My Report - Personas
My Report - PersonasMy Report - Personas
My Report - PersonasMichel Alves
 
Comic completo castellano
Comic completo castellanoComic completo castellano
Comic completo castellanoYaizayla .
 
Trabalho da bia de artes
Trabalho da bia de artesTrabalho da bia de artes
Trabalho da bia de arteslobotutb
 
PRÁCTICA 1: LA EDUCACIÓN INFANTIL EN LA PERSPECTIVA EUROPEA
PRÁCTICA 1: LA EDUCACIÓN INFANTIL EN LA PERSPECTIVA EUROPEAPRÁCTICA 1: LA EDUCACIÓN INFANTIL EN LA PERSPECTIVA EUROPEA
PRÁCTICA 1: LA EDUCACIÓN INFANTIL EN LA PERSPECTIVA EUROPEAMarieta1308
 
E portafolio melisa pabon
E portafolio melisa pabonE portafolio melisa pabon
E portafolio melisa pabonMelisa Pabon
 
Encuesta de Opinión Industrial Conjunta ANDI
Encuesta de Opinión Industrial Conjunta ANDIEncuesta de Opinión Industrial Conjunta ANDI
Encuesta de Opinión Industrial Conjunta ANDIHans Lamprea
 
Curso historia de mexico
Curso historia de mexicoCurso historia de mexico
Curso historia de mexicoabraham273
 
Presentacionmodulo 3
Presentacionmodulo 3Presentacionmodulo 3
Presentacionmodulo 3jsarrion
 

Destacado (20)

Cultura estética
Cultura estéticaCultura estética
Cultura estética
 
Sistemas de gestion de prevencion de riesgos laborales segun ohsas 18001
Sistemas de gestion de prevencion de riesgos laborales segun ohsas 18001Sistemas de gestion de prevencion de riesgos laborales segun ohsas 18001
Sistemas de gestion de prevencion de riesgos laborales segun ohsas 18001
 
Tipos de marketing
Tipos de marketingTipos de marketing
Tipos de marketing
 
Herramientas web
Herramientas webHerramientas web
Herramientas web
 
Copa sem escola - Série de reportagens sobre impactos da Copa na Educação
Copa sem escola - Série de reportagens sobre impactos da Copa na EducaçãoCopa sem escola - Série de reportagens sobre impactos da Copa na Educação
Copa sem escola - Série de reportagens sobre impactos da Copa na Educação
 
Código orgánico monetario y financiero
Código orgánico monetario y financieroCódigo orgánico monetario y financiero
Código orgánico monetario y financiero
 
Poweraulascuento
PoweraulascuentoPoweraulascuento
Poweraulascuento
 
Disminución del desempleo en Colombia en abril de 2014
Disminución del desempleo en Colombia en abril de 2014Disminución del desempleo en Colombia en abril de 2014
Disminución del desempleo en Colombia en abril de 2014
 
Manual de antivirus
Manual de antivirusManual de antivirus
Manual de antivirus
 
090602 paraserbuenlector
090602 paraserbuenlector090602 paraserbuenlector
090602 paraserbuenlector
 
My Report - Personas
My Report - PersonasMy Report - Personas
My Report - Personas
 
Comic completo castellano
Comic completo castellanoComic completo castellano
Comic completo castellano
 
Trabalho da bia de artes
Trabalho da bia de artesTrabalho da bia de artes
Trabalho da bia de artes
 
PRÁCTICA 1: LA EDUCACIÓN INFANTIL EN LA PERSPECTIVA EUROPEA
PRÁCTICA 1: LA EDUCACIÓN INFANTIL EN LA PERSPECTIVA EUROPEAPRÁCTICA 1: LA EDUCACIÓN INFANTIL EN LA PERSPECTIVA EUROPEA
PRÁCTICA 1: LA EDUCACIÓN INFANTIL EN LA PERSPECTIVA EUROPEA
 
Pràctica3
Pràctica3Pràctica3
Pràctica3
 
E portafolio melisa pabon
E portafolio melisa pabonE portafolio melisa pabon
E portafolio melisa pabon
 
Encuesta de Opinión Industrial Conjunta ANDI
Encuesta de Opinión Industrial Conjunta ANDIEncuesta de Opinión Industrial Conjunta ANDI
Encuesta de Opinión Industrial Conjunta ANDI
 
Diapositivas
Diapositivas Diapositivas
Diapositivas
 
Curso historia de mexico
Curso historia de mexicoCurso historia de mexico
Curso historia de mexico
 
Presentacionmodulo 3
Presentacionmodulo 3Presentacionmodulo 3
Presentacionmodulo 3
 

Similar a Implementing Product Line Variabilities

Reutilização
ReutilizaçãoReutilização
Reutilizaçãoemjorge
 
(CONSTRUÇÃO2) Engenharia de Software_ADRIANA.pptx
(CONSTRUÇÃO2) Engenharia de Software_ADRIANA.pptx(CONSTRUÇÃO2) Engenharia de Software_ADRIANA.pptx
(CONSTRUÇÃO2) Engenharia de Software_ADRIANA.pptxDVDGlash
 
Engenharia De Software
Engenharia De SoftwareEngenharia De Software
Engenharia De SoftwareCursoSENAC
 
Saam & arquiteturas_iu_halan
Saam & arquiteturas_iu_halanSaam & arquiteturas_iu_halan
Saam & arquiteturas_iu_halanHalan Ridolphi
 
T1 g13.modelo cascata
T1 g13.modelo cascataT1 g13.modelo cascata
T1 g13.modelo cascatawilsonguns
 
Engenharia de-software-1217199594686494-9
Engenharia de-software-1217199594686494-9Engenharia de-software-1217199594686494-9
Engenharia de-software-1217199594686494-9wilsonguns
 
BDD (Behavior-Driven Development) - Setembro/2015
BDD (Behavior-Driven Development) - Setembro/2015BDD (Behavior-Driven Development) - Setembro/2015
BDD (Behavior-Driven Development) - Setembro/2015Renato Groff
 
BDD (Behavior-Driven Development)
BDD (Behavior-Driven Development)BDD (Behavior-Driven Development)
BDD (Behavior-Driven Development)Renato Groff
 
Este trabalho trata
Este trabalho trataEste trabalho trata
Este trabalho trataRoni Reis
 
Gerenciamento da Qualidade de Software 4.pptx
Gerenciamento da Qualidade de Software 4.pptxGerenciamento da Qualidade de Software 4.pptx
Gerenciamento da Qualidade de Software 4.pptxRoberto Nunes
 
TDD (Test-Driven Development)
TDD (Test-Driven Development)TDD (Test-Driven Development)
TDD (Test-Driven Development)Renato Groff
 
Resumo capítulo 1 livro Engenharia de Software Moderna
Resumo capítulo 1 livro Engenharia de Software ModernaResumo capítulo 1 livro Engenharia de Software Moderna
Resumo capítulo 1 livro Engenharia de Software ModernaLucasBastos305659
 

Similar a Implementing Product Line Variabilities (20)

Reutilização
ReutilizaçãoReutilização
Reutilização
 
Aula 05
Aula 05Aula 05
Aula 05
 
Subm_SamuelPereira_FINAL
Subm_SamuelPereira_FINALSubm_SamuelPereira_FINAL
Subm_SamuelPereira_FINAL
 
(CONSTRUÇÃO2) Engenharia de Software_ADRIANA.pptx
(CONSTRUÇÃO2) Engenharia de Software_ADRIANA.pptx(CONSTRUÇÃO2) Engenharia de Software_ADRIANA.pptx
(CONSTRUÇÃO2) Engenharia de Software_ADRIANA.pptx
 
Engenharia De Software
Engenharia De SoftwareEngenharia De Software
Engenharia De Software
 
Saam & arquiteturas_iu_halan
Saam & arquiteturas_iu_halanSaam & arquiteturas_iu_halan
Saam & arquiteturas_iu_halan
 
T1 g13.modelo cascata
T1 g13.modelo cascataT1 g13.modelo cascata
T1 g13.modelo cascata
 
Engenharia de-software-1217199594686494-9
Engenharia de-software-1217199594686494-9Engenharia de-software-1217199594686494-9
Engenharia de-software-1217199594686494-9
 
FDD
FDDFDD
FDD
 
BDD (Behavior-Driven Development) - Setembro/2015
BDD (Behavior-Driven Development) - Setembro/2015BDD (Behavior-Driven Development) - Setembro/2015
BDD (Behavior-Driven Development) - Setembro/2015
 
BDD (Behavior-Driven Development)
BDD (Behavior-Driven Development)BDD (Behavior-Driven Development)
BDD (Behavior-Driven Development)
 
Este trabalho trata
Este trabalho trataEste trabalho trata
Este trabalho trata
 
Reuso desw
Reuso deswReuso desw
Reuso desw
 
Oficina cake php
Oficina cake phpOficina cake php
Oficina cake php
 
Modelos de processos de software
Modelos de processos de softwareModelos de processos de software
Modelos de processos de software
 
Gerenciamento da Qualidade de Software 4.pptx
Gerenciamento da Qualidade de Software 4.pptxGerenciamento da Qualidade de Software 4.pptx
Gerenciamento da Qualidade de Software 4.pptx
 
Modelos de processos de software
Modelos de processos de softwareModelos de processos de software
Modelos de processos de software
 
38484931 questionario-es
38484931 questionario-es38484931 questionario-es
38484931 questionario-es
 
TDD (Test-Driven Development)
TDD (Test-Driven Development)TDD (Test-Driven Development)
TDD (Test-Driven Development)
 
Resumo capítulo 1 livro Engenharia de Software Moderna
Resumo capítulo 1 livro Engenharia de Software ModernaResumo capítulo 1 livro Engenharia de Software Moderna
Resumo capítulo 1 livro Engenharia de Software Moderna
 

Más de Michel Alves

Texture Synthesis: An Approach Based on GPU Use
Texture Synthesis: An Approach Based on GPU UseTexture Synthesis: An Approach Based on GPU Use
Texture Synthesis: An Approach Based on GPU UseMichel Alves
 
Intelligent Transfer of Thematic Harmonic Color Palettes
Intelligent Transfer of Thematic Harmonic Color PalettesIntelligent Transfer of Thematic Harmonic Color Palettes
Intelligent Transfer of Thematic Harmonic Color PalettesMichel Alves
 
A Framework for Harmonic Color Measures
A Framework for Harmonic Color MeasuresA Framework for Harmonic Color Measures
A Framework for Harmonic Color MeasuresMichel Alves
 
Effectiveness of Image Quality Assessment Indexes
Effectiveness of Image Quality Assessment IndexesEffectiveness of Image Quality Assessment Indexes
Effectiveness of Image Quality Assessment IndexesMichel Alves
 
Introduction to Kernel Functions
Introduction to Kernel FunctionsIntroduction to Kernel Functions
Introduction to Kernel FunctionsMichel Alves
 
About Perception and Hue Histograms in HSV Space
About Perception and Hue Histograms in HSV SpaceAbout Perception and Hue Histograms in HSV Space
About Perception and Hue Histograms in HSV SpaceMichel Alves
 
Color Harmonization - Results
Color Harmonization - ResultsColor Harmonization - Results
Color Harmonization - ResultsMichel Alves
 
Wave Simulation Using Perlin Noise
Wave Simulation Using Perlin NoiseWave Simulation Using Perlin Noise
Wave Simulation Using Perlin NoiseMichel Alves
 
Similarity Maps Using SSIM Index
Similarity Maps Using SSIM IndexSimilarity Maps Using SSIM Index
Similarity Maps Using SSIM IndexMichel Alves
 
Qualifying Exam - Image-Based Reconstruction With Color Harmonization
Qualifying Exam - Image-Based Reconstruction With Color HarmonizationQualifying Exam - Image-Based Reconstruction With Color Harmonization
Qualifying Exam - Image-Based Reconstruction With Color HarmonizationMichel Alves
 
TMS - Schedule of Presentations and Reports
TMS - Schedule of Presentations and ReportsTMS - Schedule of Presentations and Reports
TMS - Schedule of Presentations and ReportsMichel Alves
 
Month Presentations Schedule - March/2015 - LCG/UFRJ
Month Presentations Schedule - March/2015 - LCG/UFRJMonth Presentations Schedule - March/2015 - LCG/UFRJ
Month Presentations Schedule - March/2015 - LCG/UFRJMichel Alves
 
Color Palettes in R
Color Palettes in RColor Palettes in R
Color Palettes in RMichel Alves
 
Hue Wheel Prototype
Hue Wheel PrototypeHue Wheel Prototype
Hue Wheel PrototypeMichel Alves
 
Triangle Mesh Plot
Triangle Mesh PlotTriangle Mesh Plot
Triangle Mesh PlotMichel Alves
 
Capacity-Constrained Point Distributions :: Video Slides
Capacity-Constrained Point Distributions :: Video SlidesCapacity-Constrained Point Distributions :: Video Slides
Capacity-Constrained Point Distributions :: Video SlidesMichel Alves
 
Capacity-Constrained Point Distributions :: Density Function Catalog
Capacity-Constrained Point Distributions :: Density Function CatalogCapacity-Constrained Point Distributions :: Density Function Catalog
Capacity-Constrained Point Distributions :: Density Function CatalogMichel Alves
 

Más de Michel Alves (20)

Texture Synthesis: An Approach Based on GPU Use
Texture Synthesis: An Approach Based on GPU UseTexture Synthesis: An Approach Based on GPU Use
Texture Synthesis: An Approach Based on GPU Use
 
Intelligent Transfer of Thematic Harmonic Color Palettes
Intelligent Transfer of Thematic Harmonic Color PalettesIntelligent Transfer of Thematic Harmonic Color Palettes
Intelligent Transfer of Thematic Harmonic Color Palettes
 
A Framework for Harmonic Color Measures
A Framework for Harmonic Color MeasuresA Framework for Harmonic Color Measures
A Framework for Harmonic Color Measures
 
Effectiveness of Image Quality Assessment Indexes
Effectiveness of Image Quality Assessment IndexesEffectiveness of Image Quality Assessment Indexes
Effectiveness of Image Quality Assessment Indexes
 
Introduction to Kernel Functions
Introduction to Kernel FunctionsIntroduction to Kernel Functions
Introduction to Kernel Functions
 
About Perception and Hue Histograms in HSV Space
About Perception and Hue Histograms in HSV SpaceAbout Perception and Hue Histograms in HSV Space
About Perception and Hue Histograms in HSV Space
 
Color Harmonization - Results
Color Harmonization - ResultsColor Harmonization - Results
Color Harmonization - Results
 
Wave Simulation Using Perlin Noise
Wave Simulation Using Perlin NoiseWave Simulation Using Perlin Noise
Wave Simulation Using Perlin Noise
 
Similarity Maps Using SSIM Index
Similarity Maps Using SSIM IndexSimilarity Maps Using SSIM Index
Similarity Maps Using SSIM Index
 
Qualifying Exam - Image-Based Reconstruction With Color Harmonization
Qualifying Exam - Image-Based Reconstruction With Color HarmonizationQualifying Exam - Image-Based Reconstruction With Color Harmonization
Qualifying Exam - Image-Based Reconstruction With Color Harmonization
 
TMS - Schedule of Presentations and Reports
TMS - Schedule of Presentations and ReportsTMS - Schedule of Presentations and Reports
TMS - Schedule of Presentations and Reports
 
Month Presentations Schedule - March/2015 - LCG/UFRJ
Month Presentations Schedule - March/2015 - LCG/UFRJMonth Presentations Schedule - March/2015 - LCG/UFRJ
Month Presentations Schedule - March/2015 - LCG/UFRJ
 
Color Palettes in R
Color Palettes in RColor Palettes in R
Color Palettes in R
 
Sigmoid Curve Erf
Sigmoid Curve ErfSigmoid Curve Erf
Sigmoid Curve Erf
 
Hue Wheel Prototype
Hue Wheel PrototypeHue Wheel Prototype
Hue Wheel Prototype
 
Cosine Curve
Cosine CurveCosine Curve
Cosine Curve
 
Triangle Mesh Plot
Triangle Mesh PlotTriangle Mesh Plot
Triangle Mesh Plot
 
Triangle Plot
Triangle PlotTriangle Plot
Triangle Plot
 
Capacity-Constrained Point Distributions :: Video Slides
Capacity-Constrained Point Distributions :: Video SlidesCapacity-Constrained Point Distributions :: Video Slides
Capacity-Constrained Point Distributions :: Video Slides
 
Capacity-Constrained Point Distributions :: Density Function Catalog
Capacity-Constrained Point Distributions :: Density Function CatalogCapacity-Constrained Point Distributions :: Density Function Catalog
Capacity-Constrained Point Distributions :: Density Function Catalog
 

Último

Educação Financeira - Cartão de crédito665933.pptx
Educação Financeira - Cartão de crédito665933.pptxEducação Financeira - Cartão de crédito665933.pptx
Educação Financeira - Cartão de crédito665933.pptxMarcosLemes28
 
M0 Atendimento – Definição, Importância .pptx
M0 Atendimento – Definição, Importância .pptxM0 Atendimento – Definição, Importância .pptx
M0 Atendimento – Definição, Importância .pptxJustinoTeixeira1
 
O desenvolvimento é um conceito mais amplo, pode ter um contexto biológico ou...
O desenvolvimento é um conceito mais amplo, pode ter um contexto biológico ou...O desenvolvimento é um conceito mais amplo, pode ter um contexto biológico ou...
O desenvolvimento é um conceito mais amplo, pode ter um contexto biológico ou...azulassessoria9
 
O estudo do controle motor nada mais é do que o estudo da natureza do movimen...
O estudo do controle motor nada mais é do que o estudo da natureza do movimen...O estudo do controle motor nada mais é do que o estudo da natureza do movimen...
O estudo do controle motor nada mais é do que o estudo da natureza do movimen...azulassessoria9
 
ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024azulassessoria9
 
apostila filosofia 1 ano 1s (1).pdf 1 ANO DO ENSINO MEDIO . CONCEITOSE CARAC...
apostila filosofia 1 ano  1s (1).pdf 1 ANO DO ENSINO MEDIO . CONCEITOSE CARAC...apostila filosofia 1 ano  1s (1).pdf 1 ANO DO ENSINO MEDIO . CONCEITOSE CARAC...
apostila filosofia 1 ano 1s (1).pdf 1 ANO DO ENSINO MEDIO . CONCEITOSE CARAC...SileideDaSilvaNascim
 
Questões de Língua Portuguesa - gincana da LP
Questões de Língua Portuguesa - gincana da LPQuestões de Língua Portuguesa - gincana da LP
Questões de Língua Portuguesa - gincana da LPEli Gonçalves
 
Considerando as pesquisas de Gallahue, Ozmun e Goodway (2013) os bebês até an...
Considerando as pesquisas de Gallahue, Ozmun e Goodway (2013) os bebês até an...Considerando as pesquisas de Gallahue, Ozmun e Goodway (2013) os bebês até an...
Considerando as pesquisas de Gallahue, Ozmun e Goodway (2013) os bebês até an...azulassessoria9
 
ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024azulassessoria9
 
República Velha (República da Espada e Oligárquica)-Sala de Aula.pdf
República Velha (República da Espada e Oligárquica)-Sala de Aula.pdfRepública Velha (República da Espada e Oligárquica)-Sala de Aula.pdf
República Velha (República da Espada e Oligárquica)-Sala de Aula.pdfLidianeLill2
 
Aprender as diferentes formas de classificar as habilidades motoras é de extr...
Aprender as diferentes formas de classificar as habilidades motoras é de extr...Aprender as diferentes formas de classificar as habilidades motoras é de extr...
Aprender as diferentes formas de classificar as habilidades motoras é de extr...azulassessoria9
 
Acessibilidade, inclusão e valorização da diversidade
Acessibilidade, inclusão e valorização da diversidadeAcessibilidade, inclusão e valorização da diversidade
Acessibilidade, inclusão e valorização da diversidadeLEONIDES PEREIRA DE SOUZA
 
Aula 67 e 68 Robótica 8º ano Experimentando variações da matriz de Led
Aula 67 e 68 Robótica 8º ano Experimentando variações da matriz de LedAula 67 e 68 Robótica 8º ano Experimentando variações da matriz de Led
Aula 67 e 68 Robótica 8º ano Experimentando variações da matriz de LedJaquelineBertagliaCe
 
A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...
A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...
A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...PatriciaCaetano18
 
Apresentação | Dia da Europa 2024 - Celebremos a União Europeia!
Apresentação | Dia da Europa 2024 - Celebremos a União Europeia!Apresentação | Dia da Europa 2024 - Celebremos a União Europeia!
Apresentação | Dia da Europa 2024 - Celebremos a União Europeia!Centro Jacques Delors
 
Sopa de letras | Dia da Europa 2024 (nível 2)
Sopa de letras | Dia da Europa 2024 (nível 2)Sopa de letras | Dia da Europa 2024 (nível 2)
Sopa de letras | Dia da Europa 2024 (nível 2)Centro Jacques Delors
 
Sistema articular aula 4 (1).pdf articulações e junturas
Sistema articular aula 4 (1).pdf articulações e junturasSistema articular aula 4 (1).pdf articulações e junturas
Sistema articular aula 4 (1).pdf articulações e junturasrfmbrandao
 
Slides Lição 6, Betel, Ordenança para uma vida de obediência e submissão.pptx
Slides Lição 6, Betel, Ordenança para uma vida de obediência e submissão.pptxSlides Lição 6, Betel, Ordenança para uma vida de obediência e submissão.pptx
Slides Lição 6, Betel, Ordenança para uma vida de obediência e submissão.pptxLuizHenriquedeAlmeid6
 
Slides Lição 06, Central Gospel, O Anticristo, 1Tr24.pptx
Slides Lição 06, Central Gospel, O Anticristo, 1Tr24.pptxSlides Lição 06, Central Gospel, O Anticristo, 1Tr24.pptx
Slides Lição 06, Central Gospel, O Anticristo, 1Tr24.pptxLuizHenriquedeAlmeid6
 

Último (20)

Educação Financeira - Cartão de crédito665933.pptx
Educação Financeira - Cartão de crédito665933.pptxEducação Financeira - Cartão de crédito665933.pptx
Educação Financeira - Cartão de crédito665933.pptx
 
M0 Atendimento – Definição, Importância .pptx
M0 Atendimento – Definição, Importância .pptxM0 Atendimento – Definição, Importância .pptx
M0 Atendimento – Definição, Importância .pptx
 
O desenvolvimento é um conceito mais amplo, pode ter um contexto biológico ou...
O desenvolvimento é um conceito mais amplo, pode ter um contexto biológico ou...O desenvolvimento é um conceito mais amplo, pode ter um contexto biológico ou...
O desenvolvimento é um conceito mais amplo, pode ter um contexto biológico ou...
 
O estudo do controle motor nada mais é do que o estudo da natureza do movimen...
O estudo do controle motor nada mais é do que o estudo da natureza do movimen...O estudo do controle motor nada mais é do que o estudo da natureza do movimen...
O estudo do controle motor nada mais é do que o estudo da natureza do movimen...
 
ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
 
apostila filosofia 1 ano 1s (1).pdf 1 ANO DO ENSINO MEDIO . CONCEITOSE CARAC...
apostila filosofia 1 ano  1s (1).pdf 1 ANO DO ENSINO MEDIO . CONCEITOSE CARAC...apostila filosofia 1 ano  1s (1).pdf 1 ANO DO ENSINO MEDIO . CONCEITOSE CARAC...
apostila filosofia 1 ano 1s (1).pdf 1 ANO DO ENSINO MEDIO . CONCEITOSE CARAC...
 
Questões de Língua Portuguesa - gincana da LP
Questões de Língua Portuguesa - gincana da LPQuestões de Língua Portuguesa - gincana da LP
Questões de Língua Portuguesa - gincana da LP
 
Considerando as pesquisas de Gallahue, Ozmun e Goodway (2013) os bebês até an...
Considerando as pesquisas de Gallahue, Ozmun e Goodway (2013) os bebês até an...Considerando as pesquisas de Gallahue, Ozmun e Goodway (2013) os bebês até an...
Considerando as pesquisas de Gallahue, Ozmun e Goodway (2013) os bebês até an...
 
ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
 
República Velha (República da Espada e Oligárquica)-Sala de Aula.pdf
República Velha (República da Espada e Oligárquica)-Sala de Aula.pdfRepública Velha (República da Espada e Oligárquica)-Sala de Aula.pdf
República Velha (República da Espada e Oligárquica)-Sala de Aula.pdf
 
Aprender as diferentes formas de classificar as habilidades motoras é de extr...
Aprender as diferentes formas de classificar as habilidades motoras é de extr...Aprender as diferentes formas de classificar as habilidades motoras é de extr...
Aprender as diferentes formas de classificar as habilidades motoras é de extr...
 
Novena de Pentecostes com textos de São João Eudes
Novena de Pentecostes com textos de São João EudesNovena de Pentecostes com textos de São João Eudes
Novena de Pentecostes com textos de São João Eudes
 
Acessibilidade, inclusão e valorização da diversidade
Acessibilidade, inclusão e valorização da diversidadeAcessibilidade, inclusão e valorização da diversidade
Acessibilidade, inclusão e valorização da diversidade
 
Aula 67 e 68 Robótica 8º ano Experimentando variações da matriz de Led
Aula 67 e 68 Robótica 8º ano Experimentando variações da matriz de LedAula 67 e 68 Robótica 8º ano Experimentando variações da matriz de Led
Aula 67 e 68 Robótica 8º ano Experimentando variações da matriz de Led
 
A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...
A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...
A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...
 
Apresentação | Dia da Europa 2024 - Celebremos a União Europeia!
Apresentação | Dia da Europa 2024 - Celebremos a União Europeia!Apresentação | Dia da Europa 2024 - Celebremos a União Europeia!
Apresentação | Dia da Europa 2024 - Celebremos a União Europeia!
 
Sopa de letras | Dia da Europa 2024 (nível 2)
Sopa de letras | Dia da Europa 2024 (nível 2)Sopa de letras | Dia da Europa 2024 (nível 2)
Sopa de letras | Dia da Europa 2024 (nível 2)
 
Sistema articular aula 4 (1).pdf articulações e junturas
Sistema articular aula 4 (1).pdf articulações e junturasSistema articular aula 4 (1).pdf articulações e junturas
Sistema articular aula 4 (1).pdf articulações e junturas
 
Slides Lição 6, Betel, Ordenança para uma vida de obediência e submissão.pptx
Slides Lição 6, Betel, Ordenança para uma vida de obediência e submissão.pptxSlides Lição 6, Betel, Ordenança para uma vida de obediência e submissão.pptx
Slides Lição 6, Betel, Ordenança para uma vida de obediência e submissão.pptx
 
Slides Lição 06, Central Gospel, O Anticristo, 1Tr24.pptx
Slides Lição 06, Central Gospel, O Anticristo, 1Tr24.pptxSlides Lição 06, Central Gospel, O Anticristo, 1Tr24.pptx
Slides Lição 06, Central Gospel, O Anticristo, 1Tr24.pptx
 

Implementing Product Line Variabilities

  • 1. Implementing Product Line Variabilities Ailton Felix de L. Filho :: Michel Alves dos Santos ∗ Outubro de 2012 Conteúdo 1 Introdução 1 2 Requisitos de Apóio à Implementação 2 3 Quadro para Comparação de Abordagens de Programação 2 3.1 Exemplos . . . . . . . . . . . . . . . . . . . 3 4 Avaliação 3 5 Conclusões 3 Referências 4 1 Introdução A abordagem de linha de produto de software tem como objetivo principal promover a geração de pro- dutos específicos com base na reutilização de uma infra-estrutura central. Uma linha de produto representa um conjunto de sistemas que compartilham características comuns e gerenciáveis que satisfazem as necessidades de um segmento particular do mercado ou de uma missão. Esse conjunto de sistemas é também chamado de família de produtos. Os membros da família são produtos específicos desenvolvidos de maneira siste- mática a partir de um conjunto comum de artefatos da linha de produto. O SEI (Software Engineering Institute), através da iniciativa PLP (Product Line Practice), estabe- leceu as atividades essenciais de uma abordagem de linha de produto. Essas atividades, como podem ser vistas na Figura 1, são o Desenvolvimento do Núcleo de Artefatos, também conhecida como Engenharia de Domínio, o Desenvolvimento do Produto, tam- bém conhecida como Engenharia de Aplicação, e o Gerenciamento da Linha de Produto [Jun05]. Uma infra-estrutura de linha de produto de soft- ware cobre vários sistemas, isto devido ao número de membros que uma linha de produto possui. Para mostrar uma linha de produto, os assets (re- cursos) de um software têm de cobrir todos os ele- ∗Bacharelandos em Ciência da Computação, Univer- sidade Federal do Estado de Alagoas (UFAL). E-mail: {afdlf2, michel.mas}@gmail.com. Disciplina: Linha de Produto de Software. Docente Responsável: Arturo. Figura 1: Atividades essenciais de linha de pro- duto de software. Os três círculos indicam que as atividades de uma linha de produto são alta- mente interligadas e iterativas. mentos da família do produto de onde o mesmo foi construído e suas correspondentes regras de compo- sição. O artigo aborda a questão de manipulação de va- riabilidade de linha de produto (ver [WEI99]) em nível de código. Para esse fim várias abordagens de implementação são examinadas com respeito ao uso das mesmas em um contexto de linha de software. A proposta do trabalho não é transmitir mais pre- ocupação em tecnologias, mas somente informar so- bre as possibilidades de seu uso para manipular va- riabilidades de código em linha de produto. É dei- xado claro também que o conjunto de abordagens apresentado no trabalho não é completo. Em [Cop95] um método de design que leva vanta- gem do popular apóio a linguagem de programação para múltiplos paradigmas é apresentado. O livro mantém um foco nos problemas relacionados a com- preensão de comunalidades e variabilidades, o que o torna de interesse para a engenharia de linha de pro- duto. 1
  • 2. 2 Requisitos de Apóio à Im- plementação As variabilidades podem ser inicialmente identifi- cadas por meio do conceito de feature [VAN01]. Este conceito teve origem na engenharia de domínio. Fe- ature pode ser definida como uma característica de um sistema que é relevante e visível para o usuário final [KAN]. Toda variabilidade encontrada em um contexto de linha de software pode ser conectada com uma feature correspondente. A relação entre feature e variabilidade é de 1 : N, pois a implementação da mesma geralmente se encontra espalhada pelos ar- quivos fontes e módulos. Uma visão global dos tipos de features e o critério para inclusão da mesma em uma instância de linha de produto pode ser vista na Tabela 1. Tipo de Feature Significado Obrigatória A feature deve ser sempre incluída. Opcional A feature é um complemento independente que pode ser incluída ou não. Alternativo A feature substitui uma outra feature quando incluída. Mutualmente Inclusiva Para que uma feature seja incluída, outras features específicas devem ser também incluídas e vice-versa. Mutualmente Exclusivas Para que uma feature seja incluída, outras features específicas não devem ser incluídas e vice-versa. Tabela 1: Tipos de features. Variablidades podem ser principalmente classifi- cadas como positivas e negativas. A Tabela 2 mostra como as variablidades podem ser categorizadas. Tipo de Variabilidade Significado Positiva Quando adicionam funcionalidades. Negativa Quando removem funcionalidade. Opcional Quando um código é incluído. Alternativo Quando um código é substituído. Funcional Quando a funcionalidade muda. Plataforma / Ambiente Quando a plataforma ou ambiente mudam. Tabela 2: Tipos de features. Um fator importante no gerenciamento de varia- bilidade é o seu tempo de resolução. Ele indica em qual momento uma ou mais variantes serão associa- das a um determinado ponto de variação [VAN00]. O tempo de resolução de variabilidade pode ser classificado como [ANA01]: • Tempo de compilação; • Tempo de ligação; • Tempo de execução; • Tempos de atualização. O tempo de resolução de variabilidade restringe a escolha de mecanismos de implementação de va- riabilidade. Por exemplo, se uma variabilidade é resolvida em tempo de execução, não se pode implementá-la com um mecanismo que é definido em tempo de compilação [FRI02]. Os principais parâmetros de variação são as inter- faces e as implementações correspondentes. A inici- alização de módulo também é considerada como um possível parâmetro de variação. Uma técnica de implementação claramente conta com a escolha da linguagem de programação. A decisão de qual linguagem usar é tipicamente resol- vida sobre uma instânciação do produto. Portanto a criação e descobrimento de uma aquitetura de re- ferência para uma linha de produto como uma base para instanciação de membros é uma das atividades fundamentais dessa área. 3 Quadro para Comparação de Abordagens de Progra- mação No artigo [MA01] (ver também [ANA01]), várias abordagens para variabilidade de codificação são apresentadas, onde o mesmo descreve as caracte- rísticas de cada um delas, onde também, no mesmo artigo, é possível encontrar uma matriz que faz com- parações entre estas abordagens. São elas: 1. Agregação / Delegação: permite que obje- tos deleguem funcionalidades; 2. Herança: adiciona funções básicas às super- classes e funções especializadas às subclasses; 3. Parametrização: representa software reutili- zável como uma biblioteca de componentes pa- rametrizados; 4. Sobrecarga: esta técnica utiliza o mesmo nome de um elemento para operar de manei- ras diferentes; 5. Propriedades do Delphi: propriedades as- sociadas a ações específicas como leitura ou atualização de dados; 6. Carga Dinâmica de Classe: todas as classes são carregadas na memória assim que estas são necessárias; 7. Bibliotecas Estáticas: contém um conjunto de funções exeternas que podem ser linkadas em um aplicação depois da mesma ter sido compilada; 2
  • 3. 8. Bibliotecas de Ligação Dinâminca: são carregadas quando necessárias em uma aplica- ção em tempo de execução; 9. Compilação Condicional: possibilita o con- trole sobre os segmentos de código a serem in- cluídos ou excluídos da compilação de um pro- grama; 10. Frames: reuso hierárquico de entidades de montagem de software; 11. Reflexão: é a habilidade de um programa ma- nipular, na forma de dados, algo que representa o estado de um programa durante sua própria execução; 12. Programação Orientada a Aspecto: téc- nica desenvolvida pela Xerox PARC (http: //www.parc.com/); 13. Padrões de Projeto: muitos dos padrões de projeto podem variar e fornecer soluções para o gerenciamento de variabilidade. 3.1 Exemplos Um dos exemplos das técnicas apresentadas é o uso do Padrão de Projeto Builder. O Builder é um exemplo de padrão de criação que pode ser usado para carregar código variante em tempo de execu- ção. Este padrão é adequado quando a lógica da construção de objetos complexos deve ser separada do usuário desses objetos e quando essa lógica deve facilitar a construção de variações. A estrutura do padrão pode ser vista na Figura 2. Figura 2: Padrão Builder. Product representa o objeto complexo a ser cons- truído. O administrador coordena a construção do produto pela chamada do objeto ConcreteBuilder. Esse objeto implementa a mesma interface para cri- ação de partes que é definida na classe abstrata Buil- der. Porém, cada ConcreteBuilder cria partes dife- rentes. 4 Avaliação Qualquer decisão tomada durante o processo de desenvolvimento do software pode comprometer a sua qualidade final. Para se produzir software com alta qualidade, é necessário investir em qualidade em todos os pontos do processo. Qualidade de software é um processo sistemático que focaliza as etapas e artefatos produzidos com o objetivo de garantir a conformidade de processos e produtos, prevenindo e eliminando defeitos [Bar02]. Para avaliação, um critério de técnica de imple- mentação deve ser definido e uma classificação deve ser feita para expressar o grau de satisfação. Escopo, flexibilidade, eficiência, compatilidade binária são exemplos de qualidades fundamentais que devem ser identificados para comparar e ava- liar técnicas de implementação de linha de produto. 5 Conclusões A gestão sistemática da variabilidade em nível de código é um campo bastante imaturo. É chegada a conclusão de que mais trabalhos nessa área devem ser feitos. Outra conclusão que se é chegada pelo trabalho [MA01] é de que diferentes abordagens foram neces- sárias para dar suporte a diferentes problemas. Isso significa dizer que técnicas precisam ser mapeadas para problemas conhecidos. Além disso, a combina- ção de técnicas disponíveis é algo que não pode ser evitado. Referências [ANA01] ANASTASOPOULOS, M. Implementing product line variabilities, volume 26. ACM SIGSOFT Software Engineering Notes, May 2001. [Bar02] Alexandre Bartié. Garantia de Qualidade de Software. 2002. [Cop95] James Coplien. Multi-Paradigm Design for C++. 1995. [FRI02] FRITSCH, C.; LEHN, A.; STROHM, T. Evaluating variability implementation mechanisms. In In: INTERNATIONAL WORKSHOP ON PRODUCT LINE EN- GINEERING, 2., 2002, Seattle. Procee- dings, pages 59–64, 2002. [Jun05] Edson A. Oliveira Junior. Um processo de gerenciamento de variabilidade para linha de produto de software. Departamento de Informática, Universidade Estadual de Maringá, 2005. [KAN] KANG, K. Feature-oriented domain analysis (foda) - feasibility study. Tech- nical report, Technical Report CMU/SEI- 90-TR-21, SEI/CMU, Pittsburgh. 3
  • 4. [MA01] Cristina G. Michalis A. Implementing pro- duct line variabilities. Fraunhofer Insti- tute for Experimental Software Enginee- ring and Centre for Software Reliability Department of Computing Science Uni- versity of Newcastle, 2001. [VAN00] VAN GURP, J.; BOSCH, J. Managing va- riability in software product lines. In In: THE WORKING IEEE/IFIP CONFE- RENCE ON SOFTWARE ARCHITEC- TURE, 2000, Amsterdam. Proceedings, 2000. [VAN01] VAN GURP, J.; BOSCH, J. On the no- tion of variability in software product li- nes. In In: THE WORKING IEEE/IFIP CONFERENCE ON SOFTWARE AR- CHITECTURE, 2001, Amsterdam. Pro- ceedings, 2001. [WEI99] WEISS. D, CHI TAU, R. L. Software product-line engineering: a family-based software development process. 1999. 4