Ola leitores, Hoje abro um novo tipo de artigo no meu blog. Sao artigos dedicados a Engenharia da Computacao. O artigo de estreia e sobre Linhas de Produtos de Software e seu conteudo e inteiro baseado em um fichamento que estou produzindo para minha Dissertacao de Mestrado. O site de origem das informacoes pode ser acessado aqui: http://www.softwareproductlines.com/O trabalho do autor se baseia em sua propria experiencia decerca de duas decadas em reuso de software e campos de linhas de produto desoftware.O site esta organizado na forma de livro online comcapitulos de introducao e primeiros passos alem de beneficios e casos desucesso. Ao final sao destacados artigos do proprio autor e de pesquisadoresvoluntarios falando sobre as perspectivas da area seguidas de um capitulo derecursos onde podem ser encontradas mais referencias sobre o tema como sites,artigos e livros.Existem diversas referencias a casos de sucesso de empresasgrandes como HP, Phillips e outras. Nesses casos de sucesso sao destacadas melhorias no time-to-market,custo de engenharia, tamanho do portfolio e taxa de defeitos na ordem de 3 para50. A origem dessa ordem de magnitude e o reuso estrategico de software:consolidar aspectos comuns ao longo da linha de produto, estrategicamentegerenciar toda a variacao da linha de produto e agressivamente eliminar toda aduplicacao de esforcos de engenharia. Producao em massa e a habilidade de criar muitas copias domesmo produto. Isso representa um avanco enorme no mundo da manufatura, mas ealgo trivial para a engenharia de software.Customizacao em massa e a habilidade de eficientementecriar muitas variacoes de um produto. Esse e um enorme avanco tanto para amanufatura quanto para a engenharia de software e a chave para isso e maximizaros aspectos comuns e eficientemente gerenciar as variacoes na linha de produto.Linhas de produto de software podem ser descritos a partirde quatro conceitos:Ativos de software: requisitos, componentes desoftware na forma de codigo fonte, casos de teste, arquitetura e documentacao. Decisoes de produto: descreve caracteristicasopcionais e variaveis para os produtos na linha de produto. Sua representacaopode variar desde descricoes informais ate descricoes formais feitas emlinguagem de maquina. O processo de decisao pode tambem estar associado apapeis como engenheiros de aplicacao, engenheiros de dominio, gerente comercialou cliente.Mecanismo de producao: meios para a composicao econfiguracao dos ativos de software. Pode ser automatizada, manual ou umacombinacao de ambos.Produto de software: colecao de todos osprodutos que podem ser criados a partir da linha de produto.Cada ativo de software tem um papel bem definido dentro deuma arquitetura comum para a linha deproduto. Para que seja possivel a variacao entre os produtos, alguns dessesativos precisam ser comuns e outros precisam ser passiveis de configuracao demodo a proverem diferentes comportamentos. Durante o processo de producao asescolhas para cada uma das caracteristicas opcionais e variaveis sao utilizadaspara determinar quais ativos a usar e como configura-los."The characteristic that distinguishes software product lines from previous efforts is predictive versus opportunistic software reuse. Rather than put general software components into a library in hopes that opportunities for reuse will arise, software product lines only call for software artifacts to be created when reuse is predicted in one or more products in a well