48
Software Product Lines Software Product Lines Geovane Nogueira Lima Prof. Jacques Robin

Software Product Lines Geovane Nogueira Lima Prof. Jacques Robin

Embed Size (px)

Citation preview

Page 1: Software Product Lines Geovane Nogueira Lima Prof. Jacques Robin

Software Product LinesSoftware Product Lines

Geovane Nogueira LimaProf. Jacques Robin

Page 2: Software Product Lines Geovane Nogueira Lima Prof. Jacques Robin

AgendaAgenda

Introdução Product Line: Conceitos

O que é Porque Como Conclusão

A Framework for Software Product Line Practice

Relação entre CMMI and Framework for Software Product Line Practice

PuLSE

Introdução Product Line: Conceitos

O que é Porque Como Conclusão

A Framework for Software Product Line Practice

Relação entre CMMI and Framework for Software Product Line Practice

PuLSE

Page 3: Software Product Lines Geovane Nogueira Lima Prof. Jacques Robin

Universal Business GoalsUniversal Business Goals

Page 4: Software Product Lines Geovane Nogueira Lima Prof. Jacques Robin

The Ultimate Universal GoalThe Ultimate Universal Goal

Page 5: Software Product Lines Geovane Nogueira Lima Prof. Jacques Robin

Poucos sistemas são realmente exclusivos ...

Uma AlternativaUma Alternativa

Muitas organizações produzem famílias de produtos similares, diferenciados por algumas características.

Page 6: Software Product Lines Geovane Nogueira Lima Prof. Jacques Robin

Nokia CelularesNokia Celulares

Linha de produto com 25-30 novos produtos por ano! Variando o número de teclas Variando tamanho do display Variando um conjunto de características Múltiplos protocolos Características configuráveis 58 linguagens suportadas 130 países atendidos

Page 7: Software Product Lines Geovane Nogueira Lima Prof. Jacques Robin

Introdução Product Line: Conceitos

O que é Porque Como Conclusão

A Framework for Software Product Line Practice

Relação entre CMMI and Framework for Software Product Line Practice

PuLSE

Page 8: Software Product Lines Geovane Nogueira Lima Prof. Jacques Robin

O que são Linhas de Produto de O que são Linhas de Produto de Software?Software?

Paulo Clements e Linda Northrop

“ Uma linha de produto de software é um conjunto de sistemas que usam software intensivamente,

compartilhando um conjunto de características comuns e gerenciáveis,

que satisfazem as necessidades de um segmento particular de mercado ou missão,

e que são desenvolvidos a partir de um conjunto comum de ativos principais e de uma forma preestabelecida”

Page 9: Software Product Lines Geovane Nogueira Lima Prof. Jacques Robin
Page 10: Software Product Lines Geovane Nogueira Lima Prof. Jacques Robin

Termos de destaque:Termos de destaque: Segmento particular de mercado:

A definição de um domínio de atuação é fundamental para que a linha traga o retorno esperado.

Uma linha deve estipular uma área de atuação para usufruir do reuso.

Conjunto comum de ativos: Corresponde ao repositório de elementos necessários

para o desenvolvimento dos produtos. Esses elementos são componentes de software e

artefatos de processo que podem ser desenvolvidos, comprados ou extraído de produtos legados;

Forma preestabelecida: Os planos de produção são os esqueletos de cada

produto; indica os passos, ferramentas, modelos e ativos que

serão usados em cada produto

Page 11: Software Product Lines Geovane Nogueira Lima Prof. Jacques Robin

Software Product LineSoftware Product Line

Product Line

• Obter vantagem econômicas da similaridade• Aproveitar a variabilidade

Page 12: Software Product Lines Geovane Nogueira Lima Prof. Jacques Robin

Como Product Line pode Como Product Line pode Ajudar?Ajudar?

Requisitos e Análise de requisitos Domain model Arquitetura e projeto de software Construção Documentação Plano de teste, caso de teste Pessoas: Seu conhecimento e habilidade Processo, Metodologias, e Ferramentas Componentes

Product line amortiza o seu investimentoe de outros ativos:

Page 13: Software Product Lines Geovane Nogueira Lima Prof. Jacques Robin

Os conceitos chavesOs conceitos chaves

Uso de uma repositório comum de

ativosNa Produção

de umDeterminadoconjunto de

produto

Arquitetura Plano de Produção Definição de Escopo,Business Case

Page 14: Software Product Lines Geovane Nogueira Lima Prof. Jacques Robin

DefiniçãoDefinição

Software Product Lines não são:

Reutilização oportuna de código em pequena escala;

Desenvolvimento de um projeto com re-uso;

Arquitetura Re-configurável (O.O.);

Desenvolvimento baseado em componentes;

Page 15: Software Product Lines Geovane Nogueira Lima Prof. Jacques Robin

DefiniçãoDefinição

Product Lines é:

“Product Lines envolve estratégia, reuso planejado que produza resultados

esperados.”

Paulo Clements e Linda Northrop

Page 16: Software Product Lines Geovane Nogueira Lima Prof. Jacques Robin

As Três Atividades Essenciais:As Três Atividades Essenciais:

Em sua essência o modelo de Linhas de Produto envolve desenvolver os ativos principais, desenvolver o(s) produto(s) utilizados os ativos e isso sempre de uma maneira tecnicamente e organizacionalmente gerenciada.

Desenvolvimentode Ativos

Desenvolvimentode Produto

Gerenciamento

Page 17: Software Product Lines Geovane Nogueira Lima Prof. Jacques Robin

Desenvolvimento de AtivosDesenvolvimento de Ativos

Os ativos principais (core assets) correspondemaos itens reutilizáveis dispostos norepositório da Product Line.

Os itens mais importantes nesse processo são: O escopo da Product Line, Os ativos em si, O plano de produção, composto da reunião dos

processos anexos (attached processes).

Page 18: Software Product Lines Geovane Nogueira Lima Prof. Jacques Robin

desenvolvimento dos ativos desenvolvimento dos ativos principaisprincipais

Atividade iterativa.

As flechas rotativas indicam que não há um pontode entrada específico, não há uma relação causalúnica entre as saídas e entradas.

Page 19: Software Product Lines Geovane Nogueira Lima Prof. Jacques Robin

Desenvolvimento do ProdutoDesenvolvimento do Produto

Requisitos de um produto em particular (delta / variação);

O escopo da Product Line, julgando se o produto é compatível ou não;

Os ativos principais;

O Plano de Produção detalhando a utilização dos ativos principais.

Page 20: Software Product Lines Geovane Nogueira Lima Prof. Jacques Robin

GerênciaGerência

Uma gerência adequada interfere diretamenteno sucesso ou fracasso final da Product Line. Prover recurso Coordenar e supervisionar Prover treinamento Recompensar os empregado

apropriadamente Gerenciar interfaces externas Criar e implementar um plano

de adoção para a Product Line

Page 21: Software Product Lines Geovane Nogueira Lima Prof. Jacques Robin

Introdução Product Line: Conceitos

O que é Porque Como Conclusão

A Framework for Software Product Line Practice

Relação entre CMMI e Framework for Software Product Line Practice

PuLSE

A Framework

Page 22: Software Product Lines Geovane Nogueira Lima Prof. Jacques Robin

A Framework forSoftware Product Line Practice

Existem três grandes áreas onde as atividades envolvidas na criação e manutenção de Software Produt Line estão agrupadas:

Software Engineer (SEPA)

Technical management (TMPA)

Organizational Management (OMPA)

Page 23: Software Product Lines Geovane Nogueira Lima Prof. Jacques Robin

Software Engineer Practice Software Engineer Practice Areas (SEPA)Areas (SEPA)

São atividades necessárias para aplicar as tecnologias apropriadas à criação e evolução dos ativos principais e dos produtos.

Áreas:• Architecture Definition • Architecture Evaluation • Component Development • COTS Utilization • Mining Existing Assets • Requirements Engineering • Software System Integration • Testing • Understanding Relevant Domains

Page 24: Software Product Lines Geovane Nogueira Lima Prof. Jacques Robin

Relacionamento entre as Relacionamento entre as Practice AreasPractice Areas

Page 25: Software Product Lines Geovane Nogueira Lima Prof. Jacques Robin

Practice Area RelationshipsPractice Area Relationships

Page 26: Software Product Lines Geovane Nogueira Lima Prof. Jacques Robin

Technical Management Technical Management Practice Areas (TMPA)Practice Areas (TMPA)

São atividades referentes aspráticas de gerenciamento necessárias para estabelecer acriação e evolução dos ativos principais e do produto..

Áreas:• Configuration Management • Data Collection, Metrics, and Tracking • Make/Buy/Mine/Commission Analysis • Process Definition • Scoping • Technical Planning • Technical Risk Management • Tool Support

Page 27: Software Product Lines Geovane Nogueira Lima Prof. Jacques Robin

Organizational Management Organizational Management Practice Areas (OMPA)Practice Areas (OMPA)

São atividades referentes aspráticas de gerenciamento estratégico para obtermáxima vantagens da capacidade da Product Line...

Áreas:• Building a Business Case • Customer Interface Management • Developing an Acquisition Strategy • Funding • Launching and Institutionalizing • Market Analysis • Operations • Organizational Planning • Organizational Risk Management• Structuring the Organization • Technology Forecasting • Training

Page 28: Software Product Lines Geovane Nogueira Lima Prof. Jacques Robin

FrameworkFramework

Page 29: Software Product Lines Geovane Nogueira Lima Prof. Jacques Robin

Exemplo de uma fábricaExemplo de uma fábrica

Page 30: Software Product Lines Geovane Nogueira Lima Prof. Jacques Robin

Fases da Product LineFases da Product Line

Page 31: Software Product Lines Geovane Nogueira Lima Prof. Jacques Robin

Fases da Product LineFases da Product Line

Page 32: Software Product Lines Geovane Nogueira Lima Prof. Jacques Robin

CMMI X Framework for SPL CMMI X Framework for SPL PracticePractice

Introdução Product Line: Conceitos

O que é Porque Como Conclusão

A Framework for Software Product Line Practice

Relação entre CMMI e Framework for Software Product Line Practice

PuLSE

Page 33: Software Product Lines Geovane Nogueira Lima Prof. Jacques Robin

Aplicando PL Practice e Aplicando PL Practice e and Software Process Improvement

Lawrence G. Jones &Albert L. Soule July 2002

Page 34: Software Product Lines Geovane Nogueira Lima Prof. Jacques Robin

Relação entre CMMI e Relação entre CMMI e Framework for SPL PracticeFramework for SPL Practice

Page 35: Software Product Lines Geovane Nogueira Lima Prof. Jacques Robin

Associations Between SPL Practice Areas and CMMI Process Areas ...

Page 36: Software Product Lines Geovane Nogueira Lima Prof. Jacques Robin

...Continuação...Continuação

• As Áreas de Processo em negrito suporta umacorrespondência direta com uma Practice Area.• Para as Áreas de Processo de PPQA, OPF,

OPP,QPM,CAR, OID não existe uma correspondência.

Page 37: Software Product Lines Geovane Nogueira Lima Prof. Jacques Robin

Practice do Framework sem Practice do Framework sem correspondência no CMMIcorrespondência no CMMI

Understanding Relevant Domains Scoping Tool Support Building a Business Case Funding Launching and Institutionalizing Market Analysis Operations

Page 38: Software Product Lines Geovane Nogueira Lima Prof. Jacques Robin

PuLSEPuLSE

Introdução Product Line: Conceitos

O que é Porque Como Conclusão

A Framework for Software Product Line Practice

Relação entre CMMI e Framework for Software Product Line Practice

PuLSE

Page 39: Software Product Lines Geovane Nogueira Lima Prof. Jacques Robin

PuLSEPuLSE

PuLSE™ provides a customizable framework for product line engineering.

The essential components of the framework are: Baselining the organization and customizing the

framework. Scoping the application area based on a sound economic

analysis. Modeling that area in terms of concepts and their

relationships. Transitioning the domain model into a fully reusable design

(a reference architecture). Specifying an application engineering process that makes

use of the reference architecture and maintains it over time.

Page 40: Software Product Lines Geovane Nogueira Lima Prof. Jacques Robin

PuLSE OverviewPuLSE Overview

Page 41: Software Product Lines Geovane Nogueira Lima Prof. Jacques Robin

PuLSE™ Component Overview

PuLSE-BC: Baselining and CustomizationGoal: Create a PuLSE process tailoredto the organization’s situation.

• PuLSE-Eco: Economic AnalysisGoal: Determine an economically viablescope for the product line.– Identify and characterize possiblebusiness domains.– Evaluate them economically againstthe organization’s business objectives.– Create an initial development plan.

Page 42: Software Product Lines Geovane Nogueira Lima Prof. Jacques Robin

• PuLSE-CDA: Product Line ModelingGoal: Elicit and articulate the domain concepts and their

interrelationships.– Use customized models to elicit knowledge about

products, including anticipated future products.– Consolidate the product knowledge into a model relating

all products.– Refine and validate the models.

PuLSE-DSSA: Reference ArchitectureGoal: Define an architecture that supports current and

future applications.– Develop a reference architecture for the product line

from the information modeled in PuLSE-CDA.– Analyze the architecture wrt. Its correctness, quality and

evolvability.

PuLSE™ Component Overview

Page 43: Software Product Lines Geovane Nogueira Lima Prof. Jacques Robin

PuLSE™ Component Overview

PuLSE-I: Product Instance DevelopmentGoal: Develop one product as an instance of the product line.– Define the instantiation process.– For each product, customize the reference architecture using

the instance specifications and validate the system.

PuLSE-EM: Evolution and ManagementGoal: Manage development and employ feedback processes

for continuous optimization of artifacts and processes.

Page 44: Software Product Lines Geovane Nogueira Lima Prof. Jacques Robin

PuLSE Maturity LevelsA PuLSE application can be rated using four maturity levels. Initial: PuLSE components are applied independently of

one another and customized as necessary. Full: all PuLSE components are applied. The degree of

integration between them may vary. Controlled: PuLSE is applied as a full development cycle.

Full integration and traceability of the different components is ensured.

Optimizing: the PuLSE-based development cycle is refined over a number of product developments using controlled optimization techniques.

Page 45: Software Product Lines Geovane Nogueira Lima Prof. Jacques Robin

ConclusãoConclusão

Product Line é uma solução para a adoção das técnicas de reuso.

As metodologias para se implantar Product Line estão amadurecendo, mas ainda encontra-se muito restrita.

Para a utilização de Product Line as organizações deve ter um alto nível de maturidade em processo.

Page 46: Software Product Lines Geovane Nogueira Lima Prof. Jacques Robin

Pensando ...Pensando ...

Product Line é realmente uma solução para os problemas das organizações de software?! Ou é uma nova oportunidade de negócio.

Page 47: Software Product Lines Geovane Nogueira Lima Prof. Jacques Robin

ReferênciasReferências Software Process Improvement and Product Line Practice: CMMI and

the Framework for Software Product Line Practice. Lawrence G. Jones Albert L. Soule, July 2002 .

Framework software product line. Paulo Clements & Linda Northrop, 2003.

Linhas de Produto de Software: riscos e vantagens de sua implantação. Roberto C. Durscki1, Mauro M. Spinola1, Robert C. Burnett, Sheila S. Reinehr1,2

Technology Dimensions of Product Line Implementation Approaches. Dirk Muthig, Michalis Anastasopoulos, Roland Laqua, Stefan Kettemann, Thomas Patzke, September 2002

Clements, P. & Northrop, L. A Framework for Software Product Line Practice, Version 4.2 [online]. Pittsburgh, PA: Software Engineering Institute, Carnegie Mellon University, Jully 2006. <http://www.sei.cmu.edu/productlines/>

CMMI Product Suite. <http://www.sei.cmu.edu/cmmi/products>

Page 48: Software Product Lines Geovane Nogueira Lima Prof. Jacques Robin

Dúvidas..Dúvidas..