quinta-feira, 20 de agosto de 2009

O Diagrama de Classes

Neste post vamos falar sobre outro diagrama da UML - O diagrama de classes.

Sua função é proporcionar uma visão das classes que comporão um sistema, seus atributos e métodos, além do relacionamento entre as classes e como essas classes se complementam e se relacionam entre si.

Tem se também uma representação da visibilidade dos atributos e métodos que formam a classe.

É uma evolução do diagrama de entidade e relacionamento, pois além das entidades (atributos) , se representa nesse diagrama os comportamentos das classes (métodos).

Observação importante: Esse diagrama não se preocupa com a sequência em que as funcionalidades irão ocorrer, sendo está responsabilidade de outros diagramas.

Perspectivas

Um diagrama de classes pode oferecer três perspectivas, cada uma para um tipo de observador diferente. São elas:

  • Conceitual - Representa os conceitos do domínio em estudo.(Perspectiva destinada ao cliente)

  • Especificação - Tem foco nas principais interfaces da arquitetura, nos principais métodos, e não como eles irão ser implementados (Perspectiva destinada as pessoas que não precisam saber detalhes de desenvolvimento, tais como gerentes de projeto).

  • Implementação - A mais utilizada de todas, aborda vários detalhes deimplementação, tais como navegabilidade, tipo dos atributos, etc.(Perspectiva destinada ao time de desenvolvimento).

Relacionamentos

Tem a função de representar os relacionamentos entre as classes mostrando como elas colaboram umas com as outras. Existem 6 tipos de relacionamento:

  • Associação (unária, binária, ternária)
  • Agregação (semelhante ao relacionamento todo-parte)
  • Composiçao (usado para representar um vínculo mais forte entre as entidades, ou seja um nível de dependência maior entre as classes)
  • Generalização/especialização - relacionamento entre superclasses e subclasses.
  • Dependência - Uma classe dpende da outra.
  • Realização - utilizada para representar os relacionamentos entre interfaces e classes
Associação Unária



Associação Binária

Classes Associativas - Devem ser criadas quando a multiplicidade é *..* (muitos para muitos)


Agregação - Um pedido é composto por um ou mais itens. Um pedido compõe vários itens de pedido

Composição - Uma revista possui uma ou mais edições e no mínimo 6 e no máximo 10 artigos



Abaixo um diagrama para o sistema bancário:

Repare que não é necessário representar chaves primárias e nem estrangeiras nesse diagrama. Isso fica implícito.

Um comentário:

Bruno Felipe disse...

O exemplo de Classe Associativa não faz sentido, pois a classe gerada é desnecessária para um sistema.