Projeto com reuso MVC ModelViewController Maria Alice G

  • Slides: 14
Download presentation
Projeto com reuso – MVC – Model-View-Controller Maria Alice G. V. Ferreira 2012 “O

Projeto com reuso – MVC – Model-View-Controller Maria Alice G. V. Ferreira 2012 “O milagre mais comum da Engenharia de Software é a transição da Análise para o Projeto e do Projeto para o Código”. Richard Due apud Pressman (2006)

MVC - contexto n Usada em aplicações interativas com uma interface Humano-Computador flexível. Maria

MVC - contexto n Usada em aplicações interativas com uma interface Humano-Computador flexível. Maria Alice G. Varella Ferreira, 2012 2/30

MVC - intenção n n n MVC divide uma aplicação interativa em três componentes:

MVC - intenção n n n MVC divide uma aplicação interativa em três componentes: O Modelo (M) contém toda a funcionalidade e dados da aplicação. Views (V) – a Visualização – apresenta informação para o usuário. Controllers (C) - controladores – manipulam a entrada. V e C, juntos correspondem à interface de usuário. Um mecanismo de propagação de mudanças assegura a consistência entre interface e modelo. Maria Alice G. Varella Ferreira, 2010 3/30

MVC - problema n As interfaces de usuário são particularmente propensas a mudar de

MVC - problema n As interfaces de usuário são particularmente propensas a mudar de requisitos. Quando a funcionalidade de um aplicativo necessita ser estendida, deve-se modificar os menus para acessar essas novas funções. Um cliente pode solicitar uma adaptação específica de interface de usuário, ou um sistema pode precisar ser transportado para outra plataforma com um diferente "look and feel" padrão. Mesmo a atualização para uma nova versão do sistema de janelas pode implicar alterações no código. A plataforma da interface de usuário de sistemas de longa duração representa, portanto, um alvo móvel. Maria Alice G. Varella Ferreira, 2010 4/30

MVC - problema n n Diferentes usuários colocam exigências contraditórias sobre a interface do

MVC - problema n n Diferentes usuários colocam exigências contraditórias sobre a interface do usuário. Uma datilógrafa digita as informações em formulários através do teclado. Um gerente quer usar o mesmo sistema, descrito por ícones e clicando em botões. Então, existe mais de uma interface de entrada. Conseqüentemente, o suporte para vários paradigmas de interface de usuário deve ser facilmente incorporado. A construção de um sistema com a flexibilidade necessária é cara e sujeita a erros se a interface de usuário estiver totalmente interligada com o núcleo funcional. Maria Alice G. Varella Ferreira, 2010 5/30

MVC - problema n Isto pode resultar na necessidade de desenvolver e manter vários

MVC - problema n Isto pode resultar na necessidade de desenvolver e manter vários sistemas de software diferentes, um para cada interface de utilizador. As alterações necessárias poderiam se propagar através de vários módulos. Maria Alice G. Varella Ferreira, 2010 6/30

MVC - Forças As seguintes forças influenciam a solução: n A mesma informação é

MVC - Forças As seguintes forças influenciam a solução: n A mesma informação é apresentada de forma diferente em diferentes janelas, por exemplo, em um gráfico de barras ou pizza. n A exibição eo comportamento do aplicativo deve refletir imediatamente as alterações. n Alterações na interface do usuário devem ser fácil, e até mesmo possível em tempo de execução. n Permitir padrões de 'look and feel' diferentes não deve afectar o código no núcleo da aplicação. Maria Alice G. Varella Ferreira, 2010 7/30

MVC - solução n n n O componente de modelo encapsula os dados básicos

MVC - solução n n n O componente de modelo encapsula os dados básicos e funcionalidade. O modelo é independente das representações de saída específicas ou da entrada de dados. Os componentes de exibição exibem informações para o usuário. Uma “vista” (visão) obtém os dados do modelo. Podem haver múltiplas visões do modelo. Cada visão tem um componente controlador associado. Controladores de recepção de dados de entrada, lidam geralmente com eventos que codificam o movimento do mouse, a ativação de botões do mouse, ou entrada de teclado. Maria Alice G. Varella Ferreira, 2010 8/30

MVC - solução n n Os eventos são traduzidos em requisições de serviço ao

MVC - solução n n Os eventos são traduzidos em requisições de serviço ao modelo ou à vista. O utilizador interage com o sistema apenas através de controladores. A separação dos componentes do modelo e de vista permite múltiplas visões do mesmo modelo. Se o usuário alterar o modelo através do controlador de um ponto de vista, todos os outros pontos de vista, dependentes desses dados devem refletir as alterações. O modelo, portanto, notifica todos os pontos de vista sempre que seus dados mudam. Os pontos de vista, por sua vez recuperam dados a partir dos novos dados do modelo e atualizam as informações exibidas. Maria Alice G. Varella Ferreira, 2010 9/30

MVC - Estrutura Maria Alice G. Varella Ferreira, 2010 10/30

MVC - Estrutura Maria Alice G. Varella Ferreira, 2010 10/30

MVC - Exemplo n n n Considere-se um sistema de informação simples para as

MVC - Exemplo n n n Considere-se um sistema de informação simples para as eleições políticas com representação proporcional. Isto oferece uma planilha para entrar dados e vários tipos de tabelas e gráficos para apresentar os resultados. Os usuários podem interagir com o sistema através de uma interface gráfica. Todos os vídeos de informação devem refletir alterações nos dados de voto imediatamente. Maria Alice G. Varella Ferreira, 2010 11/30

MVC- Exemplo n Deve ser possível integrar novas formas de apresentação de dados, tais

MVC- Exemplo n Deve ser possível integrar novas formas de apresentação de dados, tais como a atribuição de parlamentares a partidos políticos, sem grande impacto no sistema. O sistema também deve ser portátil para plataformas com diferentes 'look and feel' padrões, como estações de trabalho que rodam Motif o PCs em plataformas Windows. Maria Alice G. Varella Ferreira, 2010 12/30

MVC - Exemplo Maria Alice G. Varella Ferreira, 2010 13/30

MVC - Exemplo Maria Alice G. Varella Ferreira, 2010 13/30

Referências bibliográficas n n n Pressman, R. Engenharia de Software. Mc. Graw-Hill, 2002. Bezerra,

Referências bibliográficas n n n Pressman, R. Engenharia de Software. Mc. Graw-Hill, 2002. Bezerra, E. Princípios de Análise e Projeto de Sistemas com UML. Rio de Janeiro: Elsevier, 2007. Buschmann, F. et al. Pattern-Oriented Software Architecture. V. 1. Wiley. 2001. Maria Alice G. Varella Ferreira, 2010 14/30