Diagramas de Classe para a Fase de Projeto

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

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
- Identificar todas as classes que participam da solução em software
- Isso é feito pela análise dos diagramas de interação
- Inclui-las num diagrama de classes
- Duplicar os atributos, a partir das entidades associadas no modelo conceitual
- Adicionar nomes de métodos descobertos nos diagramas de interação
- Adicoonar informação de tipo aos atributos e métodos
- Adicionar as associações necessárias para a visibilidade de atributos
- Adicionar setas às associações para indicar a diração da visibilidade de atributos
- 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

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

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


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

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:

- Diagrama de classes até agora:

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:

Incluindo detalhes de membros de classes
- UML possui sintaxe para especificar:
- Visibilidade
- Valores iniciais
- etc.
- Exemplo:

proj1-8 programa anterior
próxima