Pular para o conteúdo principal

Questão de Arquitetura de Software — Software — IF-MT 2023

Arquitetura de SoftwareSoftware
Código
qq952011
Banca
IF-MT
Órgão
IF-MT
Ano
2023
Nível
Superior
Cargo
Analista de Tecnologia da Informação
Avalie as seguintes sentenças sobre o framework Django:I. O termo “project" descreve uma aplicação web Django. O pacote de projeto Python é definido primariamente por um modelo de usuário, com declarações específicas utilizadas para a criação e manutenção do banco de dados.II. A camada de modelos é utilizada para descrever as funcionalidades do modelo de negócio do usuário com o objetivo de otimizar o desempenho da aplicação gerada e a integridade referencial do banco de dados utilizado.III. O comando makemigrations é utilizado para realizar a migração do software desenvolvido para a versão mais recente, de acordo com o suporte do sistema operacional utilizado no desenvolvimento.De acordo com documentação oficial do Django, é CORRETO afirmar que:
  1. AApenas I está correta.
  2. BApenas II está correta.
  3. CApenas III está correta.
  4. DTodas as sentenças estão corretas.
  5. ENenhuma sentença está correta.
Revelar gabarito e comentário

GabaritoE — Nenhuma sentença está correta.

Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.

Framework Django – Sentenças sobre projeto, modelos e migrations

Gabarito: letra E — nenhuma das três sentenças está correta conforme a documentação oficial do Django. A banca testa o conhecimento básico sobre a estrutura de projetos, a função da camada de modelos e o comando makemigrations, e todas as afirmativas contêm erros conceituais ou factuais.

A questão exige familiaridade com os conceitos fundamentais do Django: o que é um projeto (project) versus uma aplicação (app), o papel dos modelos (models) e o ciclo de migrações (makemigrations/migrate). Vamos analisar cada item.

Item

Afirmação sobre Django

Correto?

Motivo da incorreção

I

“project” descreve uma aplicação web; pacote definido primariamente por modelo de usuário

Projeto é contêiner de apps; modelo de usuário fica em app específica, não no escopo primário do projeto

II

Camada de modelos descreve funcionalidades do negócio para otimizar desempenho e integridade referencial

Modelos definem estrutura de dados (tabelas/relacionamentos), não funcionalidades; otimização de desempenho não é objetivo primário

III

Comando makemigrations realiza migração para versão mais recente conforme suporte do SO

makemigrations cria arquivos de migração; migrate aplica ao banco; não há relação com versão do SO

Item I — ❌ Incorreto

A sentença afirma que o termo "project" descreve uma aplicação web Django e que o pacote de projeto é definido primariamente por um modelo de usuário. Isso está errado por dois motivos:

  • No Django, um project é um conjunto de configurações e aplicações (apps) para um site. Uma única aplicação web é geralmente um app, não o projeto. O projeto contém apps, mas não é descrito como "aplicação web" — ele é o contêiner.

  • O pacote do projeto não é definido "primariamente por um modelo de usuário". O modelo de usuário (User) é definido em uma aplicação específica (geralmente django.contrib.auth ou em um app customizado). O projeto pode nem ter um modelo de usuário se usar o padrão. Além disso, as "declarações específicas para criação e manutenção do banco de dados" são os modelos (classes que herdam de models.Model), mas elas ficam nos apps, não no escopo primário do projeto.

Portanto, a afirmação confunde projeto com aplicação e atribui ao projeto uma responsabilidade que é das apps e dos modelos.

Item II — ❌ Incorreto

A sentença diz: "A camada de modelos é utilizada para descrever as funcionalidades do modelo de negócio do usuário com o objetivo de otimizar o desempenho da aplicação gerada e a integridade referencial do banco de dados utilizado." Erro principal: a camada de modelos no Django define a estrutura dos dados (tabelas, campos, relacionamentos) e fornece uma abstração ORM. Ela não tem como objetivo primário "otimizar o desempenho" — isso é uma consequência indireta, mas não a finalidade. A integridade referencial é garantida pelo banco de dados, não pelos modelos em si (embora os relacionamentos ajudem). A frase "funcionalidades do modelo de negócio do usuário" é vaga e enganosa; modelos representam entidades de negócio, não funcionalidades. A principal função dos modelos é mapear objetos para o banco de dados, permitindo consultas e persistência. Otimização de desempenho é papel de índices, queries eficientes e cache, não dos modelos como camada.

Item III — ❌ Incorreto

A sentença: "O comando makemigrations é utilizado para realizar a migração do software desenvolvido para a versão mais recente, de acordo com o suporte do sistema operacional utilizado no desenvolvimento." Dois erros graves:

  • makemigrations cria novos arquivos de migração com base nas alterações detectadas nos modelos, mas não as aplica ao banco de dados. Quem aplica as migrações é o comando migrate. Portanto, dizer que "realizar a migração" é função do makemigrations está incorreto.

  • A menção "de acordo com o suporte do sistema operacional utilizado no desenvolvimento" é absurda: o comando makemigrations é independente de sistema operacional. Ele gera migrações que são portáveis entre qualquer SO suportado pelo Python/Django.

Concluindo, todas as três sentenças contêm imprecisões ou erros conceituais, portanto nenhuma está correta.

NÃO CAIA NESSA!

Para acertar questões sobre Django, foque nos conceitos fundamentais: distinção entre projeto e app, função da camada de models (definição de esquema de dados, ORM) e o fluxo de migrações (makemigrations cria, migrate aplica). Memorize esses papéis – a banca costuma inverter as responsabilidades.

Gabarito: letra E — nenhuma sentença está correta.

Link permanente: /questoes/qq952011