Ferramentas de desenvolvimento
Alex Garkavenko
Desenvolvedor sênior e embaixador do Latenode
10 de dezembro de 2023
Uma plataforma de baixo código que combina simplicidade sem código com potência de código completo 🚀 Você pode usar a plataforma de baixo código para obter mais informações.
Comece a usar gratuitamente
10 de dezembro de 2023
-
10
leitura mínima

JSON vs YAML: Comparação de formatos de dados para o desenvolvimento moderno

Alex Garkavenko
Desenvolvedor sênior e embaixador do Latenode
Tabela de conteúdo
Principais conclusões:
No desenvolvimento moderno, a comparação entre JSON e YAML revela diferenças distintas: O JSON se destaca por sua velocidade e simplicidade, o que o torna ideal para APIs da Web e intercâmbio de dados, enquanto o YAML oferece maior legibilidade e clareza de configuração, adequado para configurações e documentação. Cada formato tem suas vantagens e desvantagens, com o JSON se destacando pela eficiência de análise e o YAML pela facilidade de uso, o que os torna as escolhas preferidas para diferentes cenários de desenvolvimento.

No âmbito da serialização de dados e da seleção de linguagens de programação, a decisão fundamental entre JSON e YAML para os desenvolvedores depende de sua capacidade de entender e utilizar esses modelos de linguagem de forma eficaz com palavras e estruturas no código. Cada formato, com seus próprios tipos de dados complexos, tem uma finalidade distinta. Seus pontos fortes e fracos individuais atendem a diferentes necessidades de programação, demonstrando a capacidade das bibliotecas e dos modelos de linguagem de lidar com diversas tarefas. Esta postagem se aprofunda nas nuances do JSON e do YAML, comparando suas estruturas, complexidade e adequação a várias tarefas de configuração e intercâmbio de dados. Exploraremos como esses formatos atendem a seus propósitos nos modelos de linguagem, interagem com diferentes linguagens de programação e gerenciam palavras em dados estruturados. Ao examinarmos sua capacidade de documentar informações por meio de objetos e texto, os leitores terão clareza sobre quais modelos de linguagem se alinham melhor com os requisitos de seus projetos, considerando a saída e como as palavras são tokenizadas.

De sites oficiais a arquivos de configuração simples, e até mesmo em cenários em que você cria sites gratuitos, os formatos JSON e YAML são fundamentais na forma como transmitem dados por meio de palavras e tokens. No entanto, entender suas diferenças é fundamental para otimizar a saída dos modelos de linguagem e a maneira como lidamos com as informações. Ao analisar exemplos e explorar os principais aspectos, como legibilidade, modelos de linguagem e técnica, esta comparação tem como objetivo equipar você com o conhecimento necessário para fazer uma escolha informada sobre objetos de dados, palavras e tokens em vários contextos.

Otimize seu processo de negócios em Latenode - a melhor plataforma de automação para você

Entendendo os formatos de serialização de dados

O que é serialização de dados

A serialização de dados converte os dados em um formato que pode ser facilmente compartilhado ou armazenado, transformando modelos de linguagem em tokens e palavras para um processamento eficiente. Ela permite que estruturas de dados complexas sejam salvas em um formato JSON que os modelos de linguagem podem reconstruir posteriormente usando palavras.

Objetivo na computação

A serialização é vital para a troca de dados entre diferentes ambientes e modelos de programação. Ela permite a transferência tranquila de dados e modelos entre vários sistemas e plataformas.

JSON na serialização

JSON, ou JavaScript Object Notation, é uma linguagem popular de serialização de dados. Seu formato baseado em texto é legível por humanos e analisável por máquina. O JSON estrutura os dados em pares nome-valor e listas ordenadas.

A função do YAML

O YAML, que significa"YAML Ain't Markup Language", oferece uma abordagem mais amigável à serialização. Ele usa indentação para representar a hierarquia, o que o torna menos confuso do que outros formatos, como XML.

Contexto de outros formatos

Embora JSON e YAML sejam amplamente usados, outros formatos, como XML e Protobuf, também desempenham funções importantes na serialização. Cada um tem seus próprios casos de uso e vantagens, dependendo dos requisitos do sistema.

Na computação, a transformação de dados complexos em um formato armazenável e transportável é essencial para vários aplicativos. Esse processo é conhecido como serialização de dados. Ao converter informações em um formato padronizado, fica mais fácil salvar arquivos, transmitir informações por redes ou comunicar-se entre diferentes componentes de software.

JSON (JavaScript Object Notation) e YAML (YAML Ain't Markup Language) são duas das linguagens de serialização de dados mais utilizadas atualmente. Elas servem como meios pelos quais as informações estruturadas podem ser trocadas com clareza e eficiência.

A natureza leve do JSON o torna uma excelente opção para APIs da Web em que a conservação da largura de banda é fundamental. Sua simplicidade decorre de sua base na sintaxe do JavaScript, mas vai além do desenvolvimento da Web; até mesmo ambientes que não usam JavaScript frequentemente utilizam JSON devido à sua facilidade de uso e ao amplo suporte à linguagem.

Por outro lado, o YAML leva a legibilidade um passo adiante, empregando indentação de espaço em branco em vez de chaves ou colchetes encontrados em JSON ou XML. Isso resulta em arquivos de aparência mais limpa e de leitura e gravação mais intuitivas para os seres humanos, um recurso particularmente apreciado quando se trata de arquivos de configuração.

Apesar de sua popularidade, o JSON e o YAML não estão sozinhos no campo dos formatos de serialização; eles compartilham espaço com outros como XML (Extensible Markup Language) e Protobuf (Protocol Buffers). O XML já foi o padrão de fato para serviços da Web, mas teve seu uso reduzido devido à sua verbosidade em comparação com o JSON.

Características distintas de YAML e JSON

YAML e JSON são formatos populares de serialização de dados. Eles diferem em legibilidade, estrutura e casos de uso.

Vantagem de legibilidade do YAML

Os arquivos YAML priorizam a legibilidade humana. Seu design permite comentários, que podem orientar os usuários em configurações complexas. Esse recurso não existe no JSON, o que torna o YAML a opção preferida para arquivos de configuração em que explicações podem ser necessárias.

O aninhamento baseado em indentação no YAML aumenta sua clareza. Ao contrário da estrutura entre colchetes do JSON, o YAML usa espaços para indicar a hierarquia. Isso resulta em uma aparência mais limpa, reduzindo a desordem visual.

Força da simplicidade do JSON

O formato do JSON é mais simples do que o de um arquivo YAML. Ele usa chaves e colchetes para organizar os dados hierarquicamente. Embora isso possa ser menos legível em comparação com o layout do YAML, ele simplifica a análise para as máquinas.

Os arquivos JSON são universalmente reconhecidos por APIs da Web e ambientes JavaScript. O formato é nativo do JavaScript, o que garante uma integração perfeita aos aplicativos da Web. Essa onipresença faz com que ele seja a escolha ideal para o intercâmbio de dados na Internet.

Estrutura como diferencial

As diferenças estruturais entre YAML e JSON afetam significativamente seu uso. Um analisador YAML deve acomodar mais complexidade devido à sua permissão para referências abreviadas e mapeamentos complexos.

Em contrapartida, a sintaxe rígida do JSON exclui ambiguidades, mas exige mais verbosidade com aspas em torno de chaves e valores. Essa precisão garante a consistência em várias plataformas, mas pode tornar mais tediosa a escrita ou a edição manual do JSON.

O YAML é compatível com cadeias de caracteres de várias linhas sem quebras de linha explícitas dentro da própria cadeia de caracteres; esse recurso é particularmente útil quando você lida com blocos de texto longos ou documentação dentro dos próprios dados.

No entanto, a falta de suporte do JSON para comentários significa que qualquer informação adicional deve ser codificada dentro da própria estrutura de dados, o que muitas vezes leva a arquivos inchados se for necessária uma documentação extensa.

Leia outras comparações no blog de Latenode

Visão geral do formato de serialização de dados JSON

Sintaxe e estrutura JSON

JSON, que significa JavaScript Object Notation, é um formato leve de intercâmbio de dados. Ele usa texto para armazenar e transportar dados.

It's built on two structures: key-value pairs and arrays. Key-value pairs are wrapped in curly braces {}, creating an object. Arrays are ordered lists of values, enclosed in square brackets [].

Cada chave no JSON é uma cadeia de caracteres. O valor associado a uma chave pode ser uma cadeia de caracteres, um número, uma matriz ou outro objeto JSON.

Ampla utilização em APIs da Web

O JSON se tornou a espinha dorsal da maioria das APIs da Web. Sua simplicidade permite a troca eficiente de dados entre clientes e servidores.

As principais empresas de tecnologia, como Google e Facebook, usam JSON extensivamente em suas APIs. Essa adoção generalizada diz muito sobre sua confiabilidade.

Os desenvolvedores preferem o JSON por sua compatibilidade com várias linguagens de programação, não apenas com JavaScript.

Compatibilidade com JavaScript

Os ambientes JavaScript entendem nativamente o formato json. Isso torna a análise e a geração de dados JSON excepcionalmente simples no desenvolvimento da Web.

Nos navegadores, JSON.parse() converte strings em objetos JavaScript. Por outro lado, JSON.stringify() transforma objetos em strings JSON.

Essa integração perfeita solidificou a posição do json como uma opção padrão para muitos desenvolvedores que trabalham com aplicativos baseados em JavaScript.

Visão geral do formato de serialização de dados YAML

O YAML, ao contrário do JSON, enfatiza a legibilidade humana e a facilidade de uso. Ele é preferido para arquivos de configuração devido à sua sintaxe clara.

Sintaxe amigável ao ser humano

O YAML usa recuo para representar a hierarquia, tornando-o intuitivo. Essa estrutura é semelhante à forma como os seres humanos fazem anotações ou rascunhos de documentos.

A ausência de colchetes ou chaves reduz a confusão visual. Cada nova linha e recuo significam um elemento aninhado dentro da estrutura de dados.

Uso de arquivos de configuração

Os desenvolvedores geralmente escolhem o YAML para configurar aplicativos de software. Sua legibilidade é ideal para definir parâmetros que controlam o comportamento do programa.

Na computação em nuvem, os scripts YAML definem recursos e serviços. Eles são essenciais em ferramentas de automação de implantação como Docker e Kubernetes.

Aplicativo de scripts de implantação

O YAML é excelente na criação de scripts para cenários de implementação complexos. Esses scripts podem iniciar ambientes inteiros com um único comando.

A clareza do YAML facilita a revisão desses scripts. Isso ajuda as equipes a entender e manter a infraestrutura como práticas de código.

Suporte a dados complexos

O YAML lida com objetos e listas naturalmente em sua sintaxe. Com esse recurso, as configurações complexas se tornam mais simples.

Por exemplo, listas aninhadas ou dicionários são simples no formato YAML:

yaml

  • Nome: John Doe Idade: 34 filhos:
  • Nome: Jane Doe Idade: 10

Esse exemplo mostra como o formato YAML é legível para humanos, mesmo com estruturas complexas.

Diferenças de sintaxe e avaliação de usabilidade

JSON e YAML são escolhas populares para serialização de dados, mas diferem significativamente em sintaxe e usabilidade. Essas diferenças afetam a forma como os desenvolvedores interagem com cada formato, desde a gravação até o tratamento de erros.

Indentação e colchetes

A sintaxe do JSON se baseia em colchetes e chaves. Ela usa chaves {} para indicar objetos e colchetes [] para matrizes. Cada propriedade em um objeto ou valor em uma matriz é separada por uma vírgula.

O YAML emprega indentação em vez de colchetes. Ele usa novas linhas e espaços para estruturar os dados, o que pode fazer com que pareçam mais limpos do que o JSON. No entanto, essa dependência da indentação exige precisão; o espaçamento incorreto pode levar a erros.

Facilidade de uso para o desenvolvedor

A leitura de JSON é simples devido à sua estrutura clara. Os desenvolvedores familiarizados com JavaScript o consideram particularmente intuitivo porque se assemelha à maneira como os objetos são escritos na linguagem.

A falta de colchetes do YAML pode melhorar a legibilidade para alguns usuários. Seu formato é geralmente considerado mais legível, especialmente para arquivos de configuração em que as configurações são delineadas claramente por meio de indentação.

Escrever YAML pode ser mais rápido se você estiver familiarizado com sua estrutura. A ausência de colchetes significa menos caracteres a serem digitados, o que pode acelerar a codificação em determinadas circunstâncias.

Variações no tratamento de erros

A análise de JSON envolve a verificação do posicionamento correto de vírgulas, chaves e aspas. Os erros geralmente resultam de caracteres ausentes ou extras nesses elementos.

Em YAML, os erros geralmente surgem de indentação inadequada ou problemas de alinhamento. Isso pode ser menos óbvio do que a pontuação mal colocada no JSON.

As linguagens de programação lidam com a análise de forma diferente com base no formato escolhido. Os modelos de linguagem têm analisadores adaptados especificamente para as estruturas exclusivas de JSON ou YAML.

Um erro de analisador em JSON geralmente aponta diretamente para o caractere ou o número da linha que está causando o problema. Em contrapartida, um analisador YAML pode indicar uma área mais geral onde está o problema devido à sua dependência de espaços em branco.

Métricas de desempenho e apoio da comunidade

Na discussão anterior sobre "Diferenças de sintaxe e avaliação de usabilidade", exploramos como JSON e YAML diferem em sua sintaxe e aplicações práticas. Agora, vamos nos aprofundar em como eles funcionam em várias condições e na extensão do suporte da comunidade para cada formato.

Referências de desempenho

O JSON é conhecido por sua velocidade na análise de dados. Ele foi projetado para ser leve, o que o torna incrivelmente rápido ao ler ou gravar dados. Diversos benchmarks mostraram que os analisadores de JSON geralmente superam os analisadores de YAML. Isso ocorre porque a flexibilidade e os recursos adicionais do YAML podem introduzir sobrecarga durante a análise.

Por exemplo, um teste pode revelar que um analisador JSON pode processar milhares de objetos por segundo, enquanto um analisador YAML lida com um número significativamente menor no mesmo período de tempo. Os números exatos variam de acordo com os analisadores específicos usados, mas a tendência favorece consistentemente o JSON em termos de desempenho bruto.

Ferramentas voltadas para a comunidade

O YAML tem suas vantagens, principalmente quando você considera as ferramentas orientadas pela comunidade. Há bibliotecas robustas disponíveis para ambos os formatos em quase todas as linguagens de programação. Por exemplo:

  • Para JSON, o JavaScript oferece JSON.parse() e JSON.stringify(), enquanto o Python tem o módulo json.
  • Para YAML, o Python tem o PyYAML, enquanto o Ruby fornece o módulo YAML.

Essas ferramentas aprimoram a funcionalidade e facilitam a integração nos projetos. Elas demonstram manutenção ativa por membros da comunidade que contribuem regularmente para o seu desenvolvimento.

Nível de suporte do desenvolvedor

As comunidades de desenvolvedores por trás de ambos os formatos são grandes e ativas. Elas fornecem ampla documentação, fóruns, tutoriais e outros recursos para ajudar você com problemas ou dúvidas de implementação.

O JSON se beneficia do suporte universal em todas as tecnologias da Web devido à sua compatibilidade nativa com JavaScript. Quase todas as APIs da Web usam o JSON como um formato padrão para o intercâmbio de dados.

Por outro lado, o YAML costuma ter grande apoio nos círculos de gerenciamento de configuração. Sua legibilidade o torna popular entre os desenvolvedores que usam plataformas como o Docker ou o Kubernetes, onde os arquivos de configuração legíveis por humanos são preferidos.

Vantagens e desvantagens na prática

JSON e YAML são formatos populares de serialização de dados. Cada um deles tem pontos fortes e fracos exclusivos que os tornam adequados para diferentes aplicativos.

Velocidade e simplicidade do JSON

O formato JSON é valorizado por sua velocidade. A estrutura leve do JSON faz com que ele seja analisado rapidamente, o que é crucial em ambientes sensíveis ao desempenho, como as APIs da Web. Sua simplicidade também significa menos sobrecarga ao codificar ou decodificar dados, contribuindo para tempos de carregamento mais rápidos.

Os desenvolvedores apreciam o JSON por sua sintaxe direta. Com pares simples de chave-valor, é fácil de ler e escrever, mesmo para aqueles com menos experiência. Essa simplicidade ajuda a reduzir o risco de erros durante a edição manual.

Esclarecimento sobre a configuração YAML

O YAML se destaca em cenários que exigem legibilidade humana. Sua natureza detalhada é uma vantagem quando a clareza é fundamental, como nos arquivos de configuração. Você pode adicionar comentários facilmente, o que o torna mais compreensível para manutenção futura.

O formato permite que estruturas complexas sejam representadas de forma limpa. As hierarquias são claramente definidas sem chaves ou colchetes, que podem se tornar incômodos em documentos grandes. Isso resulta em menos confusão visual e em uma compreensão mais intuitiva da estrutura do documento.

Desvantagens consideradas

Apesar de suas vantagens, ambos os formatos têm possíveis desvantagens relacionadas ao tamanho do arquivo e à sobrecarga de análise.

Para JSON:

  • Arquivos grandes podem se tornar pesados devido à falta de suporte para comentários.
  • A sobrecarga de análise pode aumentar com estruturas aninhadas que complicam a sintaxe.

Para YAML:

  • Os arquivos verbais podem ser significativamente maiores do que seus equivalentes JSON.
  • A análise pode ser mais lenta devido ao aumento da complexidade de recursos como referências e suporte a vários documentos.

Aspecto JSON YAML
Velocidade e simplicidade do JSON Leve, rápido de analisar, menos sobrecarga, tempos de carregamento rápidos, sintaxe fácil de ler/escrever Nenhum
Desvantagens do JSON Arquivos grandes podem ser difíceis de manejar, sem suporte para comentários, maior sobrecarga de análise com estruturas aninhadas Nenhum
Esclarecimento sobre a configuração YAML Nenhum Alta legibilidade, representação limpa de estruturas complexas, menos confusão visual, comentários para manutenção
Desvantagens do YAML Nenhum Arquivos detalhados, maiores que JSON, análise mais lenta devido à complexidade

Contexto histórico e análise de tipos de dados

JSON e YAML são amplamente usados para serialização de dados. Suas origens e a manipulação de tipos de dados como strings, números e booleanos revelam muito sobre suas intenções de design.

Origens do JSON e do YAML

Leia outras comparações no blog de Latenode

O JSON (JavaScript Object Notation) foi introduzido no início dos anos 2000. Ele evoluiu a partir da sintaxe do JavaScript, visando à simplicidade no compartilhamento de dados pela Internet. Seu design é minimalista, com ênfase em ser facilmente analisado por máquinas.

O YAML (YAML Ain't Markup Language), por outro lado, surgiu na mesma época, mas com foco na legibilidade humana. Ela se originou de linguagens como XML e tem um conjunto de recursos mais extenso para lidar com estruturas de dados complexas em um formato legível.

Manipulação de tipos de dados

Tanto o JSON quanto o YAML gerenciam tipos de dados comuns, como strings, números e booleanos, de forma eficaz:

  • Cadeias de caracteres: Colocadas entre aspas no JSON; podem não estar entre aspas se seguirem determinadas regras no YAML.
  • Números: Representados de forma clara em ambos os formatos.
  • Booleanos: Use a representação verdadeiro/falso; o YAML também oferece suporte a variações como sim/não.

Para tipos de dados ou objetos complexos:

  • O JSON usa matrizes e objetos.
  • O YAML oferece listas, mapas e até mesmo suporte para dados binários.

A manipulação desses tipos demonstra a abordagem de cada formato: O JSON opta pela eficiência programável, enquanto o YAML prioriza a compreensão humana.

Tendências de adoção ao longo do tempo

As tendências históricas de adoção favoreceram o JSON devido à sua compatibilidade direta com as tecnologias da Web. Os desenvolvedores o adotaram rapidamente para a comunicação cliente-servidor devido à sua natureza leve.

O YAML encontrou seu nicho onde os arquivos de configuração precisavam ser frequentemente editados por humanos. Sua estrutura clara o tornou ideal para scripts de implementação, pipelines de integração contínua e sistemas de gerenciamento de configuração.

As preferências atuais geralmente dependem dos casos de uso:

  • Normalmente, as APIs da Web escolhem JSON.
  • As configurações de software se inclinam para YAML.

Essas tendências refletem como o contexto histórico moldou a função de cada formato no cenário tecnológico atual.

Comparações resumidas e debate sobre a eficiência

JSON e YAML são linguagens de serialização de dados, mas diferem significativamente em seus objetivos de design e contextos de uso. Essas diferenças têm implicações para a produtividade do desenvolvedor e para o debate em andamento sobre eficiência.

Eficiência do JSON

JSON (JavaScript Object Notation) é um formato leve de intercâmbio de dados que enfatiza a simplicidade e a velocidade. Ele usa uma sintaxe concisa que normalmente resulta em arquivos menores em comparação com o YAML. Essa compactação pode levar a uma análise mais rápida e à redução do uso de memória, o que é particularmente benéfico em aplicativos da Web em que a largura de banda e o desempenho são essenciais.

  • Análise rápida: Existem analisadores de JSON em praticamente todos os ambientes de programação, geralmente com desempenho altamente otimizado.
  • Tamanho de arquivo menor: Devido à sua estrutura menos detalhada, os arquivos JSON tendem a ser mais compactos.

Legibilidade do YAML

O YAML (YAML Ain't Markup Language), por outro lado, prioriza a legibilidade humana e a facilidade de edição. Sua sintaxe é mais expansiva, usando indentação em vez de colchetes ou chaves para indicar a estrutura. Isso a torna uma excelente opção para arquivos de configuração ou situações em que os arquivos precisam ser editados manualmente sem a introdução de erros.

  • Amigável ao ser humano: o recuo em vez da pontuação facilita a visualização.
  • Edição resistente a erros: A estrutura clara reduz a probabilidade de erros durante as edições manuais.

Impacto na produtividade do desenvolvedor

As diferenças entre a eficiência do JSON e a legibilidade do YAML podem afetar significativamente a produtividade do desenvolvedor. Por exemplo, ao trabalhar em sistemas de grande escala em que o desempenho é fundamental, os desenvolvedores podem preferir o JSON devido à sua velocidade de processamento. Por outro lado, para tarefas que envolvem alterações frequentes de configuração por seres humanos em vez de máquinas, o YAML pode ser preferido devido ao seu formato fácil de usar.

  • Projetos sensíveis ao desempenho: Os desenvolvedores preferem o JSON por suas vantagens de velocidade.
  • Tarefas de configuração pesada: A facilidade de leitura do YAML o torna ideal para configurações gerenciadas por pessoas.

Debate sobre eficiência em andamento

Nos círculos de desenvolvedores, há um debate contínuo sobre se a eficiência obtida com o uso do JSON supera os benefícios da legibilidade do YAML. Alguns argumentam que o poder da computação moderna diminui a importância do tamanho do arquivo e do tempo de análise, áreas em que o JSON se sobressai, tornando cada vez mais relevante o design centrado no ser humano do YAML.

  • Tamanho do arquivo versus capacidade de computação: O tamanho menor do arquivo ainda é tão importante?
  • Relevância do tempo de análise: Com os poderosos servidores disponíveis atualmente, alguns questionam se as diferenças de tempo de análise são significativas o suficiente para influenciar a escolha do idioma.

Conclusão

Ao longo deste discurso, JSON e YAML foram meticulosamente contrastados, destacando seus atributos exclusivos e aplicações práticas na serialização de dados. A exploração das diferenças de sintaxe, das métricas de desempenho e do suporte da comunidade proporcionou uma compreensão abrangente de suas respectivas vantagens e desvantagens. O contexto histórico e a análise dos tipos de dados enriqueceram ainda mais a discussão, permitindo uma escolha informada entre esses dois formatos importantes com base na eficiência e em casos de uso específicos.

O debate sobre JSON versus YAML acaba convergindo para a necessidade de discernimento na seleção do formato apropriado para os requisitos de representação de dados. Como os desenvolvedores e as organizações se esforçam para otimizar seus fluxos de trabalho, este estudo comparativo serve como um recurso valioso. Nesse esforço, considere como o Latenode pode ser uma parte fundamental de sua pilha de tecnologia. Com sua capacidade de se integrar a vários formatos de dados e otimizar os processos de desenvolvimento, o Latenode oferece uma plataforma versátil que pode se adaptar às suas necessidades específicas de serialização.

Os leitores são incentivados a integrar esses insights em seus processos de tomada de decisões tecnológicas e a explorar como o Latenode pode facilitar os avanços nas práticas de serialização que se alinham aos padrões em evolução do setor. Aproveite o potencial do Latenode para aprimorar seu gerenciamento de dados e fluxos de trabalho de desenvolvimento, fazendo escolhas informadas que impulsionem seus projetos no cenário do desenvolvimento moderno.

Otimize seu processo de negócios em Latenode - a melhor plataforma de automação para você

Blogs relacionados

Caso de uso

Com o apoio de