MVC


Model view controller (MVC), é um padrão de projeto (design pattern) o qual tem por finalidade separar as responsabilidades como visualização (view), modelo (model) e controle (controller) em uma arquitetura em camadas. Esta por sua vez é a chave para a independência entre os componentes e esta independência é que vai atingir os objetivos de eficiência , escalabilidade , reutilização e facilidade de manutenção.

Como dito antes, cada camada é responsável por uma parte na aplicação:

A camada de visão ou visualização:

  • É responsável unicamente por implementar as classes de interface com o usuário, ou seja, esta não possui nenhum código de processamento ou de persistência dos dados. Sua única responsabilidade é a apresentação da interface ao usuário onde se dá a interação dele com o aplicativo, não importando se esta camada é implementada usando JSF ou React (para aplicações web), swing para aplicações desktop ou console (linha de comando) como ilustrado na figura acima.
  • Isso mostra que se tivermos nossa aplicação cuja camada de visualização está implementada usando Swing, podemos simplesmente trocar para uma camada implementada em React onde esta troca é totalmente transparente para o resto da aplicação, ou seja, as outras classes não "saberão" que a troca foi efetuada justamente pelo fato do aplicativo possuir uma arquitetura em camadas, demonstrando claramente a separação de responsabilidades.

A camada de controle:

  • Como o próprio nome sugere, é a camada responsável pelo controle da aplicação. Esta é uma camada intermediária entre a lógica de negócio (camada de modelo) e a visualização. Este controle se dá no fluxo da apresentação de acordo com as ações do usuário, ou seja, os Requisitos Funcionais da aplicação.
  • Assim, se o usuário toma determinada atitude, como por exemplo de salvar informações de cadastro num banco de dados, esta camada invocará métodos de outra camada (a camada de modelo), passando os parâmetros necessários para tal. Ou se o usuário deseja consultar informações que estão no banco, novamente esta camada invocará métodos da camada de modelo para tal.
  • Resumindo, esta camada governa o fluxo da apresentação dos dados ao usuário e vice-versa.

A camada de modelo:

  • É a camada fundamental para o tratamento dos dados no tempo. É aqui que serão matidas as informações, bem como o mapeamento ou modelagem dos dados.
  • É responsável pela persistência do mesmo num dado banco de dados e afetará diretamente as seguintes questões:
    • Eficiência: Se a estrutura dos dados for projetada de forma adequada, mesmo com o crescimento do BD manterá a performance
    • Escalabilidade: Um bom projeto permite que o sistema cresça em volume da dados e de estrutura (novos campos, novas tabelas, novas queries) de forma tranquila e sem maiores complicações
    • Integridade: Se obedecidas as regras de estrutura das tabelas e relações entre elas, a perspectiva de quem os dados se mantenham íntegros e sem ambiguidade
Concluindo, o uso do design pattern MVC é muito importante para favorecer a manutenibilidade, extensibilidade e a eficiência do código, promovendo a segregação de responsabilidades em camadas.



Planejamento dos seminários

Coluna 1 Coluna 2 Coluna 3 Coluna 4
05/10/2021 Seminário 01 e 02 Design Thinking e Evolução do Software Cintia-Fabiana Altamara-Mayara
08/10/2021 Seminário 03 e 04 Modelo Espiral e Modelo Incremental Eduardo-Thassio Brenda-Gabriel
15/10/2021 Seminário 05 e 06 Integração com Hardware e Integração com Software Douglas-Mariana Isadora-PedroHenrique
19/10/2021 Seminário 07 e 08 Arquitetura de 4 Camadas e Microsserviços Gabriella-Ana Lívia Francis-Valéria
22/10/2021 Seminário 09 e 10 Deploy na nuvem e NoSQL Murilo-Nicholas Alexandre-Otávio



  • Sem grupo
    • Sarah
    • Larissa



  • Evolução do Software
    • Aluno 1: Altamara Rodovalho
    • Aluno 2: Mayara Freitas Oliveira


  • Design Thinking
    • Aluno 3: Cintia Prado
    • Aluno 4: Fabiana Paula


  • Modelo Espiral
    • Aluno 5: Eduardo Pequi
    • Aluno 6: Thassio Zaruz


  • Modelo Incremental
    • Aluno 7: Brenda Mendonça
    • Aluno 8: Gabriel Ardana


  • Integração com Hardware
    • Aluno 9: Douglas
    • Aluno 10: Mariana


  • Integração com Software
    • Aluno 11: Isadora
    • Aluno 12: PedroHenrique


  • Arquitetura de 4 Camadas
    • Aluno 13:
    • Aluno 14:


  • Microsserviços
    • Aluno 15: Francismeire
    • Aluno 16: Valéria


  • Deploy na nuvem
    • Aluno 17: Murilo
    • Aluno 18: Nicholas


  • NoSQL
    • Aluno 19: Alexandre
    • Aluno 20: Otávio