Definies -eto: Entidade que possa ser descrita de uma realidade. Classe: a-strao que define um o-eto nstncia: criao de o-eto a partir de uma classe. Refrigerante CoIa Guaran Laranjada Coca-CoIa Pepsi #elacionamento Diagrama de Classes Definem as regras Digramas UML #ealidade do Modelo Cdigo Gera -etos Do suporte #epresenta Gera Conforme Diagrama de Classes #epresentao de uma Classe Nome da Classe Nome da Classe Lista de Atri-utos Nome da Classe Lista de Atri-utos Lista de peraes Nome da Classe Lista de peraes Diagrama de Classes Exemplos ContaBancaria ContaBancaria nmero saldo dataA-ertura ContaBancaria nmero saldo dataA-ertura criar() -loquear() des-loquear() creditar() de-itar() Diagrama de Classes - Utilizado para mostrar a estrutura estatica do sistema - Nodelar coisas que existem, estrutura interna e relacionamentos - uma coleao de classes, interfaces, pacotes, relacionamentos e instancias (objetos) Diagrama de Classes Nome da Classe: nome da classe muito importante para identificar um recurso do modelo. Deve ser claro, descrever o tipo de o-eto representado e na linguagem mais fcil possvel. Deve corresponder ao padro adotado na empresa: espaos viram "_ ou sem espao? nome da classe ser usado para a programao. nome da Classe deve ser nico no pacote. Diagrama de Classes Nome da Classe: Maus exemplos: Bons exemplos $owsProgramados $owsCanceIados $ows -situacao: $ituacao$ow $ows -situacao: $ituacao$ow -confirmado: booIeano Diagrama de Classes Atri-utos Definem as caractersticas que os o-etos possuem. Podem definir caractersticas de si mesmo, mostrar conscincia das suas relaes e pode controlar uma certa informao. Diagrama de Classes - Atributos (isibilidade] Nome (ultiplicidade]: ('ipo]=(alor] (<#ropriedades}] Exemplo + C#: String + Nome: String # Endereo (]: String !dade: !nt = 20 <idade da pessoa} Diagrama de Classes Multiplicidade Nome Sim-ologia Apenas um 1 Zero ou muitos 0..* Um ou muitos 1..* Zero ou um 0..1 ntervalo especfico li..lf (ex. 2..8) Diagrama de Classes - visibilidade - + = visibilidade pblica - visivel a qualquer mtodo no exterior da classe. - = visibilidade privada - Nao visivel fora da classe. S esta acessivel a mtodos da prpria classe. - # = visibilidade protegida - um atributo privado, porm acessivel a mtodos de classes derivadas. - Quando a visibilidade omitida esta considerada privada Diagrama de Classes Atri-utos: Notao $istema CIasse A CIasse B Pacote 1 CIasse C CIasse D Pacote 2 <<erana>> Privado: atri-uto privado s acessvel pelas operaes do o-eto. Normalmente este o estado inicial dos atri-utos, depois se necessrio, pode ser modificado. Diagrama de Classes Atri-utos: Notao $istema CIasse A CIasse B Pacote 1 CIasse C CIasse D Pacote 2 <<erana>> Pacote: atri-uto pode ser acessado por qualquer outra classe no mesmo pacote. Diagrama de Classes Atri-utos: Notao $istema CIasse A CIasse B Pacote 1 CIasse C CIasse D Pacote 2 <<erana>> PbIico: atri-uto pode ser acessado por qualquer outra classe do sistema. Diagrama de Classes Atri-utos: Notao $istema CIasse A CIasse B Pacote 1 CIasse C CIasse D Pacote 2 <<erana>> Protegido: atri-uto s pode ser acessado por uma classe que tenha uma relao de generalizao/herana, independente do pacote. 18 Diagrama de Classes (isibilidade*] Nome (#arametros): (alor de Retorno] (<#ropriedades}] - Ntodos Exemplo <<construtor>> + NomedaClasse() <<consulta>> + CetNome(C#: String): String <retorna o nome de acordo com o C#} <<gravaao>> + SetNome(Nome: String) <gravar o nome da pessoa} * #ossui o mesmo funcionamento da visibilidade dos atributos Diagrama de Classes Atri-utos: Notao - Nome: o-rigatrio e deve ser nico dentro da classe. Sea o mais descritivo possvel para evitar confuso. Exemplos: cadUsr x cadastraUsuario Diagrama de Classes Atri-utos: Notao - Tipo: #efere-se a qualidade de dados que sero tratados no atri-uto. - Podem ser padro UML: (interger, unlimitednterger ou String) - Enumerao: -ooleano; - Algum padro de linguagem: float, long, short,... - u at uma referncia para outra classe. Diagrama de Classes Atri-utos: Notao Nome Sim-ologia Apenas um 1 Zero ou muitos 0..* Um ou muitos 1..* Zero ou um 0..1 ntervalo especfico li..lf (ex. 2..8) Diagrama de Classes Atri-utos: Notao -Propriedades: serve para inserir qualquer informao que no pertinente a nenhuma das sees anteriores. Normalmente so usadas para delimitar regras de integridade e so separados por vrgulas. Ex. $ow - nome[1]: String =sem inicial, {-rigatrio, 1..30 caracteres} - datanicial[1]: Calendrio= sem inicial { -rigatrio, >hoe} - duracao[1]: nt= 1 { >0} - /dataFinal: Calendrio= datanicial+duracao Diagrama de Classes - 1. Conceitual #essoa Carro Diagrama de Classes - 2. Analitico #essoa Carro C# Nome !dade Endereo NumrHabilitacao Chassi #laca arca odelo Ano Cor Dirigir alar !r#ararente eiculo Diagrama de Classes - 3. !mplementaao #essoa Carro C#: String Nome: String !dade: !nt Endereco: String NumrHabilitacao: String Chassi: String #laca: String arca: String odelo: String Ano: !nt Cor: String Dirigir(), alar(), !r#ararente(elocidade: !nt), eiculo 0..* 1 Dirige Diagrama de Classes - Associaoes - Nostram o relacionamento entre as classes - O detalhes sao mostrados pelos adereos (adornments). #essoa Automvel C#: String Nome: String !dade: !nt Endereco: String NumrHabilitacao: String Chassi: String #laca: String arca: String odelo: String Ano: !nt Cor: String Dirigir(), alar(), !r#ararente(elocidade: !nt), eiculo 0..* 1 Dirige Diagrama de Classes - Composiao - Relacionamento do tipo parte todo, onde a parte existe somente no contexto do todo, ou seja, o todo composto por varias partes. Diagrama de Classes - Agregaao - Relacionamento do tipo parte todo, onde a parte pode existir fora do contexto do todo. Diagrama de Classes - Composiao/Agregaao - Sao muito parecidas, - A diferena entre as duas nem sempre tao clara, - Relacionam um objeto composto com suas partes, - A composiao mais fisica", - A agregaao menos restrita (deve ser utilizada em caso de dvida), - Na composiao, quando o todo morre", as partes tambm morrem. Diagrama de Classes GeneraIizao - Representa um mecanismo de HERANA. - Todas as caracteristicas sao herdadas pela subclasse Diagrama de Classes ReaIizao - Nostra o relacionamento de uma classe com a interface que ela implementa.