Baixe o app para aproveitar ainda mais
Prévia do material em texto
UML Unified Modeling Language Linguagem de Modelagem Unificada Diagrama de Classes Classe - Conceito ◼ Uma classe representa um conjunto de objetos que tenham a mesma estrutura e comportamento. ◼ É uma abstração de objetos do mundo real. ◼ Os objetos são instâncias da classe. ◼ As classes são utilizadas para classificar os objetos identificados no mundo real. ◼ Elas devem ser retiradas do domínio do problema e serem nomeadas pelo que elas representam no sistema. Diagrama de Classes ◼ O diagrama de classe expressa a estrutura estática de um sistema, pois aquilo que é descrito é sempre válido em qualquer ponto no ciclo de vida do sistema. ◼ No diagrama de classes também é mostrada a possibilidade de interações entre classes, pois não se constituem elementos isolados e com absoluta autonomia. ◼ Muitas tarefas somente são possíveis de serem realizadas pela colaboração existente entre as classes. Classes persistentes ◼ Em muitos casos é necessário preservar de forma permanente os objetos de uma Classe. ◼ A Classe precisa ser Persistente. ◼ Uma Classe Persistente apresenta muitas semelhanças com uma entidade como as definidas no MER. ◼ Modelo utilizado para definir as tabelas em banco de dados Relacional. Persistência ◼ Deve ficar claro que nem toda Classe é persistente, não sendo muitas vezes necessário preservar (armazenar) suas informações. Classes, Atributos e Métodos ◼ A notação padrão usada pela UML para representar uma Classe de Objetos é: ◼ Nome da Classe ◼ Atributos ◼ Métodos/procedimentos ◼ Classes costumam possuir atributos e atributos armazenam os dados dos Objetos da Classe. ◼ Métodos que são as funções que uma instância da Classe pode executar. Representação de uma Classe ◼ Uma Classe é representado por um retângulo com três divisões: ◼ Na primeira parte → Nome da Classe; ◼ Na segunda parte → Os Atributos da Classe; ◼ Na terceira parte → Os Métodos da Classe (funções/procedimentos). Representação de uma Classe Representação de uma Classe Identificação da Classe (Nome da Classe) - valores que caracterizam os objetos de uma classe - tipos: Real, Inteiro, Texto, Booleano, enumerado,... - comportamentos (típicos) da classe (serviços disponibilizados, ...) Notação UML de uma classe ◼ Notação UML ⚫ Coloque o nome da classe sempre no singular (centralizado) Ex.: Pessoa, produto, Remessa. •Com relação aos atributos a proposta geral é: Visibilidade NomeAtributo: TipoDoAtributo = ValorDefault {propriedade} Ex.: private string dataFatura = “01/01/2012” Notação UML de uma classe Notação UML • Nome do atributo (Conceito) Seqüência de caracteres que devem formar um nome auto-explicativo criado pelo analista que denota o conteúdo que se pretende armazenar. Notação UML de uma classe ⚫ Inicie o nome de um atributo sempre com letra minúscula. ⚫ Se o atributo contiver duas palavras, coloque a segunda palavra junto à primeira e com a primeira letra maiúscula. ⚫ Ex: dataNascimento Atributos ◼ Os valores dos Atributos podem variar de instância para instância. ◼ É exatamente essa característica, que permite a identificação de cada Objeto. Atributos ◼ Cada atributo deverá conter um tipo de dados, ou seja a forma como a informação deverá ser armazenada. ◼ Byte: ◼ Tamanho em bits: 8 ◼ Faixa de valores: -128 a 127 ◼ Boolean: ◼ Tamanho em bits: 8 ◼ Faixa de valores: true ou false ◼ Int: ◼ Tamanho em bits: 32 ◼ Faixa de valores: -2.147.482.648 a 2.147.843.467 ◼ Long: ◼ Tamanho em bits: 64 ◼ Faixa: -9.223.372.036.854.775.802 a +9.223.372.036.854.775.802 ◼ Double: ◼ Tamanho em bits: 64 ◼ Faixa: -1.79769313486231570E+308 a +1.79769313486231570E+308 ◼ Char: Texto. ◼ Date: Data. Métodos ◼ Embora os Métodos sejam declarados no Diagrama de Classes, não é uma preocupação desse Diagrama, definir as etapas que estes métodos deverão percorrer quando forem chamados. ◼ Essa função é atribuída a outros Diagramas como: ◼ Diagrama de Seqüência e ◼ Diagrama de Atividades Tipos de visibilidade: Atributos e Métodos ◼ Visibilidade Pública ◼ O atributo ou método que possuir essa visibilidade pode ser utilizado por qualquer Classe. ◼ Símbolo (+), sinal de mais. ◼ Visibilidade Protegida ◼ O atributo ou método que possuir essa visibilidade somente a classe possuidora ou as sub-classes terão acesso. ◼ Símbolo (#), sustenido. ◼ Visibilidade Privada ◼ Somente a Classe possuidora desse atributo ou método poderá utilizá-lo. ◼ Símbolo (-), sinal de menos. Sintaxe para Operações ⚫ Iniciar o nome das operações com o verbo que representa aquela ação ⚫ Ex: cadastrarPedido() ◼ Sintaxe ◼ [visibilidade] nome [(lista-de-parâmetros)] [:tipo-de-retorno] [{propriedades}] ◼ Exemplos ◼ LerTemperatura () : Number ◼ Área (Lado : Integer) : Integer ◼ Void ValorPadrão () Exemplo de Diagrama de Classes Possui 11 Motor rotação : Number temperatura : Temperatura potência : Potencia getRotação () setRotação (rotação : Number) getPotência () getTemperatura () Carro velocidade : Number resistênciaAr () resistênciaSolo () Acelerador pressão: Number getPressão () setPressão (pressão : Number) Possui 11 1 Controla1 1 Nome Atributo Método Associação Multiplicidade Padrão visual para código fonte via Ferramenta case ◼ Com base nos elementos padronizados para descrição visual de uma classe, um software CASE poderá ser capaz de ‘entender’ a especificação visual e gerar um correspondente trecho em código-fonte, de acordo com uma linguagem de programação previamente escolhida, conforme exemplo na Figura a seguir. Construindo um Diagrama de Classes Construindo um Diagrama de Classes ◼ Identificar todas as classes que participam da solução em software ◼ Normalmente é conseguido através de análise dos casos de uso (substantivos) e requisitos do sistema ◼ Adicionar as classes ao diagrama ◼ Copiar os atributos da análise de requisitos para as classes apropriadas ◼ Adicionar os nomes das operações de cada classe Construindo um Diagrama de Classes ◼ Escolher os tipos dos atributos e dos parâmetros das operações ◼ Incluir as associações necessárias para dar visibilidade de atributos ◼ Adicionar setas às associações para indicar a direção da visibilidade de atributos Relacionamentos entre classes Relacionamentos entre classes ◼ Poucas classes têm sentido sozinhas ◼ Os relacionamentos ligam classes/objetos entre si criando relações lógicas entre eles ◼ Os relacionamentos podem ser dos seguintes tipos: ◼ Associação (Agregação e Composição) ◼ Dependência ◼ Generalização Tipo de relacionamento: Associações ◼ CONCEITO: Um relacionamento de associação representa uma conexão semântica entre duas classes. ◼ É o relacionamento mais utilizado. ◼ É bidirecional e é representado por uma linha ligando as classes. ◼ Este vínculo é chamado de Associação Binária. Ex.: Relacionamento de associação: ‘contrato de aluguel’ e a classe “cliente” ‘contrato de aluguel’ com a classe “veiculo alugado”. Relacionamento de associação Multiplicidade 0..1 No mínimo zero (nenhum) e no máximo um. Indica que os Objetos da classe associada não precisam obrigatoriamente estar relacionados. 1..1 Um e somente um. Indica que apenas um objeto da classe se relaciona com os objetos da outra classe. 0..* No mínimo nenhum e no máximo muitos. Indica que pode não haver não instâncias da classe participando do relacionamento. * Muitos. Indica que muitos objetos da Classe estão envolvidos no Relacionamento. 1..* No mínimo um e no máximo muitos. Indica que há pelo menos um objeto envolvido no relacionamento, podendo haver muitos. 3..5 No mínimo 3 e no máximo 5. Indica que há pelo menos 3 instâncias envolvidas no relacionamento e que pode ser 4 ou 5 as instâncias envolvidas, mas não mais do que isso. Representação da Associação Binária Tipo de relacionamento: Agregação por referência Na agregação por referência (losango sempreenchimento), o tempo de vida das partes não são mutuamente dependentes do tempo de vida do todo. ◼ relacionamento fraco do tipo “é parte de “. Agregação por referência ◼ É um tipo especial de associação onde tenta-se demonstrar que as informações e um objeto (chamado objeto-todo) precisam ser complementadas pelas as informações contidas em um objeto de outra classe (chamado objeto-parte). Representação de Agregação por referência Representação de Agregação por referência Na Agregação, a existência do Objeto-Parte faz sentido, mesmo não existindo o Objeto-Todo. Vejamos o exemplo Time-Atleta: Composição ou agregação por valor ◼ A agregação por valor (losango cheio) indica que o tempo de vida das partes são dependentes do tempo de vida do todo. ◼ relacionamento forte do tipo “é parte de “. A composição entre um elemento (o “todo”) e outros elementos (“as partes”) ◼ indica que as partes só podem pertencer ao “todo” e são criadas e destruídas com ele ◼ Tenta mostrar que os objetos-parte têm que pertencer exclusivamente a um único objeto-todo. Representação da Composição Especialização / Generalização ◼ Generalização (herança) ◼ relacionamento entre um elemento mais geral e um mais específico ◼ Similar à associação de mesmo nome utilizado no Diagrama de Casos de Uso. Seu objetivo é identificar classes-mãe (gerais) e classes filhas (especializadas). Especialização / Generalização Dependência ◼ Não é um tipo comum de relacionamento. ◼ Identifica um certo grau de dependência de uma classe em relação a outra. ◼ Representado por uma reta tracejada entre duas classes, contendo uma seta na extremidade do relacionamento que é dependente de alguma forma. Dependências entre classes ◼ Indica que mudanças em um elemento (o “servidor”) podem afetar outro elemento (o “cliente”) ◼ Indica que os objetos de uma classe usam serviços dos objetos de outra classe ◼ Existe um relacionamento de dependência entre duas classes quando: ◼ uma classe utiliza outra somente como parâmetro de entrada na assinatura de ao menos uma de suas operações. Nesse caso um elemento depende do outro, sendo que se um elemento mudar o outro poderá ser afetado. Dependências entre classes http://tiemprosa.com.br/wp-content/uploads/2012/04/estruturaclasse10.jpg Classe Associativa ◼ São classes produzidas quando da ocorrência de associações que possuem multiplicidade muitos (*) em todas as suas extremidades. Classe Associativa ◼ É introduzida quando uma associação tem propriedades associadas Classe Associativa Notas ◼ São importantes para informar algum comentário necessário a classe, método ou atributo, fazendo com que, todos tomem conhecimento de forma imediata a observação feita, seja essa observação feita para validar ou simplesmente informar como o objeto notificado se comporta. Notas
Compartilhar