Modelando objetos com cores – UML em cores

[tweetmeme only_single=”false”]

Ontem lendo um post do Diego Pacheco na Imasters conheci uma técnica muito interessante de modelagem chamada UML em cores. Esta técnica utiliza 4 cores diferentes para identificar e definir as classes necessárias para um sistema. Em seguida vou descrever a técnica que pode ser muito útil durante o processo de modelagem do software.

As cores tornam os diagramas mais legíveis e passam mais informações referentes ao problema que está sendo modelado. Porem somente a definição de cores não é uma novidade, pois, diagramas de entidade e relacionamento já usavam antes da UML as cores para identificar áreas em comuns das tabelas. A novidade está em um padrão para definir estas cores de acordo com métodos e atributos adequados para cada uma.

Na maioria dos sistemas desenvolvidos diversos problemas sempre aparecem nas modelagens, como por exemplo, transações comerciais ou iterações de vendas, encomendas, aluguel, reserva, agendamento de eventos entre outros. As semelhanças entre todas as classes de uma destas categorias geralmente não são suficientemente para serem generalizadas em uma interface Java. No entanto, as semelhanças estão próximas o suficiente para poder ajudar a orientar a escolha e definição de classes em nossos desenhos.

Idealização…

Utilizado pela primeira vez em um grande projeto software em Singapura, em 1997, Peter Coad e seus colegas perceberam que as classes seguiam um padrão de relacionamento entre si, chamado de archetypes (arquétipos), então durante alguns anos eles pesquisaram e refinaram a técnica até lançarem em 1999 o livro Java Modeling in Color with UML.

Arquétipos…

Cada uma das cores definidas, rosa, amarelo, verde e azul, identificam um arquétipo como pode ser visto na Figura 1.


Figura 1 – Arquétipos definidos

Os quatro arquétipos são descritos abaixo:

  • Moment-Interval (momento ou intervalo): Representado por atividades, eventos, serviços ou coisas que precisam ser registradas. Uma venda, um objeto que guarda outro temporariamente, como Sessão, são exemplos. Outros exemplos incluem venda, locação, ordem, viagem, vôo, reunião, reserva, sensor reading, etc.
  • Role (papel): São os papéis. Exemplos do seu uso são: Funcionário, Fornecedor, Vendedor, Segurança, Atendente etc.
  • Party,Place,Thing (pessoa, lugar, coisa ou objeto): São as classes do modelo que são tangíveis e unicamente identificáveis. Esse arquétipo atua em um evento, serviço ou momento. Exemplos seriam cadastros e relatórios.
  • Description (descrição): Pode ser um catálogo ou um conjunto de rótulos de um objeto. São os dados de referências que utilizamos em combos, lookups e lists.

Para saber mais sobre os arquétipos leia este artigo de Sthefen Palmer.

Mais do que cores…

A UML em cores é mais do que colorir classes, ele propõe métodos e atributos que são comuns para cada arquétipo, como exemplo, o arquétipo Moment-Interval sempre terá um método para calcular valor ou calcular total. Um arquétipo Descripition pode fornecer um método que calcule a quantidade disponível de um item (estoque de um produto)

Com a experiência adquirida após algumas modelagens é mais fácil  notar essas recorrências. O que é recomendado é estar sempre anotando suas observações para que com o tempo você monte seu próprio diagrama com os padrões de ocorrência baseado nos arquétipos básicos definidos.

Conclusão

A técnica apesar de não ser tão nova pode ser muito útil para a modelagem de sistemas, pois de certa forma já existe um caminho para encaixar o problema que está sendo modelado, tornando mais intuitivo o desenvolvimento dos diagramas necessários. Além disso, os “papeis autocolantes” que são comumente encontrados em papelarias, possuem as mesmas cores utlizadas nesta técnica, o que facilita seu uso durante a modelagem inicial!

Referencias

http://edn.embarcadero.com/article/33737

http://knol.google.com/k/object-modelling-in-colour#

http://imasters.uol.com.br/artigo/17170

Espero que quem não conhecia a técnica tenha aprendido alguma coisa e que quando houver a necessidade ela seje útil, se tornando mais uma carta na manga para os analistas!

Abraços!

Deixar uma resposta