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:
-
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.
-
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).
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”
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”
-
Iniciar Jogo
-
Associação: Jogador → Iniciar Jogo
-
Sequência: Iniciar Jogo → Escolher Mapa
-
Escolher Mapa
-
Sequência: Escolher Mapa → Escolher Dificuldade
-
Escolher Dificuldade
-
Sequência: Escolher Dificuldade → Carregar nível
-
Carregar nível
-
«include» → Jogar Partida (jogar depende do nível carregado)
-
Jogar Partida
-
«extend» ← Exibir Vitória (vitória ocorre como extensão condicional)
-
«extend» ← Exibir Derrota (derrota ocorre como extensão condicional)
-
Exibir Vitória
-
«include» → Receber Recompensa (ao vencer, sempre há recompensa)
-
Exibir Derrota
-
Extensão alternativa de Jogar Partida (quando o jogador perde)
-
Receber Recompensa
-
Incluído por Exibir Vitória
Fluxo “Opções”
-
Configurar Opções
-
Associação: Jogador → Configurar Opções
-
Sequência: Configurar Opções → Salvar Opções
-
Salvar Opções
- Persiste as preferências definidas em Configurar Opções
Fluxo “Loja”
-
Abrir Loja
- Associação: Jogador → Abrir Loja
- Sequência: Abrir Loja → Comprar Personagem
- «include» → Exibir Saldo (saldo sempre exibido ao abrir a loja)
-
Exibir Saldo
- Incluído por Abrir Loja
-
Comprar Personagem
- «include» → Verificar Saldo (compra sempre verifica saldo antes)
-
Verificar Saldo
- «extend» ← Aceitar a compra (extensão quando há saldo suficiente)
- «extend» ← Exibir Saldo Insuficiente (extensão quando não há saldo)
-
Aceitar a compra
- Extensão condicional de Verificar Saldo (confirma a transação)
-
Exibir Saldo Insuficiente
- Extensão condicional de Verificar Saldo (informa falha por crédito)
Resumo das relações especiais
-
«include» (obrigatório):
- Carregar nível → Jogar Partida
- Exibir Vitória → Receber Recompensa
- Abrir Loja → Exibir Saldo
- Comprar Personagem → Verificar Saldo
-
«extend» (condicional):
-
Exibir Vitória → Jogar Partida
- Exibir Derrota → Jogar Partida
- Aceitar a compra → Verificar Saldo
- Exibir Saldo Insuficiente → Verificar 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 |