SlideShare uma empresa Scribd logo
Lato Sensu em
                                              Sistemas Orientados a Objetos




                                   Módulo 2
                           Arquitetura Model View Controller




Tuesday, August 11, 2009
Lato Sensu em Sistemas Orientados a Objetos
                           Desenvolvimento de Aplicaões Web Avançado - 2°/2009




Tuesday, August 11, 2009
Lato Sensu em Sistemas Orientados a Objetos
                                        Desenvolvimento de Aplicaões Web Avançado - 2°/2009




                 Introdução aos Padrões
                           O que faz um bom músico ser bom ?




Tuesday, August 11, 2009
Lato Sensu em Sistemas Orientados a Objetos
                                           Desenvolvimento de Aplicaões Web Avançado - 2°/2009




                 Introdução aos Padrões
                           O que faz um bom capoeirista ser bom ?




Tuesday, August 11, 2009
Lato Sensu em Sistemas Orientados a Objetos
                                            Desenvolvimento de Aplicaões Web Avançado - 2°/2009




                 Introdução aos Padrões
                           O que faz um bom dançarino ser bom ?




Tuesday, August 11, 2009
Lato Sensu em Sistemas Orientados a Objetos
                                        Desenvolvimento de Aplicaões Web Avançado - 2°/2009




                Introdução aos Padrões
                           O que faz um bom músico ser bom!




Tuesday, August 11, 2009
Lato Sensu em Sistemas Orientados a Objetos
                                          Desenvolvimento de Aplicaões Web Avançado - 2°/2009




                 Introdução aos Padrões
                           O que faz um bom capoeirista ser bom!




Tuesday, August 11, 2009
Lato Sensu em Sistemas Orientados a Objetos
                                         Desenvolvimento de Aplicaões Web Avançado - 2°/2009




                 Introdução aos Padrões
                           O que faz um bom dançarino ser bom!




Tuesday, August 11, 2009
Lato Sensu em Sistemas Orientados a Objetos
                                            Desenvolvimento de Aplicaões Web Avançado - 2°/2009




                 Introdução aos Padrões
                           O que faz um bom desenvolvedor ser bom ?




Tuesday, August 11, 2009
                                                 ?
Lato Sensu em Sistemas Orientados a Objetos
                                                  Desenvolvimento de Aplicaões Web Avançado - 2°/2009




                 Introdução aos Padrões
                 •         O que faz um bom desenvolvedor ser bom ?
                       -     Experiência

                       -     Respostas para dúvidas frequentes

                       -     Soluções para problemas recorrentes

                       -     Conhecimento de padrões (patterns)‫‏‬




Tuesday, August 11, 2009
Lato Sensu em Sistemas Orientados a Objetos
                                                         Desenvolvimento de Aplicaões Web Avançado - 2°/2009




                 Introdução aos Padrões
                    •      Patterns
                           -   Arquitetura e engenharia civil

                           -   Mecânica

                           -   Ergonomia de software

                           -   Redes de computadores

                           -   Programação
                               Arquitetura de software

                               Sistemas distribuídos

                               Banco de dados

                               Projeto de sistemas OO

                               Aplicações web
Tuesday, August 11, 2009
Lato Sensu em Sistemas Orientados a Objetos
                                                 Desenvolvimento de Aplicaões Web Avançado - 2°/2009




                 Introdução aos Padrões
                    • O que são os patterns ?
                           -   São maneiras aprovadas e recomendadas por
                               projetistas experientes de como resolver
                               determinados problemas de projeto.

                           -   São soluções de projeto que melhoram a
                               qualidade de um software, se aplicadas num
                               contexto apropriado.

                           -   Um padrão especifica como classes e objetos
                               devem se comunicar para resolver um problema
                               específico.
Tuesday, August 11, 2009
Lato Sensu em Sistemas Orientados a Objetos
                                                         Desenvolvimento de Aplicaões Web Avançado - 2°/2009




                 Introdução aos Padrões
                    • O que são os patterns ?
                           -   Gang of Four (GoF)‫‏‬
                               “Padrões de projeto são descrições de classes e objetos que são
                               customizáveis para solucionar um problema geral de design em um
                               contexto particular”

                           -   C. Alexander
                               “Cada padrão descreve um problema que ocorre recorrentemente em
                               nosso ambiente, e assim descreve o cerne da solução para aquele
                               problema, de tal maneira que você pode usar esta solução uma centena
                               de vezes sem implementá-la da mesma maneira duas vezes.”




Tuesday, August 11, 2009
Lato Sensu em Sistemas Orientados a Objetos
                                                Desenvolvimento de Aplicaões Web Avançado - 2°/2009




                 Introdução aos Padrões
                    • Vantagens
                           -   Exploram estruturas de projeto que favorecem:
                               Abstração

                               Flexibilidade

                               Modularidade

                               Elegância


                           -   Agrega conhecimento de projeto de
                               profissionais experientes.

Tuesday, August 11, 2009
Lato Sensu em Sistemas Orientados a Objetos
                                                  Desenvolvimento de Aplicaões Web Avançado - 2°/2009




                 Introdução aos Padrões
                    • Vantagens
                           -   Cria um vocabulário comum que provê maior
                               expressividade na comunicação entre uma equipe
                               de desenvolvimento

                           -   Aprende-se com o erro dos outro

                           -   Melhores práticas da POO

                           -   Melhor qualidade

                           -   Reuso de componentes de software.


Tuesday, August 11, 2009
Lato Sensu em Sistemas Orientados a Objetos
                                                          Desenvolvimento de Aplicaões Web Avançado - 2°/2009




                 Introdução aos Padrões
                    • Catálogo de patterns
                           -   Agrupamento de padrões

                           -   Documentação pré-formatada
                               Nome do padrão

                               Contexto em que deve ser aplicado

                               Problema que ele ataca

                               A solução que ele propõe

                               Conseqüências de sua utilização




Tuesday, August 11, 2009
Lato Sensu em Sistemas Orientados a Objetos
                                            Desenvolvimento de Aplicaões Web Avançado - 2°/2009




                 Introdução aos Padrões
                 • Exemplo de problema
                       -   Como mostrar uma determinada informação de
                           diversas maneiras para diversos usuários?




Tuesday, August 11, 2009
Lato Sensu em Sistemas Orientados a Objetos
                                                 Desenvolvimento de Aplicaões Web Avançado - 2°/2009




                 Introdução aos Padrões
                    • Documentação completa
                           Nome e classificação        Colaborações
                           Objetivo                   Conseqüências
                           Sinônimos                  Implementação
                           Motivação                  Código de exemplo
                           Aplicabilidade             Usos conhecidos
                           Estrutura                  Padrões relacionados
                           Participantes


Tuesday, August 11, 2009
Lato Sensu em Sistemas Orientados a Objetos
                                                 Desenvolvimento de Aplicaões Web Avançado - 2°/2009




                 Introdução aos Padrões
                    • Como escolher um padrão ?
                           -   Pesquise os problemas atacados por cada padrão

                           -   Veja se seu problema é equivalente a algum deles

                           -   Entenda como cada padrão resolve cada
                               problema

                           -   Entenda como os padrões se inter-relacionam

                           -   Analise as consequências de sua utilização

Tuesday, August 11, 2009
Lato Sensu em Sistemas Orientados a Objetos
                                                     Desenvolvimento de Aplicaões Web Avançado - 2°/2009




                 Introdução aos Padrões
                    •      Como usar um padrão ?
                           -   Leia o padrão de projeto inteiro para ter uma visão geral

                           -   Certifique-se de que entendeu bem a estrutura do padrão

                           -   Veja no código de exemplo como implementar o padrão

                           -   Escolha nomes para os participantes do padrão de acordo com
                               o contexto da aplicação

                           -   Defina as classes

                           -   Defina os nomes dos métodos de acordo com a nomenclatura
                               do contexto da aplicação

                           -   Implemente os métodos

Tuesday, August 11, 2009
Lato Sensu em Sistemas Orientados a Objetos
                                                 Desenvolvimento de Aplicaões Web Avançado - 2°/2009




                 Introdução aos Padrões
                    • Como não usar um padrão
                           -   Se existe uma maneira trivial para resolver um
                               problema e um padrão de projeto, prefira a
                               simplicidade

                           -   Só use um padrão de projeto quando
                               necessário: deve haver ganhos claros com o uso
                               do padrão

                           -   Padrões de projeto indevidamente aplicados
                               aumentam a complexidade do software sem
                               necessidade
Tuesday, August 11, 2009
Lato Sensu em Sistemas Orientados a Objetos
                                                              Desenvolvimento de Aplicaões Web Avançado - 2°/2009




                 Introdução aos Padrões
                    • O que nos interessa
                           -   Padrões de arquitetura
                               Architectural Patterns


                           -   Padrões de projeto
                               Design Patterns


                           -   Padrões da linguagem
                               Low-level Patterns (Idioms)‫‏‬



Tuesday, August 11, 2009
Lato Sensu em Sistemas Orientados a Objetos
                                                Desenvolvimento de Aplicaões Web Avançado - 2°/2009




                  Padrões de Arquitetura
                    • Altíssimo nível
                    • Definem a estrutura macro da aplicação
                    • Todas as atividades de desenvolvimento
                           devem ser conduzidas sobre esta estrutura
                    • Resolve problemas como
                           -   Divisão em módulos

                           -   Comunicação entre módulos

                           -   Expansão do sistema
Tuesday, August 11, 2009
Lato Sensu em Sistemas Orientados a Objetos
                                            Desenvolvimento de Aplicaões Web Avançado - 2°/2009




                           Padrões de Projeto
                    • Padrões de tamanho médio
                    • Menores que os padrões de arquitetura
                    • Maiores que os idiomas
                    • Não impactam na estrutura básica do
                           sistema, mas podem influenciar na
                           arquitetura interna de um subsistema


Tuesday, August 11, 2009
Lato Sensu em Sistemas Orientados a Objetos
                                                       Desenvolvimento de Aplicaões Web Avançado - 2°/2009




                                                   Idiomas
                    • Padrões de mais fina granularidade
                    • Específicos de linguagem
                    • Estilo de programação
                    • Exemplo
                           -   Para laços infinitos
                               Não use for(;;)‫‏‬

                               Não use while(1)‫‏‬

                               Use while(true) //Mesmo em C

Tuesday, August 11, 2009
Lato Sensu em Sistemas Orientados a Objetos
                                                          Desenvolvimento de Aplicaões Web Avançado - 2°/2009




                  Padrões de Arquitetura
                    • MVC
                           -   Contexto
                               Aplicações interativas com flexibilidade na interface do usuário


                           -   Problema
                               Sistema de votação. Dados são inseridos em uma planilha e o resultado
                               deve ser apresentado em diversos formatos.




Tuesday, August 11, 2009
Lato Sensu em Sistemas Orientados a Objetos
                               Desenvolvimento de Aplicaões Web Avançado - 2°/2009




                           MVC
                            problema




                           dados




Tuesday, August 11, 2009
Lato Sensu em Sistemas Orientados a Objetos
                                                Desenvolvimento de Aplicaões Web Avançado - 2°/2009



                                            MVC
                                              problema


                    •      Deve ser possível acrescentar novas formas de
                           visualização dos dados




                                            dados




Tuesday, August 11, 2009
Lato Sensu em Sistemas Orientados a Objetos
                             Desenvolvimento de Aplicaões Web Avançado - 2°/2009




                           MVC
                           problema




                           dados




Tuesday, August 11, 2009
Lato Sensu em Sistemas Orientados a Objetos
                                        Desenvolvimento de Aplicaões Web Avançado - 2°/2009




                                      MVC
                                       solução




                           Divida o sistema em 3 partes
Tuesday, August 11, 2009
Lato Sensu em Sistemas Orientados a Objetos
                                                           Desenvolvimento de Aplicaões Web Avançado - 2°/2009



                                                      MVC
                                                           solução




                   • Divide a aplicação em 3 partes:
                           -   Model
                               Dados e regras de negócio


                           -   View
                               Apresentação de informações ao usuário


                           -   Controller
                               Gerencia a entrada de dados



Tuesday, August 11, 2009
Lato Sensu em Sistemas Orientados a Objetos
                                                   Desenvolvimento de Aplicaões Web Avançado - 2°/2009



                                              MVC
                                               solução


                    • Model
                           -   Manutenção dos dados

                           -   Regras de negócio

                           -   Independente da forma em que os dados são
                               apresentados

                           -   Intependente da forma em que se dá a entrada
                               de instruções



Tuesday, August 11, 2009
Lato Sensu em Sistemas Orientados a Objetos
                                                Desenvolvimento de Aplicaões Web Avançado - 2°/2009



                                              MVC
                                               solução




                    • View
                           -   Apresenta informações ao usuário

                           -   Obtém os dados do Model

                           -   Cada View possui um Controller associado




Tuesday, August 11, 2009
Lato Sensu em Sistemas Orientados a Objetos
                                                 Desenvolvimento de Aplicaões Web Avançado - 2°/2009



                                              MVC
                                                solução




                    • Controller
                           -   Recebe as ações do usuário, geralmente na
                               forma de eventos

                           -   Traduz os eventos em solicitações de serviços
                               para o Model ou para a View




Tuesday, August 11, 2009
Lato Sensu em Sistemas Orientados a Objetos
                           Desenvolvimento de Aplicaões Web Avançado - 2°/2009




Tuesday, August 11, 2009
Lato Sensu em
                                      Sistemas Orientados a Objetos




                  Q&A      MSc. Alexandre Gomes
                           alegomes@gmail.com
Tuesday, August 11, 2009

Mais conteúdo relacionado

PDF
Desenvolvimento em Três Camadas com PHP, MVC e Ajax
PPTX
Flutter for tche linux
PPTX
Stored Procedures and Triggers
PDF
Componentização e padrões de projeto e interface em Android
PPSX
Android - Programação para dispositivos móveis (Aula 1)
PPTX
Triggers no SQL Server
PPTX
O que há de incrível sobre o Flutter
PDF
Desenvolvimento Mobile: Híbrido x Nativo
Desenvolvimento em Três Camadas com PHP, MVC e Ajax
Flutter for tche linux
Stored Procedures and Triggers
Componentização e padrões de projeto e interface em Android
Android - Programação para dispositivos móveis (Aula 1)
Triggers no SQL Server
O que há de incrível sobre o Flutter
Desenvolvimento Mobile: Híbrido x Nativo

Mais procurados (20)

PDF
PostgreSQL: Conceitos e aplicações
PPTX
Treinamento de SQL Básico
PDF
Aula 1 - Introdução a POO
PDF
Top 10 Dying Programming Languages in 2020 | Edureka
PPTX
01 Introdução à programação web
PPTX
My sql apresentação
PPTX
Porque flutter
PDF
Aula 3. frameworks front end
PPTX
React JS - Parte 1
PDF
Aula 2. frameworks js
PDF
React Native na globo.com
PDF
React – ¿Qué es React.js?
PDF
.NET Core, ASP.NET Core Course, Session 1
PDF
Fundamentos do java
PDF
Flutter do zero a publicacao
PPTX
Apache Maven
PDF
Flutter, prazer
KEY
Introdução ao Spring Framework
PDF
.NET Core, ASP.NET Core Course, Session 6
PPTX
Programação orientada a objetos
PostgreSQL: Conceitos e aplicações
Treinamento de SQL Básico
Aula 1 - Introdução a POO
Top 10 Dying Programming Languages in 2020 | Edureka
01 Introdução à programação web
My sql apresentação
Porque flutter
Aula 3. frameworks front end
React JS - Parte 1
Aula 2. frameworks js
React Native na globo.com
React – ¿Qué es React.js?
.NET Core, ASP.NET Core Course, Session 1
Fundamentos do java
Flutter do zero a publicacao
Apache Maven
Flutter, prazer
Introdução ao Spring Framework
.NET Core, ASP.NET Core Course, Session 6
Programação orientada a objetos
Anúncio

Destaque (16)

PPTX
Presentación y actividades
PDF
ROOM 1 - The journey to greater performance - MeantallyFit
PPTX
Susan 3
PDF
Unified Case Management 360
ODP
Projeto interdisciplinar 01
PPTX
Enhancing Communication & Collaboration with G Suite in Healthcare
PPTX
Live Website Analysis | AAO 672
PDF
UniStream - Acesso remoto a partir de qalquer lugar e qualquer hora
PPTX
Application brochure
PPTX
Aula 1 introdução educação_corporativa
PPTX
Hplc (basic principles, operation and maintenance)
ODP
Outubro rosa – campanha de prevenção ao cancer de mama
PPTX
Plano de comunicação
PDF
SCOPE OF HIGHER EDUCATION AND RESEARCH IN URBAN FORESTRY, LANDSCAPE& URBAN B...
PPTX
Comunicação Integrada - Aula 4
Presentación y actividades
ROOM 1 - The journey to greater performance - MeantallyFit
Susan 3
Unified Case Management 360
Projeto interdisciplinar 01
Enhancing Communication & Collaboration with G Suite in Healthcare
Live Website Analysis | AAO 672
UniStream - Acesso remoto a partir de qalquer lugar e qualquer hora
Application brochure
Aula 1 introdução educação_corporativa
Hplc (basic principles, operation and maintenance)
Outubro rosa – campanha de prevenção ao cancer de mama
Plano de comunicação
SCOPE OF HIGHER EDUCATION AND RESEARCH IN URBAN FORESTRY, LANDSCAPE& URBAN B...
Comunicação Integrada - Aula 4
Anúncio

Semelhante a MVC (20)

PDF
Qualificação MACC- Entities
PDF
ARQUITETURAS PERFEITAS E O PORQUÊ SEU PROJETO NASCEU FALIDO
PDF
Aula01 introducao
PDF
Escalando apps com React e Type Script e SOLID
PDF
Arquitetura de Software - Uma Visão Crítica
KEY
Aula1 - Modelagem de Sistemas Orientada a Objetos
DOC
Cronograma - SE - Licenciatura em Computação - UNEMAT 2010
PPTX
Solução web de scrum para o apoio a comunicação entre equipes remotas
PPTX
Criando Framework - Conceitos, Estratégias e Dicas
PPTX
Introdução a arquitetura de sistemas com .NET
PDF
Engenharia de Software Aula 1 - Intro
PPTX
29/09/2011 - 9h às 12h30 - oficina - arquitetura da informação em sistemas 2...
PPTX
Tendências e Dicas para o Desenvolvimento de Software
PPTX
Otimizando os projetos de TI com User Experience
PPTX
Eng.ª do Software - 1. Introdução
PPTX
Criando Aplicações .NET com o TheWebMind
Qualificação MACC- Entities
ARQUITETURAS PERFEITAS E O PORQUÊ SEU PROJETO NASCEU FALIDO
Aula01 introducao
Escalando apps com React e Type Script e SOLID
Arquitetura de Software - Uma Visão Crítica
Aula1 - Modelagem de Sistemas Orientada a Objetos
Cronograma - SE - Licenciatura em Computação - UNEMAT 2010
Solução web de scrum para o apoio a comunicação entre equipes remotas
Criando Framework - Conceitos, Estratégias e Dicas
Introdução a arquitetura de sistemas com .NET
Engenharia de Software Aula 1 - Intro
29/09/2011 - 9h às 12h30 - oficina - arquitetura da informação em sistemas 2...
Tendências e Dicas para o Desenvolvimento de Software
Otimizando os projetos de TI com User Experience
Eng.ª do Software - 1. Introdução
Criando Aplicações .NET com o TheWebMind

Último (11)

PPTX
Como-se-implementa-um-softwareeeeeeeeeeeeeeeeeeeeeeeee.pptx
PPTX
Eng. Software - pontos essenciais para o início
PPTX
Informática Aplicada Informática Aplicada Plano de Ensino - estudo de caso NR...
PDF
Manejo integrado de pragas na cultura do algodão
PPTX
Utilizando code blockes por andre backes
PPTX
Viasol Energia Solar -Soluções para geração e economia de energia
PDF
Termos utilizados na designação de relação entre pessoa e uma obra.pdf
PPTX
Arquitetura de computadores - Memórias Secundárias
PPTX
Mecânico de Manutenção de Equipamentos.pptx
PPTX
Gestao-de-Bugs-em-Software-Introducao.pptxxxxxxxx
PDF
eBook - GUIA DE CONSULTA RAPIDA EM ROTEADORES E SWITCHES CISCO - VOL I.pdf
Como-se-implementa-um-softwareeeeeeeeeeeeeeeeeeeeeeeee.pptx
Eng. Software - pontos essenciais para o início
Informática Aplicada Informática Aplicada Plano de Ensino - estudo de caso NR...
Manejo integrado de pragas na cultura do algodão
Utilizando code blockes por andre backes
Viasol Energia Solar -Soluções para geração e economia de energia
Termos utilizados na designação de relação entre pessoa e uma obra.pdf
Arquitetura de computadores - Memórias Secundárias
Mecânico de Manutenção de Equipamentos.pptx
Gestao-de-Bugs-em-Software-Introducao.pptxxxxxxxx
eBook - GUIA DE CONSULTA RAPIDA EM ROTEADORES E SWITCHES CISCO - VOL I.pdf

MVC

  • 1. Lato Sensu em Sistemas Orientados a Objetos Módulo 2 Arquitetura Model View Controller Tuesday, August 11, 2009
  • 2. Lato Sensu em Sistemas Orientados a Objetos Desenvolvimento de Aplicaões Web Avançado - 2°/2009 Tuesday, August 11, 2009
  • 3. Lato Sensu em Sistemas Orientados a Objetos Desenvolvimento de Aplicaões Web Avançado - 2°/2009 Introdução aos Padrões O que faz um bom músico ser bom ? Tuesday, August 11, 2009
  • 4. Lato Sensu em Sistemas Orientados a Objetos Desenvolvimento de Aplicaões Web Avançado - 2°/2009 Introdução aos Padrões O que faz um bom capoeirista ser bom ? Tuesday, August 11, 2009
  • 5. Lato Sensu em Sistemas Orientados a Objetos Desenvolvimento de Aplicaões Web Avançado - 2°/2009 Introdução aos Padrões O que faz um bom dançarino ser bom ? Tuesday, August 11, 2009
  • 6. Lato Sensu em Sistemas Orientados a Objetos Desenvolvimento de Aplicaões Web Avançado - 2°/2009 Introdução aos Padrões O que faz um bom músico ser bom! Tuesday, August 11, 2009
  • 7. Lato Sensu em Sistemas Orientados a Objetos Desenvolvimento de Aplicaões Web Avançado - 2°/2009 Introdução aos Padrões O que faz um bom capoeirista ser bom! Tuesday, August 11, 2009
  • 8. Lato Sensu em Sistemas Orientados a Objetos Desenvolvimento de Aplicaões Web Avançado - 2°/2009 Introdução aos Padrões O que faz um bom dançarino ser bom! Tuesday, August 11, 2009
  • 9. Lato Sensu em Sistemas Orientados a Objetos Desenvolvimento de Aplicaões Web Avançado - 2°/2009 Introdução aos Padrões O que faz um bom desenvolvedor ser bom ? Tuesday, August 11, 2009 ?
  • 10. Lato Sensu em Sistemas Orientados a Objetos Desenvolvimento de Aplicaões Web Avançado - 2°/2009 Introdução aos Padrões • O que faz um bom desenvolvedor ser bom ? - Experiência - Respostas para dúvidas frequentes - Soluções para problemas recorrentes - Conhecimento de padrões (patterns)‫‏‬ Tuesday, August 11, 2009
  • 11. Lato Sensu em Sistemas Orientados a Objetos Desenvolvimento de Aplicaões Web Avançado - 2°/2009 Introdução aos Padrões • Patterns - Arquitetura e engenharia civil - Mecânica - Ergonomia de software - Redes de computadores - Programação Arquitetura de software Sistemas distribuídos Banco de dados Projeto de sistemas OO Aplicações web Tuesday, August 11, 2009
  • 12. Lato Sensu em Sistemas Orientados a Objetos Desenvolvimento de Aplicaões Web Avançado - 2°/2009 Introdução aos Padrões • O que são os patterns ? - São maneiras aprovadas e recomendadas por projetistas experientes de como resolver determinados problemas de projeto. - São soluções de projeto que melhoram a qualidade de um software, se aplicadas num contexto apropriado. - Um padrão especifica como classes e objetos devem se comunicar para resolver um problema específico. Tuesday, August 11, 2009
  • 13. Lato Sensu em Sistemas Orientados a Objetos Desenvolvimento de Aplicaões Web Avançado - 2°/2009 Introdução aos Padrões • O que são os patterns ? - Gang of Four (GoF)‫‏‬ “Padrões de projeto são descrições de classes e objetos que são customizáveis para solucionar um problema geral de design em um contexto particular” - C. Alexander “Cada padrão descreve um problema que ocorre recorrentemente em nosso ambiente, e assim descreve o cerne da solução para aquele problema, de tal maneira que você pode usar esta solução uma centena de vezes sem implementá-la da mesma maneira duas vezes.” Tuesday, August 11, 2009
  • 14. Lato Sensu em Sistemas Orientados a Objetos Desenvolvimento de Aplicaões Web Avançado - 2°/2009 Introdução aos Padrões • Vantagens - Exploram estruturas de projeto que favorecem: Abstração Flexibilidade Modularidade Elegância - Agrega conhecimento de projeto de profissionais experientes. Tuesday, August 11, 2009
  • 15. Lato Sensu em Sistemas Orientados a Objetos Desenvolvimento de Aplicaões Web Avançado - 2°/2009 Introdução aos Padrões • Vantagens - Cria um vocabulário comum que provê maior expressividade na comunicação entre uma equipe de desenvolvimento - Aprende-se com o erro dos outro - Melhores práticas da POO - Melhor qualidade - Reuso de componentes de software. Tuesday, August 11, 2009
  • 16. Lato Sensu em Sistemas Orientados a Objetos Desenvolvimento de Aplicaões Web Avançado - 2°/2009 Introdução aos Padrões • Catálogo de patterns - Agrupamento de padrões - Documentação pré-formatada Nome do padrão Contexto em que deve ser aplicado Problema que ele ataca A solução que ele propõe Conseqüências de sua utilização Tuesday, August 11, 2009
  • 17. Lato Sensu em Sistemas Orientados a Objetos Desenvolvimento de Aplicaões Web Avançado - 2°/2009 Introdução aos Padrões • Exemplo de problema - Como mostrar uma determinada informação de diversas maneiras para diversos usuários? Tuesday, August 11, 2009
  • 18. Lato Sensu em Sistemas Orientados a Objetos Desenvolvimento de Aplicaões Web Avançado - 2°/2009 Introdução aos Padrões • Documentação completa Nome e classificação Colaborações Objetivo Conseqüências Sinônimos Implementação Motivação Código de exemplo Aplicabilidade Usos conhecidos Estrutura Padrões relacionados Participantes Tuesday, August 11, 2009
  • 19. Lato Sensu em Sistemas Orientados a Objetos Desenvolvimento de Aplicaões Web Avançado - 2°/2009 Introdução aos Padrões • Como escolher um padrão ? - Pesquise os problemas atacados por cada padrão - Veja se seu problema é equivalente a algum deles - Entenda como cada padrão resolve cada problema - Entenda como os padrões se inter-relacionam - Analise as consequências de sua utilização Tuesday, August 11, 2009
  • 20. Lato Sensu em Sistemas Orientados a Objetos Desenvolvimento de Aplicaões Web Avançado - 2°/2009 Introdução aos Padrões • Como usar um padrão ? - Leia o padrão de projeto inteiro para ter uma visão geral - Certifique-se de que entendeu bem a estrutura do padrão - Veja no código de exemplo como implementar o padrão - Escolha nomes para os participantes do padrão de acordo com o contexto da aplicação - Defina as classes - Defina os nomes dos métodos de acordo com a nomenclatura do contexto da aplicação - Implemente os métodos Tuesday, August 11, 2009
  • 21. Lato Sensu em Sistemas Orientados a Objetos Desenvolvimento de Aplicaões Web Avançado - 2°/2009 Introdução aos Padrões • Como não usar um padrão - Se existe uma maneira trivial para resolver um problema e um padrão de projeto, prefira a simplicidade - Só use um padrão de projeto quando necessário: deve haver ganhos claros com o uso do padrão - Padrões de projeto indevidamente aplicados aumentam a complexidade do software sem necessidade Tuesday, August 11, 2009
  • 22. Lato Sensu em Sistemas Orientados a Objetos Desenvolvimento de Aplicaões Web Avançado - 2°/2009 Introdução aos Padrões • O que nos interessa - Padrões de arquitetura Architectural Patterns - Padrões de projeto Design Patterns - Padrões da linguagem Low-level Patterns (Idioms)‫‏‬ Tuesday, August 11, 2009
  • 23. Lato Sensu em Sistemas Orientados a Objetos Desenvolvimento de Aplicaões Web Avançado - 2°/2009 Padrões de Arquitetura • Altíssimo nível • Definem a estrutura macro da aplicação • Todas as atividades de desenvolvimento devem ser conduzidas sobre esta estrutura • Resolve problemas como - Divisão em módulos - Comunicação entre módulos - Expansão do sistema Tuesday, August 11, 2009
  • 24. Lato Sensu em Sistemas Orientados a Objetos Desenvolvimento de Aplicaões Web Avançado - 2°/2009 Padrões de Projeto • Padrões de tamanho médio • Menores que os padrões de arquitetura • Maiores que os idiomas • Não impactam na estrutura básica do sistema, mas podem influenciar na arquitetura interna de um subsistema Tuesday, August 11, 2009
  • 25. Lato Sensu em Sistemas Orientados a Objetos Desenvolvimento de Aplicaões Web Avançado - 2°/2009 Idiomas • Padrões de mais fina granularidade • Específicos de linguagem • Estilo de programação • Exemplo - Para laços infinitos Não use for(;;)‫‏‬ Não use while(1)‫‏‬ Use while(true) //Mesmo em C Tuesday, August 11, 2009
  • 26. Lato Sensu em Sistemas Orientados a Objetos Desenvolvimento de Aplicaões Web Avançado - 2°/2009 Padrões de Arquitetura • MVC - Contexto Aplicações interativas com flexibilidade na interface do usuário - Problema Sistema de votação. Dados são inseridos em uma planilha e o resultado deve ser apresentado em diversos formatos. Tuesday, August 11, 2009
  • 27. Lato Sensu em Sistemas Orientados a Objetos Desenvolvimento de Aplicaões Web Avançado - 2°/2009 MVC problema dados Tuesday, August 11, 2009
  • 28. Lato Sensu em Sistemas Orientados a Objetos Desenvolvimento de Aplicaões Web Avançado - 2°/2009 MVC problema • Deve ser possível acrescentar novas formas de visualização dos dados dados Tuesday, August 11, 2009
  • 29. Lato Sensu em Sistemas Orientados a Objetos Desenvolvimento de Aplicaões Web Avançado - 2°/2009 MVC problema dados Tuesday, August 11, 2009
  • 30. Lato Sensu em Sistemas Orientados a Objetos Desenvolvimento de Aplicaões Web Avançado - 2°/2009 MVC solução Divida o sistema em 3 partes Tuesday, August 11, 2009
  • 31. Lato Sensu em Sistemas Orientados a Objetos Desenvolvimento de Aplicaões Web Avançado - 2°/2009 MVC solução • Divide a aplicação em 3 partes: - Model Dados e regras de negócio - View Apresentação de informações ao usuário - Controller Gerencia a entrada de dados Tuesday, August 11, 2009
  • 32. Lato Sensu em Sistemas Orientados a Objetos Desenvolvimento de Aplicaões Web Avançado - 2°/2009 MVC solução • Model - Manutenção dos dados - Regras de negócio - Independente da forma em que os dados são apresentados - Intependente da forma em que se dá a entrada de instruções Tuesday, August 11, 2009
  • 33. Lato Sensu em Sistemas Orientados a Objetos Desenvolvimento de Aplicaões Web Avançado - 2°/2009 MVC solução • View - Apresenta informações ao usuário - Obtém os dados do Model - Cada View possui um Controller associado Tuesday, August 11, 2009
  • 34. Lato Sensu em Sistemas Orientados a Objetos Desenvolvimento de Aplicaões Web Avançado - 2°/2009 MVC solução • Controller - Recebe as ações do usuário, geralmente na forma de eventos - Traduz os eventos em solicitações de serviços para o Model ou para a View Tuesday, August 11, 2009
  • 35. Lato Sensu em Sistemas Orientados a Objetos Desenvolvimento de Aplicaões Web Avançado - 2°/2009 Tuesday, August 11, 2009
  • 36. Lato Sensu em Sistemas Orientados a Objetos Q&A MSc. Alexandre Gomes alegomes@gmail.com Tuesday, August 11, 2009