Você está na página 1de 55

Eliane Martins - Instituto de Computao - UNICAMP

Reutilizao de software
Reutilizao de software
Nov/!!"
Eliane Martins - Instituto de Computao - UNICAMP
#$pi%os
#$pi%os
&
Reutilizao' %on%eito
&
(enef)%ios e difi%uldades
&
*esenvolvimento +aseado em %omponentes
,
*esenvolvimento %om reutilizao
,
*esenvolvimento para reutilizao
&
Padr-es de software
Eliane Martins - Instituto de Computao - UNICAMP .
Refer/n%ias
Refer/n%ias
E. Bezerra0 Prin%)pios de An1lise e Pro2eto de 3istemas %om UM40 Editora
Campus5 a0 Edio5 !!60
DESCHAMPS, F. Padres de Projeto. Uma Introduo. Notas de Aula0
*epartamento de Automao e 3istemas 7*A380 Universidade 9ederal de
3anta Catarina0
GAMMA5 E05 HELM5 R05 JOHNSON5 R05 VLISSIDES5 :0 ;Design
Patterns: Elements of Reusable Object-Oriented oft!are;0 Readin<5 MA'
Addison =esle>5 ?@@"0
JANDL5 P0 :r0 AUma Introduo aos Padres de Projeto com "a#aB0 !!.0
C+tido na Internet em a<o/!!"0
PRESSMAN5 R030 A3w En<ineerin<' a Pra%titionerDs Approa%EB0 M%Fraw-
Gill5 HI ed5 ?@@65 %0J0
3OMMERVILLE5 I00 A3w En<ineerin<B5 JI ed5 !!?5 %ap?H0
Eliane Martins - Instituto de Computao - UNICAMP
Reutilizao

Reutilizar5 v0t0d0
?0 #ornar a utilizar0 0 *ar novo uso a0
&
Reutilizao5 s0f0
?0 Ato ou efeito de reutilizar0 0 Pro%edimento em Kue5 material Kue 21 for a
anteriormente pro%essado5 ap$s tratamento %onveniente5 se insere numa
%orrente ou pro%esso
LFERREIRA5 AurMlio (0 G0 ANovo *i%ion1rio da 4)n<ua Portu<uesaB0 Rio de :aneiro5
R:' Nova 9ronteira5 I edio5 ?@NJ0O
&
#am+Mm desi<nada em al<uns tePtos tM%ni%os %omo reutili$ao
Eliane Martins - Instituto de Computao - UNICAMP
&
Atividade %omum
,
En<enEeiros me%Qni%os ou elMtri%os difi%ilmente espe%ifi%am um
pro2eto no Kual os %omponentes tenEam Kue ser fa+ri%ados
espe%ialmente
,
3o reutilizados desde %omponentes peKuenos 7v1lvulas5
trnas)stores8 atM %omponentes mais %omplePos 7motores5 tur+inas8
Reutilizao em outras 1reas da en<enEaria
Eliane Martins - Instituto de Computao - UNICAMP
&
AQualquer procedimento que produza (ou ajude a
produzir) um sistema tornando a utilizar algo desenvolvido
previamenteB
LPeter 9reeman ?@N65 %itado em Pressman@"5 %ap0JOO
&
Reutilizao M al<o prati%ado E1 muito tempo em
En<enEaria de 3oftware5 s$ Kue de maneira ad Eo%
&
*ada a presso por produzir sw de +oa Kualidade em pou%o
tempo ne%essidade de reutilizar de forma sistem1ti%a
Reutilizao em En<enEaria de 3oftware
Eliane Martins - Instituto de Computao - UNICAMP
Gist$ri%o
?@J! Reutilizao de linha !e "#!i$% de um pro<rama em outro
?@6! Reutilizao de "#!i$% "%&'& 7su+rotinas8
Reutilizao de ('n)*e $en+ri"a 7+i+liote%as de fun-es8
?@N! CC' heran)a, "%&,%i)-% . !ele$a)-%
uso de in/er(a"e 7implementadas5 em al<umas lin<ua<ens5
por %lasses a+stratas
P%li&%r(i&% e li$a)-% !in0&i"a 7late binding8' KKr implementao
da interfa%e pode ser usada em tempo de ePe%uo
?@@! Pa!r*e !e %(/1are' reutilizao de v1rias %lasses e de suas
%ola+ora-es0 reutilizao no mais restrita ao %$di<o0
Frameworks' reutilizao de an1lise5 pro2eto5 implementao e testes de
dom)nios de apli%a-es0
C%&,%nen/e' reutilizao de %$di<o ePe%ut1vel5 %onfi<ur1vel5 adapt1vel0
!!H7R8 Ser2i)%' reutilizao de unidade autSnoma de ePe%uo 7funo de
ne<$%io80
RRR
L:a%Kues 3auvM !!' Ettp'//2a%Kues0ds%0uf%<0edu0+r/%ursos/map/Etml/intro/intro0EtmO
Eliane Martins - Instituto de Computao - UNICAMP
&
Tanta<ens'

*esenvolvimento a%elerado pois %ustos %om


desenvolvimento e validao so reduzidos

Conformidade %om padr-es

Maior %onfia+ilidade5 pois utilizam-se solu-es 21


ePperimentadas
Reutilizar' sim ou noR
Eliane Martins - Instituto de Computao - UNICAMP
&
*ifi%uldades'

3eleo5 re%uperao e modifi%ao de artefatos


reutiliz1veis

Compreenso dos artefatos re%uperados

Uualidade dos artefatos re%uperados

Composio de apli%a-es a partir dos artefatos


re%uperados

3)ndrome do Ano foi in#entado a%uiB

9alta de ferramentas de apoio pois atualmente os CA3E


no apoiam desenvolvimento %om reutilizao
ser1 v1lido ainda Eo2eR
Reutilizar' sim ou noR
Eliane Martins - Instituto de Computao - UNICAMP
Reutilizar' sim ou no
Um %aso de fra%asso
Invas-es mon<$is no :apo 7?6H , ?N?8
3amurais ata%am +ar%o da tropa mon<ol
Eliane Martins - Instituto de Computao - UNICAMP
Reutilizar' sim ou no
Um %aso de fra%asso
&
Vu+lai VEan5 neto de Fen<Eis VEan5 de%ide invadir o
:apo ap$s ter %onKuistado CEina e CorMia
&
?I invaso' N!! +ar%os5 ?" !!! soldados mon<$is e
%Eineses5 N!!! %oreanos5 %onKuistam duas ilEas mas 000
,
Pesadas +aiPas
,
Re+elio entre soldados %oreanos e %Eineses
fizeram-nos re%uar atM o litoral mas 000
,
#empestades destru)ram uma +oa parte dos +ar%os
Invas-es mon<$is no :apo 7?6H , ?N?8
9onte'Ettp'//wapedia0mo+i/pt/InvasoWmon<olWdoW:apo5 maio/!!@
Eliane Martins - Instituto de Computao - UNICAMP
Reutilizar' sim ou no
Um %aso de fra%asso
&
I invaso 7ini%ia-se em ?6" e termina em ?N?8'
,
Nova tentativa5 %om mais %ontin<ente5 mais navios 7H!!!8
,
Novamente o ePMr%ito M o+ri<ado a se retirar e retomar os navios5
mas 000
,
Um tufo5 &ami&a$e 7vento divino85
destruiu ?/. da frota mon<ol0 PorKu/R
&
A frota se %onstitui de +otes fluviais
%Eineses e navios leves
& Em parte por sa+ota<em' en<enEeiros
%Eineses introduziram falEas nos navios
novos
& Em parte por falta de tempo' % 3%/e (l'2iai n-% ,'!era& er
a!a,/a!% ,ara re'/iliza)-% n% %"ean%
Invas-es mon<$is no :apo 7?6H , ?N?8
Eliane Martins - Instituto de Computao - UNICAMP
?0 EPist/n%ia de uma +i+liote%a 7ou reposit$rio de %omponentes8
eP0' %omponent sour%e5 2ars
'. (arantia de %ue o com)onente se com)ortar* conforme foi
es)ecificado e %ue sero confi*#eis
.0 EPist/n%ia de do%umentao Kue a2ude a %ompreend/-los e
adot1-los
ReKuisitos para reutilizao
Eliane Martins - Instituto de Computao - UNICAMP
&
Reutilizao pode ser %onsiderada em todas as fases do
desenvolvimento
&
Pode-se reutilizar'
,
Artefatos intermedi1rios padr-es de software
,
3istemas de apli%ao
,
Componentes
,
9un-es
N)veis de A+strao
Eliane Martins - Instituto de Computao - UNICAMP
&
9inal da dM%ada de @!'
,
frustrao %om o reutilizao de %lasses de CC
&
Reutilizao em CC M limitado pois'
,
Classes no so unidades ePe%ut1veis por si s$5 isto M5 pre%isam ser
%ompiladas ou %one%tadas a uma apli%ao para serem utilizadas
,
X dif)%l reutiliz1-las sem ter o %$di<o fonte
,
#/m <ranularidade muito +aiPa
*esenvolvimento +aseado em %omponentes
7*(C8
Eliane Martins - Instituto de Computao - UNICAMP
&
Entidade ePe%ut1vel independente0
&
C %$di<o fonte pode no estar dispon)vel0
&
3ua interfa%e M pY+li%a e %onEe%ida5 e todas as intera-es
so feitas por meio desta interfa%e'
,
In/er(a"e (%rne"i!a 7)ro#ided8' define os servios forme%idos pelo
%omponente
,
In/er(a"e re4'eri!a 7re%uired8' espe%ifi%a os servios Kue devem
estar dispon)veis no %ontePto de uso do %omponente0
&
3ua interfa%e M des%rita em termos de opera-es
parametrizadas5 ou se2a5 seu estado interno no M ePposto0
Componente
L3ommerville !!?5 ?H0?O
Eliane Martins - Instituto de Computao - UNICAMP
Notao
Componente
Interfa%e
forne%ida
Interfa%e
reKuerida
UM4 ?0H
UM4 0!
Interfa%e
forne%ida
Interfa%e
reKuerida
Componente
Componente
9orma a+reviada
9orma ePpandida
Zinterfa%e[
Interfa%eW(
tipo CperaoWC? 7tipo ar<s8
tipo CperaoWC 7tipo ar<s8
Zinterfa%e[
Interfa%eWA
tipo CperaoWA? 7tipo ar<s8
tipo CperaoWA 7tipo ar<s8
depende de
realiza
Eliane Martins - Instituto de Computao - UNICAMP
EPemplo
3istema de
reserva de Eotel
000
I9azReserva
ICan%elaReserva
000
ICo+rana
IFeren%ia
Eliane Martins - Instituto de Computao - UNICAMP
EPemplo
3istema de
reserva de Eotel
000
I9azReserva
ICan%elaReserva
000
ICo+rana
IFeren%ia
Zinterfa%e[
IFeren%ia
<et*etalEesGotel 7 8
<etInfoUuartos 7 8
Zinterfa%e[
I9azReserva
<et*etalEesGotel 7 8
<etInfoUuartos 7 8
9azReserva 7 8
usa
Eliane Martins - Instituto de Computao - UNICAMP
Reutilizao de %omponentes prontos
&
A materializao de %omponentes prontos pode se dar de
duas formas'
,
Reutilizao de %omponente 21 utilizado pela or<anizao
&
Feralmente os %omponentes asso%iados ao dom)nio de ne<$%io so os
mais prop)%ios a serem reutilizados
,
AKuisio de %omponentes a partir de %at1lo<os de ter%eiros
& Compra ou uso de sw livre 7o)en source ou free!are8
&
Componentes reutilizados nem sempre atendem
ePatamente aos reKuisitos'
,
Ne%essidade de adaptar os reKuisitos
,
Ne%essidade de adaptar a arKuitetura para permitir a inte<rao de
%omponentes prontos
Eliane Martins - Instituto de Computao - UNICAMP
Reutilizao de %omponentes prontos , um pro%esso
Identifi%ar
%omponentes %andidatos
Avaliar o impa%to
na arKuitetura
Ne<o%iar reKuisitos
Atualizar arKuitetura
Avaliar arKuitetura
Revisar as espe%ifi%a-es
La%eitoO
Linspirado em CompFovO
Eliane Martins - Instituto de Computao - UNICAMP
Reutilizao de %omponentes prontos , um pro%esso
Identifi%ar
%omponentes %andidatos
Avaliar o impa%to
na arKuitetura
Ne<o%iar reKuisitos
Atualizar arKuitetura
Avaliar arKuitetura
Revisar as espe%ifi%a-es
La%eitoO
4istar
%omponentes %andidatos
3ele%ionar %omponente
Talidar %omponente
4evar em %onta'
-ReKuisitos fun%ionais
- Atri+utos de Kualidade
- Restri-es de pro2eto
Linspirado em CompFovO
Eliane Martins - Instituto de Computao - UNICAMP
Metodolo<ias de *(C
&
EPistem v1rias5 dentre as Kuais as mais %onEe%idas so'
,
UM4 Components
&
:0 :0CEeesman e :0*aniels
,
Catal>sis 7Ettp'//www0i%on%omp0%om/%atal>sis8
& *0 *\3ouza e A0 A0 =ills
,
Vo+rA
&
C0At]inson et al0
Eliane Martins - Instituto de Computao - UNICAMP
&
Custos'

Tanta<ens do reutilizao em <eral ^

Reduo dos ris%os do pro%esso pois o uso de %omponentes prontos


reduz as in%ertezas Kuanto aos %ustos de desenvolvimento de novos
%omponentes

Aumento nos %ustos de manuteno pois %omponentes de ter%eiro


podem ser dif)%eis de entender e podem se tornar in%ompat)veis %om
mudanas do sistema

3)ndrome do Ano foi %riado aKuiB' M mais desafiador desenvolver um


%omponente ori<inal_ a%redita-se mais na Kualidade do Kue M
desenvolvido Aem %asaB

Ne%essidade de manuteno de uma +i+liote%a de %omponentes

*ifi%uldade em en%ontrar5 %ompreender e adaptar %omponentes


reutiliz1veis
Reutilizar %omponentes' sim ou noR
Eliane Martins - Instituto de Computao - UNICAMP
+rame!or&s de apli%a-es
&
+rame!or&' pro2eto de um su+sistema 7ou arKuitetura de
sw semi-definida8 %onstitu)do de um %on2unto de
%omponentes individuais e das inter%oneP-es entre eles0
&
+rame!or&s %riam uma infra-estrutura prM-fa+ri%ada para
o desenvolvimento de apli%a-es de um dom)nio
espe%)fi%o0
&
Uma apli%ao pode ser %onstru)da a partir da inte<rao
de v1rios frame!or&s0
Eliane Martins - Instituto de Computao - UNICAMP
Con%eitos +1si%os
&
Got spots
,
Partes do framewor] Kue so pro2etados para serem <enMri%os
,
Podem ser adaptados `s ne%essidades da apli%ao
&
9rozen spots
,
*efinem a arKuitetura <eral da apli%ao5 seus %omponentes e os
rela%ionamentos entre eles
,
Permane%em fiPos em todas as instan%ia-es do framewor]
Eliane Martins - Instituto de Computao - UNICAMP
+rame!or&s CC
&
A maioria dos frame!or&s so des%ritos em termos de CC0
&
3o %onstitu)dos de %lasses a+stratas e %on%retas e das rela-es
entre elas0
&
Conforme o modo de estender um frame!or& tem-se'
, Framework "ai5a 3ran"a' usu1rios desenvolvem implementa-es
para as %lasses a+stratas forne%idas5 Kue fun%ionam %omo ,%n/%
a!a,/62ei5 +em %omo o %$di<o espe%)fi%o para a apli%ao0
,
Framework "ai5a ,re/a' %ontMm todas as poss)veis alternativas para
todos os seus pontos adapt1veis0 C usu1rio es%olEe uma das
alternativas dispon)veis para %riar sua apli%ao0
Permitem ao usu1rio
adeKuar o frame!or& `s
%ara%ter)sti%as espe%)fi%as
da apli%ao
Eliane Martins - Instituto de Computao - UNICAMP
+rame!or&s +i+liote%as de %lasses
Apli%ao
(i+liote%as
O "%n/r%le !a e5e"')-% e/6
na a,li"a)-% 4'e e/6 en!%
"%n/r'7!a
+rame!or&
Apli%ao
In2er-% !e "%n/r%le8 a a,li"a)-%
4'e '/iliza % framework ,%!e er
in2%"a!a ,%r ele
Eliane Martins - Instituto de Computao - UNICAMP
4inEas de Produto de 3oftware
&
Linha !e ,r%!'/% !e %(/1are 9LPS:, %' (a&7lia !e a,li"a)*e'
, ,onsiste no desen#ol#imento de um conjunto de )rodutos de soft!are-
com alto grau de similaridade entre si e %ue atendem .s necessidades
es)ec/ficas de um segmento de mercado ou misso- de forma )rescriti#a- a
)artir de um conjunto de ati#os centrais0
LClements a NortErop0 3oftware Produ%t 4ines' Pra%ti%es and Patterns0 Addison =esel>5 !!O
&
Atividades essen%iais para implantao e manuteno de 4P3'
,
*esenvolvimento de ativos %entrais'
& Ativos %entrais' partes a serem reutilizadas entre os produtos da fam)lia
,
*esenvolvimento de produtos'
& Construo de produtos utilizando os ativos %entrais
,
Fer/n%ia
& Atividades Kue <eren%iam a implantao e manuteno de 4P3
Eliane Martins - Instituto de Computao - UNICAMP
EPemplo de 4P3
CaiPa EletrSni%o
Identifi%ao
do usu1rio
Emisso de
ePtrato
#oKue
na tela
4eitura
de %arto
#ela
Impresso
*ia<rama de %ara%ter)sti%as
Cara%ter)sti%as o+ri<at$rias
Cara%ter)sti%as alternativas
Cara%ter)sti%a op%ional
Cu eP%lusivo
Cu in%lusivo
=0M0Assis !!@5 *issertao de Mestrado5 IC-Uni%ampO
Eliane Martins - Instituto de Computao - UNICAMP
Reutilizao de servios
&
EPistem v1rias defini-es para servios0 AKui usamos a de
Ri+arov et al0 7!!68
Servio: bloco de construo de SOA que
-
realiza uma funcionalidade de negcio
-
combina dados e comportamento
-
encapsula lgica de negcio e dados
-
deixa visvel somente uma interface para o resto do
sistema
-
aut!nomo com relao aos demais servios do
sistema
de componentes
Eliane Martins - Instituto de Computao - UNICAMP
Mais %ara%ter)sti%as de servios
&
3ervios'
,
#/m interfa%es +em definidas5 independentes da implementao
,
3o auto-%ontidos 7autSnomos8 e fra%amente a%oplados
,
Podem ser des%o+ertos dinami%amente
,
Podem ser %ompostos de outros servios
"#a$moud %&&'(
Eliane Martins - Instituto de Computao - UNICAMP
3ervio e pro%esso
&
3ervios 7de ne<$%io8 so autSnomos , %omo fazer %om Kue
%ooperemR
&
Pr%"e% 7de ne<$%io8'
,
Cutro +lo%o de %onstruo de desenvolvimento orientado a servios
,
9azem a li<ao e o seKben%iamento entre os servios
,
Representam a ePe%uo do ne<$%io %omo um todo se<undo um
wor]flow e <esto de pro%essos de ne<$%io 7(PM8
Eliane Martins - Instituto de Computao - UNICAMP
*emais %on%eitos
&
A,li"a)-% 9frontend application)
,
Materializa o pro%esso de ne<$%io
&
Re,%i/#ri% !e er2i)% 9service registry:
,
Re<istra informa-es so+re os servios e so+re o Kue fazem
&
Barra&en/% !e er2i)% 9service bus:
,
9az a %onePo entre os servios
,
3erve de mediador entre o %onsumidor e provedor do servio5
permitindo introduzir Kualidade de servio 7Uo38 ou transformao de
dados LRi+arov et la0 !!6O
Eliane Martins - Instituto de Computao - UNICAMP
Con%eitos
S
O
A
Servio
Aplicao
Repositrio
de Servios
Barramento
de Servios
)ontrato
*mplementao
*nterface
+gica do
negcio
,ados
"-rafzig et al.%&&'(
Eliane Martins - Instituto de Computao - UNICAMP
Paradi<ma find-bind-e0ecute
Repositrio
de Servios
Consumidor
de Servios
Provedor
de Servios
Cliente
Cliente
Servio
Servio
/usca
0fnd1
2ublica
barramento
)onecta
0bind-execute1
Eliane Martins - Instituto de Computao - UNICAMP
A%ordo de n)vel de servio
&
34A 73ervi%e 4evel A<reement8
,
Contrato entre forne%edor e %onsumidor de um servio5 Kue visa <arantir
as %ara%ter)sti%as de Kualidade do servio ofere%ido
,
C n)vel de Kualidade do servio 7Uo38 pode variar de a%ordo %om o Kuanto
o %onsumidor Kuer pa<ar
,
Uo35 espe%ifi%ada em termos mensur1veis5 serve para medir e monitorar o
desempenEo do forne%edor
,
No %umprimento do 34A multa para o forne%edor
Eliane Martins - Instituto de Computao - UNICAMP
Contrato de 34A
&
Pode %onter espe%ifi%a-es so+re'
,
*isponi+ilidade
&
EP0' o servio deve estar dispon)vel @@5@c do tempo ao lon<o do ano5 ou se2a5
pode parar no m1Pimo N56 Eoras em um ano
,
Confia+ilidade
&
EP0' durante ? ano o servio no deve re<istrar mais de ? defeito a %ada ?
milEo de opera-es realizadas
,
*esempenEo
& EP0' o servio deve ser realizado em atM se<undos
,
Prioridade e desempenEo
&
EP0' soli%ita-es indi%adas %omo Aur<entesB devem ser realizadas em atM NE5 as
mar%adas %omo AimportantesB5 em atM HE e as ArotineirasB5 em atM 6E
Eliane Martins - Instituto de Computao - UNICAMP
Modelos de servios
&
:ini
,
Proposta da 3un de ?@@!
,
3ervios so des%o+ertos e usados dinami%amente 7em rede8
&
3ervios de <rades 7F38
&
3ervios =e+ 7=38
,
Noo de servios de :ini ^ =e+ ^ diversos padr-es
"#a$moud %&&'3 Sommerv.%&&45 c.6%.7(
Eliane Martins - Instituto de Computao - UNICAMP
Padr-es
&
Padro5 s0m0Ldo latim )atronu5 protetorO
?0 Modelo ofi%ial de pesos e medidas0 0 AKuilo Kue serve de +ase ou
norma para a avaliao de Kualidade ou Kuantidade0 .0 UualKuer
o+2eto Kue serve de modelo ` feitura de outro0 000
LFERREIRA5 AurMlio (0 G0 ANovo *i%ion1rio da 4)n<ua Portu<uesaB0 Rio
de :aneiro5 R:' Nova 9ronteira5 I edio5 ?@NJ0O
Eliane Martins - Instituto de Computao - UNICAMP
Padr-es de software
&
PorKu/
,
Aumentar a possi+ilidade de reutilizao de +oas solu-es para
pro+lemas freKbentes5 <arantindo5 %om isso5 melEor Kualidade para o
software
,
Espe%ialistas t/m tend/n%ia a reutilizar solu-es para pro+lemas
sur<idos em tra+alEo anterior
Cs padr-es sur<em %om a ePperi/n%ia pr1ti%a
EPperi/n%ia de espe%ialistas pode ser %ompartilEada %om novatos
Eliane Martins - Instituto de Computao - UNICAMP
Uma definio
&
AUm )adro descre#e um )roblema %ue ocorre
re)etidamente no nosso ambiente- descre#endo a ess1ncia
de uma soluo )ara este )roblema- de forma %ue )ode-se
usar esta soluo mil2ares de #e$es- sem fa1-lo da mesma
forma duas #e$es0B
LA4EdAN*ER5 CEristopEer5 ?@66 --e propSs padr-es a serem usados
em ArKuitetura5 de onde sur<iu a idMia de utilizar do mesmo re%urso
em softwareO
;ALE<ANDER5 C05 ISHI=A>A5 305 SILVERS?EIN5 M05 JACOBSON5 M05 FI=SDAHL@=ING5
I05 ANGEL5 30 ;3 Pattern 4anguage;0 New for]5 Nf 7U3A8' CPford Universit> Press5 ?@66O0
Eliane Martins - Instituto de Computao - UNICAMP
Cutra definio
&
5Um )adro de soft!are nomeia- moti#a e e0)lica uma
soluo gen6rica a um )roblema recorrente %ue surge em
uma situo es)ec/fica. Ele descre#e o )roblema- a soluo-
%uando 6 a)lic*#el e %uais as conse%71ncias de seu uso.8
9(amma et al:
Eliane Martins - Instituto de Computao - UNICAMP
Cara%ter)sti%as L:andl !!.O
&
*es%revem e 2ustifi%am %l')*e para pro+lemas %on%retos e
+em definidos0
&
*o%umentam a ePperi/n%ia e5i/en/e e "%&,r%2a!a0
&
9orne%em um 2%"a3'l6ri% %omum aos desenvolvedores de
software0
&
*es%revem rela)*e entre %on%eitos5 estruturas e
me%anismos ePistentes nos sistemas0
&
Podem ser utilizados em "%nA'n/% %om outros padr-es0
Eliane Martins - Instituto de Computao - UNICAMP
Uso de padr-es
&
Padr-es podem ser utilizados nas diversas etapas de
desenvolvimento de software'
,
An1lise 7M09owler ?@@68
,
ArKuitetura5 Pro2eto e Codifi%ao 7Famma e al_
(us%Emann ?@@J08
,
#estes 7R0(inder ?@@@8
,
Manuteno 7(arr> !!._ Gammouda !!H8
,
Reen<enEaria 7*eme>er !!.8
000
Eliane Martins - Instituto de Computao - UNICAMP
Cate<orias de padr-es
&
Padr-es de an1lise
,
9azem parte da Espe%ifi%ao de ReKuisitos ou da Modela<em
Con%eitual
,
*efinem %on2unto de o+2etos do mundo real5 seus rela%ionamentos e as
re<ras Kue definem seu %omportamento
,
3o dependentes da apli%ao pois des%revem aspe%tos espe%)fi%os do
dom)nio do pro+lema
&
Padr-es de arKuitetura
,
Representam esKuemas para estruturar o software0 *efinem %on2unto
de su+sistemas prM-definidos5 espe%ifi%am suas responsa+ilidade e as
re<ras para or<anizar os rela%ionamentos entre eles0
Eliane Martins - Instituto de Computao - UNICAMP
Cate<orias de padr-es
&
Padr-es de pro2eto
,
Permitem refinar os su+sistemas da arKuitetura5 ou os
rela%ionamentos entre eles
,
9o%am em aspe%tos t)pi%os de pro2eto5 tias %omo' interfa%e-usu1rio5
%riao de o+2etos5 entre outros
,
3o os mais %omuns na literatura
&
Idiomas
,
3o padr-es de +aiPo n)vel5 espe%)fi%os para lin<ua<ens de
pro<ramao
,
*es%revem %omo implementar aspe%tos dos su+sistemas ou dos
rela%ionamentos entre eles5 usando %ara%ter)sti%as de uma
determinada lin<ua<em de pro<ramao
Eliane Martins - Instituto de Computao - UNICAMP
Cate<orias de padr-es
&
Padr-es de manuteno
,
Re<ras e restri-es Kue devem ser satisfeitas por entidades de um
pro<rama 7%lasses5 mMtodos e atri+utos8 para fa%ilitar a manuteno5
mais espe%ifi%amente5 a do%umentao 7GAMMCU*A !!H8
Eliane Martins - Instituto de Computao - UNICAMP
Elementos de um padro
&
EPistem diversas formas de des%rever um padro0 Para os padr-es de pro2eto a forma
mais %omum M aKuela des%rita no livro de Famma et al5 denominado Gan$ %( F%'r
7G%F8'
&
Nome
,
*eve ser %uro e intuitivo
7mnemSni%o8
&
Pro+lema'
, *es%reve em Kue situao o padro
pode ser apli%ado
&
3oluo
, *es%reve os elementos envolvidos5
suas responsa+ilidades e
%ola+ora-es
&
ConseKb/n%ias
, Custos e +enef)%ios da apli%ao
do padro
&
EPemplos'
, EPemplos de apli%ao
Eliane Martins - Instituto de Computao - UNICAMP
EPemplo' um padro de An1lise
&
Padro Part>'
,
Representa %omponentes de uma or<anizao e os rela%ionamentos
entre eles
,
Con%eitos usados'
&
Part>' pessoa ou or<anizao de interesse para a apli%ao
&
Relao de su+ordinao' entre pessoas5 entre pessoas e or<aniza-es
Eliane Martins - Instituto de Computao - UNICAMP
Part>
endereo' 3trin<
4o%alizaoPart>
dataIn)%io' *ate
data#Mrmino' *ate
Pessoa
Car<o
NomeaoCar<o
- dataIn)%io' *ate
- data#Mrmino' *ate
Part>
nome' 3trin<
Cr<anizao
su+ordinado a
g
g
g g
empre<ado empre<ador
g g
? ?00g
Empre<o
dataIn)%io' *ate
data#Mrmino' *ate
tipo
? ?00g
?
g
nomea-es
L(ezerra !!6O
Eliane Martins - Instituto de Computao - UNICAMP
Como sele%ionar um padro
&
Considere %omo os padr-es de pro2eto solu%ionam
os seus pro+lemas de pro2eto0
&
EPamine as se-es de des%rio do pro+lema de
%ada padro0
&
Estude %omo os padr-es se interrela%ionam0
&
Estude padr-es de finalidades semelEantes0
&
EPamine uma %ausa de reformulao de pro2eto0
&
Considere o Kue deveria ser vari1vel no seu
pro2eto0
L*es%Eamps!!"O
Eliane Martins - Instituto de Computao - UNICAMP
Como usar um padro
&
4eia o padro por inteiro5 uma vez5 para o+ter uma
viso <eral0
&
Estude as se-es de des%rio do pro+lema e do padro0
&
ClEe ePemplos de %$di<o do padro0
&
Es%olEa nomes para os parti%ipantes do padro Kue
tenEam sentido no %ontePto da sua apli%ao0
&
*efina as %lasses0
&
*efina nomes espe%)fi%os da apli%ao para as
opera-es no padro0
&
Implemente as opera-es para apoiar as
responsa+ilidades e %ola+ora-es presentes0
L*es%Eamps!!"O
Eliane Martins - Instituto de Computao - UNICAMP
Cnde o+ter mais informa-es
&
Cat1lo<o so+re padr-es
,
Ettp'//www0dofa%tor>0%om/Patterns/Patterns0aspPhlist
&
#utorial so+re padr-es'
,
www0%s%0%alpol>0edu/id+utler/tutorials/winter@J/patterns/o+2e%tives0
Etml Ettp'//
&
Padr-es de pro2eto5 Idiomas e 9ramewor]s
,
ttp'//www0%s0wustl0edu/is%Emidt/patterns0Etml Ettp'//
&
Apresentao <eral so+re padr-es
,
Ettp'//www0mindsprin<0%om/im<rand/patternWs>nopses0Etm
Eliane Martins - Instituto de Computao - UNICAMP
3um1rio dos prin%ipais pontos aprendidos

Você também pode gostar