Skip to content

2.3. Módulo Notação UML – Modelagem Organizacional OU Casos de Uso

Introdução

A Modelagem Organizacional na Unified Modeling Language (UML) é essencial para compreender como os atores interagem com o sistema e como as funcionalidades se organizam em níveis estruturais. Enquanto a modelagem estática descreve classes e componentes, a modelagem organizacional foca em quem utiliza o sistema e como suas funções são distribuídas em pacotes.

Essa visão contribui para alinhar expectativas entre usuários, desenvolvedores e gestores, oferecendo uma representação clara das responsabilidades do sistema e da organização modular da arquitetura. A UML fornece notações específicas, como diagramas de caso de uso e diagramas de pacotes, que favorecem tanto a análise quanto a comunicação entre os envolvidos no projeto.

Metodologia

A metodologia aplicada pelo grupo concentrou-se em duas representações principais da modelagem organizacional em UML:

  1. Diagrama de Caso de Uso – Representa as interações entre atores e o sistema, destacando funcionalidades e fluxos de uso. Esse diagrama fornece uma visão funcional, auxiliando na identificação de requisitos e expectativas dos usuários.

  2. Diagrama de Pacotes – Estrutura o sistema em módulos lógicos, agrupando classes e componentes com responsabilidades relacionadas. Esse diagrama evidencia a organização modular, facilitando a compreensão da arquitetura e das dependências entre partes do sistema.

O processo metodológico envolveu:

  • Identificação dos atores principais que interagem com o sistema.
  • Levantamento dos principais casos de uso, descrevendo o valor entregue a cada ator.
  • Organização do sistema em pacotes lógicos, agrupando elementos com funções semelhantes.
  • Construção dos diagramas UML, aplicando padrões visuais para garantir consistência e clareza na comunicação.

Participantes

Tabela 1: Participantes

Nome Função Data Hora
Caio Duarte Diagrama de Pacotes 16/09/2025 21:00
Danielle Soares Diagrama de Pacotes 16/09/2025 21:00
Enzo Emir Diagrama de Casos de Uso 22/09/2025 22:30
Laryssa Félix Diagrama de Casos de Uso 22/09/2025 22:30
Leticia Arisa Diagrama de Casos de Uso 22/09/2025 22:30
Marcelo Makoto Diagrama de Casos de Uso 22/09/2025 22:30
Maria Eduarda Diagrama de Pacotes 16/09/2025 21:00
Rafael Welz Diagrama de Casos de Uso 22/09/2025 22:30
Victor Pontual Diagrama de Casos de Uso 22/09/2025 22:30

2.3.1. Diagrama de Pacotes

O diagrama de pacotes é um diagrama estrutural da UML utilizado para representar a organização e a disposição de elementos de um sistema em forma de pacotes. Cada pacote funciona como um agrupamento lógico de componentes relacionados, como classes, casos de uso, documentos ou até outros pacotes, e é representado visualmente por um ícone semelhante a uma pasta [1].

A ferramenta utilizada para a elaboração do diagrama foi o Lucidchart, possibilitando a edição simultânea, o que favoreceu a organização do processo e a clareza na modelagem. O link para o projeto pode ser acessado clicando aqui (é necessário login).

Diagrama de Pacotes

Fonte: Caio Duarte, Danielle Soares, Maria Eduarda, 2025.

Este diagrama de pacotes mostra a organização lógica do código do jogo, dividindo-o em pacotes principais e suas dependências.

Core

O pacote central que gerencia a lógica principal do jogo.
Classes/Componentes:

  • Game Main: Classe principal que coordena o fluxo do jogo.
  • Screen Manager: Gerencia as diferentes telas do jogo.
  • Event Manager: Responsável por lidar com eventos de entrada do usuário.

Dependências:

  • Core depende de Template, View e Model.

Template

Contém elementos de interface de usuário e configurações de tela.
Subpacotes/Classes:

  • Screens: Define as telas do jogo.
  • Elements: Agrupa os elementos gráficos.
  • UI Configs: Configurações da interface.

Dependências:

  • Elements usa UI Configs.

View

Responsável pela renderização (exibição) do jogo.
Subpacotes/Classes:

  • Renderer: Gerencia a renderização dos componentes.
  • Defense Render: Renderiza a defesa.
  • Enemy Render: Renderiza os inimigos.
  • Scene Render: Renderiza a cena do jogo.
  • UI Render: Renderiza a interface do usuário.

Dependências:

  • View depende de Model.

Model

Contém a lógica de dados e o estado do jogo.
Subpacotes/Classes:

  • Mach State: Armazena o estado atual do jogo.
  • Player: Contém os dados do jogador (nome, quantidade de moedas, atributos específicos) e sua lógica de funcionamento.
  • Characters: Agrupa todos os personagens do jogo, definindo sua lógica e estados (incluindo inimigos e outros NPCs).
  • Maps: Define a lógica e o estado dos mapas.

Dependências:

  • Game State se relaciona com Player, Characters e Maps.

A arquitetura do jogo segue o padrão de design Model-View-Controller (MVC), ou uma variação dele, em que:

  • O Core atua como o "cérebro" que coordena as interações.
  • O View cuida da renderização.
  • O Model gerencia os dados e estados do jogo.
  • O Template organiza os elementos da interface.

Essa estrutura garante modularidade, clareza e organização no desenvolvimento.

Comentários sobre o Trabalho em Equipe

A elaboração desta etapa foi realizada em reunião pelo Discord, não gravada, contando com a participação dos três membros designados para o Diagrama de Pacotes. Todos os integrantes estiveram presentes diretamente na execução prática do diagrama e contribuiram tanto no estudo aprofundado sobre o tema quanto na documentação principal, posteriormente os membros se reuniram para revisar o artefato em um reunião no teams gravad, veja abaixo a gravação.

Assim, de forma online, todos os três membros — Caio Duarte, Danielle Soares e Maria Eduarda Andrade — participaram ativamente do Foco 3, garantindo integração e alinhamento entre teoria e prática. A participação dos integrantes na elaboração do Foco 3 trouxe visões e opiniões distintas, enriquecendo o trabalho desenvolvido:

Caio Duarte

Sobre o diagrama de pacotes, considerei relativamente tranquilo de produzir, mas um pouco desafiador no momento de abstrair as ideias para sua construção. A maior dificuldade está em definir uma arquitetura ideal para o projeto, já que exige uma boa visão do sistema como um todo. Apesar disso, a notação é clara e de fácil compreensão

Danielle Soares

Eu achei o diagrama de pacotes mais intuitivo, mas ainda assim difícil definir os limites de cada pacote. Foi útil para entender como separar funcionalidades e manter o sistema modular, além de ser um pouco abstrato nesse primeiro momento em que ainda estamos avançando no projeto.

Maria Eduarda Andrade

Achei a ideia do diagrama de pacotes bastante direta e relevante, pois traz uma visão mais próxima da nossa realidade cotidiana. Ele me remete, por exemplo, à organização de alimentos na cozinha em pequenos potes, cada um destinado a um tipo ou a um conjunto específico de alimentos. Partindo dessa analogia, o diagrama de pacotes mostra-se muito útil para compreendermos a forma como estruturamos nosso sistema e suas interligações. No entanto, considerei sua construção um pouco difícil, devido à amplitude e complexidade envolvidas, embora isso seja algo que pode ser aprimorado com a prática.


2.3.2. Diagrama de Casos de Uso — “Lendas vs Caçadores”

Diagrama de Casos de Uso — Lendas vs Caçadores

Figura — Diagrama de Casos de Uso. Link: Diagrama de Casos de Uso

A figura modela as interações do ator Jogador com o sistema Lendas vs Caçadores. Abaixo, descrevemos cada caso de uso e as ligações (associações, «include», «extend») exatamente como aparecem no diagrama.

Atores e limite do sistema

  • Ator: Jogador – interage diretamente com os casos de uso.
  • Sistema: Lendas vs Caçadores – todos os casos de uso listados estão dentro do seu limite.

Casos de uso e vínculos

Fluxo “Jogar”

  1. Iniciar Jogo

  2. Associação: Jogador → Iniciar Jogo

  3. Sequência: Iniciar Jogo → Escolher Mapa

  4. Escolher Mapa

  5. Sequência: Escolher Mapa → Escolher Dificuldade

  6. Escolher Dificuldade

  7. Sequência: Escolher Dificuldade → Carregar nível

  8. Carregar nível

  9. «include» → Jogar Partida (jogar depende do nível carregado)

  10. Jogar Partida

  11. «extend» ← Exibir Vitória (vitória ocorre como extensão condicional)

  12. «extend» ← Exibir Derrota (derrota ocorre como extensão condicional)

  13. Exibir Vitória

  14. «include» → Receber Recompensa (ao vencer, sempre há recompensa)

  15. Exibir Derrota

  16. Extensão alternativa de Jogar Partida (quando o jogador perde)

  17. Receber Recompensa

  18. Incluído por Exibir Vitória


Fluxo “Opções”

  1. Configurar Opções

  2. Associação: Jogador → Configurar Opções

  3. Sequência: Configurar Opções → Salvar Opções

  4. Salvar Opções

    • Persiste as preferências definidas em Configurar Opções

Fluxo “Loja”

  1. Abrir Loja

    • Associação: Jogador → Abrir Loja
    • Sequência: Abrir Loja → Comprar Personagem
    • «include» → Exibir Saldo (saldo sempre exibido ao abrir a loja)
  2. Exibir Saldo

    • Incluído por Abrir Loja
  3. Comprar Personagem

    • «include» → Verificar Saldo (compra sempre verifica saldo antes)
  4. Verificar Saldo

    • «extend» ← Aceitar a compra (extensão quando há saldo suficiente)
    • «extend» ← Exibir Saldo Insuficiente (extensão quando não há saldo)
  5. Aceitar a compra

    • Extensão condicional de Verificar Saldo (confirma a transação)
  6. Exibir Saldo Insuficiente

    • Extensão condicional de Verificar Saldo (informa falha por crédito)

Resumo das relações especiais

  1. «include» (obrigatório):

    • Carregar nívelJogar Partida
    • Exibir VitóriaReceber Recompensa
    • Abrir LojaExibir Saldo
    • Comprar PersonagemVerificar Saldo
    • «extend» (condicional):

    • Exibir VitóriaJogar Partida

    • Exibir DerrotaJogar Partida
    • Aceitar a compraVerificar Saldo
    • Exibir Saldo InsuficienteVerificar Saldo

Comentários sobre o Trabalho em Equipe

A elaboração desta etapa foi realizada em reunião pelo Discord/Teams,contando com a participação dos seis membros designados para o Diagrama de Casos de Uso. Todos os integrantes estiveram presentes diretamente na execução prática do diagrama e contribuiram tanto no estudo aprofundado sobre o tema quanto na documentação principal, veja os comentarios e a gravação abaixo:

Assim, de forma online, todos os três membros — Caio Duarte, Danielle Soares e Maria Eduarda Andrade — participaram ativamente do Foco 3, garantindo integração e alinhamento entre teoria e prática. A participação dos integrantes na elaboração do Foco 3 trouxe visões e opiniões distintas, enriquecendo o trabalho desenvolvido:

Enzo Emir

Já estava acostumado com esse Diagrama, pois já havia o feito outras vezes antes, em algumas outras matérias, então seguiu de forma tranquila.Além do trabalho em equipe ser muito bom, grupo entrosado.

Laryssa Felix

Acho que o diagrama de casos de uso é uma ferramenta muito útil porque ajuda a enxergar o sistema pela perspectiva do usuário. Diferente de outros diagramas mais técnicos, ele mostra de forma simples quais são as interações principais entre atores externos (usuários ou sistemas) e o software. Isso facilita tanto para desenvolvedores quanto para clientes entenderem o que realmente será entregue.

Leticia Arisa

Considero o diagrama de casos de uso bastante importante, pois ele permite compreender melhor o ponto de vista do usuário. Dessa forma, torna-se possível alinhar expectativas e, consequentemente, entregar um produto de maior qualidade e mais adequado às necessidades do usuário.

Marcelo Matoko

Na minha opinião, o diagrama de casos de uso é uma ferramenta muito útil no começo de um projeto de software, visto que ele é relativamente simples e fácil de ser realizado. Além disso, ele coloca toda a equipe no contexto da estrutura geral do projeto.

Victor Pontual

Na minha opinião, o diagrama de casos de uso é útil porque me faz enxergar o sistema pela visão do usuário. Ele mostra de forma simples o que pessoas ou outros sistemas conseguem fazer no software. Isso me ajuda a alinhar expectativas com a equipe e entender exatamente o que será entregue. Vejo como um mapa de alto nível; quando preciso de detalhes, recorro a outros artefatos.

Rafael Schadt

Eu acho os diagramas de casos de uso bastante úteis para visualizar de forma clara como os usuários interagem com o sistema. Eles ajudam a organizar os requisitos e a identificar as funcionalidades principais sem entrar em detalhes de implementação. Porém, às vezes podem ficar superficiais se não forem detalhados com bons atores e cenários.

Gravação

Referências

[1] LUCIDCHART. Tutorial sobre diagramas de pacotes UML. Lucidchart. Disponível em: https://www.lucidchart.com/pages/pt/diagrama-de-pacotes-uml. Acesso em: 20 set. 2025.

[2] Lucid Software Português. Tutorial de Caso de Uso UML. YouTube, data de publicação. Disponível em: https://youtu.be/ab6eDdwS3rA?si=OsuejY_IHRUeuaUD. Acesso em: 22 set. 2025.

Histórico de Versões 📅

Versão Data Descrição Autor(es) Revisor(es)
0.1 20/09/2025 Adicionando Diagrama de Pacotes Caio Duarte, Danielle Soares, Maria Eduarda Andrade Enzo Emir
0.2 20/09/2025 Corrigindo link da imagem Caio Duarte, Danielle Soares Maria Eduarda Andrade
0.3 20/09/2025 Adicionando introdução da página de modelagem organizacional, tabela de participantes e comentários sobre o trabalho em equipe. Danielle Soares Maria Eduarda Andrade
0.4 21/09/2025 Adicionando descrição do diagrama de pacotes Caio Duarte, Danielle Soares, Maria Eduarda Andrade Enzo Emir
0.5 22/09/2025 Adicionando Diagrama de Casos de Uso e corrigindo formatação de links Victor Pontual Maria Eduarda Andrade