SóProvas


ID
215380
Banca
FCC
Órgão
AL-SP
Ano
2010
Provas
Disciplina
Arquitetura de Software
Assuntos

Sobre as camadas do modelo de arquitetura MVC (Model- View-Controller) usado no desenvolvimento web é correto afirmar:

Alternativas
Comentários
  • Model-view-controller (MVC) é um padrão de arquitetura de software que visa a separar a lógica de negócio da lógica de apresentação, permitindo o desenvolvimento, teste e manutenção isolado de ambos.

    O modelo (model) é usado para definir e gerenciar o domínio da informação e notificar observadores sobre mudanças nos dados. Ele é uma representação detalhada da informação que a aplicação opera. A lógica de negócio adiciona valor semântico aos dados, e quando há mudança de estado o modelo notifica seus observadores. Por exemplo, aluno, professor e turma fazem parte do domínio de um sistema acadêmico. Operações como calcular a média final do aluno ou o índice de faltas da turma fazem parte da lógica de domínio. A forma como o dado é armazenado ou acessado não é de interesse do MVC, assume-se que é de responsabilidade do modelo.

    A visão (view) apresenta o modelo num formato adequado ao utilizador, na saída de dados, e diferentes visões podem existir para um mesmo modelo, para diferentes propósitos.

    O controlador (controller) recebe a entrada de dados e inicia a resposta ao utilizador ao invocar objetos do modelo, e por fim uma visão baseada na entrada. Ele também é responsável pela validação e filtragem da entrada de dados.

    Um caso prático é uma aplicação web em que a visão é um documento HTML (ou derivado) gerado pela aplicação. O controlador recebe uma entrada GET ou POST após um estímulo do utilizador e decide como processá-la, invocando objetos do domínio para tratar a lógica de negócio, e por fim invocando uma visão para apresentar a saída.

    fonte:
    http://pt.wikipedia.org/wiki/MVC

    http://www.macoratti.net/vbn_mvc.htm

    imagem: http://pt.wikipedia.org
    /wiki/Ficheiro:ModelViewControllerDiagram2.svg

    =================================================

     

  • Gabarito: D

    Complementando a resposta do colega, para o caso do Java (letra E da questão):
    Model - Classes Java (EntityBeans).
    View - JavaServer Page / JavaServer Faces
    Controller - Servlet

    Fonte: http://en.wikipedia.org/wiki/Model%E2%80%93View%E2%80%93Controller#Java:_Java_Platform,_Enterprise_Edition_(Java_EE)

    Portanto, os servlets são usados no Controller e não na camada Model.
  • Ainda não ficou claro pra mim por que a letra 'c' está errada.
  • Rodrigo, a letra C está errada pq a camada View pode acessar a Model sem passar pelo Controller.
    Vide figura da arquitetura MVC: http://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93controller
     
  • A resposta e o entendimento da questões pode ser achado no link da fonte:

    "A regra fundamental em uma arquitetura em três camadas é que a camada de apresentação (cliente) nunca se comunica diretamente com a camada de dados, em um modelo de três camadas toda a comunicação deve passar pela camada de intermediária.

    Conceitualmente a arquitetura de três camadas é linear

    No entanto, a arquitetura MVC é triangular: a view envia atualizações para o controlador, o controlador atualiza o modelo, e a view é atualizada diretamente do modelo."

    Fonte: http://www.macoratti.net/vbn_mvc.htm

  • A = MODEL

    B = A CAMADA CONTROLER PODE INTERAGIR DIRETAMENTE COM A VIEW

    C = VIEW PODE FALAR DIRETAMENTE COM O MODEL

    E = SERVLET É CONTROLLER

    GABARITO D