• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Diagrama de classes1.1
 

Diagrama de classes1.1

on

  • 6,513 views

 

Statistics

Views

Total Views
6,513
Views on SlideShare
6,513
Embed Views
0

Actions

Likes
5
Downloads
172
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel

Diagrama de classes1.1 Diagrama de classes1.1 Presentation Transcript

  • Projeto de Software Diagrama de Classes Alunos: Maiky Nata, Douglas Pose, Igor Moreia
    • Diagrama de Classes
    • Demonstra a estrutura estática das
    • classes de um sistema, seus atributos e
    • operações
    • Mostra o relacionamento entre as
    • classes
  • Exemplo:
    • Perspectivas de um Diagrama
    • de Classes
    • Conceitual: forma abstrata de se
    • observar classes e objetos e
    • independente da linguagem de
    • programação (Modelo Conceitual)
    • De Implementação: pensa-se em
    • detalhes de implementação para definir
    • as classes e objetos.
    • Definição de Classes
    • Conceitual: são agrupamentos de objetos,
    • são abstrações de um coletivo de
    • entidades do mundo real
    • O modelo genérico desse coletivo contém
    • atributos e comportamentos comuns.
    • Definição de Classes
    • De implementação: corresponde a um tipo de uma linguagem de programação.
    • Um modelo genérico para criar variáveis
    • que armazenarão os objetos
    • correspondentes.
    • Notação UML para Atributos
    • A maioria é opcional, seu uso vai depender
    • do tipo de visão no qual estamos trabalhando
    • e podem ser abstratos ou utilizar a notação
    • de uma linguagem de programação.
    • [Visibili/d]Nome[Multiplici/d]:[Tipo]=[Valor][{Proprie/ds}]
    • Notação UML para Métodos
    • A notação e uso vai depender do tipo de
    • visão no qual estamos trabalhando e podem
    • ser abstratos ou utilizar a notação de uma
    • linguagem de programação.
    • [Visibili/d]Nome(Parâmetros)]:[Retorno][{Proprie/ds}]
  • Exemplo de Uma Classe
    • Aluno
    • ----------------------------------nome:TipoNome
    • RA: TipoCódigo
    • ----------------------------------
    • calculaMédia():TipoNota
    • <<entidade>>
    • Aluno
    • DePacoteCadastro
    • -------------------------------------
    • -nome[30]:char
    • +RA: int {valorconstante}
    • -------------------------------------
    • +calculaMédia():Double
  • Entidades de Especificação ou Descrição
    • A especificação ou descrição de um
    • objeto deve ser representada como uma
    • entidade em separado
    • evita perda de informação quando o objeto é
    • deletado
    • reduz informações redundantes ou
    • duplicadas
    • Muito comum no domínio de produtos e
    • vendas
  • Melhor Ex.: Pior Item -------------------- Descrição Preço Número serial UPC Especificação Produto ----------------------------- Descrição Preço UPC Item ---------------------- Número serial Descreve
    • Identificação das Classes de
    • Controle
    • Definir pelo menos uma classe do tipo
    • controle para cada caso de uso de forma que
    • ela contenha a descrição e comando do
    • processo associado ao caso de uso.
    • Definir classes de controle auxiliares e m
    • certos casos de uso que devido aà
    • complexidade requeiram a divisão de seu
    • processo em subprocessos. As classes
    • auxiliares seriam controladas pela classe de
    • controle principal
    • Identificação das Classes de
    • Controle
    • Suas principais características são: Cria, ativa e anula objetos controlados;
    • Controla a operação de objetos controlados;
    • Controla a concorrência de pedidos de objetos controlados;
    • Em muitos casos corresponde a implementação de
    • um objeto intangível;
    • Gerente de Registro para o Caso de Uso
    • Registrar Alunos
    • Identificação das Classes de
    • Fronteira
    • Definir uma classe do tipo fronteira para
    • cada ator que participe do caso de uso,
    • pois cada ator que pode exigir um
    • protocolo próprio para comunicação.
    • Uma classe para interface com o
    • usuário, uma classe para interface com
    • a impressora, uma classe para interface
    • com a porta serial, etc.
    • Identificação das Classes de
    • Fronteira
    • Exemplos: Interface tipo Janela,
    • Protocolo de Comunicação, Interface de
    • Impressão, Sensores, etc.
    • Classes: Formulário em Branco e
    • Sistema de Cobrança
    • Relacionamentos
    • Os relacionamentos entre as classes
    • representam a interação entre seus
    • objetos
    • Tipos:
    • Associação
    • Agregação
    • Generalização
    • Dependência e Refinamentos
    • Associações
    • Conexão entre classes/objetos
    • Relacionamento que descreve uma série
    • de ligações entre duplas de classes/
    • objetos
    • Uma ligação significa por exemplo que:
    • elas &quot;conhecem uma a outra“
    • &quot;estão conectadas com“
    • para cada X existe um Y
    • Associações Simples
    • O mais comum, com apenas uma
    • conexão, representada por uma linha
    • sólida e um nome (geralmente verbo)
    Caixa Venda Registra
    • Associações
    • Pode possuir dois nomes, significando
    • um nome para cada sentido da
    • associação e os papéis de cada classe
    Cliente Conta Corrente Possui -> ← É possuído
    • Associações – Cardinalidade
    • (Multiplicidade)
    • Especifica o número de objetos de cada
    • classe envolvidos com a associação
    • A leitura da cardinalidade é diferente
    • para os diferentes sentidos da
    • associação
    Caixa Venda Registra 1 0..*
    • Associações - Navegabilidade
    • Mostra a direção de navegação, ou seja
    • do canal de comunicação entre os
    • objetos e classes.
    • Uma associação é navegável da classe
    • A para a classe B, se, dado um objeto
    • de A, consegue-se obter de forma
    • direta os objetos relacionados da classe
    • B.
  • Associações - Navegabilidade Dada uma mercadoria pode-se identificar diretamente a empresa fornecedora,mas a volta não é verdadeira Empresa Mercadoria Fornece 0...* 0...*
    • Associação Recursiva ou
    • Reflexiva
    • Os objetos conectados são da mesma
    • classe
    Pessoa Esposa Marido É casado com
    • Associação Qualificada
    • Usadas com multiplicidades 1..* ou *.
    • O qualificador (chave) identifica um
    • Objeto.
    Cliente Cód_Conta Corrente Conta corrente
    • Associação Exclusiva
    • Restrição em duas ou mais associações,
    • especificando que objetos de uma classe
    • podem participar de no máximo uma das
    • associações ao mesmo tempo
    Contrato {OU} ----------------------------------------- 0...* 0...* 0...* 0...* 1...* 1...*
    • Associação Ordenada
    • Especifica uma ordem entre os objetos
    • da associação. Ex: janelas de um
    • sistema têm que ser ordenadas na tela
    • (uma está no topo, uma está no fundo e
    • assim por diante).
    Janela Top Janela Bottom {Ordenada}
    • Associações de Classe
    • Serve para adicionar informações
    • extras a uma associação existente,
    • quando essa possuir operações e
    • métodos (ela é uma classe)
    Cliente Fila Processo
    • Associação Ternária
    • Envolve três classes (inclusive uma
    • classe de associação)
    Contrato Cliente Regras Contratuais 1...* 1...* 0...*
    • Agregação
    • A agregação é um caso particular de
    • associação
    • Uma das classes é uma parte ou está
    • contida em outra.
    • Palavras chaves: consiste em, contém,
    • é parte de.
    • Dois casos: composição e
    • compartilhamento.
    • Agregação de
    • Compartilhamento
    • Uma classe pode fazer parte de mais de
    • um composto e/ou estar contida nele
    • várias vezes.
    Time Pessoa Membros
    • Generalização
    • Relacionamento entre uma classe geral
    • e outra mais específica (herança). A
    • classe mais específica pode ser usada
    • no lugar da mais geral.
    • Generalização normal
    • Generalização restrita: sobreposição,
    • disjuntiva, completa e incompleta
    • Generalização Normal
    • A classe mais específica (sub-classe) herda
    • tudo da mais geral (super-classe)
    Conta Corrente Poupança
    • Dependências
    • Conexão entre dois elementos,
    • representando que uma mudança no
    • elemento independente afeta o
    • dependente.
    Classe A Classe B <<Amigo>>
    • Identificação dos
    • Relacionamentos
    • Na perspectiva conceitual representam-se
    • relacionamentos conceituais
    • As associações são estabelecidas
    • analisando-se os papéis.
    • A generalização representa a hierarquia
    • entre tipos e seus subtipos
    • A agregação entre um todo e suas
    • partes.
    • Identificação dos
    • Relacionamentos
    • Na perspectiva de implementação
    • representa um canal de comunicação
    • entre duas classes
    • A necessidade desse canal é dada pelos
    • diagramas de interação. Sempre que
    • existir uma mensagem trocada entre dois
    • objetos nesses diagramas existirá uma
    • associação entre eles, que representa as
    • responsabilidades das classes.
    • Identificando Generalizações
    • Quando particionar em Subclasses
    • a subclasse tem atributos adicionais de
    • interesse
    • a subclasse tem associações adicionais de
    • interesse
    • a subclasse será manipulada ou usada de
    • maneira diferente da superclasse ou das
    • outras subclasses
    • a subclasse se comporta diferente da superclasse
    • ou das outras subclasses
  • Identificando Generalizações
    • Identificando Agregações
    • Verificar se algumas classes podem ser
    • agrupadas em algum composto:
    • elas são geralmente criadas/destruídas no
    • mesmo instante.
    • possuem relacionamentos comuns
    • Identificando Agregações
    • Verificar se alguma classe pode ser subdividida
    • em partes.
    • as partes possuem tempo de vida limitado
    • ao tempo de vida do composto
    • possuem relacionamentos particulares e de
    • interesse
    • Identificando Atributos
    • Atributos devem preferencialmente
    • representar tipos primitivos de dados ou
    • de valores simples
    • Ex.: Data , Número , Texto , Hora , Endereço ,
    • etc.
    • Atributos não devem ser usados para:
    • Representar um conceito complexo
    • Relacionar conceitos (atributo “chave estrangeira”)
    • Identificação dos Métodos
    • Os métodos são acrescentados na
    • perspectiva de implementação e são
    • derivados a partir dos diagramas de
    • interação: colaboração e sequências.
    • É útil distinguir operações de métodos.
    • Operações é algo que se evoca sobre um
    • objeto (a chamada do procedimento). Para
    • realizar uma operação a classe implementa
    • um método (o corpo do procedimento).
  • Quando utilizar diagrama de classes Iremos utilizar os diagramas de classes para a construção dos produtos que necessitam de orientação a objetos. Diagramas de classes são a base de quase todas as metodologias implementadas em orientação a objetos, portanto nós iremos utilizá-los o tempo todo.
  • Pontos fortes e fracos Diagramas de classes são muito ricos na descrição do sistema/software. Podem ser muito complexos de usar. Podemos ficar preso em detalhes de implementação.
  • Ferramentas que auxiliam na criação Astah UML UmbrelloUML Visual Paradigma
  • Bibliografia http://astah.change-vision.com/ www.inf.ufpr.br www.dsc.ufcg.edu.br/~jacques/cursos/apoo/html/.../proj8.htm