32
Linhas de Produtos de Software Ivan Cardim, Pedro Matos Jr {icc2, poamj}@cin.ufpe.br

Linhas de Produtos de Software Ivan Cardim, Pedro Matos Jr {icc2, poamj}@cin.ufpe.br

Embed Size (px)

Citation preview

Page 1: Linhas de Produtos de Software Ivan Cardim, Pedro Matos Jr {icc2, poamj}@cin.ufpe.br

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

2 de 25

Linha de Produtos

Page 3: Linhas de Produtos de Software Ivan Cardim, Pedro Matos Jr {icc2, poamj}@cin.ufpe.br

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

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

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

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

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

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

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

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

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

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

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

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

15 de 25

Page 16: Linhas de Produtos de Software Ivan Cardim, Pedro Matos Jr {icc2, poamj}@cin.ufpe.br

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

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

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

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

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

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

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

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

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

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

Perguntas

?

Page 27: Linhas de Produtos de Software Ivan Cardim, Pedro Matos Jr {icc2, poamj}@cin.ufpe.br

Slides extras

Page 28: Linhas de Produtos de Software Ivan Cardim, Pedro Matos Jr {icc2, poamj}@cin.ufpe.br

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

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

30 de 25

Page 31: Linhas de Produtos de Software Ivan Cardim, Pedro Matos Jr {icc2, poamj}@cin.ufpe.br

31 de 25

Page 32: Linhas de Produtos de Software Ivan Cardim, Pedro Matos Jr {icc2, poamj}@cin.ufpe.br

32 de 25