Resumo-Por reutilizar tanto requisitos quanto arquitetura de software, linha de produtos de software (LPS) tem se consolidado como uma das melhores formas de reuso, mesmo tendo um custo alto quando comparado ao desenvolvimento de sistemas específicos. Arquitetura orientada a serviços (SOA) podem facilitar ainda mais o desenvolvimento de LPS, uma vez que diversas características (features) da LPS podem estar implementadas em serviços disponíveis em uma rede. Este artigo apresenta a SoProL-WS, queé uma abordagem para desenvolvimento de LPS com o uso de SOA. O enfoque do artigoé na fase de engenharia de domínio, em que desenvolve-se uma arquitetura de LPS baseada em serviços, a partir da qual pode-se derivar produtos na fase de engenharia de aplicações. O objetivo da SoProL-WSé reduzir custos e prazos de desenvolvimento de LPS e facilitar a sua manutenção, evolução e derivação de seus membros. Adicionalmente, este trabalho apresenta um estudo de caso, no qual aplica-se a SoProL-WS para o desenvolvimento de uma linha de produtos de leilões Web.Abstract-Software product lines (SPL) have been established as one of the best ways to promote reuse of both requirements and software architecture, even with a high cost when compared to the development of single systems. Service-oriented architecture (SOA) can further facilitate the development of SPL, since several features of the SPL can be implemented by services available on a network. This paper presents SoProL-WS, which is a development approach for SPL using SOA. The focus of this article is in the domain engineering phase, where the SPL architecture is developed based on services. From this architecture, one can derive products in the subsequent application engineering phase. The goal of SoProL-WS is to reduce SPL development costs and time, facilitating its maintenance, evolution and derivation of its members. Additionally, this paper presents a case study where SoProl-WS is applied to develop a product line for Web auctions.
I. INTRODUÇÃOU MA linha de produto de software (LPS) consiste de um conjunto de sistemas de software que compartilham características comuns e gerenciadas e que satisfazem a uma necessidade específica de um segmento particular de mercado, sendo desenvolvidas a partir de um conjunto comum de ativos centrais, de forma sistemática [1]. Os produtos de uma LPS distinguem-se, uns dos outros, em termos de características (features), que são abstrações essenciais entendidas por clientes e desenvolvedores [2].O desenvolvimento de uma LPS tem maior custo em relação ao desenvolvimento de sistemas específicos (single systems), pois entre outras coisas, eleé feito em duas fases: a primeiraé conhecida como engenharia de domínio, e nela são desenvolvidos uma série de artefatos genéricos para os produtos da linha; a segundaé conhecida como engenharia de aplicações, e utiliza-se dos artefatos desenvolvidos na engenharia de domínio para montar os produtos da linha. Durante a engenharia de domínio elabora-se uma arquitetura geral da LPS para que diversos produtos ...