domingo, 30 de março de 2008

UML - Estereótipos

Na UML tem um tópico chamado mecanismos, entenda como sendo tipos de elementos que aparecem eventualmente para agregar mais informações aos diversos diagramas utilizados em uma modelagem UML ou para explicitar tecnicas como reuso, quando ocorre um extend, por exemplo.

Os mecanismos são divididos em quarto partes:

  • Especificações
  • Adornos
  • Divisões comuns
  • Extensibilidade



  • Vamos tratar aqui de Extensibilidade, que por sua vez é dividida em:

  • Atribuição de valores
  • Restrições
  • Estereótipos

  • Como diz o título do post, trataremos específicamente de Estereótipos.

    "Estereótipo amplia o vocabulário da UML, permitindo a criação de novos tipos de blocos de construção, derivados de outros já existentes, mas específico a determinado problema."

    Pra entender melhor, já reparou que quando uma classe inclui ou extende uma outra, as setas para os dois relacionamentos são idênticas? Esse é um bom exemplo para demonstrar que ao utilizar um estereótipo extend, você está querendo dizer que o elemento cliente possui todas as funcionalidades do fornecedor, ou seja, ele acaba de fato se tornando como o próprio fornecedor.

    Fica claro no exemplo anterior que não se trata de um include ou outro qualquer, pois foi dito exatamente do que se trata a relação. Além disso palavras reservadas extend, include, use, etc., possui todo um conceito que é de conhecimento comun, tanto que ao utiliza-la qualquer pessoa que analisar o diagrama saberá de imediato do que se trata esse e em que implica.

    Observe a figura, sem os estereótipos seria muito difícil saber do que se trata e como se comportaria cada uma das dependências:


    Nunca se esqueça que estereótipo não foi feito pro plural, ou seja, nunca se usa extends, includes, uses...

    Você vai acabar por perceber que utilizar um estereótipo não é somente recurso que rotula o relacionamento visualmente, ele vai muito além disso e aplica também uma série de regras nele contidas que pode dar todo um novo sentido para os elementos envolvidos.

    Acessa a especificação para UML da OMG aqui, e dê uma olhada na página 693, cujo título é Annex C: Standard Stereotypes, lá podemos constatar que a UML por padrão vem com um razoável conjunto de estereótipos pré definidos para os mais diverros fins.

    Links:
    Stereotype (Wikipedia)
    Referências de Estereótipos
    Stereotype by Stephen R. Palmer
    Um tutorial ai
    OMG Available Specification

    Nenhum comentário: