Modelação com UML
Casos de uso, classes, multiplicidades, sequência, atividades e estados sem confundir domínio com implementação.
Casos de uso
UML é uma linguagem de modelação, não um processo. Cada diagrama seleciona uma preocupação; modelos e regras devem ser consistentes.
- Ator: papel externo que interage com o sistema, pessoa ou sistema. Depende da fronteira: um servidor pode estar dentro ou fora do sistema modelado.
- Caso de uso: comportamento que produz um resultado observável com valor para um ator.
- include: seta tracejada do caso base para o comportamento incorporado.
- extend: seta tracejada da extensão para o caso base, num ponto de extensão. O caso base tem significado sozinho; se não houver condição, a extensão aplica-se quando se atinge o ponto.
Reservar inclui verificar disponibilidade; pedir equipamento estende reservar quando é solicitado. Cancelar mais tarde é outro objetivo, não uma extensão apenas pela ordem temporal.
- Descreve ator, pré-condição, gatilho, fluxo principal, alternativas, pós-condição e garantia em falha. A elipse não especifica exceções; uma pré-condição não substitui o tratamento de uma falha possível durante a execução.
Domínio, multiplicidades e relações
Um modelo de domínio representa conceitos do problema, não todos os ecrãs e classes técnicas.
A multiplicidade na ponta oposta indica quantas instâncias se associam a uma instância de partida: 1 junto de Estudante significa um estudante por reserva; 0..* junto de Reserva permite várias reservas por estudante. Não impede sobreposição temporal, que exige outra restrição.
| Relação | Semântica |
|---|---|
| Associação | Relação estrutural |
| Dependência | Um elemento usa outro e pode ser afetado pela sua mudança |
| Generalização | Especialização tratável como o conceito geral; triângulo vazio aponta para o geral |
| Composição | Losango cheio no todo; parte pertence no máximo a um todo composto de cada vez e é destruída com ele se ainda lhe pertencer |
| Agregação partilhada | Losango vazio, semântica todo-parte mais fraca; uma associação simples pode ser mais clara |
Uma Sala não é parte composta de Reserva: continua a existir depois de apagar a reserva. Ter uma referência não basta para composição.
Sequência, atividades e estados
- Sequência: participantes e mensagens de um cenário, com tempo para baixo. Chamada síncrona espera resposta; assíncrona permite continuar.
altsepara alternativas com guardas;opté opcional;looprepete. - Atividades: decisão e junção tratam alternativas; fork inicia fluxos concorrentes e join sincroniza-os. Paralelismo não é uma escolha entre caminhos.
- Estados: situações de um objeto e reação a eventos. Uma transição escreve-se
evento [guarda] / efeito.
Para uma reserva das 14h, o titular pode cancelar às 13h59; às 14h a guarda falha e mantém Confirmada. Libertar o intervalo é efeito do cancelamento. Uma ação de saída de Confirmada correria também na passagem para Terminada.
- Confere um cenário de sucesso e muda uma condição, como conflito ou falha de rede. Estrutura, mensagens e estados devem explicar o mesmo resultado.