![Page 2: Diagrama de Classes - ic.uff.brleomurta/courses/2015.2/es1/aula7.pdf · Leonardo Murta Diagrama de Classes 24 A B Leitura: classe A depende da classe B Classes de associação •](https://reader031.vdocuments.mx/reader031/viewer/2022021809/5c64dc1c09d3f28c6e8be9af/html5/thumbnails/2.jpg)
Oqueé?• Diagramamaisu>lizadodaUML• Representaos>pos(classes)deobjetosdeumsistema– Propriedadesdesses>pos– Funcionalidadesprovidasporesses>pos– Relacionamentosentreesses>pos
• Podesermapeadodiretamenteparaumalinguagemorientadaaobjetos– Ajudanoprocessotransitóriodosrequisitosparaocódigo– Poderepresentarvisualmenteocódigodosistema
LeonardoMurta DiagramadeClasses 2
![Page 3: Diagrama de Classes - ic.uff.brleomurta/courses/2015.2/es1/aula7.pdf · Leonardo Murta Diagrama de Classes 24 A B Leitura: classe A depende da classe B Classes de associação •](https://reader031.vdocuments.mx/reader031/viewer/2022021809/5c64dc1c09d3f28c6e8be9af/html5/thumbnails/3.jpg)
A1kmdedistância...• Caixasrepresentandoasclasses• Linhasrepresentandoosrelacionamentos
LeonardoMurta DiagramadeClasses 3
![Page 4: Diagrama de Classes - ic.uff.brleomurta/courses/2015.2/es1/aula7.pdf · Leonardo Murta Diagrama de Classes 24 A B Leitura: classe A depende da classe B Classes de associação •](https://reader031.vdocuments.mx/reader031/viewer/2022021809/5c64dc1c09d3f28c6e8be9af/html5/thumbnails/4.jpg)
A1metrodedistância...• Asclassessãorepresentadasporcaixascontendo– Nome(obrigatório)– Listadeatributos– Listadeoperações
LeonardoMurta DiagramadeClasses 4
Pedido
-data: Date-numero: int-valor: Money
+finaliza()
Pedido Atributos
Nome
Operações
![Page 5: Diagrama de Classes - ic.uff.brleomurta/courses/2015.2/es1/aula7.pdf · Leonardo Murta Diagrama de Classes 24 A B Leitura: classe A depende da classe B Classes de associação •](https://reader031.vdocuments.mx/reader031/viewer/2022021809/5c64dc1c09d3f28c6e8be9af/html5/thumbnails/5.jpg)
Propriedades• Classessãodescritasviasuaspropriedades– Primi>vas:representadascomoatributos– Compostas:representadascomoassociaçõesparaoutrasclasses
• Quandotransformadasparacódigo,aspropriedadessetornamsemprecamposdaclasse
LeonardoMurta DiagramadeClasses 5
Pedido
-data: Date-numero: int-valor: Money
Cliente
-nome: String-endereco: String
Atributos
Associações
![Page 6: Diagrama de Classes - ic.uff.brleomurta/courses/2015.2/es1/aula7.pdf · Leonardo Murta Diagrama de Classes 24 A B Leitura: classe A depende da classe B Classes de associação •](https://reader031.vdocuments.mx/reader031/viewer/2022021809/5c64dc1c09d3f28c6e8be9af/html5/thumbnails/6.jpg)
A1cen[metrodedistância...dosatributos
• Atributossãodescritosvia– Visibilidade– Nome– Tipo– Mul>plicidade– Valorpadrão
LeonardoMurta DiagramadeClasses 6
-endereco:String[1]=“SemEndereço”
![Page 7: Diagrama de Classes - ic.uff.brleomurta/courses/2015.2/es1/aula7.pdf · Leonardo Murta Diagrama de Classes 24 A B Leitura: classe A depende da classe B Classes de associação •](https://reader031.vdocuments.mx/reader031/viewer/2022021809/5c64dc1c09d3f28c6e8be9af/html5/thumbnails/7.jpg)
Atributos(visibilidade)
• Privado(-)– Somenteaprópriaclassepodemanipularoatributo– Indicadonamaioriadoscasos
• Pacote(~)– Qualquerclassedomesmopacotepodemanipularoatributo
• Protegido(#)– Qualquersubclassepodemanipularoatributo
• Publico(+)– Qualquerclassedosistemapodemanipularoatributo
LeonardoMurta DiagramadeClasses 7
-endereco:String
![Page 8: Diagrama de Classes - ic.uff.brleomurta/courses/2015.2/es1/aula7.pdf · Leonardo Murta Diagrama de Classes 24 A B Leitura: classe A depende da classe B Classes de associação •](https://reader031.vdocuments.mx/reader031/viewer/2022021809/5c64dc1c09d3f28c6e8be9af/html5/thumbnails/8.jpg)
Atributos(nomee>po)
• Onomedoatributocorrespondeaonomequeseráu>lizadonocódigofonte– Éaceitávelu>lizarnomescomespaçoeacentosnafasedeanálise
• O>podoatributocorrespondeao>poqueseráu>lizadonocódigofonte– Tiposprimi>vosdalinguagem– Classesdeapoiodalinguagem(String,Date,Money,etc.)
LeonardoMurta DiagramadeClasses 8
-endereco:String
![Page 9: Diagrama de Classes - ic.uff.brleomurta/courses/2015.2/es1/aula7.pdf · Leonardo Murta Diagrama de Classes 24 A B Leitura: classe A depende da classe B Classes de associação •](https://reader031.vdocuments.mx/reader031/viewer/2022021809/5c64dc1c09d3f28c6e8be9af/html5/thumbnails/9.jpg)
Atributos(mul>plicidade)
• Representaonúmerodeelementosdeumapropriedade• EstruturaX..Yonde
– Opcional:X=0– Mandatório:X=1– Somenteumvalor:Y=1– Mul>valorado:Y>1
• Valoresclássicos– 0..1– 1(equivalentea1..1àdefault)– *(equivalentea0..*)– 1..*
LeonardoMurta DiagramadeClasses 9
-endereco:String[0..3]
![Page 10: Diagrama de Classes - ic.uff.brleomurta/courses/2015.2/es1/aula7.pdf · Leonardo Murta Diagrama de Classes 24 A B Leitura: classe A depende da classe B Classes de associação •](https://reader031.vdocuments.mx/reader031/viewer/2022021809/5c64dc1c09d3f28c6e8be9af/html5/thumbnails/10.jpg)
A1cen[metrodedistância...dasassociações
• Associações– Guardaasmesmasinformaçõesdosatributos– U>lizaumanotaçãográfica– Deveseru>lizadoparapropriedadesquesãorelevantesaodiagrama
– Determinaopapeldasclassesnaassociação– Determinaosen>dodenavegação
LeonardoMurta DiagramadeClasses 10
Pedido
-data: Date-numero: int-valor: Money
+finaliza()
Cliente
-nome: String-endereco: String
-pedidosFechados
0..*
Empregado
1..*
0..1
gerente
subordinado
0..1
1..*
![Page 11: Diagrama de Classes - ic.uff.brleomurta/courses/2015.2/es1/aula7.pdf · Leonardo Murta Diagrama de Classes 24 A B Leitura: classe A depende da classe B Classes de associação •](https://reader031.vdocuments.mx/reader031/viewer/2022021809/5c64dc1c09d3f28c6e8be9af/html5/thumbnails/11.jpg)
A1cen[metrodedistância...dasoperações
• Operaçõessãodescritasvia– Visibilidade– Nome– Listadeparâmetros– Tipoderetorno
LeonardoMurta DiagramadeClasses 11
+finaliza(data:Date):Money
![Page 12: Diagrama de Classes - ic.uff.brleomurta/courses/2015.2/es1/aula7.pdf · Leonardo Murta Diagrama de Classes 24 A B Leitura: classe A depende da classe B Classes de associação •](https://reader031.vdocuments.mx/reader031/viewer/2022021809/5c64dc1c09d3f28c6e8be9af/html5/thumbnails/12.jpg)
Operações(visibilidade)
• Valemasmesmasregrasdevisibilidadedeatributos• Privado(-)– Funcionalidadesdeapoioàprópriaclasse
• Pacote(~)– Funcionalidadesdeapoioaoutrasclassesdopacote(ex.construçãodeumcomponente)
• Protegido(#)– Funcionalidadesqueprecisamserestendidasporoutrasclasses(ex.construçãodeumframework)
• Publico(+)– Funcionalidadesvisíveisportodasasclassesdosistema
LeonardoMurta DiagramadeClasses 12
+finaliza(data:Date):Money
![Page 13: Diagrama de Classes - ic.uff.brleomurta/courses/2015.2/es1/aula7.pdf · Leonardo Murta Diagrama de Classes 24 A B Leitura: classe A depende da classe B Classes de associação •](https://reader031.vdocuments.mx/reader031/viewer/2022021809/5c64dc1c09d3f28c6e8be9af/html5/thumbnails/13.jpg)
Operações(nomee>poderetorno)
• Valemasmesmasregrasjávistasparaatributos...– Normalmenteonomedeumaoperaçãoéformadoporumverbo(opcionalmenteseguidodesubstan>vo)
– Aausênciadeum>poderetornoindicaqueaoperaçãonãoretornanada(i.e.,void)
LeonardoMurta DiagramadeClasses 13
+finaliza(data:Date):Money
![Page 14: Diagrama de Classes - ic.uff.brleomurta/courses/2015.2/es1/aula7.pdf · Leonardo Murta Diagrama de Classes 24 A B Leitura: classe A depende da classe B Classes de associação •](https://reader031.vdocuments.mx/reader031/viewer/2022021809/5c64dc1c09d3f28c6e8be9af/html5/thumbnails/14.jpg)
Operações(listadeparâmetros)
• Alistadeparâmetrospodesercompostaporzerooumaisparâmetrosseparadosporvírgula– Parâmetro:[direção]nome:>po[=valorpadrão]– Direção(opcional)
• in(default)• out• inout
– Nome– Tipo
• Primi>vo• Classe
– Valorpadrão(opcional)
LeonardoMurta DiagramadeClasses 14
+finaliza(data:Date):Money
![Page 15: Diagrama de Classes - ic.uff.brleomurta/courses/2015.2/es1/aula7.pdf · Leonardo Murta Diagrama de Classes 24 A B Leitura: classe A depende da classe B Classes de associação •](https://reader031.vdocuments.mx/reader031/viewer/2022021809/5c64dc1c09d3f28c6e8be9af/html5/thumbnails/15.jpg)
Emanálise...• Nãoseatenhaaosdetalhes– Visibilidade– Navegabilidade– Tipo
• Visibilidadepúblicaempropriedades– Assumecampoprivadoemétodosdeacesso(geteset)
• Operações– Somenteasresponsabilidadesobviasdasclasses
LeonardoMurta DiagramadeClasses 15
![Page 16: Diagrama de Classes - ic.uff.brleomurta/courses/2015.2/es1/aula7.pdf · Leonardo Murta Diagrama de Classes 24 A B Leitura: classe A depende da classe B Classes de associação •](https://reader031.vdocuments.mx/reader031/viewer/2022021809/5c64dc1c09d3f28c6e8be9af/html5/thumbnails/16.jpg)
Exercício• TraduzaoseguintediagramaemcódigoJava• CriemétodosdeacessoparaaspropriedadesdaclasseCliente
LeonardoMurta DiagramadeClasses 16
Pedido
-data: Date-numero: int-valor: Money
+finaliza()
Cliente
-nome: String-endereco: String
-pedidosFechados
0..*
![Page 17: Diagrama de Classes - ic.uff.brleomurta/courses/2015.2/es1/aula7.pdf · Leonardo Murta Diagrama de Classes 24 A B Leitura: classe A depende da classe B Classes de associação •](https://reader031.vdocuments.mx/reader031/viewer/2022021809/5c64dc1c09d3f28c6e8be9af/html5/thumbnails/17.jpg)
Palavras-chave,propriedadeserestrições
• Apóiamalinguagemgráficacominformaçõestextuais• Permitemdarmaissemân>caaoselementosdomodelo• Notaçãodepalavra-chave– Textual:<<palavra>>(ex.:<<interface>>)– Icônica:imagemrepresentandoapalavra-chave
• Notaçãodepropriedadeserestrições– {propriedade}(ex.:{readonly})– {nome=valor}(ex.:{versão=1.0}– {restrição}(ex.:{Mãedeveserdosexofeminino})
LeonardoMurta DiagramadeClasses 17
Pessoa<<entity>>
+nome: String {readonly, versao = 1.0} +filho
+mae
![Page 18: Diagrama de Classes - ic.uff.brleomurta/courses/2015.2/es1/aula7.pdf · Leonardo Murta Diagrama de Classes 24 A B Leitura: classe A depende da classe B Classes de associação •](https://reader031.vdocuments.mx/reader031/viewer/2022021809/5c64dc1c09d3f28c6e8be9af/html5/thumbnails/18.jpg)
Propriedadesdeatributoseassociações
• Algunsexemplos...• {readonly}– Somenteofereceoperaçõesdeleitura
• {ordered},{unordered}– Indicaseoatributoouassociaçãomul>valoradomantémasequênciadositensinseridos
• {unique},{nonunique}– Indicaseoatributoouassociaçãomul>valoradopermiterepe>ção
LeonardoMurta DiagramadeClasses 18
-endereco:String=“SemEndereço”{readonly}
![Page 19: Diagrama de Classes - ic.uff.brleomurta/courses/2015.2/es1/aula7.pdf · Leonardo Murta Diagrama de Classes 24 A B Leitura: classe A depende da classe B Classes de associação •](https://reader031.vdocuments.mx/reader031/viewer/2022021809/5c64dc1c09d3f28c6e8be9af/html5/thumbnails/19.jpg)
Propriedadesdeoperações
• {query}– Nãomodificaoestadodosistemaapósaexecução
• {sequen>al}– Ainstânciafoiprojetadaparatratarumathreadporvez,masnãoéresponsabilidadedaclasseassegurarqueissoocorra
• {guarded}– Ainstânciafoiprojetadaparatratarumathreadporvez,eéresponsabilidadedaclasseassegurarqueissoocorra(ex.:métodossynchronizedemJava)
• {concurrent}– Ainstânciaécapazdetratarmúl>plasthreadsconcorrentemente
LeonardoMurta DiagramadeClasses 19
+finaliza(data:Date):Money{sequen>al}
![Page 20: Diagrama de Classes - ic.uff.brleomurta/courses/2015.2/es1/aula7.pdf · Leonardo Murta Diagrama de Classes 24 A B Leitura: classe A depende da classe B Classes de associação •](https://reader031.vdocuments.mx/reader031/viewer/2022021809/5c64dc1c09d3f28c6e8be9af/html5/thumbnails/20.jpg)
Outrosrelacionamentosentreclasses
• Alémdasassociações,algunsoutros>posderelacionamentossãoimportantes– Generalização– Composição– Agregação– Dependência– Classesdeassociação
LeonardoMurta DiagramadeClasses 20
![Page 21: Diagrama de Classes - ic.uff.brleomurta/courses/2015.2/es1/aula7.pdf · Leonardo Murta Diagrama de Classes 24 A B Leitura: classe A depende da classe B Classes de associação •](https://reader031.vdocuments.mx/reader031/viewer/2022021809/5c64dc1c09d3f28c6e8be9af/html5/thumbnails/21.jpg)
Generalização• Visaestabelecerrelaçõesentre>pos• Leitura:“éum”• SeGerente“éum”Funcionário– Todasasoperaçõesepropriedades(nãoprivadas)deFuncionáriovãoestardisponíveisemGerente
– TodainstânciadeGerentepodeseru>lizadaondeseesperainstânciasdeFuncionário
– Geraoefeitodeherançaepolimorfismoquandomapeadoparacódigo
LeonardoMurta DiagramadeClasses 21
Funcionário
Gerente
![Page 22: Diagrama de Classes - ic.uff.brleomurta/courses/2015.2/es1/aula7.pdf · Leonardo Murta Diagrama de Classes 24 A B Leitura: classe A depende da classe B Classes de associação •](https://reader031.vdocuments.mx/reader031/viewer/2022021809/5c64dc1c09d3f28c6e8be9af/html5/thumbnails/22.jpg)
Agregação• Éumaassociaçãocomasemân>cade“contém”• Servecomoumarelaçãotodo-partefraca• Otodoexistesemaspartes• Aspartesexistemsemotodo• Apartepodeseragregadaporváriostodos
LeonardoMurta DiagramadeClasses 22
Carro Pessoa
-passageiros
0..5
![Page 23: Diagrama de Classes - ic.uff.brleomurta/courses/2015.2/es1/aula7.pdf · Leonardo Murta Diagrama de Classes 24 A B Leitura: classe A depende da classe B Classes de associação •](https://reader031.vdocuments.mx/reader031/viewer/2022021809/5c64dc1c09d3f28c6e8be9af/html5/thumbnails/23.jpg)
Composição• Éumaassociaçãocomasemân>cade“écompostode”
• Servecomoumarelaçãotodo-parteforte• Otodonãoexistesemaspartes– Aspartespertencemasomenteumtodo– Aremoçãodotodoimplicanaremoçãodaspartes
LeonardoMurta DiagramadeClasses 23
Carro Peças
![Page 24: Diagrama de Classes - ic.uff.brleomurta/courses/2015.2/es1/aula7.pdf · Leonardo Murta Diagrama de Classes 24 A B Leitura: classe A depende da classe B Classes de associação •](https://reader031.vdocuments.mx/reader031/viewer/2022021809/5c64dc1c09d3f28c6e8be9af/html5/thumbnails/24.jpg)
Dependência• Deixaexplícitoquemudançasemumaclassepodemgerarconsequênciasemoutraclasse
• Exemplos:– Umaclassechamamétodosdeoutra– Umaclassetemoperaçõesqueretornamoutraclasse– Umaclassetemoperaçõesqueesperamcomoparâmetrooutraclasse
• Outrosrelacionamento(ex.:associaçãocomnavegação)implicitamentedeterminamdependência
• Nãotentemostrartodasasdependênciasnoseudiagrama!
LeonardoMurta DiagramadeClasses 24
A B
Leitura:classeAdependedaclasseB
![Page 25: Diagrama de Classes - ic.uff.brleomurta/courses/2015.2/es1/aula7.pdf · Leonardo Murta Diagrama de Classes 24 A B Leitura: classe A depende da classe B Classes de associação •](https://reader031.vdocuments.mx/reader031/viewer/2022021809/5c64dc1c09d3f28c6e8be9af/html5/thumbnails/25.jpg)
Classesdeassociação• Permitemaadiçãodeinformaçõesemumaassociação
• Devemsertransformadasemclassescomunsposteriormenteparaviabilizarimplementação
LeonardoMurta DiagramadeClasses 25
Cliente
-nome: String-endereco: String
Loja
0..*0..*
Qualovalortotalgastoemcadaloja?
Cliente
-nome: String-endereco: String
Loja
0..*0..*
Cadastro
+valorTotalGasto
Cliente
-nome: String-endereco: String
LojaCadastro
+valorTotalGasto0..*1 10..*
![Page 26: Diagrama de Classes - ic.uff.brleomurta/courses/2015.2/es1/aula7.pdf · Leonardo Murta Diagrama de Classes 24 A B Leitura: classe A depende da classe B Classes de associação •](https://reader031.vdocuments.mx/reader031/viewer/2022021809/5c64dc1c09d3f28c6e8be9af/html5/thumbnails/26.jpg)
A1milímetrodedistância...propriedadeseoperaçõesestá>cas
• Propriedadesquenãosãoinstanciadasnosobjetos• Operaçõesqueatuamsomentesobrepropriedadesestá>cas
• Ambossãoacessadosdiretamentenaclasse– Ex.:Pedido.getProximoNumero()
• Sãosublinhadasnodiagrama
LeonardoMurta DiagramadeClasses 26
Pedido
-data: Date-numero: int-valor: Money
+finaliza()+getProximoNumero(): int
![Page 27: Diagrama de Classes - ic.uff.brleomurta/courses/2015.2/es1/aula7.pdf · Leonardo Murta Diagrama de Classes 24 A B Leitura: classe A depende da classe B Classes de associação •](https://reader031.vdocuments.mx/reader031/viewer/2022021809/5c64dc1c09d3f28c6e8be9af/html5/thumbnails/27.jpg)
A1milímetrodedistância...propriedadesderivadas
• Sãopropriedadesquenaverdadenãoexistemcomoatributosouassociações
• Podemserinferidasporoutraspropriedadesdaclasse
• Éinteressanteexplicitaratravésdenotaourestriçãoafórmuladederivação
• Sãomarcadascomosímbolo“/”
LeonardoMurta DiagramadeClasses 27
Período
+inicio: Date+fim: Date+/duracao: int
![Page 28: Diagrama de Classes - ic.uff.brleomurta/courses/2015.2/es1/aula7.pdf · Leonardo Murta Diagrama de Classes 24 A B Leitura: classe A depende da classe B Classes de associação •](https://reader031.vdocuments.mx/reader031/viewer/2022021809/5c64dc1c09d3f28c6e8be9af/html5/thumbnails/28.jpg)
A1milímetrodedistância...Classeseoperaçõesabstratas
• Classesquenãopodemterinstâncias– Usualmentetêmoperaçõesabstratas,ouseja,semimplementação
• Suassubclassesusualmentesãoconcretas– Implementammétodoscomcomportamentosespecíficosparaasoperaçõesabstratas
• U>lizamnomeemitálico
LeonardoMurta DiagramadeClasses 28
Animal
+fala()
![Page 29: Diagrama de Classes - ic.uff.brleomurta/courses/2015.2/es1/aula7.pdf · Leonardo Murta Diagrama de Classes 24 A B Leitura: classe A depende da classe B Classes de associação •](https://reader031.vdocuments.mx/reader031/viewer/2022021809/5c64dc1c09d3f28c6e8be9af/html5/thumbnails/29.jpg)
A1milímetrodedistância...Interfaces
• Umaclassesemnenhumaimplementação– Todasoperaçõessãoabstratas
• Fazusodapalavra-chave<<interface>>– Podeserrepresentadotambémcomoumícone
• Orelacionamentoderealizaçãoindicasasclassesqueimplementamainterface– Equivalenteageneralização
LeonardoMurta DiagramadeClasses 29
List<<interface>>
+get(position:int)()
ArrayList
List
+get(position:int)()
ArrayList
List<<interface>>
+get(position:int)()
ArrayList
![Page 30: Diagrama de Classes - ic.uff.brleomurta/courses/2015.2/es1/aula7.pdf · Leonardo Murta Diagrama de Classes 24 A B Leitura: classe A depende da classe B Classes de associação •](https://reader031.vdocuments.mx/reader031/viewer/2022021809/5c64dc1c09d3f28c6e8be9af/html5/thumbnails/30.jpg)
A10kmdedistância...pacotes
• Emalgumassituaçõessedesejaterumavisãogeraldaspartesdosistema
• Paraisso,odiagramadepacoteséaferramentaindicada
• Pacotesagregamclasseseoutrospacotes– Dependênciaspodemserinferidasindiretamente
• Exemplo– ClasseC1pertenceaopacoteP1– ClasseC2pertenceaopacoteP2– ClasseC1dependedaclasseC2– Logo,pacoteP1dependedopacoteP2
LeonardoMurta DiagramadeClasses 30
![Page 31: Diagrama de Classes - ic.uff.brleomurta/courses/2015.2/es1/aula7.pdf · Leonardo Murta Diagrama de Classes 24 A B Leitura: classe A depende da classe B Classes de associação •](https://reader031.vdocuments.mx/reader031/viewer/2022021809/5c64dc1c09d3f28c6e8be9af/html5/thumbnails/31.jpg)
Pacotes
LeonardoMurta DiagramadeClasses 31
builtin::DenyImmutableAETracePolicy
+execute(trace: Trace, action: byte)+getDescription(): String+getRationale(): String
policies::PreTracePolicy<<interface>>
+execute(trace: Trace, action: byte)
policies::ArchTracePolicy<<interface>>
+getDescription(): String+getRationale(): String
builtin::DenyRemovalFromBranch
+execute(trace: Trace, action: byte)+getDescription(): String+getRationale(): String
builtin::RemoveAncestryTracesPolicy
+execute(trace: Trace, action: byte)+getDescription(): String+getRationale(): String
policies::PostTracePolicy<<interface>>
+execute(trace: Trace, action: byte)
policies
builtin
<<import>>
![Page 32: Diagrama de Classes - ic.uff.brleomurta/courses/2015.2/es1/aula7.pdf · Leonardo Murta Diagrama de Classes 24 A B Leitura: classe A depende da classe B Classes de associação •](https://reader031.vdocuments.mx/reader031/viewer/2022021809/5c64dc1c09d3f28c6e8be9af/html5/thumbnails/32.jpg)
Dicas• Iniciecomumdiagramasimples• Oquenormalmentetememtododiagrama– Classes– Atributos– Operações– Associações
• Useosdemaisrecursosdalinguagemsomentequandoforrealmentenecessário
LeonardoMurta DiagramadeClasses 32
![Page 33: Diagrama de Classes - ic.uff.brleomurta/courses/2015.2/es1/aula7.pdf · Leonardo Murta Diagrama de Classes 24 A B Leitura: classe A depende da classe B Classes de associação •](https://reader031.vdocuments.mx/reader031/viewer/2022021809/5c64dc1c09d3f28c6e8be9af/html5/thumbnails/33.jpg)
Dicas(possíveiscandidatos)
• Classes– En>dadesexternasqueproduzemouconsomeminformações(ex.:sistemadevalidaçãodocartãodecrédito)
– Coisasquesãopartedoproblemaequesãoinformaçõescompostas(ex.:Produto)
– Eventosqueocorremduranteaoperaçãodosistema(ex.:Pedido)
– Papeisqueinteragemcomosistema(ex.:Cliente)– Unidadesorganizacionaisrelevantes(ex.:Rededelojas)– Lugaresquefornecemocontextodoproblemaoudosistema(ex.:Loja)
– Estruturasdefinidasnoproblema(ex.:Estoque)
LeonardoMurta DiagramadeClasses 33
![Page 34: Diagrama de Classes - ic.uff.brleomurta/courses/2015.2/es1/aula7.pdf · Leonardo Murta Diagrama de Classes 24 A B Leitura: classe A depende da classe B Classes de associação •](https://reader031.vdocuments.mx/reader031/viewer/2022021809/5c64dc1c09d3f28c6e8be9af/html5/thumbnails/34.jpg)
Dicas(possíveiscandidatos)
• Atributos– Informaçãoprimi>vaqueprecisasermemorizada(ex.:Preço)
• Associações– AclasseAprecisaserelacionarcomaclasseBparaatenderaoperaçõesespecíficas(ex.:Cliente–Pedido)
• Operações– Funcionalidadesquedevemserprovidasporumaclasseparaviabilizarousodosistema(ex.:calculaTotalemPedido)
LeonardoMurta DiagramadeClasses 34
![Page 35: Diagrama de Classes - ic.uff.brleomurta/courses/2015.2/es1/aula7.pdf · Leonardo Murta Diagrama de Classes 24 A B Leitura: classe A depende da classe B Classes de associação •](https://reader031.vdocuments.mx/reader031/viewer/2022021809/5c64dc1c09d3f28c6e8be9af/html5/thumbnails/35.jpg)
Exercício• Elaboreumdiagramadeclassesparaumsistemadepontodevendas
– R01.OgerentedevepoderfazerlogincomumIDesenhaparainiciarefinalizarosistema;– R02.Ocaixa(operador)devepoderfazerlogincomumIDesenhaparapoderu>lizarosistema;– R03.Osistemadeveregistraravendaemandamento–ositenscomprados;– R04.Osistemadeveexibiradescriçãoepreçoedoitemregistrado;– R05.Osistemadevecalcularototaldavendacorrente;– R06.Osistemadevetratarpagamentocomdinheiro–capturaraquan>daderecebidae
calcularotroco;– R07.Osistemadevetratarpagamentocomcartãodecrédito–capturarainformaçãodocartão
atravésdeumleitordecartõesouentradamanualeautorizaropagamentou>lizandooserviçodeautorizaçãodecrédito(externo)viaconexãopormodem;
– R08.Osistemadevetratarpagamentocomcheque–capturaronúmerodacarteiradeiden>dadeporentradamanualeautorizaropagamentou>lizandooserviçodeautorizaçãodecheque(externo)viaconexãopormodem;
– R09.Osistemadevereduzirasquan>dadesemestoquequandoavendaéconfirmada;– R10.Osistemadeveregistrarasvendascompletadas;– R11.Osistemadevecontrolardiversaslojas,comcatálogodeprodutosepreçosunificado,
porémestoquesseparados;
LeonardoMurta DiagramadeClasses 35
![Page 36: Diagrama de Classes - ic.uff.brleomurta/courses/2015.2/es1/aula7.pdf · Leonardo Murta Diagrama de Classes 24 A B Leitura: classe A depende da classe B Classes de associação •](https://reader031.vdocuments.mx/reader031/viewer/2022021809/5c64dc1c09d3f28c6e8be9af/html5/thumbnails/36.jpg)
Bibliografia• Fowler,Mar>n.2003.UMLDis2lled:ABriefGuidetotheStandardObjectModelingLanguage.3rded.Addison-WesleyProfessional.
• Pressman,Roger.2004.SoBwareEngineering:APrac22oner'sApproach.6thed.McGraw-Hill.
LeonardoMurta DiagramadeClasses 36