![Page 1: Linhas de Produtos de Software Ivan Cardim, Pedro Matos Jr {icc2, poamj}@cin.ufpe.br](https://reader036.vdocuments.pub/reader036/viewer/2022081604/5706384a1a28abb8238f50a8/html5/thumbnails/1.jpg)
Linhas de Produtos de SoftwareIvan Cardim, Pedro Matos Jr{icc2, poamj}@cin.ufpe.br
![Page 2: Linhas de Produtos de Software Ivan Cardim, Pedro Matos Jr {icc2, poamj}@cin.ufpe.br](https://reader036.vdocuments.pub/reader036/viewer/2022081604/5706384a1a28abb8238f50a8/html5/thumbnails/2.jpg)
2 de 25
Linha de Produtos
![Page 3: Linhas de Produtos de Software Ivan Cardim, Pedro Matos Jr {icc2, poamj}@cin.ufpe.br](https://reader036.vdocuments.pub/reader036/viewer/2022081604/5706384a1a28abb8238f50a8/html5/thumbnails/3.jpg)
3 de 25
O que éLinha de Produtos de Software “Conjunto de sistemas de software
que compartilham um conjunto comum e gerenciado de features que satisfazem as necessidades de um mercado específico e que são desenvolvidos a partir de um conjunto de recursos comum de uma maneira pré-definida.”
Software Engineering Institute
![Page 4: Linhas de Produtos de Software Ivan Cardim, Pedro Matos Jr {icc2, poamj}@cin.ufpe.br](https://reader036.vdocuments.pub/reader036/viewer/2022081604/5706384a1a28abb8238f50a8/html5/thumbnails/4.jpg)
4 de 25
Ou sejaVários softwares com recursos em comum Artefatos Código FuncionalidadesExemplo SIG@
![Page 5: Linhas de Produtos de Software Ivan Cardim, Pedro Matos Jr {icc2, poamj}@cin.ufpe.br](https://reader036.vdocuments.pub/reader036/viewer/2022081604/5706384a1a28abb8238f50a8/html5/thumbnails/5.jpg)
5 de 25
Alguns conceitosInstanciação A construção de novos produtos consiste mais
em montagem do que em criação; a atividade predominante é integração, e não programação
Núcleo Conjunto de recursos comum a diversos
produtos de uma LPA LP é “O” produto; existem diversas instâncias desse mesmo produtoVariações Diferenças entre instâncias
![Page 6: Linhas de Produtos de Software Ivan Cardim, Pedro Matos Jr {icc2, poamj}@cin.ufpe.br](https://reader036.vdocuments.pub/reader036/viewer/2022081604/5706384a1a28abb8238f50a8/html5/thumbnails/6.jpg)
6 de 25
Uma Linha de Produtos de Software
Funcionalidades e Artefatos Comuns Compartilhadas por todos os produtos
da LPS Devem ser reusados por todos os
produtos a fim de aumentar a produtividade e qualidade
Variações Devem ser identificadas e gerenciadas
nos vários níveis de abstração
![Page 7: Linhas de Produtos de Software Ivan Cardim, Pedro Matos Jr {icc2, poamj}@cin.ufpe.br](https://reader036.vdocuments.pub/reader036/viewer/2022081604/5706384a1a28abb8238f50a8/html5/thumbnails/7.jpg)
7 de 25
Composição de uma LPS
![Page 8: Linhas de Produtos de Software Ivan Cardim, Pedro Matos Jr {icc2, poamj}@cin.ufpe.br](https://reader036.vdocuments.pub/reader036/viewer/2022081604/5706384a1a28abb8238f50a8/html5/thumbnails/8.jpg)
8 de 25
Por que usar?Menor tempo para reagir às necessidades do mercado (time-to-market)Produtos lançados a custos menoresMaior garantia de qualidade para os componentes/artefatos comuns São usados e testados exaustivamente em
vários produtosMaior facilidade de realizar manutenções Manutenções são realizadas na LPS e não em
vários produtos individuais
![Page 9: Linhas de Produtos de Software Ivan Cardim, Pedro Matos Jr {icc2, poamj}@cin.ufpe.br](https://reader036.vdocuments.pub/reader036/viewer/2022081604/5706384a1a28abb8238f50a8/html5/thumbnails/9.jpg)
9 de 25
O que não éReuso de alta granularidadeApenas reuso de códigoDesenvolvimento baseado em componentesReleases e versões de um mesmo produto
![Page 10: Linhas de Produtos de Software Ivan Cardim, Pedro Matos Jr {icc2, poamj}@cin.ufpe.br](https://reader036.vdocuments.pub/reader036/viewer/2022081604/5706384a1a28abb8238f50a8/html5/thumbnails/10.jpg)
10 de 25
Atividades Essenciais
A Framework for Software Product Line Practice Version 4.2Software Engineering Institute - SEI
![Page 11: Linhas de Produtos de Software Ivan Cardim, Pedro Matos Jr {icc2, poamj}@cin.ufpe.br](https://reader036.vdocuments.pub/reader036/viewer/2022081604/5706384a1a28abb8238f50a8/html5/thumbnails/11.jpg)
11 de 25
Criação e Evolução de LPSPró-ativa Tenta “prever o futuro” Custos concentrados no início do ciclo de
desenvolvimento Risco elevado
Extrativa Usada para criar/evoluir uma LPS quando
produtos individuais já foram criados Possui como objetivo criar um núcleo que
representa a intersecção de todos os produtos e extrair as diferenças (variações)
![Page 12: Linhas de Produtos de Software Ivan Cardim, Pedro Matos Jr {icc2, poamj}@cin.ufpe.br](https://reader036.vdocuments.pub/reader036/viewer/2022081604/5706384a1a28abb8238f50a8/html5/thumbnails/12.jpg)
12 de 25
• Reativa– Usada para evoluir a LPS para incorporar
um novo produto– Pode demandar o desenvolvimento de
novos artefatos/componentes– Permite que a LPS evolua de acordo com as
necessidades do mercado, distribuindo os custos ao longo do tempo
As abordagens não são mutuamente exclusivas!
Criação e Evolução de LPSCriação e Evolução de LPS
![Page 13: Linhas de Produtos de Software Ivan Cardim, Pedro Matos Jr {icc2, poamj}@cin.ufpe.br](https://reader036.vdocuments.pub/reader036/viewer/2022081604/5706384a1a28abb8238f50a8/html5/thumbnails/13.jpg)
13 de 25
CustosCusto Inicial Elevado Pode ser reduzido usando as
abordagens extrativa e reativaNecessidade de profissionais qualificados Custos com treinamentoMudança na cultura organizacional da Empresa
![Page 14: Linhas de Produtos de Software Ivan Cardim, Pedro Matos Jr {icc2, poamj}@cin.ufpe.br](https://reader036.vdocuments.pub/reader036/viewer/2022081604/5706384a1a28abb8238f50a8/html5/thumbnails/14.jpg)
14 de 25
Programação GerativaParadigma de ES modelando família de sistemasEspecificação de requisitos geração automática de produtoProduto customizado intermediário ou finalGeração a partir de componentes reusáveis
![Page 15: Linhas de Produtos de Software Ivan Cardim, Pedro Matos Jr {icc2, poamj}@cin.ufpe.br](https://reader036.vdocuments.pub/reader036/viewer/2022081604/5706384a1a28abb8238f50a8/html5/thumbnails/15.jpg)
15 de 25
![Page 16: Linhas de Produtos de Software Ivan Cardim, Pedro Matos Jr {icc2, poamj}@cin.ufpe.br](https://reader036.vdocuments.pub/reader036/viewer/2022081604/5706384a1a28abb8238f50a8/html5/thumbnails/16.jpg)
16 de 25
Análise de domínio orientada a features Diagrama de features
Features Mandatórias (ou comuns)Features OpcionaisFeatures AlternativasOr-Features
Programação Gerativa
![Page 17: Linhas de Produtos de Software Ivan Cardim, Pedro Matos Jr {icc2, poamj}@cin.ufpe.br](https://reader036.vdocuments.pub/reader036/viewer/2022081604/5706384a1a28abb8238f50a8/html5/thumbnails/17.jpg)
17 de 25
Exemplo de um diagrama de features
Programação Gerativa
![Page 18: Linhas de Produtos de Software Ivan Cardim, Pedro Matos Jr {icc2, poamj}@cin.ufpe.br](https://reader036.vdocuments.pub/reader036/viewer/2022081604/5706384a1a28abb8238f50a8/html5/thumbnails/18.jpg)
18 de 25
Histórias de Sucesso de LPS
U.S National Reconnaissance Office LPS para controle de satélites encomendada para a
Raytheon Ganhos de 10x na qualidade e 7x em produtividade.
Cummins, Inc. LPS para motores Conseguem construir e integrar o software para um
novo motor a diesel em certa de uma semana, o que antes levava 1 ano
Sua capacidade de produção permitiu que entrassem rapidamente no mercado de motores a diesel e o dominassem
![Page 19: Linhas de Produtos de Software Ivan Cardim, Pedro Matos Jr {icc2, poamj}@cin.ufpe.br](https://reader036.vdocuments.pub/reader036/viewer/2022081604/5706384a1a28abb8238f50a8/html5/thumbnails/19.jpg)
19 de 25
Histórias de Sucesso de LPS
Nokia Aumento na produção de telefones móveis 5-10 novos modelos por ano para mais de
30 novos modelos por anoHewlett Packard Linhas de produtos de impressoras Aumento de 400% na produtividade Melhora de 2-7x no time-to-market
![Page 20: Linhas de Produtos de Software Ivan Cardim, Pedro Matos Jr {icc2, poamj}@cin.ufpe.br](https://reader036.vdocuments.pub/reader036/viewer/2022081604/5706384a1a28abb8238f50a8/html5/thumbnails/20.jpg)
20 de 25
Jogos para dispositivos móveis
• Várias versões do mesmo jogo para vários aparelhos
• Aparelhos com características e APIs diferentes
![Page 21: Linhas de Produtos de Software Ivan Cardim, Pedro Matos Jr {icc2, poamj}@cin.ufpe.br](https://reader036.vdocuments.pub/reader036/viewer/2022081604/5706384a1a28abb8238f50a8/html5/thumbnails/21.jpg)
21 de 25
Jogos para dispositivos móveis
Meantime Mobile Creations Estudo da possibilidade de
implantação de LPS em jogos móveis Pesquisa em convênio com o Centro
de Informática Desenvolvimento de um processo de
desenvolvimento e ferramenta de apoio
![Page 22: Linhas de Produtos de Software Ivan Cardim, Pedro Matos Jr {icc2, poamj}@cin.ufpe.br](https://reader036.vdocuments.pub/reader036/viewer/2022081604/5706384a1a28abb8238f50a8/html5/thumbnails/22.jpg)
22 de 25
Conclusões e Palavras Finais
LPS podem aumentar bastante a produtividade de empresas produtoras de software Reduzindo custos Reduzindo tempo de desenvolvimento Aumentando a qualidade do produto final Facilitando manutenção e evolução
Investimentos iniciais e mudança da cultura organizacional são necessários
![Page 23: Linhas de Produtos de Software Ivan Cardim, Pedro Matos Jr {icc2, poamj}@cin.ufpe.br](https://reader036.vdocuments.pub/reader036/viewer/2022081604/5706384a1a28abb8238f50a8/html5/thumbnails/23.jpg)
23 de 25
Conclusões e Palavras Finais
Em alguns domínios, pode ser a diferença entre permanecer no mercado e ser esmagado pelos concorrentesAinda existe pouco suporte para criação e evolução de LPS A maioria das metodologias ainda consiste
num pequeno conjunto de práticas; não são processos completos
Falta de ferramentas maduras para gerenciamento de LPS
![Page 24: Linhas de Produtos de Software Ivan Cardim, Pedro Matos Jr {icc2, poamj}@cin.ufpe.br](https://reader036.vdocuments.pub/reader036/viewer/2022081604/5706384a1a28abb8238f50a8/html5/thumbnails/24.jpg)
24 de 25
ReferênciasA Framework for Software Product Line Practice: http://www.sei.cmu.edu/productlinesKRUEGER, C. W. Variation Management for Software Product LinesKRUEGER, C. W. Easing the Transition to Software Mass CustomizationWITHEY, J. Investment Analysis of Software Assets for Product Lines
![Page 25: Linhas de Produtos de Software Ivan Cardim, Pedro Matos Jr {icc2, poamj}@cin.ufpe.br](https://reader036.vdocuments.pub/reader036/viewer/2022081604/5706384a1a28abb8238f50a8/html5/thumbnails/25.jpg)
25 de 25
ReferênciasKrzystof Czarnecki and Ulrich Eisenecker. Generative Programming: Methods, Tools, and Applications. Addison-Wesley.2000Software Productivity Group – SPGhttp://www.cin.ufpe.br/spg
![Page 26: Linhas de Produtos de Software Ivan Cardim, Pedro Matos Jr {icc2, poamj}@cin.ufpe.br](https://reader036.vdocuments.pub/reader036/viewer/2022081604/5706384a1a28abb8238f50a8/html5/thumbnails/26.jpg)
Perguntas
?
![Page 27: Linhas de Produtos de Software Ivan Cardim, Pedro Matos Jr {icc2, poamj}@cin.ufpe.br](https://reader036.vdocuments.pub/reader036/viewer/2022081604/5706384a1a28abb8238f50a8/html5/thumbnails/27.jpg)
Slides extras
![Page 28: Linhas de Produtos de Software Ivan Cardim, Pedro Matos Jr {icc2, poamj}@cin.ufpe.br](https://reader036.vdocuments.pub/reader036/viewer/2022081604/5706384a1a28abb8238f50a8/html5/thumbnails/28.jpg)
28 de 25
Ferramentas de ApoioDiagramas FODA: captainfeature / feature-pluginFeat: Feature exploration and analysis toolPure::Variants Vários niveis de abstracao. Granularidade de arquivo.
Covamof (em desenvolvimento) Plug-in para eclipse e visual studio. Granularidade de código Vários níveis de abstração.
![Page 29: Linhas de Produtos de Software Ivan Cardim, Pedro Matos Jr {icc2, poamj}@cin.ufpe.br](https://reader036.vdocuments.pub/reader036/viewer/2022081604/5706384a1a28abb8238f50a8/html5/thumbnails/29.jpg)
29 de 25
Linha de Produtos x Linha de Produção
![Page 30: Linhas de Produtos de Software Ivan Cardim, Pedro Matos Jr {icc2, poamj}@cin.ufpe.br](https://reader036.vdocuments.pub/reader036/viewer/2022081604/5706384a1a28abb8238f50a8/html5/thumbnails/30.jpg)
30 de 25
![Page 31: Linhas de Produtos de Software Ivan Cardim, Pedro Matos Jr {icc2, poamj}@cin.ufpe.br](https://reader036.vdocuments.pub/reader036/viewer/2022081604/5706384a1a28abb8238f50a8/html5/thumbnails/31.jpg)
31 de 25
![Page 32: Linhas de Produtos de Software Ivan Cardim, Pedro Matos Jr {icc2, poamj}@cin.ufpe.br](https://reader036.vdocuments.pub/reader036/viewer/2022081604/5706384a1a28abb8238f50a8/html5/thumbnails/32.jpg)
32 de 25