Diagramas UML

Ler e relacionar classes, sequências, comunicação e estados sem confundir estrutura com execução.

TLDR

Perguntar sobre esta página

ChatGPTClaudePerplexityGrokGeminiCopiar e abrirDeepSeekCopiar e abrir

Classes e relações

Estrutura, não execução. + público, - privado, # protegido, ~ pacote. Sublinhado é estático; itálico ou marca própria é abstrato. heroi:Heroi é objeto, não classe.

RelaçãoNotaçãoAfirma
AssociaçãoLinha contínuaRelação estrutural; seta aberta é navegação.
DependênciaSeta tracejadaUso pontual, como parâmetro.
GeneralizaçãoTriângulo vazio para a baseEspecialização com contrato da base.
RealizaçãoTracejado com triângulo para a interfaceImplementação do contrato.
AgregaçãoLosango vazio no todoTodo/parte fraco, posse por definir.
ComposiçãoLosango cheio no todoParte de um só todo de cada vez; ciclo de vida associado.

Composição não é chamada ao garbage collector; campo Java não prova posse forte. Em Java, extends Base implements I1, I2, por esta ordem.

Multiplicidade num extremo conta objetos desse extremo por um objeto do outro: 1, 0..1, *, 1..*. Classe de associação guarda dados da relação.

Uma Arena contém um Heroi e zero ou mais Paredes. Heroi tem uma associação navegável para uma Posicao.Arena- largura: int+ mover(dx): boolean1Heroi- vida: int1Posicao- x, y: int0..*Parede

Arena compõe herói e paredes; herói conhece uma posição sem posse exclusiva.

Sequência e comunicação

Tempo para baixo é ordem, não duração. Síncrona tem ponta preenchida, assíncrona aberta, retorno é tracejado. alt separa por guardas, opt é opcional, loop repete.

getX() e mostrar(x) ficam depois do alt: 3 no ramo livre, 2 no ocupado. Guardas são condições, não métodos.

Comunicação fixa a ordem por numeração: chamada interna durante a mensagem 2 é 2.1, a seguinte 2.2. *[condição] marca repetição. Sequência mostra ordem; comunicação mostra ligações.

Estados e transições

Forma: evento [guarda] / efeito. Guarda falsa sem outra reação: nada acontece.

  • entry/exit correm ao entrar/sair; transição externa para o próprio estado repete ambos, reação interna não sai.
  • Início é círculo cheio, fim é círculo com outro dentro. Estado composto agrupa máquina interna, sem exigir subclasses.
  • Regiões ortogonais mantêm um estado ativo por dimensão: Ativo/Pausa com Audível/Mudo dá quatro configurações sem as repetir em nomes. Não implicam threads.
  • Mesmo evento com guardas que se excluem escolhe um destino determinado.

Confere cada cenário: operação existe no recetor, ligação permite conhecê-lo, estado permite a ação, vista mostra o estado aceite. Diagramas 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.