Nuss… E Agora?!?

23ago/094

O que raios é a UML – Parte 2

Continuando a micro-série sobre a UML, é hora de falarmos sobre como utilizá-la. A UML nos disponibiliza diversas ferramentas ou artefatos para que possamos modelar as diversas partes do nosso projeto. Tais ferramentas são chamadas de “diagramas” e não passam de uma forma padronizada de desenhar determinado tipo de problema de forma a simplificar a forma de ver o que eles querem mostrar.

“Mas e a flexibilidade que você mencionou no artigo anterior?” Então... ela tem a ver com a possibilidade de não utilizarmos todos os diagramas e sim aqueles que são relevantes ao nosso problema. Isso diminui muito a quantidade de trabalho e permite que nos foquemos somente no que nos é importante (lembram-se do princípio de pareto, né?).

Esses diagramas se dividem em 3 grupos:

  • Diagramas Estruturais (ou de estrutura)

Mostram que coisas existem e como elas devem estar relacionadas entre si. Em um jogo, os diagramas estruturais mostrariam, por exemplo, quantos itens cabem na mochila do seu personagem, se um item pode ter ou não alguma habilidade especial ou até mesmo como é a estrutura de salvar ou carregar o progresso do jogo. Os Diagramas Estruturais se dividem em:

    Diagrama de Classes

Com o Diagrama de Classes você define as dependências das entidades que fazem parte do seu programa. Quantos personagens estão ao mesmo tempo em uma arena ou como organiza-se o seu ranking são exemplos do uso do Diagrama de Classes.

    Diagrama de Estrutura Composta

Lembra quando falamos aqui em classes que contem outras classes, como um carro que tem rodas e lataria personalizáveis, ou um personagem que tem um animal de estimação? O diagrama de Estrutura Composta mostra quais relações entre essas “partes” a classe tem, como o personagem mandando seu animal atacar ou o carro ordenando as rodas que parem de girar. “Ué Tiago, é igual a um Diagrama de Classes?” Na realidade, é. Mas, dependendo do que se modela, pode ser visualmente mais simples.

    Diagrama de Objetos

Esse diagrama parece-se muito com o Diagrama de Classes, mas define quais objetos foram instanciados em um dado momento do seu programa. Pegando o exemplo anterior, um diagrama de objetos poderia, por exemplo, mostrar quais personagens estão em qual arena, com quais itens e usando quais magias.

    Diagrama de Componentes

Define como as coisas físicas estão organizadas no seu projeto. Por exemplo, onde e como estão guardadas os arquivos do seu código-fonte e a dependência entre eles.

    Diagrama de Pacotes

Um dos meus preferidos: ilustra as dependências das partes lógicas do seu programa entre si. Essas partes lógicas, em um jogo, poderiam ser “Fase 1”, “Tela de Login” ou “Tela Inicial”. É utilizado também para definir a arquitetura do seu projeto, como as camadas e o MVC.

    Diagrama de Instalação

Sabe quando você deve instalar um DirectX qualquer para rodar um jogo? Então, esse tipo de dependência é o que os diagramas de instalação modelam. Podem ser utilizados para definir a rede onde um MMORPG roda, mostrando os servidores de jogo, de login, sites, bancos de dados e clientes de jogo.

  • Diagramas Comportamentais (ou de comportamento)

Diagramas Comportamentais definem o comportamento das coisas que seu projeto tem, incluindo aí a forma com que ele reage aos estímulos externos.

    Diagrama de Casos de Uso

Define a forma de interação do usuário com o seu sistema (os tais estímulos externos falados acima). Com ele você diz tudo que seu usuário pode fazer e começa a definir quais são as partes principais do seu sistema. Ele poderá salvar? Então você terá um módulo de savegame com seus próprios casos de Uso (Salvar jogo, Escolher Savegame, Cancelar, Carregar Savegame, por exemplo). Ele utilizará veículos? Então um módulo para controle de veículos será necessário.

Como dica, Casos de Uso iniciam com interação com periféricos. Botões, barras de rolagem, escolha de menus, utilização de teclado... isso tudo dá vida a um caso de uso.

    Diagrama de Atividades

O Diagrama de Atividades não é muito mais que o antigo “Diagrama de Blocos”. Ele indica a lógica das coisas sem entrar em detalhes de programação. Um diagrama torna muito mais visível uma lógica como a seguinte: “Jogo exibe menu de modos de jogo. Jogador coloca o cursor sobre o modo desejado. Jogador clica no modo escolhido. O jogo carrega a tela inicial daquele modo escolhido, com a opção de confirmar escolha ou cancelar escolha. Se o jogador cancela a escolha do modo, ele volta ao menu principal; se confirma, o jogo carrega aquele modo.”

    Diagrama de Transição de Estados

Como o Mario muda de estado no decorrer de um jogo? Ele pega um cogumelo e vira Super Mario, que encosta em um inimigo e vira de novo o Mario. Só que o Mario, se encostar em um inimigo, morre. Cada um desses “tipos de Mario” é um estado. O conjunto da relação entre eles é o que chamamos de Máquina de Estados. O diagrama serve para desenhar o conjunto formado por essas relações.

  • Diagramas de Interação

Enquanto os Diagramas Estruturais dizem como as coisas são, os de interação dizem como elas se relacionam. Com eles você modela como um tiro afeta o seu alvo, como é construída uma pista de corrida ou como acessar o conteúdo de um baú de tesouro.

    Diagrama de Sequencia

O Diagrama de Sequencia mostra a interação entre as diversas classes do sistema em um eixo temporal. Com ele você diz, no exemplo da batalha, que a classe de batalha cria uma arena, cria as árvores da arena, cria o rio da arena, cria dois personagems, cria itens e passa-os para os personagens e, finalmente, coloca-os na arena, exibindo em seguida a mensagem “BATALHEM” na tela.

    Diagrama de Comunicação

Diagramas de comunicação mostram a interação das classes do sistema como os Diagramas de Sequencia. Porém, ao invés de uma estrutura cronológica, os Diagramas de Comunicação baseiam-se em uma estrutura analítica, como índices de um livro. Antes que pergunte, sim, é praticamente a mesma coisa que o Diagrama de Sequencia, mas a organização (utilizando o exemplo anterior) ficaria algo assim:

1 A classe de batalha cria uma arena
    1.1 Cria as árvores da arena
    1.2 Cria o rio da arena
2 Cria dois personagems
    2.1 Cria itens
    2.2 Passa-os para os personagens e
3 Coloca os personagens na arena
4 Exibe a mensagem “BATALHEM” na tela.
    Diagrama de Interação

Modelamos com o Diagrama de Interação a interação entre os múltiplos Diagramas de Sequencia e de Comunicação que temos em nosso sistema.

Por enquanto é só. Caso alguém tenha alguma dúvida, pode comentar sobre ela. Isso pode até render uma futura parte para a série!

Saiba mais! Wikipedia e Advanced Unified Modeling Language

Comentários (4) Trackbacks (1)
  1. Parabéns pelos artigos Tiago !

    Para ficar melhor ainda, mais didático e completo seria interessante se você pudesse exemplificar visualmente, dando um exemplo gráfico de cada diagrama.

  2. Alexandre, gostei da idéia. Pode esperar que vai rolar uma 3a parte com exemplos dos diagramas. Valeu pela sugestão!

  3. Parabéns pelo blog Tiago!!!
    Achei seu blog nota 10 cara.
    Muito bem explicado os conteúdos e de ótima qualidade!!

  4. Valeu pelos comentários, Lucas. Continue participando do blog e, caso tenha alguma sugestão ou crítica, é só mandá!


Leave a comment

(required)