linhas de produtos de software ivan cardim, pedro matos jr {icc2, poamj}@cin.ufpe.br

Post on 07-Apr-2016

212 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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

2 de 25

Linha de Produtos

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

4 de 25

Ou sejaVários softwares com recursos em comum Artefatos Código FuncionalidadesExemplo SIG@

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

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

7 de 25

Composição de uma LPS

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

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

10 de 25

Atividades Essenciais

A Framework for Software Product Line Practice        Version 4.2Software Engineering Institute - SEI

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)

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

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

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

15 de 25

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

17 de 25

Exemplo de um diagrama de features

Programação Gerativa

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

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

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

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

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

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

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

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

Perguntas

?

Slides extras

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.

29 de 25

Linha de Produtos x Linha de Produção

30 de 25

31 de 25

32 de 25

top related