sábado, 1 de junho de 2013

Diagramas de Classe para a Fase de Projeto

    projbaixo.gif (9424 bytes)

Introdução

  • Ao completar os diagramas de interação, pode-se completar o diagrama de classes.
  • Na realidade, o diagrama de classes é criado em paralelo com os diagramas de interação.
    • No final, falta incluir alguns detalhes finais.

Exemplo de um Diagrama de Classes

21-1.gif (4031 bytes)

Diagrama de classes na fase de projeto

  • Deve especificar as classes de software e as interfaces da aplicação
    • Não somente das entidades conceituais.
  • Informação tipicamente incluída:
    • Classes, associações e atributos
    • Interfaces, incluindo métodos e constantes
    • Métodos
    • Informação de tipo de atributos
    • Navegabilidade
    • Dependências

Como construir um diagrama de classes

  1. Identificar todas as classes que participam da solução em software.
    • Isso é feito pela análise dos diagramas de interação
  2. Inclui-las num diagrama de classes.
  3. Duplicar os atributos, a partir das entidades associadas no modelo conceitual.
  4. Adicionar nomes de métodos descobertos nos diagramas de interação.
  5. Adicionar informação de tipo aos atributos e métodos.
  6. Adicionar as associações necessárias para a visibilidade de atributos.
  7. Adicionar setas às associações para indicar a diração da visibilidade de atributos.
  8. Adicionar linhas de relações de dependência para indicar a visibilidade que não seja de atributo.

Modelo conceitual versus diagrama de classes da fase de projeto

  • Para ambos, UML usa o diagrama de classes.
  • No modelo conceitual, uma entidade não representa uma classe de software mas um conceito do domínio do problema.
  • No diagrama de classes da fase de projeto, as classes são de software.
21-2.gif (5939 bytes)

Criação dos diagramas de classe do estudo de caso

Identificar as classes de software

  • Verificar todos os diagramas de interação para identificar classes.
  • Adicioná-las ao diagrama de classes, junto com os atributos.
  • Não precisa incluir classes que não participam da iteração atual.
21-3.gif (4699 bytes)

Adicionar nomes de métodos

  • Analisar os diagramas de interação para descobrir os métodos de cada classe.
  • Alguns detalhes sobre métodos.
    • O método create() de UML não aparece em muitas linguagens, pois é uma chamada a um construtor.
    • Muitas vezes, não se incluem os métodos acessores (getAtributo() e setAtributo()).
    • Se classes de bibliotecas (ex. Vector em Java) são mostrados no diagrama, não se precisa mencionar seus métodos.
  • Pode-se usar a sintaxe da linguagem de programação final, se desejado.
21-4.gif (2784 bytes)
  • Diagrama até agora:
21-5.gif (5366 bytes)

Adição de informação de tipo

  • Este passo é opcional
    • Se o diagrama de classes está sendo criado numa ferramenta CASE (ex. Rational Rose), e a ferramenta será usada para gerar código, todos os detalhes de tipos devem ser dados.
    • Se o diagrama for preparado apenas para leitura por desenvolvedores, o nível de detalhamento pode ser menor.
  • O seguinte diagrama contém toda a informação de tipo.
21-7.gif (8333 bytes)

Adicionar Associações e Navegabilidade

  • A navegabilidade implica visibilidade da fonte para o destino.
    • Normalmente navegabilidade de atributo, incluída na implementação.
  • As associações devem ser apenas aquelas necessárias para a visibilidade de objetos.
    • Isso é diferente das associações no modelo conceitual, as quais podem ser incluídas para melhorar o entendimento.
  • Os diagramas de interação são usados para descobrir a visibilidade, associações e navegabilidade.
  • Situações comuns que levam a associações:
    • A envia uma mensagem a B.
    • A cria uma instância de B.
    • A deve manter conhecimento de B.
  • Exemplo:
21-8.gif (5718 bytes)
  • Diagrama de classes até agora:
21-10.gif (8627 bytes)

Adição de relações de dependência

  • Quando uma classe conhece outra (tem visibilidade), mas a visibilidade não é de atributo, usa-se uma linha tracejada.
  • Exemplo: TPDV recebe um objeto da classe EspecificaçãoDeProduto como retorno do método especificação da classe TPDV.
  • Diagrama de classes com dependências:
21-11.gif (10169 bytes)

Incluindo detalhes de membros de classes

  • UML possui sintaxe para especificar:
    • Visibilidade.
    • Valores iniciais.
    • etc.
  • Exemplo:
21-12.gif (2915 bytes)

Nenhum comentário:

Postar um comentário