linha de produto de software: diferentes produtos para diferentes clientes

30
Linha de Produto de Software: Linha de Produto de Software: Diferentes produtos para diferentes clientes Priscylla Silva [email protected]

Upload: killpiu

Post on 05-Dec-2014

1.639 views

Category:

Documents


3 download

DESCRIPTION

Palestra ministrada no Circuito Alagoano de Tecnologia da Informação, no ano de 2011. Com o tema Linha de Produto de Software, foi apresentada uma visão geral sobre o assunto e a sua utilização.

TRANSCRIPT

Page 1: Linha de Produto de Software: Diferentes produtos para diferentes clientes

Linha de Produto de Software:Linha de Produto de Software:Diferentes produtos para diferentes

clientes

Priscylla [email protected]

Page 2: Linha de Produto de Software: Diferentes produtos para diferentes clientes

Objetivos

➔ Introduzir os principais conceitos de Linha de Produto de Software (LPS)

➔ Indicar vantagens e riscos de sua utilização

➔ Mostrar cenários em que a utilização de LPS é útil e vantajosa em empresas

➔ Apontas caminhos para a criação de LPS

Page 3: Linha de Produto de Software: Diferentes produtos para diferentes clientes

Roteiro

➔ Surgimento das Linhas de Produto

➔ Customização de Produtos

➔ Software Individual vs Software Padrão

➔ Linha de Produto de Software:

➔ Definição➔ Motivações➔ Vantagens➔ Riscos➔ Quando usar? Quando não Usar?

➔ Como criar uma Linha de Produto de Software?

Page 4: Linha de Produto de Software: Diferentes produtos para diferentes clientes

Surgimento das Linhas de Produto

➔ Inicialmente os produtos eram feitos de modo artesanal;

➔ Com o crescimento da sociedade e do consumo era preciso aumentar a quantidade de produtos fabricados.

➔Como atender a esta demanda?

Page 5: Linha de Produto de Software: Diferentes produtos para diferentes clientes

Henry Ford

➔ Na área automotiva, Henry Ford inventou a linha de produtos

➔ Produção em massa;➔ Preços mais baixos que produtos

artesanais;

➔ O primeiro automóvel produzido desta forma foi o Ford T (1908).

➔ Até 1914, o Ford T era produzido em várias cores (a escolha do cliente).

Page 6: Linha de Produto de Software: Diferentes produtos para diferentes clientes

Customização de Produtos

➔ Por que Customizar?➔ Pessoas têm necessidades diferentes:

➔ Algumas podem pagar a mais por certas características do produto;

➔ Outras querem mostrar que podem pagar a mais por produtos diferenciados;

Limpador de Pára-brisa Traseiro: opcional

Ar Condicionado: opcional

Motor: 1.0, 1.6 ou 2.0

Câmbio: automático ou manual

Portas: 3 ou 5

Page 7: Linha de Produto de Software: Diferentes produtos para diferentes clientes

Customização de Veículos

Fonte: www.fiat.com.br

Page 8: Linha de Produto de Software: Diferentes produtos para diferentes clientes

Customização de Celulares

Fonte: http://www.motorola.com/

Page 9: Linha de Produto de Software: Diferentes produtos para diferentes clientes

O que tudo isso tem haver com O que tudo isso tem haver com Software???Software???

Page 10: Linha de Produto de Software: Diferentes produtos para diferentes clientes

Software Individual vs Software PadrãoSoftware Individual vs Software Padrão

Page 11: Linha de Produto de Software: Diferentes produtos para diferentes clientes

Software Individual vs Software Padrão

➔ Software individual

➔ Produzidos para satisfazer requisitos específicos de um cliente;

➔ Podem ser únicos e personalizados➔ Customização é cara!

➔ Software padronizado

➔ Vendidos em larga escala;➔ Custo de produção relativamente baixo;➔ Sofrem da falta de diversificação para atender

os vários clientes!

Page 12: Linha de Produto de Software: Diferentes produtos para diferentes clientes

Software Individual vs Software Padrão

➔ Como unir o melhor que esses dois mundos tem a oferecer?

➔ Queremos:

➔ Customização➔ Minimizar os custos➔ Vender em larga escala

Page 13: Linha de Produto de Software: Diferentes produtos para diferentes clientes

Linha de Produto de Software!!!Linha de Produto de Software!!! Software Product Line

Page 14: Linha de Produto de Software: Diferentes produtos para diferentes clientes

Exemplo

➔ Desenvolvimento de jogos para dispositivos móveis;

Page 15: Linha de Produto de Software: Diferentes produtos para diferentes clientes

O que é uma Linha de Produto de Software?

➔ “é um conjunto intensivo de sistemas de software que compartilham e gerenciam um conjunto de características em comum que satisfazem uma necessidade específica de um domínio, e que são desenvolvidos a partir de um núcleo comum e de uma forma preestabelecida.” (Clements and Northrop)

Clements, P., Northrop, L.: Software Product Lines: Practices and Patterns. Addison-Wesley, Boston, MA, USA (2002).

Page 16: Linha de Produto de Software: Diferentes produtos para diferentes clientes

Quem já está utilizando???

Page 17: Linha de Produto de Software: Diferentes produtos para diferentes clientes

Motivações para empresas usarem LPS

➔ Empresas de software buscam atingir um segmento de mercado específico;

➔ Sistemas de desenvolvimento para um domínio de aplicação possui mais coisas em comum do que particulares;

➔ Os produtos para um domínio de aplicação compartilham elementos que podem ser reutilizados com adicionamento de requisitos específicos

Page 18: Linha de Produto de Software: Diferentes produtos para diferentes clientes

Motivações

➔ Redução dos custos de Desenvolvimento;

➔ Aumento da qualidade do produto e satisfação do usuário;

➔ Redução do tempo de entrega;

➔ Redução dos Esforços de Manutenção;

Page 19: Linha de Produto de Software: Diferentes produtos para diferentes clientes

Motivações

➔ Evolução organizada;

➔ Ganhos de produtividade em larga escala

➔ Maior presença no mercado;

➔ Possibilidade de crescimento da empresa;

Page 20: Linha de Produto de Software: Diferentes produtos para diferentes clientes

Riscos

➔ Maior Nível de Risco

➔ Grande investimento inicial que pode se tornar inútil se importantes requisitos mudam;

➔ Maior tempo de entrega para o primeiro produto baseado na arquitetura da LPS;

➔ Requer Engenharia Experiente;

➔ Gerenciamento técnico e organizacional;

Page 21: Linha de Produto de Software: Diferentes produtos para diferentes clientes

Quando usar LPS?

VARIABILIDADE

Plataforma comum;

Domínio estável;

Quando não usar LPS?

Quando você não conhecer bem o domínio da da linha:

Quando o domínio não for estável:

Page 22: Linha de Produto de Software: Diferentes produtos para diferentes clientes

Demanda pela Engenharia de LPS

➔ Aumento da quantidade de dispositivos com software embarcado;

➔ Variabilidade no Software também tem crescido bastante;

➔ Novos Clientes;

➔ Portabilidade;

Page 23: Linha de Produto de Software: Diferentes produtos para diferentes clientes

Restrições sobre adaptações

➔ Em LPS, é preciso que as adaptações:

➔ Possam ser reproduzidas de forma controlada;

➔ Ocorram em lugares que façam sentido!

Page 24: Linha de Produto de Software: Diferentes produtos para diferentes clientes

Abordagens para Construção de LPS

➔ Pró-ativa

➔ Extrativa

➔ Reativa

Page 25: Linha de Produto de Software: Diferentes produtos para diferentes clientes

Abordagem Pró-Ativa

SPL

Product 1

Product 2

Product 3

Page 26: Linha de Produto de Software: Diferentes produtos para diferentes clientes

Abordagem Extrativa

Product 1

Product 2

Product 3SPL

Product 1

Product 2

Product 3

Page 27: Linha de Produto de Software: Diferentes produtos para diferentes clientes

Abordagem Reativa

SPL

Product 1

Product 2

Product 3SPL

React

Iterate

Product 1

Product 2

Product 3

Product 4

Page 28: Linha de Produto de Software: Diferentes produtos para diferentes clientes

Como implementar uma LPS?

➔ Orientação a objetos e polimorfismo

➔ Padrões de projeto

➔ Frameworks

➔ Programação orientada a features

➔ Compilação Condicional

➔ Programação Orientada a Aspectos

Page 29: Linha de Produto de Software: Diferentes produtos para diferentes clientes

Quer saber mais???

http://estruturaopen.com/

Priscylla Silva

[email protected]

Page 30: Linha de Produto de Software: Diferentes produtos para diferentes clientes

Obrigada!

Perguntas

Priscylla Silva

[email protected]