Modelação com UML

Casos de uso, classes, multiplicidades, sequência, atividades e estados sem confundir domínio com implementação.

TLDR

Perguntar sobre esta página

ChatGPTClaudePerplexityGrokGeminiCopiar e abrirDeepSeekCopiar e abrir

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.
Casos de uso da aplicação de reservasO Estudante reserva uma sala. Reservar sala inclui verificar disponibilidade. Pedir equipamento estende reservar sala quando o estudante o pede.Aplicação de reservasEstudanteReservar salapontos de extensãoequipamentoVerificardisponibilidade«include»Pedirequipamento«extend»Condição: pediu equipamento
A inclusão aponta para o comportamento incluído. A extensão aponta para o caso base, no ponto de extensão equipamento.

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.

Modelo de domínio das reservasCada Reserva tem exatamente um Estudante e uma Sala. Cada Estudante e cada Sala podem ter zero ou mais Reservas. Reserva tem início, fim e estado.Estudantenome10..*efetuaReservainíciofimestado0..*1ocupaSalacapacidade
Lê a multiplicidade na ponta oposta à classe de partida.

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çãoSemântica
AssociaçãoRelação estrutural
DependênciaUm elemento usa outro e pode ser afetado pela sua mudança
GeneralizaçãoEspecialização tratável como o conceito geral; triângulo vazio aponta para o geral
ComposiçãoLosango 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 partilhadaLosango 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. alt separa alternativas com guardas; opt é opcional; loop repete.
  • 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.

Transições e fluxos completos.

À tua maneira

Aparência

Modo de cor
Tema
Cor de destaque

Leitura

Fonte de leitura

Álgebra, lógica e uma ideia de cada vez.

Código

Fonte do código

Navegação

Cursor de leitura, sem edição. h, j, k, l movem; / pesquisa nesta página. v seleciona caracteres; V seleciona linhas; y copia. Tab permite destacar ou comentar. Espaço ou Enter abre blocos recolhíveis. Nos cartões, h, j, k, l mudam o foco.

CSS personalizado

Ativa uma sugestão ou guarda o teu CSS. Só muda este navegador.

Usa --page, --text e --accent para acompanhar o tema.

Seletores e recuperação

.site-header, .prose, .course-card, [data-reading-history], [data-playground] e .page-actions.

Abre a aparência com a tecla vírgula ou no rodapé. Se o CSS esconder os controlos, abre esta página sem CSS personalizado.

Pesquisar

Escreve para pesquisar em todo o site.

para escolher · Enter para abrir · Esc para fechar

Copiar fórmula

A cópia automática não está disponível. Copia o LaTeX abaixo.

Pesquisar nesta página

Enter procura · n / N repetem · Esc cancela. Ctrl / Cmd K pesquisa todo o site.

Atalhos de teclado

Clica numa tecla para a mudar. Esc cancela. Backspace desativa.

PesquisarCtrl / Cmd K

Os atalhos não interferem enquanto escreves. Tab e Enter funcionam sempre.