es parte do capítulo 16 - linhas de produtos de software
DESCRIPTION
Engenharia de SoftwareTRANSCRIPT
![Page 1: Es parte do capítulo 16 - linhas de produtos de software](https://reader035.vdocuments.mx/reader035/viewer/2022062710/559e5d1e1a28abfa7f8b471f/html5/thumbnails/1.jpg)
Introdução a Linha de Produto
de SoftwareKécio Santos
Universidade Federal da ParaíbaDepartamento de Informática
Programa de Pós-Graduação em Informática
Engenharia de Software
João Pessoa – PB, Maio de 2014.
![Page 2: Es parte do capítulo 16 - linhas de produtos de software](https://reader035.vdocuments.mx/reader035/viewer/2022062710/559e5d1e1a28abfa7f8b471f/html5/thumbnails/2.jpg)
Roteiro
Motivação
Customização em massa
Linha de Produto de Software
Desenvolvimento de uma LPS
Conclusão
Referências
![Page 3: Es parte do capítulo 16 - linhas de produtos de software](https://reader035.vdocuments.mx/reader035/viewer/2022062710/559e5d1e1a28abfa7f8b471f/html5/thumbnails/3.jpg)
Motivação
Produtos desenvolvidos manualmente para clientes
individuais
Com o crescimento da sociedade e do consumo era preciso
aumentar a quantidade de produtos fabricados
➔Como atender a esta demanda?
Na área automotiva, Henry Ford inventou a linha de produtos
Produção em massa
![Page 4: Es parte do capítulo 16 - linhas de produtos de software](https://reader035.vdocuments.mx/reader035/viewer/2022062710/559e5d1e1a28abfa7f8b471f/html5/thumbnails/4.jpg)
Motivação (Software)
Produtos desenvolvidos manualmente para clientes individuais
Produtos desenvolvidos em massa
Como customizar um produto/software a necessidades específicas de um
cliente?
![Page 5: Es parte do capítulo 16 - linhas de produtos de software](https://reader035.vdocuments.mx/reader035/viewer/2022062710/559e5d1e1a28abfa7f8b471f/html5/thumbnails/5.jpg)
Customização em massa
Produção em larga escala de bens moldados à necessidade do
cliente
Fabricar carros em massa
Diferentes necessidades
Tamanho
Cor
Opcionais...
![Page 6: Es parte do capítulo 16 - linhas de produtos de software](https://reader035.vdocuments.mx/reader035/viewer/2022062710/559e5d1e1a28abfa7f8b471f/html5/thumbnails/6.jpg)
Pré-requisito para customização em
massa
Definição de uma plataforma
Exemplo: Partes que podem ser usadas em diferentes carros /chassis,
suspensão, motor, transmissão
Criar um novo carro do zero ou partir de uma plataforma já
existente?
aumento de 35% nas vendas de carros baseados em plataformas
aumento de 7% nas vendas de carros desenvolvidos do zero
![Page 7: Es parte do capítulo 16 - linhas de produtos de software](https://reader035.vdocuments.mx/reader035/viewer/2022062710/559e5d1e1a28abfa7f8b471f/html5/thumbnails/7.jpg)
Customização em massae
desenvolvimento baseado em plataformas
Uso de plataformas
Mesmo motor em diferentes carros
Mesma suspensão em diferentes carros
Mesma transmissão em diferentes carros
Com customização em massa
Diferentes tipos de motor
Diferentes tipos de suspensão
Diferentes tipos de transmissão
Todos aplicáveis a diferentes tipos de carro
![Page 8: Es parte do capítulo 16 - linhas de produtos de software](https://reader035.vdocuments.mx/reader035/viewer/2022062710/559e5d1e1a28abfa7f8b471f/html5/thumbnails/8.jpg)
Primeiros conceitos chaves
Variabilidade
flexibilidade da plataforma
Família (Linha) de produtos
diferentes produtos que compartilham uma plataforma
Um dos objetivos de uma Linha de Produtos é provê produtos
customizados a um preço razoável
![Page 9: Es parte do capítulo 16 - linhas de produtos de software](https://reader035.vdocuments.mx/reader035/viewer/2022062710/559e5d1e1a28abfa7f8b471f/html5/thumbnails/9.jpg)
Qual é o menor custo?
Desenvolver uma plataforma e seus componentes reusáveis?
Desenvolver produtos únicos?
![Page 10: Es parte do capítulo 16 - linhas de produtos de software](https://reader035.vdocuments.mx/reader035/viewer/2022062710/559e5d1e1a28abfa7f8b471f/html5/thumbnails/10.jpg)
Custo de desenvolvimentoSistemas únicos vs Famílias de Produtos
Custo de Desenvolvimento
![Page 11: Es parte do capítulo 16 - linhas de produtos de software](https://reader035.vdocuments.mx/reader035/viewer/2022062710/559e5d1e1a28abfa7f8b471f/html5/thumbnails/11.jpg)
Time to MarketSistemas únicos vs Famílias de Produtos
![Page 12: Es parte do capítulo 16 - linhas de produtos de software](https://reader035.vdocuments.mx/reader035/viewer/2022062710/559e5d1e1a28abfa7f8b471f/html5/thumbnails/12.jpg)
Motivações adicionais
Aumento da qualidade
Revisão e testes dos artefatos para vários produtos
Redução dos custo de manutenção
Mudanças nos artefatos são propagados
Evolução organizada
Novos artefatos geram oportunidades de evolução de vários produtos
Menor complexidade
Reuso do código diminui a quantidade de código a ser mantido
![Page 13: Es parte do capítulo 16 - linhas de produtos de software](https://reader035.vdocuments.mx/reader035/viewer/2022062710/559e5d1e1a28abfa7f8b471f/html5/thumbnails/13.jpg)
Motivações adicionais
Melhor estimativa de custo/menor risco
Extensões na plataforma para adaptar um novo produto
Benefícios para o cliente
Mudanças entre produtos mais fácil
Melhor qualidade por preços menores
![Page 14: Es parte do capítulo 16 - linhas de produtos de software](https://reader035.vdocuments.mx/reader035/viewer/2022062710/559e5d1e1a28abfa7f8b471f/html5/thumbnails/14.jpg)
LPS - Riscos
Maior Nível de Risco
Grande investimento inicial que pode se tornar inútil se importantes
requisitos mudam
Maior time-to-market para o primeiro produto baseado na
arquitetura da SPL
Requer:
Engenharia Experiente
Gerenciamento Técnico e Organizacional
![Page 15: Es parte do capítulo 16 - linhas de produtos de software](https://reader035.vdocuments.mx/reader035/viewer/2022062710/559e5d1e1a28abfa7f8b471f/html5/thumbnails/15.jpg)
Por que investir em Linha de Produto?
Aumento de produtividade
Produtos entregues mais rápidos
•Aumento de Qualidade
•Redução de custos
Exemplo: Modelos 757 e 767 da Boeing compartilham 60% de
componentes comuns - Economia de produção e manutenção !!
![Page 16: Es parte do capítulo 16 - linhas de produtos de software](https://reader035.vdocuments.mx/reader035/viewer/2022062710/559e5d1e1a28abfa7f8b471f/html5/thumbnails/16.jpg)
Contextualização
Como é possível:
aumentar a reusabilidade
diminuir esforço de produção
diminuir o tempo que o produto leva para chegar ao mercado
aumentar a qualidade do software
diminuir custos e aumentar o lucro
Resp.: Equacionando…
Engenharia de Domínio + Desenvolvimento Tradicional + Outras técnicas
= n produtos = Linha de Produto de Software (LPS)
![Page 17: Es parte do capítulo 16 - linhas de produtos de software](https://reader035.vdocuments.mx/reader035/viewer/2022062710/559e5d1e1a28abfa7f8b471f/html5/thumbnails/17.jpg)
Linha de Produto de Software (LPS)
![Page 18: Es parte do capítulo 16 - linhas de produtos de software](https://reader035.vdocuments.mx/reader035/viewer/2022062710/559e5d1e1a28abfa7f8b471f/html5/thumbnails/18.jpg)
Linha de Produto de Software (LPS)
Não é um assunto “novo”
Desenvolvimento customizado:
Ideia de Henry Ford
Produção de carros com equipamentos customizados (adicionais, acessórios)
Linhas de produção e montagem
Produtos com características:
Comuns
Variáveis
![Page 19: Es parte do capítulo 16 - linhas de produtos de software](https://reader035.vdocuments.mx/reader035/viewer/2022062710/559e5d1e1a28abfa7f8b471f/html5/thumbnails/19.jpg)
Linha de Produção de H. FordFord de Bigode (Brasil) 1908 (US$850) – 1927 (US$290)
Características:
- Pintura: “qualquer cor, desde que
seja preta” (H. Ford)
- Bancos: veludo, tecido, couro
- Carroceria: Pickup, Camionete,
Cupês e Sedãs
- Painel: Amperímetro e Odômetro
- Opcionais: Faróis, Buzina
![Page 20: Es parte do capítulo 16 - linhas de produtos de software](https://reader035.vdocuments.mx/reader035/viewer/2022062710/559e5d1e1a28abfa7f8b471f/html5/thumbnails/20.jpg)
![Page 21: Es parte do capítulo 16 - linhas de produtos de software](https://reader035.vdocuments.mx/reader035/viewer/2022062710/559e5d1e1a28abfa7f8b471f/html5/thumbnails/21.jpg)
Linha de Produção
Hoje encontramos linhas de produção para:
Carros
Produtos alimentícios (MacDonalds, Burger King, Pizza Hut...)
Relógios
Computadores (iMac, Vaio, Pavilion...)
Impressoras
SmartPhones
Aviões
Mais alguma??
![Page 22: Es parte do capítulo 16 - linhas de produtos de software](https://reader035.vdocuments.mx/reader035/viewer/2022062710/559e5d1e1a28abfa7f8b471f/html5/thumbnails/22.jpg)
Você vê os
componentes, a
arquitetura e o
reuso nesses
produtos?
![Page 23: Es parte do capítulo 16 - linhas de produtos de software](https://reader035.vdocuments.mx/reader035/viewer/2022062710/559e5d1e1a28abfa7f8b471f/html5/thumbnails/23.jpg)
Objetivo de LPS
Resumidamente, LPS visa estabelecer uma capacidade de produção
que possa:
Rapidamente, e de forma correta, produzir múltiplos produtos com base em
um contexto bem definido
Alcançar metas de negócio específicas que podem ser afetadas pela
forma como uma organização produz seus produtos
![Page 24: Es parte do capítulo 16 - linhas de produtos de software](https://reader035.vdocuments.mx/reader035/viewer/2022062710/559e5d1e1a28abfa7f8b471f/html5/thumbnails/24.jpg)
Alguns Número Reais sobre LPS
Melhoria de Produtividade: ~10x
Aumento de Qualidade: ~10x
Redução de Custos: até 60%
Redução de mão de obra: até 87%
Redução do time to market: até 98%
![Page 25: Es parte do capítulo 16 - linhas de produtos de software](https://reader035.vdocuments.mx/reader035/viewer/2022062710/559e5d1e1a28abfa7f8b471f/html5/thumbnails/25.jpg)
Casos de Sucesso de LPS
Segundo o Hall of Fame do SEI:
Boeing
Controle de instrumentos e funcionalidades de cockpit de aviões
HP
Firmware de impressoras, scanners, fax e etc.
LG
Controle de elevadores
Philips
Componentes presentes em vários tipos de aparelhos eletrônicos
Bosh
Assistência de direção
Siemens
Controle de radiologia
![Page 26: Es parte do capítulo 16 - linhas de produtos de software](https://reader035.vdocuments.mx/reader035/viewer/2022062710/559e5d1e1a28abfa7f8b471f/html5/thumbnails/26.jpg)
Linha de Produto de Software (LPS)
Definições de LPS:
Termos importantes e sinônimos:
Característica (feature)
Características comuns similaridades
Segmento de mercado particular domínio
Customização em massa desenvolvimento em série
“conjunto de sistemas que compartilham características comuns e
gerenciáveis que satisfazem as necessidades específicas de um
segmento de mercado particular ou missão, desenvolvidas a partir
de ativos centrais comuns de maneira prescritiva”
“paradigma para desenvolver aplicações de software usando
customização em massa e de plataforma”
![Page 27: Es parte do capítulo 16 - linhas de produtos de software](https://reader035.vdocuments.mx/reader035/viewer/2022062710/559e5d1e1a28abfa7f8b471f/html5/thumbnails/27.jpg)
Linha de Produto de Software
Em LPS, características comuns a um domínio formam o núcleo e
outras características definem pontos de variação;
Em uma LPS, o domínio do sistema é decomposto em
características coerentes, bem definidas, independentes e
facilmente combináveis;
A comercialização de produtos que se diferenciam por variações
em suas características está se tornando comum e grandesempresas têm investido em LPS.
![Page 28: Es parte do capítulo 16 - linhas de produtos de software](https://reader035.vdocuments.mx/reader035/viewer/2022062710/559e5d1e1a28abfa7f8b471f/html5/thumbnails/28.jpg)
Features
Característica do sistema visível pelo usuário final
Representam requisitos reusáveis e configuráveis
Podem ocorrem em qualquer nível
Requisitos de alto nível do sistema
Nível de arquitetura
Nível de subsistema e componentes
Nível de implementação-construção
![Page 29: Es parte do capítulo 16 - linhas de produtos de software](https://reader035.vdocuments.mx/reader035/viewer/2022062710/559e5d1e1a28abfa7f8b471f/html5/thumbnails/29.jpg)
Modelo de Features
Modelo de características é o padrão de fato para representar avariabilidade de uma LPS;
Um modelo de características possibilita a visualização hierárquicadas características de uma LPS e suas relações;
Permite a identificação das primeiras variabilidades de uma LPS;
As características do modelo de características são classificadas:
mandatórias
opcionais
alternativas não exclusivas (OR) e
alternativas exclusivas (XOR).
![Page 30: Es parte do capítulo 16 - linhas de produtos de software](https://reader035.vdocuments.mx/reader035/viewer/2022062710/559e5d1e1a28abfa7f8b471f/html5/thumbnails/30.jpg)
Modelo de Features
![Page 31: Es parte do capítulo 16 - linhas de produtos de software](https://reader035.vdocuments.mx/reader035/viewer/2022062710/559e5d1e1a28abfa7f8b471f/html5/thumbnails/31.jpg)
Linha de Produto de Software
Modelo de características pode incluir regras de composição;
As regras de composição são responsáveis pela validação das
configurações de produtos;
Por exemplo, no modelo de características de um autorama, uma
regra de composição pode ser que o Som Automotivo requer(inclusão) uma Bateria do Tipo 1.
![Page 32: Es parte do capítulo 16 - linhas de produtos de software](https://reader035.vdocuments.mx/reader035/viewer/2022062710/559e5d1e1a28abfa7f8b471f/html5/thumbnails/32.jpg)
Modelo de Features - Modelagem
Modelagem de Características - Diferentes notações existentes:
FODA (KANG et al., 1990)
FORM (KANG et al., 2002, LEE et al., 2002),
FeatuRSEB (GRISS et al., 1998),
Notação de RIEBISCH (RIEBISCH et al., 2002),
Notação de CECHTICKY (CECHTICKY et al.,2004)
Notacao de CZARNECKI (CZARNECKI et al., 2004, 2005),
Notacao Odyssey-FEX (OLIVEIRA, 2006)
Notacao definida por GOMAA (2004),
Etc.
![Page 33: Es parte do capítulo 16 - linhas de produtos de software](https://reader035.vdocuments.mx/reader035/viewer/2022062710/559e5d1e1a28abfa7f8b471f/html5/thumbnails/33.jpg)
Exemplo de Modelo de Caract.
![Page 34: Es parte do capítulo 16 - linhas de produtos de software](https://reader035.vdocuments.mx/reader035/viewer/2022062710/559e5d1e1a28abfa7f8b471f/html5/thumbnails/34.jpg)
Exemplo de Modelo de Caract. (1)
![Page 35: Es parte do capítulo 16 - linhas de produtos de software](https://reader035.vdocuments.mx/reader035/viewer/2022062710/559e5d1e1a28abfa7f8b471f/html5/thumbnails/35.jpg)
Exemplo de Modelo de Caract. (2)
![Page 36: Es parte do capítulo 16 - linhas de produtos de software](https://reader035.vdocuments.mx/reader035/viewer/2022062710/559e5d1e1a28abfa7f8b471f/html5/thumbnails/36.jpg)
Exemplo de Modelo de Caract. (3)
Media Management
Mobile Media
Delete Media
Create Media
View Photo
Copy Media
SMS Transfer
Send Media
ReceiveMedia
SortingFavouritesBasic Media Operations
View Favourites
Edit Media Label
Media Selection
Photo Music Video
Play MusicPlay Video
Album Management
Create Album
Delete Album
![Page 37: Es parte do capítulo 16 - linhas de produtos de software](https://reader035.vdocuments.mx/reader035/viewer/2022062710/559e5d1e1a28abfa7f8b471f/html5/thumbnails/37.jpg)
Desenvolvimento de uma Linha de
Produto de Software
![Page 38: Es parte do capítulo 16 - linhas de produtos de software](https://reader035.vdocuments.mx/reader035/viewer/2022062710/559e5d1e1a28abfa7f8b471f/html5/thumbnails/38.jpg)
Abordagens para Construção de SPL
Pró-ativa
Desenvolvimento de linhas de produto considerando todos os produtos a serem gerados previamente
Um conjuntos completo de artefatos é desenvolvido para a SPL
SPL
Product 1
Product 2
Product 3
Análise do
Domínio
Arquitetura
Projeto
![Page 39: Es parte do capítulo 16 - linhas de produtos de software](https://reader035.vdocuments.mx/reader035/viewer/2022062710/559e5d1e1a28abfa7f8b471f/html5/thumbnails/39.jpg)
Abordagens para Construção de SPL Extrativa
A SPL é desenvolvida a partir de sistemas já existentes
Features variáveis e comuns são extraídas desses sistemas para derivar uma versão inicial da SPL
Product 1
Product 2
Product 3SPL
Product 1
Product 2
Product 3
![Page 40: Es parte do capítulo 16 - linhas de produtos de software](https://reader035.vdocuments.mx/reader035/viewer/2022062710/559e5d1e1a28abfa7f8b471f/html5/thumbnails/40.jpg)
Abordagens para Construção de SPL
Reativa
Desenvolvimento incremental de SPLs
Artefatos da SPL atendem apenas a alguns produtos.
Quando há uma demanda para incorporar novos requisitos
ou produtos, artefatos comuns e variáveis são
incrementalmente estendidos em reação a eles.
SPL
Product 1
Product 2
Product 3
Requirements for a new
product instance, Product 4
+
SPL
React
Iterate
Product 1
Product 2
Product 3
Product 4
![Page 41: Es parte do capítulo 16 - linhas de produtos de software](https://reader035.vdocuments.mx/reader035/viewer/2022062710/559e5d1e1a28abfa7f8b471f/html5/thumbnails/41.jpg)
Metodologias para Linha de Produto
de Software
Diferentes Propostas na Literatura
FORM
PuLSE
KobrA
FAST
PLUS
Framework do SEI
Framework proposto em Pohl
Etc.
![Page 42: Es parte do capítulo 16 - linhas de produtos de software](https://reader035.vdocuments.mx/reader035/viewer/2022062710/559e5d1e1a28abfa7f8b471f/html5/thumbnails/42.jpg)
Desenvolvimento de LPS
Etapas principais:
Engenharia de domínio:
Desenvolvimento de ativos centrais
Engenharia de aplicação:
Desenvolvimento do produto
Gerenciamento:
Técnico e Organizacional
![Page 43: Es parte do capítulo 16 - linhas de produtos de software](https://reader035.vdocuments.mx/reader035/viewer/2022062710/559e5d1e1a28abfa7f8b471f/html5/thumbnails/43.jpg)
Desenvolvimento de LPSFramework SEI
Engenharia
de Domínio
Engenharia
de
Aplicação
Técnico e Organizacional
![Page 44: Es parte do capítulo 16 - linhas de produtos de software](https://reader035.vdocuments.mx/reader035/viewer/2022062710/559e5d1e1a28abfa7f8b471f/html5/thumbnails/44.jpg)
Todas as três atividades:
Estão inter-relacionadas
São altamente interativas
Não existe “primeira” atividade
Forte feedback entre os core assets e os produtos
Necessidade de forte gerenciamento entre múltiplos níveis
Desenvolvimento de LPSFramework SEI
![Page 45: Es parte do capítulo 16 - linhas de produtos de software](https://reader035.vdocuments.mx/reader035/viewer/2022062710/559e5d1e1a28abfa7f8b471f/html5/thumbnails/45.jpg)
Engenharia de DomínioFramework SEI
![Page 46: Es parte do capítulo 16 - linhas de produtos de software](https://reader035.vdocuments.mx/reader035/viewer/2022062710/559e5d1e1a28abfa7f8b471f/html5/thumbnails/46.jpg)
Desenvolvimento de SPL
Core Assets incluem:
Requisitos e análise de
requisitos
Modelo de domínio
Arquitetura de software
Engenharia de performance
Documentação
Planos de teste, casos de
teste e dados
Conhecimento humano e
habilidades
Processos, métodos e
ferramentas
Despesas, cronogramas,
planos de trabalho
... e Software
![Page 47: Es parte do capítulo 16 - linhas de produtos de software](https://reader035.vdocuments.mx/reader035/viewer/2022062710/559e5d1e1a28abfa7f8b471f/html5/thumbnails/47.jpg)
Engenharia de AplicaçãoFramework SEI
![Page 48: Es parte do capítulo 16 - linhas de produtos de software](https://reader035.vdocuments.mx/reader035/viewer/2022062710/559e5d1e1a28abfa7f8b471f/html5/thumbnails/48.jpg)
Desenvolvimento de SPLFramework SEI
Gerenciamento em múltiplos níveis tem um papel importante no sucesso
da linha de produto
Responsabilidades
Atingir a estrutura organizacional certa
Alocar recursos
Coordenar e supervisionar
Oferecer treinamento
![Page 49: Es parte do capítulo 16 - linhas de produtos de software](https://reader035.vdocuments.mx/reader035/viewer/2022062710/559e5d1e1a28abfa7f8b471f/html5/thumbnails/49.jpg)
Exercícios
Pense em um exemplo de projeto de software que possa ser
uma linha de produto de software.
Quais seriam os produtos gerados por essa linha?
![Page 50: Es parte do capítulo 16 - linhas de produtos de software](https://reader035.vdocuments.mx/reader035/viewer/2022062710/559e5d1e1a28abfa7f8b471f/html5/thumbnails/50.jpg)
Referências
Clements, P., Northrop, L.: Software Product Lines: Practices and Patterns.
Addison-Wesley, Boston, MA, USA (2002).
Software Product Lines. http://www.sei.cmu.edu/productlines/
Pohl, K., Bckle, G., van der Linden, F.J.: Software Product Line Engineering:
Foundations, Principles and Techniques. Springer-Verlag, New York,USA
(2005).
McGregor, J. D.; Muthig, D.; Yoshimura, K.; Jensen, P. Successful Software
Product Line Practices. IEEE Software, v. 27, n. 3. 2010.
![Page 51: Es parte do capítulo 16 - linhas de produtos de software](https://reader035.vdocuments.mx/reader035/viewer/2022062710/559e5d1e1a28abfa7f8b471f/html5/thumbnails/51.jpg)
Obrigado!