MVC

Engenharia de Software II

Geyson Inácio de Souza Júnior

Hernani De Barros Vieira Júnior

Izabela Caldeira Borges

Rafael Câmara Magalhães

Thais Moraes Murici

O que é o MVC ?

Model
View
Controller

O padrão            foi inventado por                                              
para a computação pessoal, enquanto ele participou como cientista convidado no grupo de desenvolvimento da linguagem                            , no                            
                                                                             .

 

Contudo, foi adaptada posteriormente como uma arquitetura para aplicações web, sendo utilizada hoje em conjunto com grandes linguagens e frameworks.

MVC

Trygve Reenskaug

​Smalltalk

                                       Xerox Palo
Alto Research Center

Inventado bem antes do primeiro browser.

 

Implementado pela primeira vez como parte da biblioteca de Smalltalk-80.

 

Originalmente chamado de “Thing Model View Editor”, mas renomeado para “Model View Controller”.

                   Representa conhecimento. Pode ser um objeto único ou uma estrutura de objetos.

 

                 Representação visual de um modelo. Originalmente, iria destacar alguns atributos em prol de outros, atuando como um “filtro de apresentação”.

 

                                  Ponte entre o usuário e o sistema. Coordena como as views serão exibidas e recebe informações e comandos do usuário, traduzindo-as para o sistema.

Model:

Views:

Controller:

Conceito MVC original

Por que MVC??

Porque é um verdadeiro padrão de projeto
(                                        ) e torna fácil a manutenção da sua aplicação, com pacotes modulares de rápido desenvolvimento.

 

Elaborar tarefas divididas entre models, views e controllers faz com que sua aplicação fique leve e independente. Novas funcionalidades são facilmente adicionadas e pode-se dar nova cara nas características antigas num piscar de olhos.

Design Pattern

Por que MVC??

O design modular e separado também permite aos desenvolvedores e designers trabalharem simultaneamente, incluindo a habilidade de se construir rapidamente um protótipo.

 

A separação também permite que os desenvolvedores alterem uma parte da aplicação sem afetar outras.

Metas do MVC


Por exemplo: desenvolvimento back-end sem necessidade do UI pronto e implementação e design do front-end sem necessidade da estrutura de dados pronta.

 

 

A mesma view (ou similar) para um aplicativo pode ser refatorada para outro aplicativo com dados diferentes, porque a view é simplesmente o modo como os dados estão sendo exibidos para o usuário.

Desenvolvimento simultâneo

Reuso de código

Conceito MVC para web

Vantagens

  • Desenvolvimento simultâneo - Múltiplos desenvolvedores podem trabalhar simultaneamente no modelo, no controlador e nas visualizações.
  • Facilidade de modificação - Por causa da separação de responsabilidades, o desenvolvimento ou modificação futura é mais fácil
  • Várias visualizações para um modelo - Modelos podem ter várias visualizações

Vantagens

  • Alta coesão - MVC permite o agrupamento lógico de ações relacionadas em um controlador em conjunto. As visualizações para um modelo específico também são agrupadas.
  • Baixo acoplamento - A própria natureza da estrutura MVC é tal que existe baixo acoplamento entre modelos, visualizações ou controladores
  • Redução da complexidade do código, facilidade de manutenção e de documentação
  • Maior escalabilidade

Desvantagens

  • Navegabilidade do código - A navegação do framework pode ser complexa porque introduz novas camadas de abstração e exige que os usuários se adaptem aos critérios de decomposição do MVC.
  • Consistência multi-artefato - A descomposição de um recurso em três artefatos causa dispersão. Assim, exigindo que os desenvolvedores mantenham a consistência de múltiplas representações ao mesmo tempo.

Desvantagens

  • Curva de aprendizagem pronunciada - O conhecimento sobre múltiplas tecnologias torna-se a norma. Os desenvolvedores que usam MVC precisam ser especializados em várias tecnologias.
  • Em sistemas de baixa complexidade, o MVC pode criar uma complexidade desnecessária
  • Requer mais tempo para modelagem

Dúvidas???

Contato

GEYSON INÁCIO DE SOUZA JÚNIOR

geyson.junior@sga.pucminas.br

HERNANI DE BARROS VIEIRA JUNIOR

​​hernani.vieira@sga.pucminas.br

IZABELA CALDEIRA BORGES

​​izabela.borges@sga.pucminas.br

RAFAEL CÂMARA MAGALHÃES

​​rcmagalhaes@sga.pucminas.br

THAIS MORAES MURICI

​​thais.murici@sga.pucminas.br

MVC Design Pattern

By Izabela Borges

MVC Design Pattern

This is a presentation on the MVC Design Pattern.

  • 444