SlideShare uma empresa Scribd logo
1 de 15
Baixar para ler offline
Universidade Federal de Alagoas - UFAL - Campus A. C. Simões - Tabuleiro do Martins - Maceió - AL, CEP: 57072-970 - Instituto de Computação (IC)
Implementing Product Line Variabilities :: Implementação de Variabilidades em Linhas de Produto de Software :: Seminário :: Prof. Arturo Hernández
Implementing Product Line Variabilities
Implementação de Variabilidades em Linhas de Produto de Software
Michel Alves dos Santos :: Ailton Felix de Lima Filho
Universidade Federal de Alagoas, Campus A. C. Simões
Tabuleiro do Martins - Maceió - AL, CEP: 57072-970
Docente Responsável: Prof. Dr. Arturo Hernández
{michel.mas,afdlf2}@gmail.com
08 de Outubro de 2012
Michel Alves • Ailton Felix : Bacharelado em Ciência da Computação Instituto de Computação - Bloco 12 - Campus A. C. Simões - UFAL
Universidade Federal de Alagoas - UFAL - Campus A. C. Simões - Tabuleiro do Martins - Maceió - AL, CEP: 57072-970 - Instituto de Computação (IC)
Implementing Product Line Variabilities :: Implementação de Variabilidades em Linhas de Produto de Software :: Seminário :: Prof. Arturo Hernández
Introdução
Principais Objetivos da Apresentação
Implementing Product Line Variabilities
Michalis Anastasopoulos
Fraunhofer Institute for
Experimental Software Engineering
Sauerwiesen 6
D-67661 Kaiserslautern, Germany
+49 (0) 6301 707 168
anastaso@iese.fhg.de
ABSTRACT
Software product lines have numerous members. Thus, a product line
infrastructure must cover various systems. This is the significant
difference to usual software systems and the reason for additional
requirements on the various assets present during software product
line engineering. It is imperative that they support the description of
the product line as a whole, as well as its instantiation for the
derivation of individual products.
Literature has already addressed how to create and instantiate generic
product line assets, such as domain models and architectures to
generate instance specific ones [1, 2, 3], yet little attention has been
given on how to actually deal with this genericity at the code level.
This paper addresses the issue of handling product line variability at
the code level. To this end various implementation approaches are
examined with respect to their use in a product line context.
Keywords
Software product lines, product line variability, implementation
approaches, implementing variabilities, traceability
1. INTRODUCTION
Software product lines have numerous members. Thus, a product line
infrastructure must cover various systems. This is the significant
difference to usual software systems and the reason for additional
requirements on the various assets present during software product
line engineering. It is imperative that they support the description of
the product line as a whole, as well as its instantiation for the
derivation of individual products.
To reflect a product line, the generic assets have to cover all elements
the product family is built from, and their corresponding composition
rules. Clarifying how the various parts may be combined is a very
challenging task.
Generic assets differ from specific ones in the fact that they embrace
common and variable product aspects. Generic assets can be
instantiated, that is, product-specific assets can be derived from them.
Specific assets on the other hand are uniquely mapped to product line
members.
Products within a product line context consist of constant as well as
variable elements. Dependencies between these elements do exist
(e.g., elements may exclude each other or one element may make the
integration of a second one a necessity). Hence only a subset of all
combinations are correct and complete configurations. Therefore we
have to restrict the product line infrastructure to cover only the set of
valid family members.
A decision model structures the variability within a product line as a
set of decisions to be resolved. Interrelations between decisions are
captured as well. Such a model is also generic, that is, it can be also
instantiated. In the instance all decisions are resolved. Every diversity
in each generic asset must be connected to an open
decision in the decision model. The presence of a decision model is
important because a decision model specifies an instance of each
generic asset and thus a complete product line member.
Literature has already addressed how to create and instantiate generic
product line assets, such as domain models and architectures to
generate instance specific ones [1, 2, 3], yet little attention has been
given on how to actually deal with this genericity at the code level.
Variabilities and their composition rules must also be reflected at the
code level, and be instantiated when creating individual product
instances.
This paper addresses the issue of handling product line variability at
the code level. To this end various implementation approaches are
examined with respect to their use in a product line context. The rest
of this paper is structured as follows: section 2 introduces some of the
relevant related work, this is followed by a discussion on the types of
variabilities to be supported and the requirements for their
implementation support (section 3), we then introduce our framework
for comparison of implementation approaches (section 4), present
some examples of the techniques discussed (section 5), and briefly
discuss evaluation criteria needed for implementation techniques
(section 6). Section 7 comments on some of our practical experience
and section 8 concludes the paper with a short discussion of the
various research needs we have been able to elicit so far.
It should be noted that this paper’s purpose is not to impart profound
insights into the technologies but only to report on the possibilities of
their use for handling code variabilities in a product line. Finally we
must mention that the set of approaches presented here is not
complete. We are certain that other approaches may also be
advantageous in this context. We believe though that their majority
bears upon the collection introduced here.
2. RELATED WORK
James Coplien in his book “Multi-Paradigm Design for C++” [4]
presents a design method that takes advantage of the popular
programming language’s support for multiple paradigms, such as
classes, over-loaded functions, templates, modules, and procedural
programming. Each of those paradigms is described as being uniquely
suitable for solving a specific class of design problems. This
conclusion is particularly important for product line engineering
because the book has a strong focus on problems related to the
realization of commonalities and variabilities.
David Sharp has studied [5] existing object oriented techniques that
facilitate anticipated variabilities between different software versions.
Parameters of variations, which refer to the different aspects of
software that can vary, are being initially identified. Tailoring
techniques featured by languages like C++ and Ada95 are described
next. Each technique is categorized with respect to the supported
combinations of variabilities for each parameter of variation. Scope,
1 This work was done while the author was working for the IESE
Permission to make digital or hard copies of all or part of this work for
personal or classroom use is granted without fee provided that copies are
not made or distributed for profit or commercial advantage and that
copies bear this notice and the full citation on the first page. To copy
otherwise, or republish, to post on servers or to redistribute to lists,
requires prior specific permission and/or a fee.
SSR’01, May 18-20, 2001, Toronto, Ontario, Canada.
Copyright 2001 ACM 1-58113-358-8/01/0005...$5.00.
Cristina Gacek1
Centre for Software Reliability
Department of Computing Science
University of Newcastle
NE1 7RU Newcastle upon Tyne, United Kingdom
+44 (0) 191 222 5153
cristina.gacek@ncl.ac.uk
109
Debater sobre o conteúdo do paper
intitulado Implementing Product
Line Variabilities (Autores: M.
Anastasopoulos and C. Gacek.).
Comentar a respeito de alguns
trabalhos relacionados ao tema.
Debater sobre os requerimentos
necessários a implementação da
técnica.
Analisar os tipos mais comuns (e
largamente aceitos) de Variabilidade.
Apresentar uma comparação de
abordagens de implementação e
alguns critérios de avaliação.
O que entendemos por Variabilidade?
Michel Alves • Ailton Felix : Bacharelado em Ciência da Computação Instituto de Computação - Bloco 12 - Campus A. C. Simões - UFAL
Universidade Federal de Alagoas - UFAL - Campus A. C. Simões - Tabuleiro do Martins - Maceió - AL, CEP: 57072-970 - Instituto de Computação (IC)
Implementing Product Line Variabilities :: Implementação de Variabilidades em Linhas de Produto de Software :: Seminário :: Prof. Arturo Hernández
Trabalhos Relacionados
Apanhado de Trabalhos Relacionados
James Coplien, Multi-Paradigm Design for C++, Addison Wesley, 1995
David C. Sharp, “Containing and Facilitating Change Via Object Oriented
Tailoring Techniques,” to appear in Proceedings of The First Software
Product Line Conference Denver, Colorado, August, 2000
Mikael Svahnberg, Variability in Evolving Software Product Lines,
Licentiate thesis, Blekinge Institute of Technology, Department of
Software Engineering and Computer Science, Karlskrona, Sweden, 2000
Jilles Van Gurp, Jan Bosch, and Mikael Svahnberg. On the Notion of
Variability in Software Product Lines. In Proceedings of the Working
IEEE/IFIP Conference on Software Architecture (WICSA’01), 2001.
Michel Alves • Ailton Felix : Bacharelado em Ciência da Computação Instituto de Computação - Bloco 12 - Campus A. C. Simões - UFAL
Universidade Federal de Alagoas - UFAL - Campus A. C. Simões - Tabuleiro do Martins - Maceió - AL, CEP: 57072-970 - Instituto de Computação (IC)
Implementing Product Line Variabilities :: Implementação de Variabilidades em Linhas de Produto de Software :: Seminário :: Prof. Arturo Hernández
Requerimentos
Requerimentos para Suporte a Implementação
Figure: Visão geral dos tipos de feature e critérios de inclusão em uma linha de produto.
Toda variabilidade encontrada em um contexto de linha de produto pode ser conectada a sua
feature correspondente. A relação entre feature e variabilidade é de 1:N, pois a implementação
da mesma geralmente se encontra espalhada pelos aquivos fontes e módulos.
Michel Alves • Ailton Felix : Bacharelado em Ciência da Computação Instituto de Computação - Bloco 12 - Campus A. C. Simões - UFAL
Universidade Federal de Alagoas - UFAL - Campus A. C. Simões - Tabuleiro do Martins - Maceió - AL, CEP: 57072-970 - Instituto de Computação (IC)
Implementing Product Line Variabilities :: Implementação de Variabilidades em Linhas de Produto de Software :: Seminário :: Prof. Arturo Hernández
Tipos de Variabilidade
Categorização dos Tipos de Variabilidade
Classificação em Tempo de Resolução (Binding Time)
Em tempo de compilação (Compile-time), em tempo de ligação (Link-time), em tempo de
execução (Runtime) e em tempo de atualização (Update-time/Post-runtime).
Michel Alves • Ailton Felix : Bacharelado em Ciência da Computação Instituto de Computação - Bloco 12 - Campus A. C. Simões - UFAL
Universidade Federal de Alagoas - UFAL - Campus A. C. Simões - Tabuleiro do Martins - Maceió - AL, CEP: 57072-970 - Instituto de Computação (IC)
Implementing Product Line Variabilities :: Implementação de Variabilidades em Linhas de Produto de Software :: Seminário :: Prof. Arturo Hernández
Comparação de Abordagens de Implementação
Abordagens para Implementação de Variabilidade
Figure: Matriz de comparação de abordagens de implementação de variabilidade.
Michel Alves • Ailton Felix : Bacharelado em Ciência da Computação Instituto de Computação - Bloco 12 - Campus A. C. Simões - UFAL
Universidade Federal de Alagoas - UFAL - Campus A. C. Simões - Tabuleiro do Martins - Maceió - AL, CEP: 57072-970 - Instituto de Computação (IC)
Implementing Product Line Variabilities :: Implementação de Variabilidades em Linhas de Produto de Software :: Seminário :: Prof. Arturo Hernández
Comparação de Abordagens - Mapeamento das Linguagens
Mapeamento das Linguagens Usadas na Exemplificação
Figure: Mapeamento de abordagens nas linguagens: C++, Delphi, Java e Smalltalk.
Michel Alves • Ailton Felix : Bacharelado em Ciência da Computação Instituto de Computação - Bloco 12 - Campus A. C. Simões - UFAL
Universidade Federal de Alagoas - UFAL - Campus A. C. Simões - Tabuleiro do Martins - Maceió - AL, CEP: 57072-970 - Instituto de Computação (IC)
Implementing Product Line Variabilities :: Implementação de Variabilidades em Linhas de Produto de Software :: Seminário :: Prof. Arturo Hernández
Exemplos - Delegação, Compilação Condicional e Design Patterns
Utilizando Delegação, Compilação Condicional e Design Patterns
Figure: Utilização de Delegação, Compilação Condicional e Design Patterns.
Michel Alves • Ailton Felix : Bacharelado em Ciência da Computação Instituto de Computação - Bloco 12 - Campus A. C. Simões - UFAL
Universidade Federal de Alagoas - UFAL - Campus A. C. Simões - Tabuleiro do Martins - Maceió - AL, CEP: 57072-970 - Instituto de Computação (IC)
Implementing Product Line Variabilities :: Implementação de Variabilidades em Linhas de Produto de Software :: Seminário :: Prof. Arturo Hernández
Avaliação da Variabilidade
Critérios de Avaliação na Implementação de Técnicas
No artigo são identificados três tipos de critérios:
Critérios Fundamentais de Comparação e
Avaliação
Critérios Extendidos de Comparação e
Avaliação
Elementos Primitivos Existentes em
Linguagens
Michel Alves • Ailton Felix : Bacharelado em Ciência da Computação Instituto de Computação - Bloco 12 - Campus A. C. Simões - UFAL
Universidade Federal de Alagoas - UFAL - Campus A. C. Simões - Tabuleiro do Martins - Maceió - AL, CEP: 57072-970 - Instituto de Computação (IC)
Implementing Product Line Variabilities :: Implementação de Variabilidades em Linhas de Produto de Software :: Seminário :: Prof. Arturo Hernández
Avaliação da Variabilidade - Critérios Fundamentais
Critérios de Avaliação na Implementação de Técnicas
Critérios Fundamentais de Comparação e Avaliação
Escopo: Identifica a menor unidade de integração suportada.
Flexibilidade: Medida do tempo de integração.
Eficiência: Custo de suporte da integrabilidade.
Compatibilidade Binária: Medida de compatibilidade com
bibliotecas pré-compiladas.
Tal lista é extendida pelos autores através de mais sete
atributos chamados de critérios extendidos.
Michel Alves • Ailton Felix : Bacharelado em Ciência da Computação Instituto de Computação - Bloco 12 - Campus A. C. Simões - UFAL
Universidade Federal de Alagoas - UFAL - Campus A. C. Simões - Tabuleiro do Martins - Maceió - AL, CEP: 57072-970 - Instituto de Computação (IC)
Implementing Product Line Variabilities :: Implementação de Variabilidades em Linhas de Produto de Software :: Seminário :: Prof. Arturo Hernández
Avaliação da Variabilidade - Critérios Extendidos
Critérios de Avaliação na Implementação de Técnicas
Critérios Extendidos de Comparação e Avaliação
Separação de Lógica: Partes variantes e invariantes de código.
Escalabilidade: Impactos na expansão do código.
Rastreamento Realizável: Capacidade de rastrear uma unidade de integração.
Facilidade de Introdução: Grau de reestruturação requerida dos sistemas
quando ocorre a introdução da técnica.
Suporte em Linguagem: Forma com as linguagens existentes podem usufruir
da técnica.
Suporte a Ferramentas: Automação no uso das técnicas.
Facilidade de Contorno: Simulação ou emulação através de outras técnicas.
Outro aspecto interessante que deve ser levado em consideração no momento da
avaliação é a descoberta de elementos primitivos da linguagem.
Michel Alves • Ailton Felix : Bacharelado em Ciência da Computação Instituto de Computação - Bloco 12 - Campus A. C. Simões - UFAL
Universidade Federal de Alagoas - UFAL - Campus A. C. Simões - Tabuleiro do Martins - Maceió - AL, CEP: 57072-970 - Instituto de Computação (IC)
Implementing Product Line Variabilities :: Implementação de Variabilidades em Linhas de Produto de Software :: Seminário :: Prof. Arturo Hernández
Avaliação da Variabilidade - Elementos Primitivos
Critérios de Avaliação na Implementação de Técnicas
Elementos Primitivos Existentes em Linguagens
Adição de Níveis de Indireção: Técnicas como delegation. Pode causar
impactos na eficiência pois toda uma classe deve ser carregada antes da
invocação de um método.
Ligação Tardia (Late Binding): Utilizada nos mecanismos de herança virtual,
ligando código de um método a sua declaração em tempo de execução.
Ligação Precoce (Early Binding): Manutenção de informação estática.
Utilizada em bibliotecas de tipo. Mais rápido que a ligação tardia.
Tipos Abstratos: Classes Abstratas são um exemplo. Definem funcionalidade
sem implementação que geralmente é fornecido em subclasses. Criam
interfaces comuns para acesso as instâncias e reduzem o acoplamento em
pontos de variabilidade.
Mecanismos de Composição: Usados para implementar aspectos dos sistemas
separadamente e depois combiná-los para obtenção do sistema final.
Michel Alves • Ailton Felix : Bacharelado em Ciência da Computação Instituto de Computação - Bloco 12 - Campus A. C. Simões - UFAL
Universidade Federal de Alagoas - UFAL - Campus A. C. Simões - Tabuleiro do Martins - Maceió - AL, CEP: 57072-970 - Instituto de Computação (IC)
Implementing Product Line Variabilities :: Implementação de Variabilidades em Linhas de Produto de Software :: Seminário :: Prof. Arturo Hernández
Conclusões
Conclusões a Respeito dos Tópicos Apresentados
O Gerenciamento Sistemático de Variabilidade a nível de código é um campo
um tanto imaturo, necessitando de mais esforços científico-investigativos.
A migração de sistemas com fraco gerenciamento de variabilidade para
sistemas que possuem intenso suporte a essa modalidade pode se tornar
uma tarefa árida.
Diferentes abordagens são necessárias para a resolução de diferentes
problemas, a combinação das técnicas hoje disponíveis é algo que não
pode ser evitado.
Mais trabalhos nessa área necessitam ser
realizados!
Michel Alves • Ailton Felix : Bacharelado em Ciência da Computação Instituto de Computação - Bloco 12 - Campus A. C. Simões - UFAL
Universidade Federal de Alagoas - UFAL - Campus A. C. Simões - Tabuleiro do Martins - Maceió - AL, CEP: 57072-970 - Instituto de Computação (IC)
Implementing Product Line Variabilities :: Implementação de Variabilidades em Linhas de Produto de Software :: Seminário :: Prof. Arturo Hernández
Agradecimentos
Grato Pela Atenção!
Michel Alves dos Santos - michel.mas@gmail.com
Ailton Felix de Lima Filho - afdlf2@gmail.com
Michel Alves • Ailton Felix : Bacharelado em Ciência da Computação Instituto de Computação - Bloco 12 - Campus A. C. Simões - UFAL
Universidade Federal de Alagoas - UFAL - Campus A. C. Simões - Tabuleiro do Martins - Maceió - AL, CEP: 57072-970 - Instituto de Computação (IC)
Implementing Product Line Variabilities :: Implementação de Variabilidades em Linhas de Produto de Software :: Seminário :: Prof. Arturo Hernández
Referências Bibliográficas
Referências Bibliográficas
M. Anastasopoulos and C. Gacek.
Implementing product line variabilities.
IESE - International Encounter of Systems Engineering, May 2001.
M. Anastasopoulos, J. Bayer, O. Flege, and C. Gacek.
A process for product line architecture creation and evaluation.
Technical report, IESE, 2000.
E. Gamma.
Design Patterns: Elements of Reusable Object-Oriented Software.
Addison-Wesley, 1994.
O. Lewis.
Performance Issues Of Variability Design in Embedded System Application Families.
PhD thesis, November 2000.
M. Svahnberg.
Variability in envolving software product lines.
Master’s thesis, Blekinge Institute of Technology, Departament of Software Engineering and
Computer Science, Karlskrona , Sweden, 2000.
Michel Alves • Ailton Felix : Bacharelado em Ciência da Computação Instituto de Computação - Bloco 12 - Campus A. C. Simões - UFAL

Mais conteúdo relacionado

Destaque

Five Minute Speech: Activities Developed in Computational Geometry Discipline
Five Minute Speech: Activities Developed in Computational Geometry DisciplineFive Minute Speech: Activities Developed in Computational Geometry Discipline
Five Minute Speech: Activities Developed in Computational Geometry DisciplineMichel Alves
 
FLTK Summer Course - Part V - Fifth Impact
FLTK Summer Course - Part V - Fifth ImpactFLTK Summer Course - Part V - Fifth Impact
FLTK Summer Course - Part V - Fifth ImpactMichel Alves
 
FLTK Summer Course - Part III - Third Impact
FLTK Summer Course - Part III - Third ImpactFLTK Summer Course - Part III - Third Impact
FLTK Summer Course - Part III - Third ImpactMichel Alves
 
Personal Presentation
Personal PresentationPersonal Presentation
Personal PresentationMichel Alves
 
11 names-of-foodstuffs-in-indian-languages
11 names-of-foodstuffs-in-indian-languages11 names-of-foodstuffs-in-indian-languages
11 names-of-foodstuffs-in-indian-languagescha
 
Introduction to Delphi - June 2004
Introduction to Delphi - June 2004Introduction to Delphi - June 2004
Introduction to Delphi - June 2004Michel Alves
 
F&b service basicterminology
F&b service basicterminologyF&b service basicterminology
F&b service basicterminologycha
 
F&b notes basics
F&b notes   basicsF&b notes   basics
F&b notes basicscha
 

Destaque (10)

Five Minute Speech: Activities Developed in Computational Geometry Discipline
Five Minute Speech: Activities Developed in Computational Geometry DisciplineFive Minute Speech: Activities Developed in Computational Geometry Discipline
Five Minute Speech: Activities Developed in Computational Geometry Discipline
 
FLTK Summer Course - Part V - Fifth Impact
FLTK Summer Course - Part V - Fifth ImpactFLTK Summer Course - Part V - Fifth Impact
FLTK Summer Course - Part V - Fifth Impact
 
FLTK Summer Course - Part III - Third Impact
FLTK Summer Course - Part III - Third ImpactFLTK Summer Course - Part III - Third Impact
FLTK Summer Course - Part III - Third Impact
 
Personal Presentation
Personal PresentationPersonal Presentation
Personal Presentation
 
Tree01
Tree01Tree01
Tree01
 
Tree02
Tree02Tree02
Tree02
 
11 names-of-foodstuffs-in-indian-languages
11 names-of-foodstuffs-in-indian-languages11 names-of-foodstuffs-in-indian-languages
11 names-of-foodstuffs-in-indian-languages
 
Introduction to Delphi - June 2004
Introduction to Delphi - June 2004Introduction to Delphi - June 2004
Introduction to Delphi - June 2004
 
F&b service basicterminology
F&b service basicterminologyF&b service basicterminology
F&b service basicterminology
 
F&b notes basics
F&b notes   basicsF&b notes   basics
F&b notes basics
 

Semelhante a Implementing Product Line Variabilities - Presentation

Implementing Product Line Variabilities
Implementing Product Line VariabilitiesImplementing Product Line Variabilities
Implementing Product Line VariabilitiesMichel Alves
 
Análise Comparativa de Persistência de Dados Entre Hibernate e NHibernate
Análise Comparativa de Persistência de Dados Entre Hibernate e NHibernateAnálise Comparativa de Persistência de Dados Entre Hibernate e NHibernate
Análise Comparativa de Persistência de Dados Entre Hibernate e NHibernateRicardo Rinco
 
Poo apostila visual c
Poo apostila visual cPoo apostila visual c
Poo apostila visual cFabiano Lima
 
ANÁLISE DO PARADIGMA HÍBRIDO NA INDÚSTRIA DE SOFTWARE
ANÁLISE DO PARADIGMA HÍBRIDO NA INDÚSTRIA DE SOFTWAREANÁLISE DO PARADIGMA HÍBRIDO NA INDÚSTRIA DE SOFTWARE
ANÁLISE DO PARADIGMA HÍBRIDO NA INDÚSTRIA DE SOFTWAREKéllyson Gonçalves da Silva
 
387555062-analise-sistemas-pdf.pdf
387555062-analise-sistemas-pdf.pdf387555062-analise-sistemas-pdf.pdf
387555062-analise-sistemas-pdf.pdfNickMartinsgaspar
 
O uso de programação reflexiva para o desenvolvimento de aplicações comerciai...
O uso de programação reflexiva para o desenvolvimento de aplicações comerciai...O uso de programação reflexiva para o desenvolvimento de aplicações comerciai...
O uso de programação reflexiva para o desenvolvimento de aplicações comerciai...Jefferson Simão Gonçalves
 
Um Estudo sobre Gerenciamento de Variabilidade em Linhas de Processo de Software
Um Estudo sobre Gerenciamento de Variabilidade em Linhas de Processo de SoftwareUm Estudo sobre Gerenciamento de Variabilidade em Linhas de Processo de Software
Um Estudo sobre Gerenciamento de Variabilidade em Linhas de Processo de SoftwareEdson Oliveira Junior
 
Uma metodologia para captura e teste de requisitos não funcionais de ambiente...
Uma metodologia para captura e teste de requisitos não funcionais de ambiente...Uma metodologia para captura e teste de requisitos não funcionais de ambiente...
Uma metodologia para captura e teste de requisitos não funcionais de ambiente...Gerson Lobato
 
Hexagonal Rails
Hexagonal RailsHexagonal Rails
Hexagonal RailsLuiz Costa
 
UM ESTUDO SOBRE GERENCIAMENTO DE VARIABLIDADES EM LINHAS DE PROCESSO DE SOFTWARE
UM ESTUDO SOBRE GERENCIAMENTO DE VARIABLIDADES EM LINHAS DE PROCESSO DE SOFTWAREUM ESTUDO SOBRE GERENCIAMENTO DE VARIABLIDADES EM LINHAS DE PROCESSO DE SOFTWARE
UM ESTUDO SOBRE GERENCIAMENTO DE VARIABLIDADES EM LINHAS DE PROCESSO DE SOFTWAREEdson Oliveira Junior
 
O uso de frameworks em aplicações desktop baseadas na metodologia de desenvol...
O uso de frameworks em aplicações desktop baseadas na metodologia de desenvol...O uso de frameworks em aplicações desktop baseadas na metodologia de desenvol...
O uso de frameworks em aplicações desktop baseadas na metodologia de desenvol...Rogério Batista
 
Frameworks de desenvolvimento web
Frameworks de desenvolvimento webFrameworks de desenvolvimento web
Frameworks de desenvolvimento webArlindo Santos
 
Como DDD e Strategic Design estão nos ajudando a modernizar um Legado
Como DDD e Strategic Design estão nos ajudando a modernizar um LegadoComo DDD e Strategic Design estão nos ajudando a modernizar um Legado
Como DDD e Strategic Design estão nos ajudando a modernizar um LegadoLuiz Costa
 
TDC2016SP - Trilha Microservices
TDC2016SP - Trilha MicroservicesTDC2016SP - Trilha Microservices
TDC2016SP - Trilha Microservicestdc-globalcode
 
Monografia eng soft1_halan
Monografia eng soft1_halanMonografia eng soft1_halan
Monografia eng soft1_halanHalan Ridolphi
 

Semelhante a Implementing Product Line Variabilities - Presentation (20)

Implementing Product Line Variabilities
Implementing Product Line VariabilitiesImplementing Product Line Variabilities
Implementing Product Line Variabilities
 
Análise Comparativa de Persistência de Dados Entre Hibernate e NHibernate
Análise Comparativa de Persistência de Dados Entre Hibernate e NHibernateAnálise Comparativa de Persistência de Dados Entre Hibernate e NHibernate
Análise Comparativa de Persistência de Dados Entre Hibernate e NHibernate
 
Poo apostila visual c
Poo apostila visual cPoo apostila visual c
Poo apostila visual c
 
Arquitetura de Software
Arquitetura de SoftwareArquitetura de Software
Arquitetura de Software
 
Reuso desw
Reuso deswReuso desw
Reuso desw
 
ANÁLISE DO PARADIGMA HÍBRIDO NA INDÚSTRIA DE SOFTWARE
ANÁLISE DO PARADIGMA HÍBRIDO NA INDÚSTRIA DE SOFTWAREANÁLISE DO PARADIGMA HÍBRIDO NA INDÚSTRIA DE SOFTWARE
ANÁLISE DO PARADIGMA HÍBRIDO NA INDÚSTRIA DE SOFTWARE
 
Aula1 Apresentacao TEES
Aula1 Apresentacao TEESAula1 Apresentacao TEES
Aula1 Apresentacao TEES
 
387555062-analise-sistemas-pdf.pdf
387555062-analise-sistemas-pdf.pdf387555062-analise-sistemas-pdf.pdf
387555062-analise-sistemas-pdf.pdf
 
O uso de programação reflexiva para o desenvolvimento de aplicações comerciai...
O uso de programação reflexiva para o desenvolvimento de aplicações comerciai...O uso de programação reflexiva para o desenvolvimento de aplicações comerciai...
O uso de programação reflexiva para o desenvolvimento de aplicações comerciai...
 
Um Estudo sobre Gerenciamento de Variabilidade em Linhas de Processo de Software
Um Estudo sobre Gerenciamento de Variabilidade em Linhas de Processo de SoftwareUm Estudo sobre Gerenciamento de Variabilidade em Linhas de Processo de Software
Um Estudo sobre Gerenciamento de Variabilidade em Linhas de Processo de Software
 
Uma metodologia para captura e teste de requisitos não funcionais de ambiente...
Uma metodologia para captura e teste de requisitos não funcionais de ambiente...Uma metodologia para captura e teste de requisitos não funcionais de ambiente...
Uma metodologia para captura e teste de requisitos não funcionais de ambiente...
 
Hexagonal Rails
Hexagonal RailsHexagonal Rails
Hexagonal Rails
 
UM ESTUDO SOBRE GERENCIAMENTO DE VARIABLIDADES EM LINHAS DE PROCESSO DE SOFTWARE
UM ESTUDO SOBRE GERENCIAMENTO DE VARIABLIDADES EM LINHAS DE PROCESSO DE SOFTWAREUM ESTUDO SOBRE GERENCIAMENTO DE VARIABLIDADES EM LINHAS DE PROCESSO DE SOFTWARE
UM ESTUDO SOBRE GERENCIAMENTO DE VARIABLIDADES EM LINHAS DE PROCESSO DE SOFTWARE
 
O uso de frameworks em aplicações desktop baseadas na metodologia de desenvol...
O uso de frameworks em aplicações desktop baseadas na metodologia de desenvol...O uso de frameworks em aplicações desktop baseadas na metodologia de desenvol...
O uso de frameworks em aplicações desktop baseadas na metodologia de desenvol...
 
DOOR BLE
DOOR BLEDOOR BLE
DOOR BLE
 
Frameworks de desenvolvimento web
Frameworks de desenvolvimento webFrameworks de desenvolvimento web
Frameworks de desenvolvimento web
 
Como DDD e Strategic Design estão nos ajudando a modernizar um Legado
Como DDD e Strategic Design estão nos ajudando a modernizar um LegadoComo DDD e Strategic Design estão nos ajudando a modernizar um Legado
Como DDD e Strategic Design estão nos ajudando a modernizar um Legado
 
Travalho versao final
Travalho versao finalTravalho versao final
Travalho versao final
 
TDC2016SP - Trilha Microservices
TDC2016SP - Trilha MicroservicesTDC2016SP - Trilha Microservices
TDC2016SP - Trilha Microservices
 
Monografia eng soft1_halan
Monografia eng soft1_halanMonografia eng soft1_halan
Monografia eng soft1_halan
 

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

Manual da CPSA_1_Agir com Autonomia para envio
Manual da CPSA_1_Agir com Autonomia para envioManual da CPSA_1_Agir com Autonomia para envio
Manual da CPSA_1_Agir com Autonomia para envioManuais Formação
 
Construção (C)erta - Nós Propomos! Sertã
Construção (C)erta - Nós Propomos! SertãConstrução (C)erta - Nós Propomos! Sertã
Construção (C)erta - Nós Propomos! SertãIlda Bicacro
 
Bullying - Atividade com caça- palavras
Bullying   - Atividade com  caça- palavrasBullying   - Atividade com  caça- palavras
Bullying - Atividade com caça- palavrasMary Alvarenga
 
Considere a seguinte situação fictícia: Durante uma reunião de equipe em uma...
Considere a seguinte situação fictícia:  Durante uma reunião de equipe em uma...Considere a seguinte situação fictícia:  Durante uma reunião de equipe em uma...
Considere a seguinte situação fictícia: Durante uma reunião de equipe em uma...azulassessoria9
 
o ciclo do contato Jorge Ponciano Ribeiro.pdf
o ciclo do contato Jorge Ponciano Ribeiro.pdfo ciclo do contato Jorge Ponciano Ribeiro.pdf
o ciclo do contato Jorge Ponciano Ribeiro.pdfCamillaBrito19
 
Noções de Farmacologia - Flávia Soares.pdf
Noções de Farmacologia - Flávia Soares.pdfNoções de Farmacologia - Flávia Soares.pdf
Noções de Farmacologia - Flávia Soares.pdflucassilva721057
 
análise de redação completa - Dissertação
análise de redação completa - Dissertaçãoanálise de redação completa - Dissertação
análise de redação completa - DissertaçãoMaiteFerreira4
 
ENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdf
ENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdfENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdf
ENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdfLeloIurk1
 
Atividade sobre os Pronomes Pessoais.pptx
Atividade sobre os Pronomes Pessoais.pptxAtividade sobre os Pronomes Pessoais.pptx
Atividade sobre os Pronomes Pessoais.pptxDianaSheila2
 
Nós Propomos! " Pinhais limpos, mundo saudável"
Nós Propomos! " Pinhais limpos, mundo saudável"Nós Propomos! " Pinhais limpos, mundo saudável"
Nós Propomos! " Pinhais limpos, mundo saudável"Ilda Bicacro
 
GEOGRAFIA - ENSINO FUNDAMENTAL ANOS FINAIS.pdf
GEOGRAFIA - ENSINO FUNDAMENTAL ANOS FINAIS.pdfGEOGRAFIA - ENSINO FUNDAMENTAL ANOS FINAIS.pdf
GEOGRAFIA - ENSINO FUNDAMENTAL ANOS FINAIS.pdfElianeElika
 
JOGO FATO OU FAKE - ATIVIDADE LUDICA(1).pptx
JOGO FATO OU FAKE - ATIVIDADE LUDICA(1).pptxJOGO FATO OU FAKE - ATIVIDADE LUDICA(1).pptx
JOGO FATO OU FAKE - ATIVIDADE LUDICA(1).pptxTainTorres4
 
ATIVIDADE PARA ENTENDER -Pizzaria dos Descritores
ATIVIDADE PARA ENTENDER -Pizzaria dos DescritoresATIVIDADE PARA ENTENDER -Pizzaria dos Descritores
ATIVIDADE PARA ENTENDER -Pizzaria dos DescritoresAnaCarinaKucharski1
 
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdf
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdfPRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdf
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdfprofesfrancleite
 
"É melhor praticar para a nota" - Como avaliar comportamentos em contextos de...
"É melhor praticar para a nota" - Como avaliar comportamentos em contextos de..."É melhor praticar para a nota" - Como avaliar comportamentos em contextos de...
"É melhor praticar para a nota" - Como avaliar comportamentos em contextos de...Rosalina Simão Nunes
 
PROGRAMA DE AÇÃO 2024 - MARIANA DA SILVA MORAES.pdf
PROGRAMA DE AÇÃO 2024 - MARIANA DA SILVA MORAES.pdfPROGRAMA DE AÇÃO 2024 - MARIANA DA SILVA MORAES.pdf
PROGRAMA DE AÇÃO 2024 - MARIANA DA SILVA MORAES.pdfMarianaMoraesMathias
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...azulassessoria9
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...azulassessoria9
 

Último (20)

Manual da CPSA_1_Agir com Autonomia para envio
Manual da CPSA_1_Agir com Autonomia para envioManual da CPSA_1_Agir com Autonomia para envio
Manual da CPSA_1_Agir com Autonomia para envio
 
Construção (C)erta - Nós Propomos! Sertã
Construção (C)erta - Nós Propomos! SertãConstrução (C)erta - Nós Propomos! Sertã
Construção (C)erta - Nós Propomos! Sertã
 
Bullying - Atividade com caça- palavras
Bullying   - Atividade com  caça- palavrasBullying   - Atividade com  caça- palavras
Bullying - Atividade com caça- palavras
 
Considere a seguinte situação fictícia: Durante uma reunião de equipe em uma...
Considere a seguinte situação fictícia:  Durante uma reunião de equipe em uma...Considere a seguinte situação fictícia:  Durante uma reunião de equipe em uma...
Considere a seguinte situação fictícia: Durante uma reunião de equipe em uma...
 
o ciclo do contato Jorge Ponciano Ribeiro.pdf
o ciclo do contato Jorge Ponciano Ribeiro.pdfo ciclo do contato Jorge Ponciano Ribeiro.pdf
o ciclo do contato Jorge Ponciano Ribeiro.pdf
 
Noções de Farmacologia - Flávia Soares.pdf
Noções de Farmacologia - Flávia Soares.pdfNoções de Farmacologia - Flávia Soares.pdf
Noções de Farmacologia - Flávia Soares.pdf
 
análise de redação completa - Dissertação
análise de redação completa - Dissertaçãoanálise de redação completa - Dissertação
análise de redação completa - Dissertação
 
Bullying, sai pra lá
Bullying,  sai pra láBullying,  sai pra lá
Bullying, sai pra lá
 
ENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdf
ENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdfENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdf
ENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdf
 
Atividade sobre os Pronomes Pessoais.pptx
Atividade sobre os Pronomes Pessoais.pptxAtividade sobre os Pronomes Pessoais.pptx
Atividade sobre os Pronomes Pessoais.pptx
 
Nós Propomos! " Pinhais limpos, mundo saudável"
Nós Propomos! " Pinhais limpos, mundo saudável"Nós Propomos! " Pinhais limpos, mundo saudável"
Nós Propomos! " Pinhais limpos, mundo saudável"
 
GEOGRAFIA - ENSINO FUNDAMENTAL ANOS FINAIS.pdf
GEOGRAFIA - ENSINO FUNDAMENTAL ANOS FINAIS.pdfGEOGRAFIA - ENSINO FUNDAMENTAL ANOS FINAIS.pdf
GEOGRAFIA - ENSINO FUNDAMENTAL ANOS FINAIS.pdf
 
JOGO FATO OU FAKE - ATIVIDADE LUDICA(1).pptx
JOGO FATO OU FAKE - ATIVIDADE LUDICA(1).pptxJOGO FATO OU FAKE - ATIVIDADE LUDICA(1).pptx
JOGO FATO OU FAKE - ATIVIDADE LUDICA(1).pptx
 
ATIVIDADE PARA ENTENDER -Pizzaria dos Descritores
ATIVIDADE PARA ENTENDER -Pizzaria dos DescritoresATIVIDADE PARA ENTENDER -Pizzaria dos Descritores
ATIVIDADE PARA ENTENDER -Pizzaria dos Descritores
 
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdf
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdfPRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdf
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdf
 
"É melhor praticar para a nota" - Como avaliar comportamentos em contextos de...
"É melhor praticar para a nota" - Como avaliar comportamentos em contextos de..."É melhor praticar para a nota" - Como avaliar comportamentos em contextos de...
"É melhor praticar para a nota" - Como avaliar comportamentos em contextos de...
 
PROGRAMA DE AÇÃO 2024 - MARIANA DA SILVA MORAES.pdf
PROGRAMA DE AÇÃO 2024 - MARIANA DA SILVA MORAES.pdfPROGRAMA DE AÇÃO 2024 - MARIANA DA SILVA MORAES.pdf
PROGRAMA DE AÇÃO 2024 - MARIANA DA SILVA MORAES.pdf
 
CINEMATICA DE LOS MATERIALES Y PARTICULA
CINEMATICA DE LOS MATERIALES Y PARTICULACINEMATICA DE LOS MATERIALES Y PARTICULA
CINEMATICA DE LOS MATERIALES Y PARTICULA
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
 

Implementing Product Line Variabilities - Presentation

  • 1. Universidade Federal de Alagoas - UFAL - Campus A. C. Simões - Tabuleiro do Martins - Maceió - AL, CEP: 57072-970 - Instituto de Computação (IC) Implementing Product Line Variabilities :: Implementação de Variabilidades em Linhas de Produto de Software :: Seminário :: Prof. Arturo Hernández Implementing Product Line Variabilities Implementação de Variabilidades em Linhas de Produto de Software Michel Alves dos Santos :: Ailton Felix de Lima Filho Universidade Federal de Alagoas, Campus A. C. Simões Tabuleiro do Martins - Maceió - AL, CEP: 57072-970 Docente Responsável: Prof. Dr. Arturo Hernández {michel.mas,afdlf2}@gmail.com 08 de Outubro de 2012 Michel Alves • Ailton Felix : Bacharelado em Ciência da Computação Instituto de Computação - Bloco 12 - Campus A. C. Simões - UFAL
  • 2. Universidade Federal de Alagoas - UFAL - Campus A. C. Simões - Tabuleiro do Martins - Maceió - AL, CEP: 57072-970 - Instituto de Computação (IC) Implementing Product Line Variabilities :: Implementação de Variabilidades em Linhas de Produto de Software :: Seminário :: Prof. Arturo Hernández Introdução Principais Objetivos da Apresentação Implementing Product Line Variabilities Michalis Anastasopoulos Fraunhofer Institute for Experimental Software Engineering Sauerwiesen 6 D-67661 Kaiserslautern, Germany +49 (0) 6301 707 168 anastaso@iese.fhg.de ABSTRACT Software product lines have numerous members. Thus, a product line infrastructure must cover various systems. This is the significant difference to usual software systems and the reason for additional requirements on the various assets present during software product line engineering. It is imperative that they support the description of the product line as a whole, as well as its instantiation for the derivation of individual products. Literature has already addressed how to create and instantiate generic product line assets, such as domain models and architectures to generate instance specific ones [1, 2, 3], yet little attention has been given on how to actually deal with this genericity at the code level. This paper addresses the issue of handling product line variability at the code level. To this end various implementation approaches are examined with respect to their use in a product line context. Keywords Software product lines, product line variability, implementation approaches, implementing variabilities, traceability 1. INTRODUCTION Software product lines have numerous members. Thus, a product line infrastructure must cover various systems. This is the significant difference to usual software systems and the reason for additional requirements on the various assets present during software product line engineering. It is imperative that they support the description of the product line as a whole, as well as its instantiation for the derivation of individual products. To reflect a product line, the generic assets have to cover all elements the product family is built from, and their corresponding composition rules. Clarifying how the various parts may be combined is a very challenging task. Generic assets differ from specific ones in the fact that they embrace common and variable product aspects. Generic assets can be instantiated, that is, product-specific assets can be derived from them. Specific assets on the other hand are uniquely mapped to product line members. Products within a product line context consist of constant as well as variable elements. Dependencies between these elements do exist (e.g., elements may exclude each other or one element may make the integration of a second one a necessity). Hence only a subset of all combinations are correct and complete configurations. Therefore we have to restrict the product line infrastructure to cover only the set of valid family members. A decision model structures the variability within a product line as a set of decisions to be resolved. Interrelations between decisions are captured as well. Such a model is also generic, that is, it can be also instantiated. In the instance all decisions are resolved. Every diversity in each generic asset must be connected to an open decision in the decision model. The presence of a decision model is important because a decision model specifies an instance of each generic asset and thus a complete product line member. Literature has already addressed how to create and instantiate generic product line assets, such as domain models and architectures to generate instance specific ones [1, 2, 3], yet little attention has been given on how to actually deal with this genericity at the code level. Variabilities and their composition rules must also be reflected at the code level, and be instantiated when creating individual product instances. This paper addresses the issue of handling product line variability at the code level. To this end various implementation approaches are examined with respect to their use in a product line context. The rest of this paper is structured as follows: section 2 introduces some of the relevant related work, this is followed by a discussion on the types of variabilities to be supported and the requirements for their implementation support (section 3), we then introduce our framework for comparison of implementation approaches (section 4), present some examples of the techniques discussed (section 5), and briefly discuss evaluation criteria needed for implementation techniques (section 6). Section 7 comments on some of our practical experience and section 8 concludes the paper with a short discussion of the various research needs we have been able to elicit so far. It should be noted that this paper’s purpose is not to impart profound insights into the technologies but only to report on the possibilities of their use for handling code variabilities in a product line. Finally we must mention that the set of approaches presented here is not complete. We are certain that other approaches may also be advantageous in this context. We believe though that their majority bears upon the collection introduced here. 2. RELATED WORK James Coplien in his book “Multi-Paradigm Design for C++” [4] presents a design method that takes advantage of the popular programming language’s support for multiple paradigms, such as classes, over-loaded functions, templates, modules, and procedural programming. Each of those paradigms is described as being uniquely suitable for solving a specific class of design problems. This conclusion is particularly important for product line engineering because the book has a strong focus on problems related to the realization of commonalities and variabilities. David Sharp has studied [5] existing object oriented techniques that facilitate anticipated variabilities between different software versions. Parameters of variations, which refer to the different aspects of software that can vary, are being initially identified. Tailoring techniques featured by languages like C++ and Ada95 are described next. Each technique is categorized with respect to the supported combinations of variabilities for each parameter of variation. Scope, 1 This work was done while the author was working for the IESE Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. SSR’01, May 18-20, 2001, Toronto, Ontario, Canada. Copyright 2001 ACM 1-58113-358-8/01/0005...$5.00. Cristina Gacek1 Centre for Software Reliability Department of Computing Science University of Newcastle NE1 7RU Newcastle upon Tyne, United Kingdom +44 (0) 191 222 5153 cristina.gacek@ncl.ac.uk 109 Debater sobre o conteúdo do paper intitulado Implementing Product Line Variabilities (Autores: M. Anastasopoulos and C. Gacek.). Comentar a respeito de alguns trabalhos relacionados ao tema. Debater sobre os requerimentos necessários a implementação da técnica. Analisar os tipos mais comuns (e largamente aceitos) de Variabilidade. Apresentar uma comparação de abordagens de implementação e alguns critérios de avaliação. O que entendemos por Variabilidade? Michel Alves • Ailton Felix : Bacharelado em Ciência da Computação Instituto de Computação - Bloco 12 - Campus A. C. Simões - UFAL
  • 3. Universidade Federal de Alagoas - UFAL - Campus A. C. Simões - Tabuleiro do Martins - Maceió - AL, CEP: 57072-970 - Instituto de Computação (IC) Implementing Product Line Variabilities :: Implementação de Variabilidades em Linhas de Produto de Software :: Seminário :: Prof. Arturo Hernández Trabalhos Relacionados Apanhado de Trabalhos Relacionados James Coplien, Multi-Paradigm Design for C++, Addison Wesley, 1995 David C. Sharp, “Containing and Facilitating Change Via Object Oriented Tailoring Techniques,” to appear in Proceedings of The First Software Product Line Conference Denver, Colorado, August, 2000 Mikael Svahnberg, Variability in Evolving Software Product Lines, Licentiate thesis, Blekinge Institute of Technology, Department of Software Engineering and Computer Science, Karlskrona, Sweden, 2000 Jilles Van Gurp, Jan Bosch, and Mikael Svahnberg. On the Notion of Variability in Software Product Lines. In Proceedings of the Working IEEE/IFIP Conference on Software Architecture (WICSA’01), 2001. Michel Alves • Ailton Felix : Bacharelado em Ciência da Computação Instituto de Computação - Bloco 12 - Campus A. C. Simões - UFAL
  • 4. Universidade Federal de Alagoas - UFAL - Campus A. C. Simões - Tabuleiro do Martins - Maceió - AL, CEP: 57072-970 - Instituto de Computação (IC) Implementing Product Line Variabilities :: Implementação de Variabilidades em Linhas de Produto de Software :: Seminário :: Prof. Arturo Hernández Requerimentos Requerimentos para Suporte a Implementação Figure: Visão geral dos tipos de feature e critérios de inclusão em uma linha de produto. Toda variabilidade encontrada em um contexto de linha de produto pode ser conectada a sua feature correspondente. A relação entre feature e variabilidade é de 1:N, pois a implementação da mesma geralmente se encontra espalhada pelos aquivos fontes e módulos. Michel Alves • Ailton Felix : Bacharelado em Ciência da Computação Instituto de Computação - Bloco 12 - Campus A. C. Simões - UFAL
  • 5. Universidade Federal de Alagoas - UFAL - Campus A. C. Simões - Tabuleiro do Martins - Maceió - AL, CEP: 57072-970 - Instituto de Computação (IC) Implementing Product Line Variabilities :: Implementação de Variabilidades em Linhas de Produto de Software :: Seminário :: Prof. Arturo Hernández Tipos de Variabilidade Categorização dos Tipos de Variabilidade Classificação em Tempo de Resolução (Binding Time) Em tempo de compilação (Compile-time), em tempo de ligação (Link-time), em tempo de execução (Runtime) e em tempo de atualização (Update-time/Post-runtime). Michel Alves • Ailton Felix : Bacharelado em Ciência da Computação Instituto de Computação - Bloco 12 - Campus A. C. Simões - UFAL
  • 6. Universidade Federal de Alagoas - UFAL - Campus A. C. Simões - Tabuleiro do Martins - Maceió - AL, CEP: 57072-970 - Instituto de Computação (IC) Implementing Product Line Variabilities :: Implementação de Variabilidades em Linhas de Produto de Software :: Seminário :: Prof. Arturo Hernández Comparação de Abordagens de Implementação Abordagens para Implementação de Variabilidade Figure: Matriz de comparação de abordagens de implementação de variabilidade. Michel Alves • Ailton Felix : Bacharelado em Ciência da Computação Instituto de Computação - Bloco 12 - Campus A. C. Simões - UFAL
  • 7. Universidade Federal de Alagoas - UFAL - Campus A. C. Simões - Tabuleiro do Martins - Maceió - AL, CEP: 57072-970 - Instituto de Computação (IC) Implementing Product Line Variabilities :: Implementação de Variabilidades em Linhas de Produto de Software :: Seminário :: Prof. Arturo Hernández Comparação de Abordagens - Mapeamento das Linguagens Mapeamento das Linguagens Usadas na Exemplificação Figure: Mapeamento de abordagens nas linguagens: C++, Delphi, Java e Smalltalk. Michel Alves • Ailton Felix : Bacharelado em Ciência da Computação Instituto de Computação - Bloco 12 - Campus A. C. Simões - UFAL
  • 8. Universidade Federal de Alagoas - UFAL - Campus A. C. Simões - Tabuleiro do Martins - Maceió - AL, CEP: 57072-970 - Instituto de Computação (IC) Implementing Product Line Variabilities :: Implementação de Variabilidades em Linhas de Produto de Software :: Seminário :: Prof. Arturo Hernández Exemplos - Delegação, Compilação Condicional e Design Patterns Utilizando Delegação, Compilação Condicional e Design Patterns Figure: Utilização de Delegação, Compilação Condicional e Design Patterns. Michel Alves • Ailton Felix : Bacharelado em Ciência da Computação Instituto de Computação - Bloco 12 - Campus A. C. Simões - UFAL
  • 9. Universidade Federal de Alagoas - UFAL - Campus A. C. Simões - Tabuleiro do Martins - Maceió - AL, CEP: 57072-970 - Instituto de Computação (IC) Implementing Product Line Variabilities :: Implementação de Variabilidades em Linhas de Produto de Software :: Seminário :: Prof. Arturo Hernández Avaliação da Variabilidade Critérios de Avaliação na Implementação de Técnicas No artigo são identificados três tipos de critérios: Critérios Fundamentais de Comparação e Avaliação Critérios Extendidos de Comparação e Avaliação Elementos Primitivos Existentes em Linguagens Michel Alves • Ailton Felix : Bacharelado em Ciência da Computação Instituto de Computação - Bloco 12 - Campus A. C. Simões - UFAL
  • 10. Universidade Federal de Alagoas - UFAL - Campus A. C. Simões - Tabuleiro do Martins - Maceió - AL, CEP: 57072-970 - Instituto de Computação (IC) Implementing Product Line Variabilities :: Implementação de Variabilidades em Linhas de Produto de Software :: Seminário :: Prof. Arturo Hernández Avaliação da Variabilidade - Critérios Fundamentais Critérios de Avaliação na Implementação de Técnicas Critérios Fundamentais de Comparação e Avaliação Escopo: Identifica a menor unidade de integração suportada. Flexibilidade: Medida do tempo de integração. Eficiência: Custo de suporte da integrabilidade. Compatibilidade Binária: Medida de compatibilidade com bibliotecas pré-compiladas. Tal lista é extendida pelos autores através de mais sete atributos chamados de critérios extendidos. Michel Alves • Ailton Felix : Bacharelado em Ciência da Computação Instituto de Computação - Bloco 12 - Campus A. C. Simões - UFAL
  • 11. Universidade Federal de Alagoas - UFAL - Campus A. C. Simões - Tabuleiro do Martins - Maceió - AL, CEP: 57072-970 - Instituto de Computação (IC) Implementing Product Line Variabilities :: Implementação de Variabilidades em Linhas de Produto de Software :: Seminário :: Prof. Arturo Hernández Avaliação da Variabilidade - Critérios Extendidos Critérios de Avaliação na Implementação de Técnicas Critérios Extendidos de Comparação e Avaliação Separação de Lógica: Partes variantes e invariantes de código. Escalabilidade: Impactos na expansão do código. Rastreamento Realizável: Capacidade de rastrear uma unidade de integração. Facilidade de Introdução: Grau de reestruturação requerida dos sistemas quando ocorre a introdução da técnica. Suporte em Linguagem: Forma com as linguagens existentes podem usufruir da técnica. Suporte a Ferramentas: Automação no uso das técnicas. Facilidade de Contorno: Simulação ou emulação através de outras técnicas. Outro aspecto interessante que deve ser levado em consideração no momento da avaliação é a descoberta de elementos primitivos da linguagem. Michel Alves • Ailton Felix : Bacharelado em Ciência da Computação Instituto de Computação - Bloco 12 - Campus A. C. Simões - UFAL
  • 12. Universidade Federal de Alagoas - UFAL - Campus A. C. Simões - Tabuleiro do Martins - Maceió - AL, CEP: 57072-970 - Instituto de Computação (IC) Implementing Product Line Variabilities :: Implementação de Variabilidades em Linhas de Produto de Software :: Seminário :: Prof. Arturo Hernández Avaliação da Variabilidade - Elementos Primitivos Critérios de Avaliação na Implementação de Técnicas Elementos Primitivos Existentes em Linguagens Adição de Níveis de Indireção: Técnicas como delegation. Pode causar impactos na eficiência pois toda uma classe deve ser carregada antes da invocação de um método. Ligação Tardia (Late Binding): Utilizada nos mecanismos de herança virtual, ligando código de um método a sua declaração em tempo de execução. Ligação Precoce (Early Binding): Manutenção de informação estática. Utilizada em bibliotecas de tipo. Mais rápido que a ligação tardia. Tipos Abstratos: Classes Abstratas são um exemplo. Definem funcionalidade sem implementação que geralmente é fornecido em subclasses. Criam interfaces comuns para acesso as instâncias e reduzem o acoplamento em pontos de variabilidade. Mecanismos de Composição: Usados para implementar aspectos dos sistemas separadamente e depois combiná-los para obtenção do sistema final. Michel Alves • Ailton Felix : Bacharelado em Ciência da Computação Instituto de Computação - Bloco 12 - Campus A. C. Simões - UFAL
  • 13. Universidade Federal de Alagoas - UFAL - Campus A. C. Simões - Tabuleiro do Martins - Maceió - AL, CEP: 57072-970 - Instituto de Computação (IC) Implementing Product Line Variabilities :: Implementação de Variabilidades em Linhas de Produto de Software :: Seminário :: Prof. Arturo Hernández Conclusões Conclusões a Respeito dos Tópicos Apresentados O Gerenciamento Sistemático de Variabilidade a nível de código é um campo um tanto imaturo, necessitando de mais esforços científico-investigativos. A migração de sistemas com fraco gerenciamento de variabilidade para sistemas que possuem intenso suporte a essa modalidade pode se tornar uma tarefa árida. Diferentes abordagens são necessárias para a resolução de diferentes problemas, a combinação das técnicas hoje disponíveis é algo que não pode ser evitado. Mais trabalhos nessa área necessitam ser realizados! Michel Alves • Ailton Felix : Bacharelado em Ciência da Computação Instituto de Computação - Bloco 12 - Campus A. C. Simões - UFAL
  • 14. Universidade Federal de Alagoas - UFAL - Campus A. C. Simões - Tabuleiro do Martins - Maceió - AL, CEP: 57072-970 - Instituto de Computação (IC) Implementing Product Line Variabilities :: Implementação de Variabilidades em Linhas de Produto de Software :: Seminário :: Prof. Arturo Hernández Agradecimentos Grato Pela Atenção! Michel Alves dos Santos - michel.mas@gmail.com Ailton Felix de Lima Filho - afdlf2@gmail.com Michel Alves • Ailton Felix : Bacharelado em Ciência da Computação Instituto de Computação - Bloco 12 - Campus A. C. Simões - UFAL
  • 15. Universidade Federal de Alagoas - UFAL - Campus A. C. Simões - Tabuleiro do Martins - Maceió - AL, CEP: 57072-970 - Instituto de Computação (IC) Implementing Product Line Variabilities :: Implementação de Variabilidades em Linhas de Produto de Software :: Seminário :: Prof. Arturo Hernández Referências Bibliográficas Referências Bibliográficas M. Anastasopoulos and C. Gacek. Implementing product line variabilities. IESE - International Encounter of Systems Engineering, May 2001. M. Anastasopoulos, J. Bayer, O. Flege, and C. Gacek. A process for product line architecture creation and evaluation. Technical report, IESE, 2000. E. Gamma. Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley, 1994. O. Lewis. Performance Issues Of Variability Design in Embedded System Application Families. PhD thesis, November 2000. M. Svahnberg. Variability in envolving software product lines. Master’s thesis, Blekinge Institute of Technology, Departament of Software Engineering and Computer Science, Karlskrona , Sweden, 2000. Michel Alves • Ailton Felix : Bacharelado em Ciência da Computação Instituto de Computação - Bloco 12 - Campus A. C. Simões - UFAL