implementing product line variabilities - presentation

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

Upload: michel-alves

Post on 28-Jan-2018

293 views

Category:

Education


0 download

TRANSCRIPT

Page 1: Implementing Product Line Variabilities - Presentation

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 VariabilitiesImplementaçã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õesTabuleiro do Martins - Maceió - AL, CEP: 57072-970Docente 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

Page 2: Implementing Product Line Variabilities - Presentation

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 6D-67661 Kaiserslautern, Germany

+49 (0) 6301 707 [email protected]

ABSTRACTSoftware product lines have numerous members. Thus, a product lineinfrastructure must cover various systems. This is the significantdifference to usual software systems and the reason for additionalrequirements on the various assets present during software productline engineering. It is imperative that they support the description ofthe product line as a whole, as well as its instantiation for thederivation of individual products.

Literature has already addressed how to create and instantiate genericproduct line assets, such as domain models and architectures togenerate instance specific ones [1, 2, 3], yet little attention has beengiven on how to actually deal with this genericity at the code level.

This paper addresses the issue of handling product line variability atthe code level. To this end various implementation approaches areexamined with respect to their use in a product line context.

KeywordsSoftware product lines, product line variability, implementationapproaches, implementing variabilities, traceability

1. INTRODUCTIONSoftware product lines have numerous members. Thus, a product lineinfrastructure must cover various systems. This is the significantdifference to usual software systems and the reason for additionalrequirements on the various assets present during software productline engineering. It is imperative that they support the description ofthe product line as a whole, as well as its instantiation for thederivation of individual products. To reflect a product line, the generic assets have to cover all elementsthe product family is built from, and their corresponding compositionrules. Clarifying how the various parts may be combined is a verychallenging task.Generic assets differ from specific ones in the fact that they embracecommon and variable product aspects. Generic assets can beinstantiated, that is, product-specific assets can be derived from them.Specific assets on the other hand are uniquely mapped to product linemembers.Products within a product line context consist of constant as well asvariable elements. Dependencies between these elements do exist(e.g., elements may exclude each other or one element may make theintegration of a second one a necessity). Hence only a subset of allcombinations are correct and complete configurations. Therefore we

have to restrict the product line infrastructure to cover only the set ofvalid family members.

A decision model structures the variability within a product line as aset of decisions to be resolved. Interrelations between decisions arecaptured as well. Such a model is also generic, that is, it can be alsoinstantiated. In the instance all decisions are resolved. Every diversityin each generic asset must be connected to an open

decision in the decision model. The presence of a decision model isimportant because a decision model specifies an instance of eachgeneric asset and thus a complete product line member.

Literature has already addressed how to create and instantiate genericproduct line assets, such as domain models and architectures togenerate instance specific ones [1, 2, 3], yet little attention has beengiven on how to actually deal with this genericity at the code level.Variabilities and their composition rules must also be reflected at thecode level, and be instantiated when creating individual productinstances.

This paper addresses the issue of handling product line variability atthe code level. To this end various implementation approaches areexamined with respect to their use in a product line context. The restof this paper is structured as follows: section 2 introduces some of therelevant related work, this is followed by a discussion on the types ofvariabilities to be supported and the requirements for theirimplementation support (section 3), we then introduce our frameworkfor comparison of implementation approaches (section 4), presentsome examples of the techniques discussed (section 5), and brieflydiscuss evaluation criteria needed for implementation techniques(section 6). Section 7 comments on some of our practical experienceand section 8 concludes the paper with a short discussion of thevarious research needs we have been able to elicit so far.

It should be noted that this paper�s purpose is not to impart profoundinsights into the technologies but only to report on the possibilities oftheir use for handling code variabilities in a product line. Finally wemust mention that the set of approaches presented here is notcomplete. We are certain that other approaches may also beadvantageous in this context. We believe though that their majoritybears upon the collection introduced here.

2. RELATED WORKJames Coplien in his book �Multi-Paradigm Design for C++� [4]presents a design method that takes advantage of the popularprogramming language�s support for multiple paradigms, such asclasses, over-loaded functions, templates, modules, and proceduralprogramming. Each of those paradigms is described as being uniquelysuitable for solving a specific class of design problems. Thisconclusion is particularly important for product line engineeringbecause the book has a strong focus on problems related to therealization of commonalities and variabilities.

David Sharp has studied [5] existing object oriented techniques thatfacilitate anticipated variabilities between different software versions.Parameters of variations, which refer to the different aspects ofsoftware that can vary, are being initially identified. Tailoringtechniques featured by languages like C++ and Ada95 are describednext. Each technique is categorized with respect to the supportedcombinations 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 forpersonal or classroom use is granted without fee provided that copies arenot made or distributed for profit or commercial advantage and thatcopies bear this notice and the full citation on the first page. To copyotherwise, 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 ReliabilityDepartment of Computing Science

University of NewcastleNE1 7RU Newcastle upon Tyne, United Kingdom

+44 (0) 191 222 [email protected]

109

I Debater sobre o conteúdo do paperintitulado Implementing ProductLine Variabilities (Autores: M.Anastasopoulos and C. Gacek.).

I Comentar a respeito de algunstrabalhos relacionados ao tema.

I Debater sobre os requerimentosnecessários a implementação datécnica.

I Analisar os tipos mais comuns (elargamente aceitos) de Variabilidade.

I Apresentar uma comparação deabordagens de implementação ealguns 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

Page 3: Implementing Product Line Variabilities - Presentation

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 OrientedTailoring 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 ofVariability in Software Product Lines. In Proceedings of the WorkingIEEE/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

Page 4: Implementing Product Line Variabilities - Presentation

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 suafeature 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

Page 5: Implementing Product Line Variabilities - Presentation

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 deexecuçã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

Page 6: Implementing Product Line Variabilities - Presentation

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

Page 7: Implementing Product Line Variabilities - Presentation

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

Page 8: Implementing Product Line Variabilities - Presentation

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

Page 9: Implementing Product Line Variabilities - Presentation

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 eAvaliação

Critérios Extendidos de Comparação eAvaliação

Elementos Primitivos Existentes emLinguagens

Michel Alves • Ailton Felix : Bacharelado em Ciência da Computação Instituto de Computação - Bloco 12 - Campus A. C. Simões - UFAL

Page 10: Implementing Product Line Variabilities - Presentation

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

I Escopo: Identifica a menor unidade de integração suportada.I Flexibilidade: Medida do tempo de integração.I Eficiência: Custo de suporte da integrabilidade.I Compatibilidade Binária: Medida de compatibilidade com

bibliotecas pré-compiladas.

Tal lista é extendida pelos autores através de mais seteatributos 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

Page 11: Implementing Product Line Variabilities - Presentation

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

I Separação de Lógica: Partes variantes e invariantes de código.I Escalabilidade: Impactos na expansão do código.I Rastreamento Realizável: Capacidade de rastrear uma unidade de integração.I Facilidade de Introdução: Grau de reestruturação requerida dos sistemas

quando ocorre a introdução da técnica.I Suporte em Linguagem: Forma com as linguagens existentes podem usufruir

da técnica.I Suporte a Ferramentas: Automação no uso das técnicas.I 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 daavaliaçã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

Page 12: Implementing Product Line Variabilities - Presentation

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

I Adição de Níveis de Indireção: Técnicas como delegation. Pode causarimpactos na eficiência pois toda uma classe deve ser carregada antes dainvocação de um método.

I 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.

I 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.

I Tipos Abstratos: Classes Abstratas são um exemplo. Definem funcionalidadesem implementação que geralmente é fornecido em subclasses. Criaminterfaces comuns para acesso as instâncias e reduzem o acoplamento empontos de variabilidade.

I Mecanismos de Composição: Usados para implementar aspectos dos sistemasseparadamente 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

Page 13: Implementing Product Line Variabilities - Presentation

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 campoum tanto imaturo, necessitando de mais esforços científico-investigativos.

A migração de sistemas com fraco gerenciamento de variabilidade parasistemas que possuem intenso suporte a essa modalidade pode se tornar

uma tarefa árida.

Diferentes abordagens são necessárias para a resolução de diferentesproblemas, a combinação das técnicas hoje disponíveis é algo que não

pode ser evitado.

Mais trabalhos nessa área necessitam serrealizados!

Michel Alves • Ailton Felix : Bacharelado em Ciência da Computação Instituto de Computação - Bloco 12 - Campus A. C. Simões - UFAL

Page 14: Implementing Product Line Variabilities - Presentation

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 - [email protected]

Ailton Felix de Lima Filho - [email protected]

Michel Alves • Ailton Felix : Bacharelado em Ciência da Computação Instituto de Computação - Bloco 12 - Campus A. C. Simões - UFAL

Page 15: Implementing Product Line Variabilities - Presentation

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áficasM. 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 andComputer 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