Projeto de sistema
Crie o menor conjunto de visões que responda à pergunta do usuário. Prefira .drawio editável para diagramas formais; respeite a notação, formato, rubrica do curso e arquivos existentes. Um arquivo XML válido não é prova de um modelo correto.
Fluxo de trabalho
- Estabeleça o público, limite do sistema, pergunta, cenário e nível de abstração. Leia os requisitos/esquema/código fornecidos e qualquer rubrica. Registre cardinalidades incertas, permissões, regras de ciclo de vida e interfaces externas como suposições; pergunte apenas quando elas alterarem materialmente a resposta. Não invente infraestrutura ou relacionamentos obrigatórios.
- Escolha as visões usando a tabela de roteamento abaixo. Leia apenas as referências relevantes mais
diagram-validation.md. Distinga evidências de estado atual do design proposto. Mantenha um pequeno glossário com IDs de conceitos estáveis quando vários diagramas compartilharem conceitos. - Construa um inventário semântico antes de posicionar formas: participantes/elementos, relacionamentos com direção e significado dos pontos finais, restrições e IDs de requisitos. Para um DFD, adicione um dicionário de fluxos e assinaturas de limites de decomposição; para um modelo de dados, identifique chaves e dependências.
- Siga o procedimento de desenho específico do diagrama. Defina a notação explicitamente (por exemplo, UML 2, Crow's Foot, Gane–Sarson; contexto, depois nível 0). Separe regras semânticas de recomendações de layout. Resolva fontes conflitantes conforme descrito em
sources.md. - Para Draw.io, leia
drawio-rendering.mdelayout.md. Crie formas e conectores nativos com IDs estáveis, usando um serializador XML. Copie um exemplo relevante apenas após substituir seus fatos de domínio. Para outros formatos, leiafallbacks.md. - Execute
python3 <skill-dir>/scripts/validate_drawio.py <arquivo-ou-diretório>. Repare erros estruturais relatados. Use as listas de verificação semântica e entre visões: o script não pode provar a correção de UML, DFD, ERD ou BPMN. - Abra/importe no diagrams.net ou exporte usando um renderizador Draw.io disponível. Inspecione cada página quanto a rótulos, pontas de seta, recorte, contenção e cruzamentos; ajuste e inspecione novamente. Se nenhum renderizador funcionar, entregue a fonte editável e relate explicitamente a renderização como não verificada. Não chame a análise de XML de teste de abertura.
- Entregue arquivos fonte, pré-visualizações úteis e uma breve nota de verificação/suposição. Indique exatamente quais verificações foram executadas. Preserve o layout manual existente e páginas não relacionadas durante edições; atualize pré-visualizações obsoletas.
Roteamento de referência
| Pergunta do usuário | Leia |
|---|---|
| Escolha de UML / linha de base de notação | uml.md |
| Atores e objetivos do usuário | use-case.md |
| Estrutura de domínio ou software | class-diagram.md |
| Um cenário entre colaboradores | sequence-diagram.md |
| Fluxo de trabalho, ramificações, concorrência | activity-diagram.md |
| Ciclo de vida orientado a eventos de uma entidade | state-machine.md |
| Instâncias, links, módulos, posicionamento em tempo de execução | structural-views.md |
| Comunicação, temporização, visão geral de interação | advanced-interactions.md |
| Entidades, relacionamentos, esquema relacional | erd.md, normalization.md |
| Movimento de dados e decomposição | dfd.md, context-diagram.md |
| Níveis de arquitetura | c4-model.md |
| Colaboração/processo de negócio | bpmn.md |
| Procedimento simples ou transferências de responsabilidade | flowchart-swimlane.md |
| Geração de saída / polimento | drawio-rendering.md, layout.md, fallbacks.md |
| Revisão / consistência entre visões | diagram-validation.md |
| Proveniência de fontes / edições / limitações | sources.md |
Convenção de saída
Respeite o caminho do usuário. Caso contrário, use docs/diagrams/<sistema>-<visão>.drawio, com pré-visualizações .svg ou .png correspondentes, quando possível. Use <sistema>-assumptions.md para suposições não triviais e <sistema>-validation.md para auditorias entre visões. Mantenha exportações temporárias fora dos entregáveis finais. Use arquivos separados para visões mantidas independentemente, ou páginas nomeadas para um conjunto coordenado. Nunca substitua silenciosamente uma notação formal solicitada por um fluxograma genérico.
Verificações inegociáveis
- Os fatos do modelo devem vir de evidências ou suposições rotuladas.
- Verifique a semântica dos pontos finais; uma seta apontando na direção errada pode permanecer sintaticamente válida.
- Uma seta de DFD carrega dados; o fluxo de controle UML/BPMN carrega significado de execução.
- Não infira propriedade de ciclo de vida a partir de uma chave estrangeira ou de uma frase vaga "tem-um".
- Revise conceitos compartilhados relevantes; não exija conteúdos idênticos em visões de escopo diferente.
- Mantenha os desenhos editáveis; uma imagem incorporada em um arquivo
.drawionão é um diagrama nativo.
Exemplos e verificações executáveis estão em examples/ e scripts/. Evidências de teste específicas do pacote estão em TEST-REPORT.md.