Escolar Documentos
Profissional Documentos
Cultura Documentos
Baseado
em
Componentes
Centro
de
Inform-ca
-
Universidade
Federal
de
Pernambuco
Sistemas
de
Informao
Vinicius
Cardoso
Garcia
vcg@cin.ufpe.br
Bibliograa
recomendada
C.R.U.I.S.E
-
Component
Reuse
in
SoEware
Engineering.
1.
ed.
Recife:
C.E.S.A.R
e-books,
2007
hPp://cruise.cesar.org.br/
Chapters
2
&
3
Evangelizao
Como
assim
reuso?
O
que
reuso?
Quem
faz
reuso?
Voc
fez/faz/pensa
em
fazer?
Como?
Quando?
Onde?
Por
que?
Warm
up
O
que
so
componentes
para
voc?
Tipos/Categorias
Quando
Posi-vos
Nega-vos
INTRODUO A DBC
DBC
DBC
::
Contextualizao
Componentes
so
unidades
de
Abstrao
No
consegue
resolver
um
problema?
Abstraia
um
nvel
acima
Anlise
Diviso
em
partes
menores
facilita
o
entedimento/anlise.
Disputa
Diferentes
fornecedores
de
componentes
VS
falha
no
sistema
Mercado
vs
Tecnologia
Desenvolvimento
de
Componentes
No
simples
Viso
de
domnio
Uso
de
abstraes
Informaes
Documentao
Informaes
de
teste
Help
Retorno
de
Inves-mento
Desenvolvimento
em
casa
Tempo
de
entrega
Manutenabilidade
Flexibilidade
imperfect
technology
in
a
working
market
is
sustainable;
Perfect
technology
without
any
market
will
vanish
Szyperski,
2002,
pp.
18
9
[if977]
Engenharia
de
SoEware
-
SI
-
CIn
-
UFPE
Denies
Same-nger
(1997)
Reusable
soEware
components
are
self-contained,
clearly
iden-able
ar-facts
that
describe
and/or
perform
specic
func-ons
and
have
clear
interfaces,
appropriate
documenta-on
and
a
dened
reuse
status
Heineman (2001)
A soEware component is a soEware element that conforms to a component model and can be independently deployed and composed without modica-on according to a component standard
Szyperski (2002)
A soEware component is a unit of composi-on with contractually specied interfaces and explicit context dependencies only. A soEware component can be deployed independently and is subject to composi-on by third par-es
10
Denio
de
Szyperski
uma
unidade
de
implantao
independente
Com
dependncias
explcitas
de
contexto
Atributos
de
Componentes
Interao
de
Componentes
Alta
coeso
Baixo
acoplamento
(mtricas
mdulo
avanado)
Distribuio
Componentes
so
distribudos
logicamente
e
algumas
vezes
separados
sicamente
Aumento
do
poder
computacional,
exibilidade
[diferentes
equipes,
diferentes
fornecedores]
[if977]
Engenharia
de
SoEware
-
SI
-
CIn
-
UFPE
12
Atributos
de
Componentes
Adaptao
Customizao
Modicao
Qualidade
Tolerncia
a
falhas
Componentes
distribudos
Testes
e
cer-cao
de
componentes
(mdulo
avanado)
[if977]
Engenharia
de
SoEware
-
SI
-
CIn
-
UFPE
13
E o que um Objeto?
14
Aspectos de um Componente
15
Componentes
vs
Objetos
Componentes
Unidade
de
implantao
independente
Composio
por
terceiros
No
possui
estado
externo
(observvel)
Objetos
Unidade
de
instanciao
e
tem
um
iden-cador
nico
Possui
estado
externo
Encapsula
seu
estado
e
comportamento
[if977]
Engenharia
de
SoEware
-
SI
-
CIn
-
UFPE
16
Componentes
vs
Objetos
Componentes
Black-box
JAVA
API
Uso
baseado
nas
interfaces
Acesso
ao
cdigo
fonte
Adaptaes
e
Modicaes
White-box
Objetos
En-dades
que
encapsulam
estado
e
comportamento
e
possuem
um
iden-cador
nico
Comportamento
e
estruturas
denidos
por
classes
que:
Implementam
Tipos
Abstratos
de
Dados
Provem
abstraes
do
comportamento
dos
objetos
Provem
implementaes
concretas
do
comportamento
dos
objetos
Permite
a
criao
de
objetos
instncias
de
classes
[if977]
Engenharia
de
SoEware
-
SI
-
CIn
-
UFPE
17
O Que um Componente?
20
Taxonomia
(Heineman)
GUI
Mais
comum,
baixa
complexidade.
Reso
deste
-po
de
componente
pode
aumentar
a
produ-vidade
em
at
40%.
Servios
Mdia
complexidade.
Reso
deste
-po
de
componente
pode
aumentar
a
produ-vidade
em
at
150%.
Domnio
Alta
complexidade
por
pertencer
a
todo
o
domnio
em
questo.
Reso
deste
-po
de
componente
pode
aumentar
a
produ-vidade
em
at
1000%.
21
Taxonomia
Sami-nger
22
INTERFACES E CONTRATOS
23
Interfaces
Ponto
de
Acesso
Especica
um
conjunto
de
operaes
que
podem
ser
invocadas
por
clientes
Requeridas
Contratos
Contratos
denem:
O
que
o
cliente
precisa
saber
para
u-lizar
as
interfaces
O
que
o
provedor
tem
que
implementar
de
modo
a
atender
os
servios
denidos
pela
interface
Denio
de
Pr
x
Ps
condies
25
Componente
Representa
a
realizao
dos
contratos
Fornece
uma
lista
de
interfaces
suportadas
Dene
a
unidade
de
tempo
de
execuo
Dene
as
relaes
entre
os
modelos
de
infromao
de
diferentes
interfaces
Especica
como
as
operaes
devem
ser
implementadas
em
termos
de
u-lizao
de
outras
interfaces
26
MODELOS DE COMPONENTES
27
Modelos
de
Componentes
Modelos
de
Componentes
denem
um
conjunto
de
padres
para
implementao
de
componentes,
interoperabilidade,
customizao,
composio,
evoluo
e
implantao
Enterprise
JavaBeans
(EJB)
CORBA
Component
Model
(CCM)
MicrosoE
.NET
OSGi
Implementao
de
um
modelo
de
componentes
-
dedicado
conjunto
de
elementos
de
soEware
executveis,
necessrios
para
suportar
a
execuo
dos
componentes
segundo
um
modelo
de
compoentes
bem
denido
Servidores
de
Aplicao
Exemplos:
JBoss,
Web4J,
Frameworks
(Struts
&
Hibernate)
[if977]
Engenharia
de
SoEware
-
SI
-
CIn
-
UFPE
28
Elementos
Heterogeneidade
de
componentes
demanda
padres
Padres
para
Interfaces
Nomeao
Meta-dados
Interoperabilidade
Customizao
Composio
Suporte
a
Evoluo
Empacotamento
e
Implantao
Descrio
Especicao
de
comportamento
dos
componentes
e
de
suas
propriedades
Nomes
globais
nicos
para
interfaces
e
componentes
Informaes
sobre
os
componentes,
as
interfaces
e
seus
relacionamentos
Comunicao
e
intercmbio
de
dados
entre
componentes
de
diferentes
fornecedores,
implementados
em
diferentes
linguagens
Interfaces
e
ferramentas
para
customizar
componentes
Interfaces
e
regras
para
combinar
componentes
a
m
de
criar
grandes
estruturas
Regras
e
servios
para
subs-tuir
componentes
ou
interfaces
por
novas
verses
Empacotamento
da
Implementao
e
recursos
necessrios
para
instalar
e
congurar
um
componente
[if977]
Engenharia
de
SoEware
-
SI
-
CIn
-
UFPE
29
Modules
Pol-cas de carregamento de classes Classes privadas para mdulos, bem como links controlados entre mdulos
Life Cycle
Service Registry
30
Apache Felix
Implementao open source da Apache SoEware Founda-on. Ainda no est completamente compavel com OSGi R4
knopersh
MTODOS DE DBC
32
UML
Components
UML
Components
Bem
focado
na
especicao
de
componentes
Simples
(baseado
em
estereZpos)
Uso
de
UML
e
estrutura
RUP
Workow
Denio
de
requisitos
Especicao
de
componentes
Iden-cao
Interao
Especicao
UML
Components
Esteretipos
<<type>>. Usado para representar uma classe no modelo de negcios de um componente em nvel de especificao. <<datatype>>. Possui a mesma representao de Type, mas usado para classes que utilizam persistncia. <<interface type>>. Representa uma interface em nvel de especificao. <<comp spec>>. Usado para indicar uma especificao de um componente. <<offers>>. Liga uma especificao de um componente sua interface. <<core>>. O core subentende um type sem ocorrncia de dependncias.
34
UML Components
35
UML
Components
Entradas: Modelo de casos de uso Modelo conceitual do negcio
36
UML
Components
Exemplo para estudo de caso
Um
sistema
de
reserva
para
hotis
que
permita
que
a
reserva
seja
feita
para
qualquer
hotel
da
cadeia.
O
sistema
deve
oferecer
quartos
alterna-vos
se
o
hotel
desejado
es-ver
lotado.
Cada
hotel
tem
um
administrador
de
reservas
responsvel
por
controlar
as
reservas.
O
tempo
para
conseguir
realizar
uma
reserva
por
telefone
ou
mesmo
pessoalmente
,
em
mdia,
trs
minutos.
Para
acelerar
o
processo,
detalhes
sobre
clientes
an-gos
sero
armazenados
e
estaro
disponveis.
37
Workow de Requisitos
38
39
40
41
42
IdenZcao de componentes
43
44
Simplificao
46
47
48
49
Denir
pr
e
ps-condies
Restries
aplicadas
s
operaes
52
53
54
55
Sumarizando
56
Pontos
importantes
Perceber
a
HORA
e
POSSIBILIDADE
de
criar
um
componente.
Quantas
aplicaes
produzidas
no
mesmo
domnio?
Quanto
de
cdigo
vem
sendo
reusado
entre
essas
aplicaes?
Qual
o
nvel
de
customizao
do
cdigo
de
uma
aplicao
para
outra?
Cdigo
apresenta
estabilidade
suciente?
Que funcionalidades devem ser providas? Documentao adequada ou somente os prprios desenvolvedores conseguem usar? Qual o benecio deste componente? Reu-lizar o componente mais dicil do que codicar a funcionalidade novamente? Qual o esforo gasto para criao/manuteno do componente em relao ao tempo economizado com o reso do mesmo?
57
Aplicao prZca
1)
Standard
adaptable
screen.
2)
Standard
adaptable
screen
with
acZve
context
menu.
3)
Standard
form
with
CustomTextField
and
CustomCheckBox
components
appended.
4)
Popup
with
a
visual
eect
applied
to
the
background
screen.
5)
Message
screen
with
a
scroll
bar.
6,
7
and
8)
Examples
of
standard
MIDP
screens.
[if977]
Engenharia
de
SoEware
-
SI
-
CIn
-
UFPE
58
Futuro
do
DBC
Alguns
pesquisadores
acreditam
numa
evoluo
natural
dos
Servios? paradigmas,
como
representado:
Aspectos? Linhas de Produto? Desenv. Baseado em Componentes Orientao a Objetos Linguagens Imperativas Linguagens Baixo Nvel
[if977]
Engenharia
de
SoEware
-
SI
-
CIn
-
UFPE
59
Referncias
[Same-nger,
1997]
Same-nger,
J.
"SoEware
Engineering
with
Reusable
Components",
Springer-
Verlag,
1997,
pp.275.
[DSouza
and
Wills,
1998]
DSouza,
D.
F.
and
Wills,
A.
C.
"Objects,
Components
and
Frameworks
with
UML:
The
Catalysis
Approach",
Addison-Wesley,
1998,
pp.
816.
[Bachmann
et
al.,
2000]
Bachmann,
F.,
Bass,
L.,
Buhman,
C.,
Buhman,
C.,
Comella-Dorda,
S.,
Long,
F.,
Robert,
J.,
Seacord,
R.
and
Wallnau,
K.
"Volume
II:
Technical
Concepts
of
Component-Based
SoEware
Engineering",
SoEware
Engineering
Ins-tute
(SEI),
Technical
Report,
May,
2000,
pp.
65.
[Cheesman
and
Daniels,
2000]
Cheesman,
J.
and
Daniels,
J.
"UML
Component
A
Simple
Process
for
Specifying
Component-Based
SoEware,
Addison-Wesley,
2000,
pp.
208.
[Council
and
Heineman,
2001]
Councill,
B.
and
Heineman,
G.
T.
"Deni-on
of
a
SoEware
Component
and
its
Elements",
in
G.
T.
Heineman,
W.
T.
Councill,
Component-Based
SoEware
Engineering,
Addison-Wesley,
2001,
pp.
818.
[Heineman
and
Councill,
2001]
Heineman,
G.
T.
and
Councill,
B.
"Component-Based
SoEware
Engineering",
Addison-Wesley,
2001,
pp.
818.
[Williams,
2001]
Williams,
J.
"The
Business
Case
for
Components"
in
G.
T.
Heineman,
W.
T.
Councill,
Component-Based
SoEware
Engineering,
Addison-Wesley,
2001,
pp.
818.
[Weinreich,
2001]
Weinreich,
R.
and
Same-nger,
J.
"Component
Models
and
Component
Services:
Concepts
and
Principles"
in
G.
T.
Heineman,
W.
T.
Councill,
Component-Based
SoEware
Engineering,
Addison-Wesley,
2001,
pp.
818.
[Szyperski,
2002]
Szyperski,
C.
"Component
SoEware:
Beyond
Object-Oriented
Programming",
Addison-Wesley,
2002,
pp.
588.
60
Referncias
[PECOS,
2005]
Pervasive
Component
Systems
-
PECOS
Project.
Disponvel
em
hPp://www.pecos- project.org/,
Junho
2005.
[Almeida
et
al.,
2005]
E.
S.
Almeida,
A.
Alvaro,
D.
Lucredio,
V.
C.
Garcia,
S.
R.
L.
Meira,
A
Survey
on
SoEware
Reuse
Processes,
IEEE
Interna-onal
Conference
on
Informa-on
Reuse
and
Integra-on
(IRI),
Las
Vegas,
Nevada,
USA,
2005.
[Traas
&
Hillegersberg,
2000]
Traas,
V.;
Hillegersberg,
J.
V.
The
soEware
component
market
on
the
internet
current
status
and
condi-ons
for
growth.
In:
ACM
SIGSOFT
SoEware
Engineering
Notes,
Vol.
25
No.
1,
January,
2000.
[Neighbors,
1980]
J.
M.
Neighbors,
SoEware
Construc-on
Using
Components,
PhD
Thesis,
University
of
California,
Irvine,
Department
of
Informa-on
and
Computer
Science,
USA,
April,
1980,
pp.217.
[Simos
et
al.,
1996]
M.
Simos,
D.
Creps,
C.
Klingler,
L.
Levine,
D.
Allemang,
Organiza-on
Domain
Modeling
(ODM)
Guidebook,
Version
2.0,
Technical
Report,
June,
1996,
pp.
509.
[Jacobson
et
al.,
1997]
I.
Jacobson,
M.
L.
Griss,
P.
Jonsson,
Making
the
Reuse
Business
Work,
IEEE
Computer,
Vol.
30,
No.
10,
October,
1997,
pp.
36-42.
[Kang
et
al.,
1998]
K.
C.
Kang,
S.
Kim,
J.
Lee,
K.
Kim,
E.
Shin,
M.
Huh,
FORM:
A
Feature-Oriented
Reuse
Method
with
domain-specic
reference
architectures,
Annals
of
SoEware
Engineering
Notes,
Vol.
05,
No.
00,
Janeiro,
1998,
pp.
143-168.
[Villela,
2000]
R.
M.
M.
B.
Villela,
Search
and
Recovery
of
Components
in
SoEware
Reuse
Environments
(in
portuguese),
Ph.D.
Thesis,
Federal
University
of
Rio
de
Janeiro,
December,
2000,
pp.
264.
61
Referncias
[Kang
et
al.,
1990]
K.
C.
Kang,
S.
G.
Cohen,
J.
A.
Hess,
W.
E.
Novak,
A.
S.
Peterson,
Feature-Oriented
Domain
Analysis
(FODA)
Feasibility
Study,
SoEware
Engineering
Ins-tute
(SEI),
Technical
Report,
November,
1990,
pp.
161.
[Clements
&
Northrop,
2001]
P.
Clements,
L.
Northrop,
SoEware
Product
Lines:
Prac-ces
and
PaPerns,
Addison-Wesley,
2001,
pp.
608.
[Pase
&
Pree,
2000]
A.
Pase,
W.
Pree,
Two
Novel
Concepts
for
Systema-c
Product
Line
Development,
SoEware
Product
Line
Conference
(SPLC),
Denver,
Colorado,
USA,
August,
2000,
pp.
249-270.
[Rombach,
2000]
D.
Rombach,
Fraunhofer:
The
German
Model
for
Applied
Research
and
Technology
Transfer,
22nd
Interna-onal
Conference
on
SoEware
Engineering
[ICSE],
Limerick,
Ireland,
May,
2000,
pp.
25-34.
[Batory
&
OMalley,
1992]
D.
Batory,
S.
OMalley,
The
Design
and
Implementa-on
of
Hierarchical
SoEware
Systems
with
Reusable
Components,
ACM
TOSEM,
October,
1992.
[Batory
et
al.,
2000]
D.
S.
Batory,
R.
Cardone,
Y.
Smaragdakis,
Object- oriented
frameworks
and
product
lines,
SoEware
Product
Line
Conference
(SPLC),
Denver,
Colorado,
USA,
August,
2000,
pp.
227-248.
[if977]
Engenharia
de
SoEware
-
SI
-
CIn
-
UFPE
62
Referncias
[Bayer
et
al.,
1999]
J.
Bayer,
O.
Flege,
P.
Knauber,
R.
Laqua,
D.
Muthig,
K.
Schmid,
T.
Widen,
J.
DeBaud,
PuLSE:
A
Methodology
to
Develop
SoEware
Product
Lines,
Symposium
on
SoEware
Reusability
(SSR),
Los
Angeles,
USA,
May,
1999,
pp.
122-131.
[Weiss
&
Lai,
1999]
D.
M.
Weiss,
C.
T.
R.
Lai,
SoEware
Product-Line
Engineering:
A
Family-Based
SoEware
Development
Process,
Addison-Wesley,
1999,
pp.
426.
[Atkinson
et
al.,
2000]
C.
Atkinson,
J.
Bayer,
D.
Muthig,
Component-Based
Product
Line
Development:
The
KobrA
Approach,
First
SoEware
Product
Line
Conference
[SPLC],
Kluwer
Interna-onal
Series
in
SoEware
Engineering
and
Computer
Science,
Denver,
Colorado,
USA,
August,
2000,
pp.19.
[America
et
al.,
2000]
P.
America,
H.
Obbink,
R.
V.
Ommering,
F.
V.
D.
Linden,
CoPAM:
A
Component-Oriented
Plaorm
Architec-ng
Method
Family
for
Product
Family
Engineering,
First
SoEware
Product
Line
Conference
(SPLC),
Kluwer
Interna-onal
Series
in
SoEware
Engineering
and
Computer
Science,
Denver,
Colorado,
USA,
August,
2000,
pp.
15.
[Kang
et
al.,
2002]
K.
C.
Kang,
J.
Lee,
P.
Donohoe,
Feature-Oriented
Product
Line
Engineering,
IEEE
SoEware,
Vol.
19,
No.
04,
July/August,
2002,
pp.58-65.
[Gomaa,
2005]
H.
Gomaa,
Designing
SoEware
Product
Lines
with
UML:
From
Use
Cases
to
PaPern-Based
SoEware
Architectures,
Addison-Wesley,
2005,
pp.
701.
63