Apesar de compreender o UML sempre dei por mim a fazer somente uns rectângulos com nomes para simbolizar as classes e umas setas para identificar as relações entre elas. Mas agora vou ter de escrever um relatório e portanto aqui fica um resumo.
Diagramas de Classes
Estes são dos mais importantes e dos mais utilizados. Um Diagrama de Classes é composto por classes e suas relações umas com as outras. Uma classe é representada por um rectângulo, e pode ter também membros, coisa que vou omitir porque não gosto muito de os lá pôr. Exemplo de uma classe livro:
Podemos indicar as relações entre classes de várias formas. Uma das mais comuns é a relação de associação, representada por uma linha sólida. Por exemplo:
Aqui temos a multiplicidade da relação, com um asterisco a indicar mais que 1. Neste caso cada Livro tem 1 ou mais Autores e cada Autor tem 1 ou mais Livros. Também temos a relação de generalização (ou especialização) que indica herança e é indicada com uma linha sólida com uma seta ôca a apontar para a classe base. Tal como podemos ver na imagem seguinte:
Temos também a relação de agregação, que indica que uma classe faz parte de outra classe, mas instâncias da classe existem como entidades fora do contexto da classe agregadora. Isto é representado com um diamante ôco:
Idêntico a este, temos a relação de composição, em que as instâncias de uma classe são compostas por instâncias de outras. É diferente da agregação porque aqui as classes subordinadas só fazem sentido dentro da classe que as agrega. Esta relação é identificada com um diamante preenchido:
As interfaces são representadas por um rectângulo que além do nome, tem também escrito «interface». Na imagem isso não se nota muito bem, não me perguntem porquê, mas confiem em mim que o IWrite é uma interface. Quem implementa a interface tem uma setinha tracejada a apontar para esta.
Aqui está um resumo dos Diagramas de Classes com todas as relações entre as classes de exemplo que vimos:
Diagramas de Componentes/Deployment
Os diagramas de componentes servem para mostrar que unidades "físicas" existem e suas dependências. Os componentes são representados por um rectângulo com dois rectângulos de lado esquerdo. As dependências entre componentes são representadas por linhas a tracejado. Exemplo:
Estes diagramas são muito úteis para exemplificar como um sistema é implementado tendo em conta todas as suas unidades fisicas. São importantes guias para o deployment e para a manuntenção.
Também podemos usar estes diagramas para aplicações distribuidas. De seguida está a nossa loja de livros no tipico modelo de 3 camadas(tiers).
E pronto, isto é um pequeno resumo, mas dá jeito ter à mão. Há vários outros tipos de diagramas, não é à toa que existem livros sobre UML enormes e cadeiras só sobre essas coisas. Mas acho que isto é mesmo o essencial.
posted on Sunday, October 31, 2004 10:15 AM