Software Product Lines
description
Transcript of Software Product Lines
![Page 1: Software Product Lines](https://reader035.fdocuments.in/reader035/viewer/2022081519/56814792550346895db4c333/html5/thumbnails/1.jpg)
Software Product LinesSoftware Product Lines
Geovane Nogueira LimaProf. Jacques Robin
![Page 2: Software Product Lines](https://reader035.fdocuments.in/reader035/viewer/2022081519/56814792550346895db4c333/html5/thumbnails/2.jpg)
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](https://reader035.fdocuments.in/reader035/viewer/2022081519/56814792550346895db4c333/html5/thumbnails/3.jpg)
Universal Business GoalsUniversal Business Goals
![Page 4: Software Product Lines](https://reader035.fdocuments.in/reader035/viewer/2022081519/56814792550346895db4c333/html5/thumbnails/4.jpg)
The Ultimate Universal GoalThe Ultimate Universal Goal
![Page 5: Software Product Lines](https://reader035.fdocuments.in/reader035/viewer/2022081519/56814792550346895db4c333/html5/thumbnails/5.jpg)
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](https://reader035.fdocuments.in/reader035/viewer/2022081519/56814792550346895db4c333/html5/thumbnails/6.jpg)
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](https://reader035.fdocuments.in/reader035/viewer/2022081519/56814792550346895db4c333/html5/thumbnails/7.jpg)
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](https://reader035.fdocuments.in/reader035/viewer/2022081519/56814792550346895db4c333/html5/thumbnails/8.jpg)
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](https://reader035.fdocuments.in/reader035/viewer/2022081519/56814792550346895db4c333/html5/thumbnails/9.jpg)
![Page 10: Software Product Lines](https://reader035.fdocuments.in/reader035/viewer/2022081519/56814792550346895db4c333/html5/thumbnails/10.jpg)
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](https://reader035.fdocuments.in/reader035/viewer/2022081519/56814792550346895db4c333/html5/thumbnails/11.jpg)
Software Product LineSoftware Product Line
Product Line
• Obter vantagem econômicas da similaridade• Aproveitar a variabilidade
![Page 12: Software Product Lines](https://reader035.fdocuments.in/reader035/viewer/2022081519/56814792550346895db4c333/html5/thumbnails/12.jpg)
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](https://reader035.fdocuments.in/reader035/viewer/2022081519/56814792550346895db4c333/html5/thumbnails/13.jpg)
Os conceitos chavesOs conceitos chaves
Uso de uma repositório comum de
ativos
Na Produção
de umDeterminadoconjunto de
produto
Arquitetura Plano de Produção Definição de Escopo,Business Case
![Page 14: Software Product Lines](https://reader035.fdocuments.in/reader035/viewer/2022081519/56814792550346895db4c333/html5/thumbnails/14.jpg)
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](https://reader035.fdocuments.in/reader035/viewer/2022081519/56814792550346895db4c333/html5/thumbnails/15.jpg)
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](https://reader035.fdocuments.in/reader035/viewer/2022081519/56814792550346895db4c333/html5/thumbnails/16.jpg)
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](https://reader035.fdocuments.in/reader035/viewer/2022081519/56814792550346895db4c333/html5/thumbnails/17.jpg)
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](https://reader035.fdocuments.in/reader035/viewer/2022081519/56814792550346895db4c333/html5/thumbnails/18.jpg)
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](https://reader035.fdocuments.in/reader035/viewer/2022081519/56814792550346895db4c333/html5/thumbnails/19.jpg)
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](https://reader035.fdocuments.in/reader035/viewer/2022081519/56814792550346895db4c333/html5/thumbnails/20.jpg)
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](https://reader035.fdocuments.in/reader035/viewer/2022081519/56814792550346895db4c333/html5/thumbnails/21.jpg)
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](https://reader035.fdocuments.in/reader035/viewer/2022081519/56814792550346895db4c333/html5/thumbnails/22.jpg)
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](https://reader035.fdocuments.in/reader035/viewer/2022081519/56814792550346895db4c333/html5/thumbnails/23.jpg)
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](https://reader035.fdocuments.in/reader035/viewer/2022081519/56814792550346895db4c333/html5/thumbnails/24.jpg)
Relacionamento entre as Relacionamento entre as Practice AreasPractice Areas
![Page 25: Software Product Lines](https://reader035.fdocuments.in/reader035/viewer/2022081519/56814792550346895db4c333/html5/thumbnails/25.jpg)
Practice Area RelationshipsPractice Area Relationships
![Page 26: Software Product Lines](https://reader035.fdocuments.in/reader035/viewer/2022081519/56814792550346895db4c333/html5/thumbnails/26.jpg)
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](https://reader035.fdocuments.in/reader035/viewer/2022081519/56814792550346895db4c333/html5/thumbnails/27.jpg)
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](https://reader035.fdocuments.in/reader035/viewer/2022081519/56814792550346895db4c333/html5/thumbnails/28.jpg)
FrameworkFramework
![Page 29: Software Product Lines](https://reader035.fdocuments.in/reader035/viewer/2022081519/56814792550346895db4c333/html5/thumbnails/29.jpg)
Exemplo de uma fábricaExemplo de uma fábrica
![Page 30: Software Product Lines](https://reader035.fdocuments.in/reader035/viewer/2022081519/56814792550346895db4c333/html5/thumbnails/30.jpg)
Fases da Product LineFases da Product Line
![Page 31: Software Product Lines](https://reader035.fdocuments.in/reader035/viewer/2022081519/56814792550346895db4c333/html5/thumbnails/31.jpg)
Fases da Product LineFases da Product Line
![Page 32: Software Product Lines](https://reader035.fdocuments.in/reader035/viewer/2022081519/56814792550346895db4c333/html5/thumbnails/32.jpg)
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](https://reader035.fdocuments.in/reader035/viewer/2022081519/56814792550346895db4c333/html5/thumbnails/33.jpg)
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](https://reader035.fdocuments.in/reader035/viewer/2022081519/56814792550346895db4c333/html5/thumbnails/34.jpg)
Relação entre CMMI e Relação entre CMMI e Framework for SPL PracticeFramework for SPL Practice
![Page 35: Software Product Lines](https://reader035.fdocuments.in/reader035/viewer/2022081519/56814792550346895db4c333/html5/thumbnails/35.jpg)
Associations Between SPL Practice Areas and CMMI Process Areas ...
![Page 36: Software Product Lines](https://reader035.fdocuments.in/reader035/viewer/2022081519/56814792550346895db4c333/html5/thumbnails/36.jpg)
...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](https://reader035.fdocuments.in/reader035/viewer/2022081519/56814792550346895db4c333/html5/thumbnails/37.jpg)
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](https://reader035.fdocuments.in/reader035/viewer/2022081519/56814792550346895db4c333/html5/thumbnails/38.jpg)
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](https://reader035.fdocuments.in/reader035/viewer/2022081519/56814792550346895db4c333/html5/thumbnails/39.jpg)
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](https://reader035.fdocuments.in/reader035/viewer/2022081519/56814792550346895db4c333/html5/thumbnails/40.jpg)
PuLSE OverviewPuLSE Overview
![Page 41: Software Product Lines](https://reader035.fdocuments.in/reader035/viewer/2022081519/56814792550346895db4c333/html5/thumbnails/41.jpg)
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](https://reader035.fdocuments.in/reader035/viewer/2022081519/56814792550346895db4c333/html5/thumbnails/42.jpg)
• 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](https://reader035.fdocuments.in/reader035/viewer/2022081519/56814792550346895db4c333/html5/thumbnails/43.jpg)
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](https://reader035.fdocuments.in/reader035/viewer/2022081519/56814792550346895db4c333/html5/thumbnails/44.jpg)
PuLSE Maturity Levels
A 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](https://reader035.fdocuments.in/reader035/viewer/2022081519/56814792550346895db4c333/html5/thumbnails/45.jpg)
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](https://reader035.fdocuments.in/reader035/viewer/2022081519/56814792550346895db4c333/html5/thumbnails/46.jpg)
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](https://reader035.fdocuments.in/reader035/viewer/2022081519/56814792550346895db4c333/html5/thumbnails/47.jpg)
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](https://reader035.fdocuments.in/reader035/viewer/2022081519/56814792550346895db4c333/html5/thumbnails/48.jpg)
Dúvidas..Dúvidas..