Especialização em Desenvolvimento Java - Módulo: UML e Padrões de Projeto
Size: 670.77 KB
Language: pt
Added: Sep 28, 2015
Slides: 42 pages
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