Customização em Massa
Software
Projeto de Sistemas de Software
Ingrid Oliveira de Nunes
Motivação
Você vê os componentes, a arquitetura e o reuso nesses produtos? © LES/PUC-Rio
Linhas de Produto
• Idéia de Linha de Produto não é nova
• Exemplos
– História Antiga: pirâmides do Egito
– Atualmente: linhas de produtos de carros
Limpador de Pára-brisa
Traseiro: opcional
Motor: 1.0, 1.6 ou 2.0
Câmbio: automático ou manual
Ar Condicionado: opcional Portas: 3 ou 5
© LES/PUC-Rio
Linhas de Produto
• Família de Produtos
– Características Comuns
– Características Variáveis
• Customização em Massa
– Produção em larga escala de bens adaptados de acordo com as necessidades individuais do usuário
• Plataforma
– Qualquer base de tecnologias sobre a qual outras tecnologias ou processos são construídos
Desenvolvimento baseado em Plataformas
+
Customização em Massa
© LES/PUC-Rio
Reuso de uma base comum de tecnologia
Produtos (quase) de acordo com o desejo do usuário
Linhas de Produtos de Software
História do Reuso: do Ad-Hoc ao Sistemático
Reuso de baixa granularidade e oportunístico
© LES/PUC-Rio
Linhas de Produtos de Software
• Software Product Lines (SPL)
• Produtos Sistemas de Software
– Algumas funcionalidades comuns
– Algumas funcionalidades variáveis
• Desenvolvimento de partes (assets) reusáveis – Reusados por diferentes membros da família
• Derivação de Produtos
– Processo de construção de um produto a partir do conjunto de assets especificados ou implementados para uma SPL
© LES/PUC-Rio
SPL – Algumas Definições
A software product line is a set of software-intensive systems sharing a common, managed set of features that satisfy the specific need of a particular market segment or mission and that are developed from a common set of core assets in a prescribed way.
Software product line engineering is a paradigm to develop software applications (software-intensive