Título
Industrialização do processo de desenvolvimento de software: Software Product Lines
Autor
Cal, Bruno Miguel Saraiva Duarte da
Resumo
pt
Desde os primeiros tempos da engenharia de software, investigadores (e praticantes)
dedicam-se à análise do processo de desenvolvimento de software, avaliando os seus
problemas e possíveis soluções. Vários factores devem ser envolvidos nesta análise, todavia
será certamente seguro afirmar que a falta de reutilização de desenvolvimento e a baixa
produtividade do processo de construção de uma aplicação, são duas preocupações
recorrentes cuja resolução não se tem mostrado simples.
Na última década, este contexto tem motivado a comunidade de investigação a analisar o
que designam por industrialização do processo de desenvolvimento de software. Esta vertente
de investigação defende que várias técnicas industriais podem ser transpostas para o
desenvolvimento de software e que a sua aplicação trará enormes benefícios à abordagem
tradicional, nomeadamente, potenciará substanciais ganhos de produtividade, diminuição de
custos e melhorias de qualidade dos sistemas desenvolvidos.
As Software Product Lines são uma materialização desta perspectiva industrializada do
processo de desenvolvimento. O fundamento principal desta orientação consiste numa
mudança de paradigma de desenvolvimento que substitui o modelo tradicional, focado na
construção de uma aplicação específica para um determinado cliente, para a construção de
uma infra-estrutura de produção que suporte o desenvolvimento de um leque de sistemas
(família de produtos) que sirvam um conjunto de clientes. Segundo os defensores deste novo
paradigma, esta visão multi-sistema, permitirá uma reutilização massiva e sistemática de
vários componentes entre os elementos da família de produtos, que servirá de base para a
optimização do processo de desenvolvimento associada aos ganhos de produtividade,
diminuição de custos e melhorias de qualidade pretendidos.
Esta dissertação procura sistematizar os conceitos envolvidos nas Software Product Lines
através de uma análise abrangente dos princípios teóricos subjacentes e da sua concretização
prática através de técnicas e tecnologias existentes. Com base nesta sistematização de
conhecimento, propomos um modelo de desenvolvimento baseado em famílias de produtos
(SPLUP), cuja aplicabilidade demonstramos através da elaboração de um caso de estudo e
construção de protótipo.
Complementarmente, foram submetidos dois artigos científicos a conferências científicas
(CENTERIS 2011 e CAPSI 2011) que sistematizam as principais conclusões e contribuições
do nosso trabalho.
en
Since the early days of Software Engineering, researchers and practitioners have sought to
improve the software development process. The lack of reuse and the low productivity rates
are recurring concerns whose resolution has not proved to be simple.
Over the last decade, the research community and industry have been studying the
industrialization of the software development process. The ideas underlying this perspective
are supported by the proposition that several industrial techniques should be compliant with
software development, and that its implementation will bring substantial benefits to the
traditional approach, namely, considerable productivity gains, costs reductions and quality
improvements to the developed systems.
Software Product Lines materialize this ―industrialized‖ version of the software
development. The main baseline of this approach, consists on the shift from the present
model, in which a system is built from a set of needs stated by a single customer, to a model
that aims to the construction of a generic production platform that supports the development
of a set (family) of systems that covers a related set of customers’ needs. According to the
proponents of this theory, the multi-system approach will allow a massive and systematic
component reutilization within the family members, which contributes to a considerable
process optimization.
This thesis attempts to organize the concepts related to Software Product Lines through a
comprehensive analysis of the underlying theoretical principles and its practical
implementation through existing techniques and technologies. Based on this knowledge, we
propose a family-oriented development model (SPLUP), whose applicability is demonstrated
by a case study and prototype development.
In addition, two papers were submitted (CENTERIS 2011 and CAPSI 2011 conferences)
to systematize the main conclusions and contributions of our work.