ENGENHARIA DE SOFTWARE & UML

Motor plantuml — Modelagem de Software & UML

O motor plantuml fornece suporte à consagrada suíte UML clássica (casos de uso, componentes, sequência, pacotes, atividades e classes) através do gateway Kroki integrado ao Joaju. Os diagramas são gerados em formato vetorial SVG.

⚙️ Diretivas de Configuração (%%)

Diretiva Sinônimos Tipo Padrão Descrição
layout.width width String 75% Largura do diagrama na mancha do papel (ex.: 80%, 14cm).
layout.max_width max-width String 500pt Largura máxima permitida em pontos tipográficos.
src file String - Importa código PlantUML a partir de arquivo .puml anexo.

🧪 Exemplos Práticos

1. Diagrama de Casos de Uso (UML Use Case)

Markdown (plantuml usecase)
Resultado da Renderização
Resultado plantuml (Diagrama de Casos de Uso)
```plantuml
%% width=80% max-width=520pt
@startuml
left to right direction
skinparam packageStyle rectangle

actor "Médico Geneticista" as Medico
actor "Bioinformata" as Bioinfo
actor "Paciente" as Paciente

rectangle "Sistema Joaju" {
  usecase "Cadastrar Levantamento Familiar" as UC1
  usecase "Compilar Heredograma Clínico" as UC2
  usecase "Executar Pipeline NGS" as UC3
  usecase "Emitir Laudo ABNT/Vancouver" as UC4
  usecase "Acessar Resultado Online" as UC5
}

Medico --> UC1
Medico --> UC2
Medico --> UC4
Bioinfo --> UC3
Paciente --> UC5
UC2 ..> UC1 : <>
UC4 ..> UC2 : <>
@enduml
```

2. Diagrama de Componentes de Software

Markdown (plantuml components)
Resultado da Renderização
Resultado plantuml (Diagrama de Componentes)
```plantuml
%% width=85% max-width=560pt
@startuml
skinparam componentStyle uml2

package "Obsidian Workspace" {
  [Markdown Notes] as MD
  [Templater Plugin] as TP
}

package "Joaju Stack (Docker)" {
  [Express Server :3000] as API
  [Pandoc Filter Engine] as FILTER
  [Rscript Pedtools] as R
  [Typst Compiler 0.11] as TYP
}

cloud "Kroki Gateway" {
  [Mermaid / D2 / PlantUML] as KROKI
}

MD -> TP : Atalho
TP --> API : POST /compile
API --> FILTER : Markdown AST
FILTER --> R : Blocos pedtools
FILTER --> KROKI : Blocos PlantUML
FILTER --> TYP : Typst Intermediate
TYP --> API : Binário PDF
API --> TP : Resposta 200 OK
@enduml
```