SlideShare uma empresa 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

Mais conteúdo relacionado

Mais procurados

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
 

Mais procurados (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
 

Destaque

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
 

Destaque (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
 

Semelhante a Implementando Variabilidades em Linhas de Produto

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
 

Semelhante a Implementando Variabilidades em Linhas de Produto (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
 

Mais 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
 

Mais 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

geografia 7 ano - relevo, altitude, topos do mundo
geografia 7 ano - relevo, altitude, topos do mundogeografia 7 ano - relevo, altitude, topos do mundo
geografia 7 ano - relevo, altitude, topos do mundonialb
 
Geometria 5to Educacion Primaria EDU Ccesa007.pdf
Geometria  5to Educacion Primaria EDU  Ccesa007.pdfGeometria  5to Educacion Primaria EDU  Ccesa007.pdf
Geometria 5to Educacion Primaria EDU Ccesa007.pdfDemetrio Ccesa Rayme
 
Currículo escolar na perspectiva da educação inclusiva.pdf
Currículo escolar na perspectiva da educação inclusiva.pdfCurrículo escolar na perspectiva da educação inclusiva.pdf
Currículo escolar na perspectiva da educação inclusiva.pdfIedaGoethe
 
ÁREA DE FIGURAS PLANAS - DESCRITOR DE MATEMATICA D12 ENSINO MEDIO.pptx
ÁREA DE FIGURAS PLANAS - DESCRITOR DE MATEMATICA D12 ENSINO MEDIO.pptxÁREA DE FIGURAS PLANAS - DESCRITOR DE MATEMATICA D12 ENSINO MEDIO.pptx
ÁREA DE FIGURAS PLANAS - DESCRITOR DE MATEMATICA D12 ENSINO MEDIO.pptxDeyvidBriel
 
Baladão sobre Variação Linguistica para o spaece.pptx
Baladão sobre Variação Linguistica para o spaece.pptxBaladão sobre Variação Linguistica para o spaece.pptx
Baladão sobre Variação Linguistica para o spaece.pptxacaciocarmo1
 
Bingo da potenciação e radiciação de números inteiros
Bingo da potenciação e radiciação de números inteirosBingo da potenciação e radiciação de números inteiros
Bingo da potenciação e radiciação de números inteirosAntnyoAllysson
 
Slides Lição 3, Betel, Ordenança para congregar e prestar culto racional, 2Tr...
Slides Lição 3, Betel, Ordenança para congregar e prestar culto racional, 2Tr...Slides Lição 3, Betel, Ordenança para congregar e prestar culto racional, 2Tr...
Slides Lição 3, Betel, Ordenança para congregar e prestar culto racional, 2Tr...LuizHenriquedeAlmeid6
 
Slides Lição 4, CPAD, Como se Conduzir na Caminhada, 2Tr24.pptx
Slides Lição 4, CPAD, Como se Conduzir na Caminhada, 2Tr24.pptxSlides Lição 4, CPAD, Como se Conduzir na Caminhada, 2Tr24.pptx
Slides Lição 4, CPAD, Como se Conduzir na Caminhada, 2Tr24.pptxLuizHenriquedeAlmeid6
 
Habilidades Motoras Básicas e Específicas
Habilidades Motoras Básicas e EspecíficasHabilidades Motoras Básicas e Específicas
Habilidades Motoras Básicas e EspecíficasCassio Meira Jr.
 
Programa de Intervenção com Habilidades Motoras
Programa de Intervenção com Habilidades MotorasPrograma de Intervenção com Habilidades Motoras
Programa de Intervenção com Habilidades MotorasCassio Meira Jr.
 
PRÉ-MODERNISMO - GUERRA DE CANUDOS E OS SERTÕES
PRÉ-MODERNISMO - GUERRA DE CANUDOS E OS SERTÕESPRÉ-MODERNISMO - GUERRA DE CANUDOS E OS SERTÕES
PRÉ-MODERNISMO - GUERRA DE CANUDOS E OS SERTÕESpatriciasofiacunha18
 
Aula - 2º Ano - Cultura e Sociedade - Conceitos-chave
Aula - 2º Ano - Cultura e Sociedade - Conceitos-chaveAula - 2º Ano - Cultura e Sociedade - Conceitos-chave
Aula - 2º Ano - Cultura e Sociedade - Conceitos-chaveaulasgege
 
Cartilha 1º Ano Alfabetização _ 1º Ano Ensino Fundamental
Cartilha 1º Ano Alfabetização _ 1º Ano Ensino FundamentalCartilha 1º Ano Alfabetização _ 1º Ano Ensino Fundamental
Cartilha 1º Ano Alfabetização _ 1º Ano Ensino Fundamentalgeone480617
 
PLANEJAMENTO anual do 3ANO fundamental 1 MG.pdf
PLANEJAMENTO anual do  3ANO fundamental 1 MG.pdfPLANEJAMENTO anual do  3ANO fundamental 1 MG.pdf
PLANEJAMENTO anual do 3ANO fundamental 1 MG.pdfProfGleide
 
QUIZ DE MATEMATICA SHOW DO MILHÃO PREPARAÇÃO ÇPARA AVALIAÇÕES EXTERNAS
QUIZ DE MATEMATICA SHOW DO MILHÃO PREPARAÇÃO ÇPARA AVALIAÇÕES EXTERNASQUIZ DE MATEMATICA SHOW DO MILHÃO PREPARAÇÃO ÇPARA AVALIAÇÕES EXTERNAS
QUIZ DE MATEMATICA SHOW DO MILHÃO PREPARAÇÃO ÇPARA AVALIAÇÕES EXTERNASEdinardo Aguiar
 
VALORES HUMANOS NA DISCIPLINA DE ENSINO RELIGIOSO
VALORES HUMANOS NA DISCIPLINA DE ENSINO RELIGIOSOVALORES HUMANOS NA DISCIPLINA DE ENSINO RELIGIOSO
VALORES HUMANOS NA DISCIPLINA DE ENSINO RELIGIOSOBiatrizGomes1
 
A Inteligência Artificial na Educação e a Inclusão Linguística
A Inteligência Artificial na Educação e a Inclusão LinguísticaA Inteligência Artificial na Educação e a Inclusão Linguística
A Inteligência Artificial na Educação e a Inclusão LinguísticaFernanda Ledesma
 
DIA DO INDIO - FLIPBOOK PARA IMPRIMIR.pdf
DIA DO INDIO - FLIPBOOK PARA IMPRIMIR.pdfDIA DO INDIO - FLIPBOOK PARA IMPRIMIR.pdf
DIA DO INDIO - FLIPBOOK PARA IMPRIMIR.pdfIedaGoethe
 
19 de abril - Dia dos povos indigenas brasileiros
19 de abril - Dia dos povos indigenas brasileiros19 de abril - Dia dos povos indigenas brasileiros
19 de abril - Dia dos povos indigenas brasileirosMary Alvarenga
 

Último (20)

geografia 7 ano - relevo, altitude, topos do mundo
geografia 7 ano - relevo, altitude, topos do mundogeografia 7 ano - relevo, altitude, topos do mundo
geografia 7 ano - relevo, altitude, topos do mundo
 
Geometria 5to Educacion Primaria EDU Ccesa007.pdf
Geometria  5to Educacion Primaria EDU  Ccesa007.pdfGeometria  5to Educacion Primaria EDU  Ccesa007.pdf
Geometria 5to Educacion Primaria EDU Ccesa007.pdf
 
Currículo escolar na perspectiva da educação inclusiva.pdf
Currículo escolar na perspectiva da educação inclusiva.pdfCurrículo escolar na perspectiva da educação inclusiva.pdf
Currículo escolar na perspectiva da educação inclusiva.pdf
 
ÁREA DE FIGURAS PLANAS - DESCRITOR DE MATEMATICA D12 ENSINO MEDIO.pptx
ÁREA DE FIGURAS PLANAS - DESCRITOR DE MATEMATICA D12 ENSINO MEDIO.pptxÁREA DE FIGURAS PLANAS - DESCRITOR DE MATEMATICA D12 ENSINO MEDIO.pptx
ÁREA DE FIGURAS PLANAS - DESCRITOR DE MATEMATICA D12 ENSINO MEDIO.pptx
 
treinamento brigada incendio 2024 no.ppt
treinamento brigada incendio 2024 no.ppttreinamento brigada incendio 2024 no.ppt
treinamento brigada incendio 2024 no.ppt
 
Baladão sobre Variação Linguistica para o spaece.pptx
Baladão sobre Variação Linguistica para o spaece.pptxBaladão sobre Variação Linguistica para o spaece.pptx
Baladão sobre Variação Linguistica para o spaece.pptx
 
Bingo da potenciação e radiciação de números inteiros
Bingo da potenciação e radiciação de números inteirosBingo da potenciação e radiciação de números inteiros
Bingo da potenciação e radiciação de números inteiros
 
Slides Lição 3, Betel, Ordenança para congregar e prestar culto racional, 2Tr...
Slides Lição 3, Betel, Ordenança para congregar e prestar culto racional, 2Tr...Slides Lição 3, Betel, Ordenança para congregar e prestar culto racional, 2Tr...
Slides Lição 3, Betel, Ordenança para congregar e prestar culto racional, 2Tr...
 
Slides Lição 4, CPAD, Como se Conduzir na Caminhada, 2Tr24.pptx
Slides Lição 4, CPAD, Como se Conduzir na Caminhada, 2Tr24.pptxSlides Lição 4, CPAD, Como se Conduzir na Caminhada, 2Tr24.pptx
Slides Lição 4, CPAD, Como se Conduzir na Caminhada, 2Tr24.pptx
 
Habilidades Motoras Básicas e Específicas
Habilidades Motoras Básicas e EspecíficasHabilidades Motoras Básicas e Específicas
Habilidades Motoras Básicas e Específicas
 
Programa de Intervenção com Habilidades Motoras
Programa de Intervenção com Habilidades MotorasPrograma de Intervenção com Habilidades Motoras
Programa de Intervenção com Habilidades Motoras
 
PRÉ-MODERNISMO - GUERRA DE CANUDOS E OS SERTÕES
PRÉ-MODERNISMO - GUERRA DE CANUDOS E OS SERTÕESPRÉ-MODERNISMO - GUERRA DE CANUDOS E OS SERTÕES
PRÉ-MODERNISMO - GUERRA DE CANUDOS E OS SERTÕES
 
Aula - 2º Ano - Cultura e Sociedade - Conceitos-chave
Aula - 2º Ano - Cultura e Sociedade - Conceitos-chaveAula - 2º Ano - Cultura e Sociedade - Conceitos-chave
Aula - 2º Ano - Cultura e Sociedade - Conceitos-chave
 
Cartilha 1º Ano Alfabetização _ 1º Ano Ensino Fundamental
Cartilha 1º Ano Alfabetização _ 1º Ano Ensino FundamentalCartilha 1º Ano Alfabetização _ 1º Ano Ensino Fundamental
Cartilha 1º Ano Alfabetização _ 1º Ano Ensino Fundamental
 
PLANEJAMENTO anual do 3ANO fundamental 1 MG.pdf
PLANEJAMENTO anual do  3ANO fundamental 1 MG.pdfPLANEJAMENTO anual do  3ANO fundamental 1 MG.pdf
PLANEJAMENTO anual do 3ANO fundamental 1 MG.pdf
 
QUIZ DE MATEMATICA SHOW DO MILHÃO PREPARAÇÃO ÇPARA AVALIAÇÕES EXTERNAS
QUIZ DE MATEMATICA SHOW DO MILHÃO PREPARAÇÃO ÇPARA AVALIAÇÕES EXTERNASQUIZ DE MATEMATICA SHOW DO MILHÃO PREPARAÇÃO ÇPARA AVALIAÇÕES EXTERNAS
QUIZ DE MATEMATICA SHOW DO MILHÃO PREPARAÇÃO ÇPARA AVALIAÇÕES EXTERNAS
 
VALORES HUMANOS NA DISCIPLINA DE ENSINO RELIGIOSO
VALORES HUMANOS NA DISCIPLINA DE ENSINO RELIGIOSOVALORES HUMANOS NA DISCIPLINA DE ENSINO RELIGIOSO
VALORES HUMANOS NA DISCIPLINA DE ENSINO RELIGIOSO
 
A Inteligência Artificial na Educação e a Inclusão Linguística
A Inteligência Artificial na Educação e a Inclusão LinguísticaA Inteligência Artificial na Educação e a Inclusão Linguística
A Inteligência Artificial na Educação e a Inclusão Linguística
 
DIA DO INDIO - FLIPBOOK PARA IMPRIMIR.pdf
DIA DO INDIO - FLIPBOOK PARA IMPRIMIR.pdfDIA DO INDIO - FLIPBOOK PARA IMPRIMIR.pdf
DIA DO INDIO - FLIPBOOK PARA IMPRIMIR.pdf
 
19 de abril - Dia dos povos indigenas brasileiros
19 de abril - Dia dos povos indigenas brasileiros19 de abril - Dia dos povos indigenas brasileiros
19 de abril - Dia dos povos indigenas brasileiros
 

Implementando Variabilidades em Linhas de Produto

  • 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