de
Produtos
de
So0ware
Centro
de
Inform-ca
-
Universidade
Federal
de
Pernambuco
Sistemas
de
Informao
Vinicius
Cardoso
Garcia
vcg@cin.ufpe.br
Bibliograa
recomendada
Pohl,
K.Bckle,
G.Linden,
F.
J.
v.
d.
So0ware
Product
Line
Engineering
-
Founda<ons,
Principles
and
Techniques:
Springer.
2005.
468
p.
hRp://www.soUware-productline.com/
C.R.U.I.S.E
-
Component
Reuse
in
SoUware
Engineering.
1.
ed.
Recife:
C.E.S.A.R
e-books,
2007
hRp://cruise.cesar.org.br
Chapters
1,
2
&
4
Mass
customiza<on
is
the
large-scale
produc<on
of
goods
tailored
to
individual
customers'
needs.
[Davis
1987]
Produtos
de
engenharia
customizados
Criao
de
uma
plataforma
Introduo
de
exibilidade
Reorganizao
da
companhia
[if977]
Engenharia
de
SoUware
-
SI
-
CIn
-
UFPE
3
[Cooper et al. 2001] A platform is any base of technologies on which other technologies or processes are built. [TechTarget 2004]
Pr-requisitos
Habilitar
tecnologias
Maturidade
do
processo
Caracters-cas
do
domnio
e
exper-se
[if977]
Engenharia
de
SoUware
-
SI
-
CIn
-
UFPE
7
Fonte: hRp://www.sei.cmu.edu/productlines/
10
Linhas
de
Produtos
A
maioria
dos
desenvolvimentos
de
linha
de
produtos
prov
uma
arquitetura
genrica
para
a
linha
de
produtos
que
descreve
as
igualdades
entre
os
membros
mas
ignora
toda
a
variabilidade
Cada
aplicao
comea
com
uma
arquitetura
genrica
e
adapta
as
requisies.
Esta
abordagem
prov
um
melhor
ponto
de
comeo
em
comparao
a
um
desenvolvimento
de
um
sistema
sem
nenhum
reuso.
Uma
abordagem
desejvel
modelar
o
que
comum
e
o
que
diferente
na
famlia
de
produtos.
Uma
arquitetura
de
SPL
deve
descrever
as
igualdades
e
a
variabilidade
na
famlia.
[if977]
Engenharia
de
SoUware
-
SI
-
CIn
-
UFPE
11
12
[Bosch, 2002]
13
Boeing
Company
The
success
of
the
Bold
Stroke
soUware
product
line
is
based
on
the
reduc6on
of
dependencies
between
components
and
the
dependency
on
pla;orm-specic
hardware.
15
Philips
Lidera o mercado de pesquisadores europeus no campo de linhas de produto de soUware. Philips Consumer Electronics prov linhas de produto de so0ware para equipamentos de udio e vdeo, tais como aparelhos de TV, apresentando uma arquitetura de referncia estvel.
Alm
de
outros
exemplos:
CelsiusTech
Systems
AB,
LG
Industrial
Systems,
Lucent
Technologies,
Robert
Bosch
GmbH.
[if977]
Engenharia
de
SoUware
-
SI
-
CIn
-
UFPE
16
Diferentes
Linhas
de
SoUware
espalhadas
pelo
mundo.
Releases
so
feitos
para
outros
grupos.
17
18
19
20
21
Soluo
Separar
a
base
de
conhecimento
da
lngua
do
cdigo
Separar
aparncia
de
comportamento
Independente
da
lngua
escolhida,
o
cdigo
no
muda
[if977]
Engenharia
de
SoUware
-
SI
-
CIn
-
UFPE
22
23
24
25
Geradores de CRUD
adaptaes
de
jogos/soUware
para
diferentes
disposi-vos/ celulares;
Geradores
de
cdigo
fonte
para
operaes
bsica
de
cadastro
(inserir,
remover,
consultar
e
atualizar)
de
sistemas
web
de
informao
baseado
numa
arquitetura
genrica
Arquitetura
extensvel
baseada
em
plugins
que
permite
a
customizao
do
seu
ambiente
para
diferentes
usurios
[if977]
Engenharia
de
SoUware
-
SI
-
CIn
-
UFPE
27
Plataforma Eclipse
Eclipse
Plataforma
Eclipse
Arquitetura
extensvel
baseada
em
plugins
que
permite
a
customizao
do
seu
ambiente
para
diferentes
usurios
Diferentes verses do Eclipse podem ser customizadas, e elas podem at mesmo sobreviver juntas em tempo de execuo
A arquitetura extensvel baseada em plugins do Eclipse pode tambm ser considerada uma arquitetura de linha de produto que permite a criao/gerao de vrios produtos
28
Eclipse
plugins
Eclipse
plugins:
So
componentes
de
cdigo
e/ou
dados
que
contribuem
para
a
extenso
da
plataforma
com
alguma
funcionalidade,
tais
como:
novas
bibliotecas/APIs
novas
vises/perspec-vas/editores/depuradores
documentao
(help)
Exemplos:
Em
geral,
estendem
pontos
de
extenso
oferecidos
pela
plataforma
(outros
plugins),
assim
como
podem
oferecer
seus
prprios
pontos
de
extenso
JDT
(Java
Development
Tooling),
PDE
(Plugin
Development
Environment)
JUnit
Extensions,
Ferramenta
de
Modelagem
UML,
etc
[if977]
Engenharia
de
SoUware
-
SI
-
CIn
-
UFPE
30
Funcionamento de um plugin
plug-in B extension
31
Conceitos
Engenharia
de
linha
de
produto
de
soUware
baseia-se
em
dois
processos:
1. Estabelecimento
da
plataforma
(Engenharia
de
Domnio)
Gerenciamento
de
pontos
variveis
e
pontos
em
comum.
Plataforma
consiste
em:
requisitos,
projeto
do
domnio,
implementao
de
componentes,
testes.
34
Artefatos
da
aplicao
Modelo
de
variabilidade
da
aplicao
Requisitos
da
aplicao
Arquitetura
da
aplicao
Implementao
de
artefatos
da
aplicao
Testes
de
artefatos
da
aplicao
35
ANLISE DE DOMNIO
36
Denies
de
Variabilidade
[Weiss
e
Lai,
1999]
Forma
como
os
membros
de
uma
famlia
de
produtos
podem
se
diferenciar
entre
si
Pontos
de
variao
Variantes
Local
especco
de
um
artefato
em
que
uma
deciso
de
projeto
ainda
no
foi
resolvida
Cada
ponto
de
variao
tem
associado
um
conjunto
de
variantes
Uma
alterna-va
de
projeto
para
instanciar
uma
determinada
variabilidade
Escolha
de
uma
ou
mais
variantes
do
conjunto
relacionado
[if977]
Engenharia
de
SoUware
-
SI
-
CIn
-
UFPE
37
Representaes
de
Variabilidade
Variabilidades
representadas
em
termos
de
features
Feature
pode
ser
denida
como
uma
caracters<ca
de
um
sistema
que
relevante
e
visvel
para
o
usurio
nal
[Kang
et
al.,
1990]
Representao
FODA
Feature
Oriented
Domain
Analysis
[if977]
Engenharia
de
SoUware
-
SI
-
CIn
-
UFPE
38
Representaes
de
Variabilidade
Tipos
de
features
Mandatrias
Opcionais
Alterna-vas
OR
Dependncias
Implicao
Excluso
Todas as features-folha mandatrias devem estar presentes (n para n) Qualquer nmero de features opcionais pode ser includo (m para n, 0 < = m <= n) Exatamente uma feature deve ser selecionada de um grupo de features alterna-vas (1 para n) Pelo menos uma feature deve ser selecionada de um grupo de OR features (m para n, m > 1)
39
40
41
Consideraes
Variabilidade
um
conceito
que
no
est
presente
somente
quando
consideramos
a
abordagem
de
ED/LPS
Frameworks
so
excelentes
exemplos
Gerenciar
variabilidades
requer
saber
exatamente
como
iden-c-las,
represent-las,
delimit-las,
implement-las
Vrias
so
as
propostas
de
gerenciamento
de
variabilidade
existentes
Problemas
especcos
42
PROJETO DE DOMNIO
43
Projeto
de
Domnio
Obje-vos
Produzir
a
arquitetura
de
referncia
Denir
a
estrutura
do
soUware
Requisitos
do
domnio
Implementao
do
domnio
Projeto
da
Aplicao
Abstrair
Modelar
Proto-par
Validar
[if977]
Engenharia
de
SoUware
-
SI
-
CIn
-
UFPE
44
Relacionamentos
A-vidades
Projeto
de
Domnio
Relacionamento
entre
o
sub-processo
Projetar
Domnio
e
os
demais
sub- processos
Viso Geral
46
Proto-pao Validao
47
Requisitos
de
Qualidade
Requisitos
de
qualidade
guiam
a
arquitetura
Qualidade
do
desenvolvimento
Avaliao
da
arquitetura
Variabilidade (Congurao, Interna e Externa) Flexibilidade (Mudanas no intrusivas pelos sistemas) Evolubilidade (Evoluir a arquitetura de acordo com as mudanas dos requisitos) Manutenibilidade (Facilidade em encontrar e corrigir erros)
48
50
Uso de aspectos
52
Arquitetura
de
Referncia
GUI FrontEndServlet [Entidade]StrutsAction IFachada[Sistema] Negcio [Entidade]ServiceImpl [Entidade] [Entidade].jsp
Sistema
Acadmico
GUI Aluno.jsp FrontEndServlet AlunoStrutsAction IAlunoService Negcio Aluno AlunoServiceImpl ProfessorServiceImpl Professor Professor.jsp
ProfessorStrutsAction IProfessorService
IAlunoDAO Dados
IProfessorDAO ProfessorDAOHibernate
54
AlunoDAOHibernate
ImpostoStrutsAction IImpostoService
Imposto ServiceImpl
Imposto
IImpostoDAO ImpostoDAOHibernate
55
Validao
da
Arquitetura
Validao
da
arquitetura
da
aplicao
Consistncia
com
a
arquitetura
de
referncia
[estrutura]
Do interfaces carry the right func-onality to the right level of abstrac-on? Are components and interfaces produced according to texture? Does each component carry all its interfaces, and no more? Do components call only the required interfaces, and all of them?
Testes de integrao
56
57
58
PROJETAR APLICAO
60
Projetar
Aplicao
Obje-vo
Produzir
a
arquitetura
da
aplicao
[especializao
da
arquitetura
de
referncia]
[Pohl
et
al.,
2005]
61
Simulao
e
proto-pao
[if977]
Engenharia
de
SoUware
-
SI
-
CIn
-
UFPE
62
Reuso dos artefatos do domnio Projetar artefatos para as novas variaes Avaliar o esforo adicional Determinar a congurao propcia
A congurao dos componentes o resultado do binding dos pontos de variao com as variabilidades selecionadas
63
65
Es-ma-va de custos
66
Diferenas:
SPLE
vs
SE
Reuso
da
arquitetura
de
referncia
Rastreabilidade
dos
requisitos
Regras
comuns
da
estrutura
Esforo
reduzido
67