Aula 02 - UML e Padrões de Projeto

viniciusdepaula37 10,065 views 42 slides Sep 28, 2015
Slide 1
Slide 1 of 42
Slide 1
1
Slide 2
2
Slide 3
3
Slide 4
4
Slide 5
5
Slide 6
6
Slide 7
7
Slide 8
8
Slide 9
9
Slide 10
10
Slide 11
11
Slide 12
12
Slide 13
13
Slide 14
14
Slide 15
15
Slide 16
16
Slide 17
17
Slide 18
18
Slide 19
19
Slide 20
20
Slide 21
21
Slide 22
22
Slide 23
23
Slide 24
24
Slide 25
25
Slide 26
26
Slide 27
27
Slide 28
28
Slide 29
29
Slide 30
30
Slide 31
31
Slide 32
32
Slide 33
33
Slide 34
34
Slide 35
35
Slide 36
36
Slide 37
37
Slide 38
38
Slide 39
39
Slide 40
40
Slide 41
41
Slide 42
42

About This Presentation

Especialização em Desenvolvimento Java - Módulo: UML e Padrões de Projeto


Slide Content

Especialização em Desenvolvimento Java
UML e Padrões de Projetos
Aula 02 –DIAGRAMA DE CLASSES
Prof. Vinícius de Paula [email protected]

Diagrama de Classes
•Seuprincipalenfoqueestáem:
•Permitiravisualizaçãodasclassesqueirãocomporosistemacom
seusrespectivosatributosemétodos;
•Demonstrarcomoasclassesdodiagramaserelacionam,
complementametransmiteminformaçõesentresi.
•Apresentaumavisãoestáticadecomoasclassesestão
organizadas,preocupando-seemcomodefiniraestrutura
lógicadasmesmas.
UML e Padrões de Projeto Centro Universitário do Triângulo
2

Diagrama de Classes
•Nafasedeanálise,ummodeloconceitualdodiagramade
classeséproduzido.
•Asinformaçõesqueosoftwarenecessitará,emtermosdeclassese
seusatributos,bemcomoasassociaçõesentreasclassesdevem
serrepresentadas
•Jánafasedeprojeto,combasenomodeloconceitualdo
diagramadeclasseéproduzidoomodelodedomínio.
•Asoluçãodoproblemaéenfocada.
•Osmétodosqueasclassespoderãoconterfazempartedecomoo
softwareserádesenvolvidoeporestemotivoelesdevemaparecerno
modelodedomínio.
UML e Padrões de Projeto Centro Universitário do Triângulo
3

Atributos e Métodos
•Classescostumamter:
•Atributosquearmazenamosdadosdosobjetosdaclassee;
•Métodosquesãofunçõesqueumainstânciadaclassepode
executar.
UML e Padrões de Projeto Centro Universitário do Triângulo
4
Nome da Classe
Atributos
Operações
Características
Comportamento

Visibilidade
•Marcaçõesdeacessopodemserusadasparaespecificarotipo
deacessopermitidoaosatributosemétodosdaclasse.
+público
#protegido
-privado
Nenhumamarcaçãoparadefault
UML e Padrões de Projeto Centro Universitário do Triângulo
5

Relacionamentos
•Permitecompartilharinformaçõesecolaborarcomaexecução
dosprocessosdosistema.
•Descreveumvínculoqueocorrenormalmenteentreosobjetosde
umaoumaisclasses.
•Osrelacionamentossãorepresentadosporlinhasligandoasclasses
envolvidas.
UML e Padrões de Projeto Centro Universitário do Triângulo
6

Tipos de Relacionamentos
•Ostiposderelacionamentossão:
•Associação
•Agregação
•Composição
•Especialização/Generalização
•Dependência
UML e Padrões de Projeto Centro Universitário do Triângulo
7
Associação
Herança
Dependência
Agregação
Composição

Associação Unária ou Reflexiva
•Ocorrequandoexisteumrelacionamentodeumobjetodeuma
classecomobjetosdamesmaclasse.
•Noexemploabaixo,umfuncionáriopodesupervisionaroutros
funcionários.
•Osupervisordeumfuncionáriotambéméumfuncionárioda
empresae,portanto,tambémseconstituiemumainstânciada
classeFuncionario.
UML e Padrões de Projeto Centro Universitário do Triângulo
8
Um funcionário pode não supervisionar ninguém,
ou pode supervisionar um ou mais funcionários

Multiplicidade
•Procuradeterminaronúmeromínimoemáximodeobjetos
envolvidosemcadaextremidadedaassociação.
•Permiteespecificaroníveldedependênciadeumobjetopara
comosoutrosenvolvidosnaassociação.
UML e Padrões de Projeto Centro Universitário do Triângulo
9
1 empresa possui 1 ou mais pessoas ligadas
a ela
1 pessoa está ligada a apenas 1 empresa

Tipos de Multiplicidade
•Nãoespecificada
•Exatamenteum
•Zerooumais
•Muitos(mesmoque0..*)
•Umesomenteum
•Umoumais
•Zeroouum
•Intervalodeterminado
•Valoresmúltiplos
UML e Padrões de Projeto Centro Universitário do Triângulo
10
1
0..*
*
1..*
0..1
2..4
2, 4..6
1..1

Papéis
•Informaçõesextrasnaassociaçãoquepodemajudaraexplicara
funçãodeumobjeto(opapelqueesterepresenta)dentroda
associação.
UML e Padrões de Projeto Centro Universitário do Triângulo
11

Associação Binária
•Ocorremquandosãoidentificadosrelacionamentosentreobjetos
deduasclassesdistintas.
UML e Padrões de Projeto Centro Universitário do Triângulo
12
publicclassFuncionario {
privateintnroMatricula;
privateStringnome;
privatedoublesalario;
privateDependente [] dependentes;
//métodos
}
publicclassDependente {
privateStringnome;
privateStringparentesco;
//métodos
}

Navegabilidade
•Érepresentadaporumasetaemumadasextremidadese
identificaosentidoemqueasinformaçõessãotransmitidas
entreosobjetosdasclassesenvolvidas.
•Noexemploabaixo,umobjetodaclasseFuncionariopoderáchamar
métodosdaclasseDependente.
UML e Padrões de Projeto Centro Universitário do Triângulo
13

Agregação
•Demonstraqueasinformaçõesdeumobjeto(objeto-todo)
precisamsercomplementadaspelasinformaçõescontidasem
umoumaisobjetosdeoutraclasse(objetos-parte).
•Osímbolodeagregaçãocontémumlosangonaextremidadeda
classequecontémosobjetos-todo.
UML e Padrões de Projeto Centro Universitário do Triângulo
14
Objetos da classe Pessoasão objetos-todoque precisam ter suas
informações complementadas pelos objetos da classe
ContaComum, que nesta associação são objetos-parte.

Agregação
•Aassociaçãodeagregaçãopode,emmuitoscasosser
substituídaporumaassociaçãobináriasimples.
•Afunçãoprincipaldeumadeumaassociaçãodotipoagregaçãoé
identificaraobrigatoriedadedeumacomplementaçãodas
informaçõesdeumobjeto-todoporseusobjetos-parte,quando
esteforconsultado.
UML e Padrões de Projeto Centro Universitário do Triângulo
15

Composição
•Éumavariaçãodaagregaçãoeconsideradamaisforte.
•Oobjeto-partenãopodeexistirsemoobjeto-todo.
•Seoobjeto-todofordestruído,oobjeto-partetambémserá.
UML e Padrões de Projeto Centro Universitário do Triângulo
16

Composição
•Éumavariaçãodaagregaçãoeconsideradamaisforte.
•Oobjeto-partenãopodeexistirsemoobjeto-todo.
•Seoobjeto-todofordestruído,oobjeto-partetambémserá.
UML e Padrões de Projeto Centro Universitário do Triângulo
17

Generalização/Especialização
•Temcomoobjetivorepresentaraocorrênciadeherançaentreas
classesidentificandoassuperclassesesubclasses.
UML e Padrões de Projeto Centro Universitário do Triângulo
18

Classe Associativa
•Classesproduzidasquandoasassociaçõespossuema
multiplicidademuitos(*)emtodasassuasextremidades.
•Sãonecessáriasnoscasosemqueexistematributosrelacionadosà
associaçãoquenãopodemserarmazenadospornenhumadas
classesenvolvidas.
UML e Padrões de Projeto Centro Universitário do Triângulo
19

Classe Associativa
•Classesproduzidasquandoasassociaçõespossuema
multiplicidademuitos(*)emtodasassuasextremidades.
•Sãonecessáriasnoscasosemqueexistematributosrelacionadosà
associaçãoquenãopodemserarmazenadospornenhumadas
classesenvolvidas.
UML e Padrões de Projeto Centro Universitário do Triângulo
20
Um ator pode atuar em muitos filmes, e um filme pode ter muitos atores
atuando nele.

Classe Associativa
Casoumatorinterpretassedoispapéisemummesmofilme?
UML e Padrões de Projeto Centro Universitário do Triângulo
21

Classe Associativa
Casoumatorinterpretassedoispapéisemummesmofilme?
Ousodaclasseassociativanãoseriaomaisadequado.
Poderíamosinserirumaclassenormalatuandocomoumaclasse
intermediária.
UML e Padrões de Projeto Centro Universitário do Triângulo
22

Classe Associativa
Casoumatorinterpretassedoispapéisemummesmofilme?
Ousodaclasseassociativanãoseriaomaisadequado.
Poderíamosinserirumaclassenormalatuandocomoumaclasse
intermediária.
UML e Padrões de Projeto Centro Universitário do Triângulo
23

Dependência
•Identificacertograudedependênciadeumaclasseemrelaçãoà
outra.
•Umadependênciadiferedeumaassociaçãoporqueaconexãoentre
asclassesétemporária.
UML e Padrões de Projeto Centro Universitário do Triângulo
24

Dependência
•Identificacertograudedependênciadeumaclasseemrelaçãoà
outra.
•Umadependênciadiferedeumaassociaçãoporqueaconexãoentre
asclassesétemporária.
UML e Padrões de Projeto Centro Universitário do Triângulo
25
Funcionario não instancia um Automovel, apenas usa-o como parâmetro de um
método

Realização
•Tipoderelacionamentoespecialquemisturacaracterísticasde
generalizaçãoedependência.
•Usadaparaidentificarclassesresponsáveisporexecutarfunções
paraoutrasclasses.
UML e Padrões de Projeto Centro Universitário do Triângulo
26

Realização
•Tipoderelacionamentoespecialquemisturacaracterísticasde
generalizaçãoedependência.
•Usadaparaidentificarclassesresponsáveisporexecutarfunções
paraoutrasclasses.
UML e Padrões de Projeto Centro Universitário do Triângulo
27
A classe Monitor implementa algum dos serviços oferecidos pela classe
IMonitor.

Restrição
•Informaçõesextrasquedefinemcondiçõesaseremvalidadas
duranteaimplementaçãodosmétodosdeumaclasse,das
associaçõesentreasclassesoumesmodeseusatributos.
•Representadasportextoslimitadosporchaves.
UML e Padrões de Projeto Centro Universitário do Triângulo
28

Restrição
•Restriçõespodemseraplicadastambémparavalidarumatributo
oumétododeumaclasse.
UML e Padrões de Projeto Centro Universitário do Triângulo
29

Estereótipos
•Possibilitamcertograudeextensibilidadeaoscomponentesou
associações.
•Permiteaidentificaçãodecomponentesouassociaçõesque,embora
semelhantesaosoutros,tenhamalgumacaracterísticaqueos
diferenciem.
•Existem3estereótipospredefinidosnaUMLbastanteutilizadosnos
diagramasdeclasses:
•<<entity>>
•<<boundary>>
•<<control>>
UML e Padrões de Projeto Centro Universitário do Triângulo
30

Classes Estereotipadas
•Entity:classedeentidade,geralmenteimplementaosobjetos
persistentes.
•Boundary:classedefronteira,geralmenteinterfacesgráficas.
•Control:classedecontrole,geralmenteimplementaasregras
denegócio.
UML e Padrões de Projeto Centro Universitário do Triângulo
31

Estereótipo <<entity>>
•Temporobjetivotornarexplícitoqueumaclasseéuma
entidade.
•Umaentidadeéumaclassecontéminformaçõesrecebidase
armazenadaspelosistemaougeradaspormeiodeste.
•Classescomoestereótipo<<entity>>tambémfornecema
informaçãodequenormalmenteterãomuitosobjetos,podendo
aindaserempersistidos.
UML e Padrões de Projeto Centro Universitário do Triângulo
32

Estereótipo <<entity>>
•Temporobjetivotornarexplícitoqueumaclasseéuma
entidade.
•Umaentidadeéumaclassecontéminformaçõesrecebidase
armazenadaspelosistemaougeradaspormeiodeste.
•Classescomoestereótipo<<entity>>tambémfornecema
informaçãodequenormalmenteterãomuitosobjetos,podendo
aindaserempersistidos.
UML e Padrões de Projeto Centro Universitário do Triângulo
33
Fica explícito que a classe ContaComum é uma entidade, ela armazena
informações referentes ao problema que o sistema no qual ela está inserida
procura solucionar.

Estereótipo Customizado
•Noexemploabaixo,definimosumnovoestereótipochamado
<<persistente>>paradeixarclaroqueaclassetemque
preservarfisicamentesuasinstâncias.
UML e Padrões de Projeto Centro Universitário do Triângulo
34

Estereótipo <<boundary>>
•Identificaumaclassequeservedecomunicaçãoentreosatores
externoseosistemapropriamentedito.
•Muitasvezesumaclasse<<boundary>>éassociadaàprópria
interfacedosistema.
•Umaclassedotipo<<boundary>>muitasvezesnecessitainteragir
comoutraclassedotipo<<control>>
•Suautilizaçãoéimportantequandoéprecisodefiniraexistênciade
umainterfaceparaosistema.
UML e Padrões de Projeto Centro Universitário do Triângulo
35

Estereótipo <<control>>
•Identificaclassesqueservemdeintermédioentreasclasses
<<boundary>>easdemaisclassesdosistema.
•Osobjetos<<control>>sãoresponsáveisporinterpretaroseventos
ocorridossobreosobjetos<<boundary>>eretransmiti-losaos
objetosdasclassesdeentidadequefazempartedosistema.
UML e Padrões de Projeto Centro Universitário do Triângulo
36

Estereótipo <<control>>
•Identificaclassesqueservemdeintermédioentreasclasses
<<boundary>>easdemaisclassesdosistema.
•Osobjetos<<control>>sãoresponsáveisporinterpretaroseventos
ocorridossobreosobjetos<<boundary>>eretransmiti-losaos
objetosdasclassesdeentidadequefazempartedosistema.
UML e Padrões de Projeto Centro Universitário do Triângulo
37
A classe InterfaceBanco representa a interface do sistema e seus objetos
representam os componentes gráficos, os eventos que ocorrem sobre tais
objetos são repassados para um objeto da classe ControladorBanco que
interpretará esses eventos.

Boundary, Control e Entity
UML e Padrões de Projeto Centro Universitário do Triângulo
38

Exemplo de Diagrama de Classes
UML e Padrões de Projeto Centro Universitário do Triângulo
39

UML e Padrões de Projeto Centro Universitário do Triângulo
40

Lista de Exercícios II
UML e Padrões de Projeto Centro Universitário do Triângulo
41
UML e Padrõesde Projeto -Lista de
ExercíciosII.pdf
45min

Bibliografia
•GUEDES,Gilleanes.UMLUmaAbordagemPrática.Editora
Novatec.SãoPaulo,2014.
•FURLAN,José.ModelagemdeObjetosatravésdaUML.Editora
MakronBooks.
•BOOCH,Grady;RUMBAUGH, James;JACOBSON,Ivar.UML
GuiadoUsuário.EditoraCampus.
UML e Padrões de Projeto Centro Universitário do Triângulo
42