A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Linhas de Produtos de Software Ivan Cardim, Pedro Matos Jr {icc2,

Apresentações semelhantes


Apresentação em tema: "Linhas de Produtos de Software Ivan Cardim, Pedro Matos Jr {icc2,"— Transcrição da apresentação:

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

2 2 de 25 Linha de Produtos

3 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 4 de 25 Ou seja Vários softwares com recursos em comum Artefatos Código Funcionalidades Exemplo SIG@

5 5 de 25 Alguns conceitos Instanciaçã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 LP A LP é “O” produto; existem diversas instâncias desse mesmo produto Variações Diferenças entre instâncias

6 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 7 de 25 Composição de uma LPS

8 8 de 25 Por que usar? Menor tempo para reagir às necessidades do mercado (time-to-market) Produtos lançados a custos menores Maior garantia de qualidade para os componentes/artefatos comuns São usados e testados exaustivamente em vários produtos Maior facilidade de realizar manutenções Manutenções são realizadas na LPS e não em vários produtos individuais

9 9 de 25 O que não é Reuso de alta granularidade Apenas reuso de código Desenvolvimento baseado em componentes Releases e versões de um mesmo produto

10 10 de 25 Atividades Essenciais A Framework for Software Product Line Practice Version 4.2 Software Engineering Institute - SEI

11 11 de 25 Criação e Evolução de LPS Pró-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 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 LPS

13 13 de 25 Custos Custo Inicial Elevado Pode ser reduzido usando as abordagens extrativa e reativa Necessidade de profissionais qualificados Custos com treinamento Mudança na cultura organizacional da Empresa

14 14 de 25 Programação Gerativa Paradigma de ES modelando família de sistemas Especificação de requisitos  geração automática de produto Produto customizado intermediário ou final Geração a partir de componentes reusáveis

15 15 de 25

16 16 de 25 Análise de domínio orientada a features Diagrama de features  Features Mandatórias (ou comuns)  Features Opcionais  Features Alternativas  Or-Features Programação Gerativa

17 17 de 25 Exemplo de um diagrama de features Programação Gerativa

18 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 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 ano Hewlett Packard Linhas de produtos de impressoras Aumento de 400% na produtividade Melhora de 2-7x no time-to-market

20 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 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 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 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 concorrentes Ainda 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 24 de 25 Referências A Framework for Software Product Line Practice: http://www.sei.cmu.edu/productlines KRUEGER, C. W. Variation Management for Software Product Lines KRUEGER, C. W. Easing the Transition to Software Mass Customization WITHEY, J. Investment Analysis of Software Assets for Product Lines

25 25 de 25 Referências Krzystof Czarnecki and Ulrich Eisenecker. Generative Programming: Methods, Tools, and Applications. Addison-Wesley.2000 Software Productivity Group – SPG http://www.cin.ufpe.br/spg

26 Perguntas ?

27 Slides extras

28 28 de 25 Ferramentas de Apoio Diagramas FODA: captainfeature / feature- plugin Feat: Feature exploration and analysis tool Pure::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 29 de 25 Linha de Produtos x Linha de Produção

30 30 de 25

31 31 de 25

32 32 de 25


Carregar ppt "Linhas de Produtos de Software Ivan Cardim, Pedro Matos Jr {icc2,"

Apresentações semelhantes


Anúncios Google