SlideShare a Scribd company logo
1 of 30
Download to read offline
Linha de Produto de Software:
Diferentes produtos para diferentes
              clientes



            Priscylla Silva
           pmss@ic.ufal.br
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
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?
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?
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).
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
                                       Câmbio: automático ou manual
                                                     Motor: 1.0, 1.6 ou 2.0
Ar Condicionado:
opcional



                                Portas: 3 ou 5
Customização de Veículos




Fonte: www.fiat.com.br
Customização de Celulares




Fonte: http://www.motorola.com/
O que tudo isso tem haver com
         Software???
Software Individual vs Software Padrão
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!
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
Linha de Produto de Software!!!
       Software Product Line
Exemplo
➔
    Desenvolvimento de jogos para dispositivos
    móveis;
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).
Quem já está utilizando???
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
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;
Motivações

➔
    Evolução organizada;
➔
    Ganhos de
    produtividade em larga
    escala
➔
    Maior presença no
    mercado;
➔
    Possibilidade de
    crescimento da
    empresa;
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;
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:
Demanda pela Engenharia de LPS


➔
    Aumento da quantidade de dispositivos com
    software embarcado;
➔
    Variabilidade no Software   também   tem
    crescido bastante;
➔
    Novos Clientes;
➔
    Portabilidade;
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!
Abordagens para Construção de LPS


➔
    Pró-ativa
➔
    Extrativa
➔
    Reativa
Abordagem Pró-Ativa




                      Product 1




                      Product 2



           SPL
                      Product 3
Abordagem Extrativa




Product 1               Product 1




Product 2               Product 2




                  SPL
Product 3               Product 3
Abordagem Reativa

                                         Product 1

                         React
             Product 1
                         Iterate
                                         Product 2


             Product 2
   SPL
                                         Product 3

                                   SPL
             Product 3

                                         Product 4
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
Quer saber mais???




http://estruturaopen.com/

        Priscylla Silva
       pmss@ic.ufal.br
Obrigada!




            Perguntas

             Priscylla Silva
            pmss@ic.ufal.br

More Related Content

What's hot

Software livre x Software Proprietário : Propriedade Intelectual
Software livre x Software Proprietário : Propriedade IntelectualSoftware livre x Software Proprietário : Propriedade Intelectual
Software livre x Software Proprietário : Propriedade IntelectualWisllay Vitrio
 
Software Livre (Conceitos, contextualização histórica, licenças, sistemas ope...
Software Livre (Conceitos, contextualização histórica, licenças, sistemas ope...Software Livre (Conceitos, contextualização histórica, licenças, sistemas ope...
Software Livre (Conceitos, contextualização histórica, licenças, sistemas ope...Sérgio Souza Costa
 
Engenharia de Software - Conceitos e Modelos de Desenvolvimento
Engenharia de Software - Conceitos e Modelos de Desenvolvimento Engenharia de Software - Conceitos e Modelos de Desenvolvimento
Engenharia de Software - Conceitos e Modelos de Desenvolvimento Sérgio Souza Costa
 
Informática Básica - Aula 05 - Sistema Operacional Windows
Informática Básica - Aula 05 - Sistema Operacional WindowsInformática Básica - Aula 05 - Sistema Operacional Windows
Informática Básica - Aula 05 - Sistema Operacional WindowsJoeldson Costa Damasceno
 
Sistemas Operacionais - 03 - Tipos e Estrutura dos SO
Sistemas Operacionais - 03 - Tipos e Estrutura dos SOSistemas Operacionais - 03 - Tipos e Estrutura dos SO
Sistemas Operacionais - 03 - Tipos e Estrutura dos SOMauro Duarte
 
Desenvolvimento Mobile
Desenvolvimento MobileDesenvolvimento Mobile
Desenvolvimento MobileElton Minetto
 
Sistemas Operacionais Modernos Capítulo 3 Deadlock
Sistemas Operacionais Modernos Capítulo 3 DeadlockSistemas Operacionais Modernos Capítulo 3 Deadlock
Sistemas Operacionais Modernos Capítulo 3 DeadlockWellington Oliveira
 
Modelos de Processo de Software Parte 5
Modelos de Processo de Software Parte 5Modelos de Processo de Software Parte 5
Modelos de Processo de Software Parte 5Elaine Cecília Gatto
 
Ciclo de vida de software
Ciclo de vida de softwareCiclo de vida de software
Ciclo de vida de softwarediha36
 
Aula 19 instalação de drivers de dispositivos
Aula 19   instalação de drivers de dispositivosAula 19   instalação de drivers de dispositivos
Aula 19 instalação de drivers de dispositivosMarcos Basilio
 
Sistema operacional introdução
Sistema operacional introduçãoSistema operacional introdução
Sistema operacional introduçãoCleber Ramos
 
Sistemas Operacionais - Aula 02 (Visão geral de sistemas operacionais)
Sistemas Operacionais - Aula 02 (Visão geral de sistemas operacionais)Sistemas Operacionais - Aula 02 (Visão geral de sistemas operacionais)
Sistemas Operacionais - Aula 02 (Visão geral de sistemas operacionais)Leinylson Fontinele
 
Sistemas Operacionais - Aula 8 - Sincronização e Comunicação entre Processos
Sistemas Operacionais - Aula 8 - Sincronização e Comunicação entre ProcessosSistemas Operacionais - Aula 8 - Sincronização e Comunicação entre Processos
Sistemas Operacionais - Aula 8 - Sincronização e Comunicação entre ProcessosCharles Fortes
 
Introdução a linguagem c karen lowhany
Introdução a linguagem c   karen lowhanyIntrodução a linguagem c   karen lowhany
Introdução a linguagem c karen lowhanyKaren Costa
 
Gerência de Configuração
Gerência de ConfiguraçãoGerência de Configuração
Gerência de ConfiguraçãoWagner Zaparoli
 

What's hot (20)

Software livre x Software Proprietário : Propriedade Intelectual
Software livre x Software Proprietário : Propriedade IntelectualSoftware livre x Software Proprietário : Propriedade Intelectual
Software livre x Software Proprietário : Propriedade Intelectual
 
Software Livre (Conceitos, contextualização histórica, licenças, sistemas ope...
Software Livre (Conceitos, contextualização histórica, licenças, sistemas ope...Software Livre (Conceitos, contextualização histórica, licenças, sistemas ope...
Software Livre (Conceitos, contextualização histórica, licenças, sistemas ope...
 
Sistemas operacionais
Sistemas operacionaisSistemas operacionais
Sistemas operacionais
 
Engenharia de Software - Conceitos e Modelos de Desenvolvimento
Engenharia de Software - Conceitos e Modelos de Desenvolvimento Engenharia de Software - Conceitos e Modelos de Desenvolvimento
Engenharia de Software - Conceitos e Modelos de Desenvolvimento
 
Computação em nuvem
Computação em nuvemComputação em nuvem
Computação em nuvem
 
Planificação do Projeto de Software
Planificação do Projeto de SoftwarePlanificação do Projeto de Software
Planificação do Projeto de Software
 
Informática Básica - Aula 05 - Sistema Operacional Windows
Informática Básica - Aula 05 - Sistema Operacional WindowsInformática Básica - Aula 05 - Sistema Operacional Windows
Informática Básica - Aula 05 - Sistema Operacional Windows
 
Sistemas Operacionais - 03 - Tipos e Estrutura dos SO
Sistemas Operacionais - 03 - Tipos e Estrutura dos SOSistemas Operacionais - 03 - Tipos e Estrutura dos SO
Sistemas Operacionais - 03 - Tipos e Estrutura dos SO
 
Modelos de processos de software
Modelos de processos de softwareModelos de processos de software
Modelos de processos de software
 
Desenvolvimento Mobile
Desenvolvimento MobileDesenvolvimento Mobile
Desenvolvimento Mobile
 
Sistemas Operacionais Modernos Capítulo 3 Deadlock
Sistemas Operacionais Modernos Capítulo 3 DeadlockSistemas Operacionais Modernos Capítulo 3 Deadlock
Sistemas Operacionais Modernos Capítulo 3 Deadlock
 
Modelos de Processo de Software Parte 5
Modelos de Processo de Software Parte 5Modelos de Processo de Software Parte 5
Modelos de Processo de Software Parte 5
 
Ciclo de vida de software
Ciclo de vida de softwareCiclo de vida de software
Ciclo de vida de software
 
Aula 19 instalação de drivers de dispositivos
Aula 19   instalação de drivers de dispositivosAula 19   instalação de drivers de dispositivos
Aula 19 instalação de drivers de dispositivos
 
Sistema operacional introdução
Sistema operacional introduçãoSistema operacional introdução
Sistema operacional introdução
 
Sistemas Operacionais - Aula 02 (Visão geral de sistemas operacionais)
Sistemas Operacionais - Aula 02 (Visão geral de sistemas operacionais)Sistemas Operacionais - Aula 02 (Visão geral de sistemas operacionais)
Sistemas Operacionais - Aula 02 (Visão geral de sistemas operacionais)
 
Sistemas Operacionais - Aula 8 - Sincronização e Comunicação entre Processos
Sistemas Operacionais - Aula 8 - Sincronização e Comunicação entre ProcessosSistemas Operacionais - Aula 8 - Sincronização e Comunicação entre Processos
Sistemas Operacionais - Aula 8 - Sincronização e Comunicação entre Processos
 
Introdução a linguagem c karen lowhany
Introdução a linguagem c   karen lowhanyIntrodução a linguagem c   karen lowhany
Introdução a linguagem c karen lowhany
 
Informática Básica - Aula 04 - Software
Informática Básica - Aula 04 - SoftwareInformática Básica - Aula 04 - Software
Informática Básica - Aula 04 - Software
 
Gerência de Configuração
Gerência de ConfiguraçãoGerência de Configuração
Gerência de Configuração
 

Similar to Linha de Produto de Software: Diferentes produtos para diferentes clientes

Es parte do capítulo 16 - linhas de produtos de software
Es   parte do capítulo 16 - linhas de produtos de softwareEs   parte do capítulo 16 - linhas de produtos de software
Es parte do capítulo 16 - linhas de produtos de softwareFelipe Oliveira
 
Não deixe seu projeto só nas mãos do framework
Não deixe seu projeto só nas mãos do frameworkNão deixe seu projeto só nas mãos do framework
Não deixe seu projeto só nas mãos do frameworkGiuseppe Lopes
 
Negócios e Open Source
Negócios e Open SourceNegócios e Open Source
Negócios e Open SourceOpenBossa
 
Como soluções de desenvolvimento ágil podem trazer flexibilidade e velocidade...
Como soluções de desenvolvimento ágil podem trazer flexibilidade e velocidade...Como soluções de desenvolvimento ágil podem trazer flexibilidade e velocidade...
Como soluções de desenvolvimento ágil podem trazer flexibilidade e velocidade...Embratel
 
XP - Extreme Programming
XP - Extreme ProgrammingXP - Extreme Programming
XP - Extreme ProgrammingRodrigo Branas
 
5 Dicas para economizar no desenvolvimento do seu aplicativo
5 Dicas para economizar no desenvolvimento do seu aplicativo5 Dicas para economizar no desenvolvimento do seu aplicativo
5 Dicas para economizar no desenvolvimento do seu aplicativoKleber Carvalho
 
O que não fazer ao atualizar para o PHP 7 @ TDC SP 2018
O que não fazer ao atualizar para o PHP 7 @ TDC SP 2018 O que não fazer ao atualizar para o PHP 7 @ TDC SP 2018
O que não fazer ao atualizar para o PHP 7 @ TDC SP 2018 Gabriel Machado
 
O Papel do Product Owner
O Papel do Product OwnerO Papel do Product Owner
O Papel do Product OwnerMarcia Maia
 
Introdução ao Projeto de Plataformas de Software: o quê, por que, como
Introdução ao Projeto de Plataformas de Software: o quê, por que, comoIntrodução ao Projeto de Plataformas de Software: o quê, por que, como
Introdução ao Projeto de Plataformas de Software: o quê, por que, comoRodrigo Reis
 
Usp Ufba Atratividade Software Livre
Usp Ufba Atratividade Software LivreUsp Ufba Atratividade Software Livre
Usp Ufba Atratividade Software LivreCampus Party Brasil
 
ExpressoBR para Um Milhão (de Usuários)
ExpressoBR para Um Milhão (de Usuários)ExpressoBR para Um Milhão (de Usuários)
ExpressoBR para Um Milhão (de Usuários)Flávio Lisboa
 
Seu código fonte é sustentável?
Seu código fonte é sustentável?Seu código fonte é sustentável?
Seu código fonte é sustentável?Isaac de Souza
 
Aula - Introdução a Engenharia de Software
Aula - Introdução a Engenharia de SoftwareAula - Introdução a Engenharia de Software
Aula - Introdução a Engenharia de SoftwareCloves da Rocha
 
Seja Um Programador Pragmatico
Seja Um Programador PragmaticoSeja Um Programador Pragmatico
Seja Um Programador PragmaticoLeonardo Fernandes
 
Fundamentos Engenharia de Software.pptx
Fundamentos Engenharia de Software.pptxFundamentos Engenharia de Software.pptx
Fundamentos Engenharia de Software.pptxRoberto Nunes
 
Framework Próprio: Vale a Pena?
Framework Próprio: Vale a Pena?Framework Próprio: Vale a Pena?
Framework Próprio: Vale a Pena?Hiarison Gigante
 
Compondo uma plataforma de software com microservices.
Compondo uma plataforma de software com microservices.Compondo uma plataforma de software com microservices.
Compondo uma plataforma de software com microservices.Isaac de Souza
 

Similar to Linha de Produto de Software: Diferentes produtos para diferentes clientes (20)

Es parte do capítulo 16 - linhas de produtos de software
Es   parte do capítulo 16 - linhas de produtos de softwareEs   parte do capítulo 16 - linhas de produtos de software
Es parte do capítulo 16 - linhas de produtos de software
 
Não deixe seu projeto só nas mãos do framework
Não deixe seu projeto só nas mãos do frameworkNão deixe seu projeto só nas mãos do framework
Não deixe seu projeto só nas mãos do framework
 
Negócios e Open Source
Negócios e Open SourceNegócios e Open Source
Negócios e Open Source
 
Scrum na sua Empresa
Scrum na sua EmpresaScrum na sua Empresa
Scrum na sua Empresa
 
Como soluções de desenvolvimento ágil podem trazer flexibilidade e velocidade...
Como soluções de desenvolvimento ágil podem trazer flexibilidade e velocidade...Como soluções de desenvolvimento ágil podem trazer flexibilidade e velocidade...
Como soluções de desenvolvimento ágil podem trazer flexibilidade e velocidade...
 
XP - Extreme Programming
XP - Extreme ProgrammingXP - Extreme Programming
XP - Extreme Programming
 
5 Dicas para economizar no desenvolvimento do seu aplicativo
5 Dicas para economizar no desenvolvimento do seu aplicativo5 Dicas para economizar no desenvolvimento do seu aplicativo
5 Dicas para economizar no desenvolvimento do seu aplicativo
 
O que não fazer ao atualizar para o PHP 7 @ TDC SP 2018
O que não fazer ao atualizar para o PHP 7 @ TDC SP 2018 O que não fazer ao atualizar para o PHP 7 @ TDC SP 2018
O que não fazer ao atualizar para o PHP 7 @ TDC SP 2018
 
O Papel do Product Owner
O Papel do Product OwnerO Papel do Product Owner
O Papel do Product Owner
 
Introdução ao Projeto de Plataformas de Software: o quê, por que, como
Introdução ao Projeto de Plataformas de Software: o quê, por que, comoIntrodução ao Projeto de Plataformas de Software: o quê, por que, como
Introdução ao Projeto de Plataformas de Software: o quê, por que, como
 
Usp Ufba Atratividade Software Livre
Usp Ufba Atratividade Software LivreUsp Ufba Atratividade Software Livre
Usp Ufba Atratividade Software Livre
 
ExpressoBR para Um Milhão (de Usuários)
ExpressoBR para Um Milhão (de Usuários)ExpressoBR para Um Milhão (de Usuários)
ExpressoBR para Um Milhão (de Usuários)
 
Seu código fonte é sustentável?
Seu código fonte é sustentável?Seu código fonte é sustentável?
Seu código fonte é sustentável?
 
Aula - Introdução a Engenharia de Software
Aula - Introdução a Engenharia de SoftwareAula - Introdução a Engenharia de Software
Aula - Introdução a Engenharia de Software
 
Engenharia de Software Aula 1 - Intro
Engenharia de Software Aula 1 - IntroEngenharia de Software Aula 1 - Intro
Engenharia de Software Aula 1 - Intro
 
Seja Um Programador Pragmatico
Seja Um Programador PragmaticoSeja Um Programador Pragmatico
Seja Um Programador Pragmatico
 
Fundamentos Engenharia de Software.pptx
Fundamentos Engenharia de Software.pptxFundamentos Engenharia de Software.pptx
Fundamentos Engenharia de Software.pptx
 
Framework Próprio: Vale a Pena?
Framework Próprio: Vale a Pena?Framework Próprio: Vale a Pena?
Framework Próprio: Vale a Pena?
 
HP Mobile Testing
HP Mobile TestingHP Mobile Testing
HP Mobile Testing
 
Compondo uma plataforma de software com microservices.
Compondo uma plataforma de software com microservices.Compondo uma plataforma de software com microservices.
Compondo uma plataforma de software com microservices.
 

Linha de Produto de Software: Diferentes produtos para diferentes clientes

  • 1. Linha de Produto de Software: Diferentes produtos para diferentes clientes Priscylla Silva pmss@ic.ufal.br
  • 2. 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
  • 3. 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?
  • 4. 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?
  • 5. 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).
  • 6. 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 Câmbio: automático ou manual Motor: 1.0, 1.6 ou 2.0 Ar Condicionado: opcional Portas: 3 ou 5
  • 8. Customização de Celulares Fonte: http://www.motorola.com/
  • 9. O que tudo isso tem haver com Software???
  • 10. Software Individual vs Software Padrão
  • 11. 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!
  • 12. 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
  • 13. Linha de Produto de Software!!! Software Product Line
  • 14. Exemplo ➔ Desenvolvimento de jogos para dispositivos móveis;
  • 15. 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).
  • 16. Quem já está utilizando???
  • 17. 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
  • 18. 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;
  • 19. Motivações ➔ Evolução organizada; ➔ Ganhos de produtividade em larga escala ➔ Maior presença no mercado; ➔ Possibilidade de crescimento da empresa;
  • 20. 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;
  • 21. 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:
  • 22. Demanda pela Engenharia de LPS ➔ Aumento da quantidade de dispositivos com software embarcado; ➔ Variabilidade no Software também tem crescido bastante; ➔ Novos Clientes; ➔ Portabilidade;
  • 23. 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!
  • 24. Abordagens para Construção de LPS ➔ Pró-ativa ➔ Extrativa ➔ Reativa
  • 25. Abordagem Pró-Ativa Product 1 Product 2 SPL Product 3
  • 26. Abordagem Extrativa Product 1 Product 1 Product 2 Product 2 SPL Product 3 Product 3
  • 27. Abordagem Reativa Product 1 React Product 1 Iterate Product 2 Product 2 SPL Product 3 SPL Product 3 Product 4
  • 28. 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
  • 29. Quer saber mais??? http://estruturaopen.com/ Priscylla Silva pmss@ic.ufal.br
  • 30. Obrigada! Perguntas Priscylla Silva pmss@ic.ufal.br