Este documento descreve uma proposta de arquitetura de desenvolvimento web baseada em PHP utilizando padrões de projeto. O objetivo é propor uma arquitetura que forneça maior estrutura organizacional, padronização de programação, facilidade de manutenção e menos repetição de código. O documento discute conceitos como arquiteturas de software, padrões de projeto como Singleton, Factory e MVC e as tecnologias envolvidas como PHP, Apache, HTML e MySQL.
Caderno de Orientação a Objetos - Secretaria de Educação
Banca: Proposta de Arquitetura de Desenvolvimento Web Baseada em PHP Utilizando Design Patterns. Um Estudo de Caso
1. Trabalho de
Curso -
CESUFOZ -
2009
Fernando
Geraldo
Mantoan
Proposta de Arquitetura de Desenvolvimento
Objetivo Geral
Web Baseada em PHP Utilizando Design
Referencial
Te´rico
o
Patterns. Um Estudo de Caso
Arquiteturas de
Software
Design Patterns
PHP Fernando Geraldo Mantoan
Descri¸˜o do
ca Orientador: Prof. Gildomiro Bairros
Ambiente
Experimental
Tecnologias CESUFOZ - Centro de Ensino Superior de Foz do Igua¸u
c
Padr˜es
o
Estrutura F´ısica
Aplicativos
7 de dezembro de 2009
Arquitetura
Proposta
Implementa¸˜o
ca
Estudo de Caso
Demonstra¸˜o
ca
2. Sum´rio
a
Trabalho de 1 Objetivo Geral
Curso -
CESUFOZ -
2009
2 Referencial Te´rico
o
Fernando Arquiteturas de Software
Geraldo
Mantoan Design Patterns
PHP
Objetivo Geral
Referencial
3 Descri¸˜o do Ambiente Experimental
ca
Te´rico
o
Arquiteturas de
Tecnologias
Software
Design Patterns
Padr˜es
o
PHP
Estrutura F´ ısica
Descri¸˜o do
ca
Ambiente Aplicativos
Experimental
Tecnologias 4 Arquitetura Proposta
Padr˜es
o
Estrutura F´
Aplicativos
ısica
5 Implementa¸˜o
ca
Arquitetura Estudo de Caso
Proposta
Demonstra¸˜oca
Implementa¸˜o
ca
Estudo de Caso 6 Considera¸˜es Finais e Trabalhos Futuros
co
Demonstra¸˜o
ca
3. Objetivo Geral
Trabalho de
Curso -
CESUFOZ -
2009
Fernando
Geraldo
Mantoan
Objetivo Geral
Objetivo Geral
Referencial
Te´rico
o
Propor uma arquitetura de desenvolvimento de aplica¸˜es em
co
Arquiteturas de
Software
PHP contendo design patterns que forne¸a uma maior estrutura
c
Design Patterns
PHP
organizacional, padroniza¸˜o de programa¸˜o, facilidade de
ca ca
Descri¸˜o do
ca manuten¸˜o, menos repeti¸˜o de c´digo e que evite bad smell.
ca ca o
Ambiente
Experimental
Tecnologias
Padr˜es
o
Estrutura F´ısica
Aplicativos
Arquitetura
Proposta
Implementa¸˜o
ca
Estudo de Caso
Demonstra¸˜o
ca
4. Sum´rio
a
Trabalho de 1 Objetivo Geral
Curso -
CESUFOZ -
2009
2 Referencial Te´rico
o
Fernando Arquiteturas de Software
Geraldo
Mantoan Design Patterns
PHP
Objetivo Geral
Referencial
3 Descri¸˜o do Ambiente Experimental
ca
Te´rico
o
Arquiteturas de
Tecnologias
Software
Design Patterns
Padr˜es
o
PHP
Estrutura F´ ısica
Descri¸˜o do
ca
Ambiente Aplicativos
Experimental
Tecnologias 4 Arquitetura Proposta
Padr˜es
o
Estrutura F´
Aplicativos
ısica
5 Implementa¸˜o
ca
Arquitetura Estudo de Caso
Proposta
Demonstra¸˜oca
Implementa¸˜o
ca
Estudo de Caso 6 Considera¸˜es Finais e Trabalhos Futuros
co
Demonstra¸˜o
ca
5. Arquiteturas de Software
Trabalho de
Curso -
CESUFOZ -
2009
Fernando
Geraldo
Mantoan
Arquiteturas de Software
Objetivo Geral
Referencial Abstra¸˜o de detalhes;
ca
Te´rico
o
Arquiteturas de
Software An´lise de efetividade do projeto;
a
Design Patterns
PHP Importˆncia na: Comunica¸˜o, Decis˜es iniciais e
a ca o
Descri¸˜o do
ca
Ambiente
Abstra¸˜o.
ca
Experimental
Tecnologias
Padr˜es
o
Estrutura F´ısica
Aplicativos
Arquitetura
Proposta
Implementa¸˜o
ca
Estudo de Caso
Demonstra¸˜o
ca
6. Sum´rio
a
Trabalho de 1 Objetivo Geral
Curso -
CESUFOZ -
2009
2 Referencial Te´rico
o
Fernando Arquiteturas de Software
Geraldo
Mantoan Design Patterns
PHP
Objetivo Geral
Referencial
3 Descri¸˜o do Ambiente Experimental
ca
Te´rico
o
Arquiteturas de
Tecnologias
Software
Design Patterns
Padr˜es
o
PHP
Estrutura F´ ısica
Descri¸˜o do
ca
Ambiente Aplicativos
Experimental
Tecnologias 4 Arquitetura Proposta
Padr˜es
o
Estrutura F´
Aplicativos
ısica
5 Implementa¸˜o
ca
Arquitetura Estudo de Caso
Proposta
Demonstra¸˜oca
Implementa¸˜o
ca
Estudo de Caso 6 Considera¸˜es Finais e Trabalhos Futuros
co
Demonstra¸˜o
ca
7. Design Patterns
Defini¸˜o
ca
Trabalho de
Curso -
CESUFOZ -
2009
Fernando
Geraldo
Mantoan
Defini¸˜o de Design Patterns
ca
Objetivo Geral
Referencial Problema, solu¸˜o e reutiliza¸˜o;
ca ca
Te´rico
o
Arquiteturas de
Software
Classes e instˆncias;
a
Design Patterns
PHP Problemas distintos;
Descri¸˜o do
ca
Ambiente Documenta¸˜o e manuten¸˜o.
ca ca
Experimental
Tecnologias
Padr˜es
o
Estrutura F´ısica
Aplicativos
Arquitetura
Proposta
Implementa¸˜o
ca
Estudo de Caso
Demonstra¸˜o
ca
8. Design Patterns
Lista dos Padr˜es
o
Trabalho de
Curso -
CESUFOZ -
2009
Fernando
Geraldo
Mantoan
Objetivo Geral
Referencial
Te´rico
o
Arquiteturas de
Software
Design Patterns
PHP
Descri¸˜o do
ca
Ambiente
Experimental
Tecnologias
Padr˜es
o
Estrutura F´ısica
Aplicativos
Arquitetura
Proposta
Implementa¸˜o
ca
Estudo de Caso Figura: Padr˜es de Projeto e seus Relacionamentos.
o
Demonstra¸˜o
ca
9. Sum´rio
a
Trabalho de 1 Objetivo Geral
Curso -
CESUFOZ -
2009
2 Referencial Te´rico
o
Fernando Arquiteturas de Software
Geraldo
Mantoan Design Patterns
PHP
Objetivo Geral
Referencial
3 Descri¸˜o do Ambiente Experimental
ca
Te´rico
o
Arquiteturas de
Tecnologias
Software
Design Patterns
Padr˜es
o
PHP
Estrutura F´ ısica
Descri¸˜o do
ca
Ambiente Aplicativos
Experimental
Tecnologias 4 Arquitetura Proposta
Padr˜es
o
Estrutura F´
Aplicativos
ısica
5 Implementa¸˜o
ca
Arquitetura Estudo de Caso
Proposta
Demonstra¸˜oca
Implementa¸˜o
ca
Estudo de Caso 6 Considera¸˜es Finais e Trabalhos Futuros
co
Demonstra¸˜o
ca
10. PHP
PHP
Trabalho de
Curso -
CESUFOZ -
2009
Fernando
Geraldo
Mantoan PHP
Objetivo Geral
Rasmus Lerdorf (1994);
Referencial
Te´rico
o
Arquiteturas de
Andi Gutmans e Zeev Suraski (1998);
Software
Design Patterns Hypertext Preprocessor ;
PHP
Descri¸˜o do
ca Vers˜o 5 (OO, Zend Engine 2, Webservices, Extensible
a
Ambiente
Experimental Markup Language).
Tecnologias
Padr˜es
o
Estrutura F´ısica
Aplicativos
Arquitetura
Proposta
Implementa¸˜o
ca
Estudo de Caso
Demonstra¸˜o
ca
11. PHP
Principais Frameworks PHP
Trabalho de
Curso -
CESUFOZ -
2009
Fernando
Geraldo Frameworks
Mantoan
Objetivo Geral Aplicativo;
Referencial
Te´rico
o
Ferramentas e subsistemas;
Arquiteturas de
Software Servi¸os necess´rios para sistemas;
c a
Design Patterns
PHP
Don’t Repeat Yourself ;
Descri¸˜o do
ca
Ambiente
Experimental
Alguns Frameworks para PHP: Zend Framework,
Tecnologias CakePHP e Code Igniter.
Padr˜es
o
Estrutura F´ısica
Aplicativos
Arquitetura
Proposta
Implementa¸˜o
ca
Estudo de Caso
Demonstra¸˜o
ca
12. Sum´rio
a
Trabalho de 1 Objetivo Geral
Curso -
CESUFOZ -
2009
2 Referencial Te´rico
o
Fernando Arquiteturas de Software
Geraldo
Mantoan Design Patterns
PHP
Objetivo Geral
Referencial
3 Descri¸˜o do Ambiente Experimental
ca
Te´rico
o
Arquiteturas de
Tecnologias
Software
Design Patterns
Padr˜es
o
PHP
Estrutura F´ ısica
Descri¸˜o do
ca
Ambiente Aplicativos
Experimental
Tecnologias 4 Arquitetura Proposta
Padr˜es
o
Estrutura F´
Aplicativos
ısica
5 Implementa¸˜o
ca
Arquitetura Estudo de Caso
Proposta
Demonstra¸˜oca
Implementa¸˜o
ca
Estudo de Caso 6 Considera¸˜es Finais e Trabalhos Futuros
co
Demonstra¸˜o
ca
13. Descri¸˜o do Ambiente Experimental
ca
Tecnologias Envolvidas
Trabalho de
Curso -
CESUFOZ -
2009
Fernando
Geraldo
Mantoan Tecnologias Envolvidas
Objetivo Geral
UML;
Referencial
Te´rico
o
Arquiteturas de
PHP;
Software
Design Patterns Apache HTTP;
PHP
Descri¸˜o do
ca HTML;
Ambiente
Experimental MySQL.
Tecnologias
Padr˜es
o
Estrutura F´ısica
Aplicativos
Arquitetura
Proposta
Implementa¸˜o
ca
Estudo de Caso
Demonstra¸˜o
ca
14. Descri¸˜o do Ambiente Experimental
ca
Padr˜es Envolvidos
o
Trabalho de
Curso -
CESUFOZ -
2009
Fernando Padr˜es Envolvidos
o
Geraldo
Mantoan
Programa¸˜o Orientada a Objetos;
ca
Objetivo Geral
Design Patterns:
Referencial
Te´rico
o Singleton;
Arquiteturas de
Software Factory ;
Design Patterns
PHP Facade;
Descri¸˜o do
ca Observer ;
Ambiente
Experimental Data Mapper ;
Tecnologias Table Data Gateway ;
Padr˜es
o
Estrutura F´ısica Model-View-Controller ;
Aplicativos
Arquitetura
Proposta
Implementa¸˜o
ca
Estudo de Caso
Demonstra¸˜o
ca
15. Descri¸˜o do Ambiente Experimental
ca
Estrutura F´
ısica
Trabalho de
Curso -
CESUFOZ -
2009
Servidor
Fernando
Geraldo
Mantoan CPU Sempron 3800+;
Objetivo Geral 512 MB de mem´ria DDR 400MHz;
o
Referencial
Te´rico
o HD de 80GB PATA.
Arquiteturas de
Software
Design Patterns
PHP Cliente
Descri¸˜o do
ca
Ambiente
Experimental CPU Pentium Dual Core T2130 1.86GHz;
Tecnologias
Padr˜es
o
Estrutura F´ısica
2GB de mem´ria DDR2 667MHz;
o
Aplicativos
HD de 160GB Sata.
Arquitetura
Proposta
Implementa¸˜o
ca
Estudo de Caso
Demonstra¸˜o
ca
16. Descri¸˜o do Ambiente Experimental
ca
Estrutura F´
ısica
Trabalho de
Curso -
CESUFOZ -
2009
Fernando
Geraldo
Mantoan
Estrutura L´gica
o
Objetivo Geral
Referencial
Te´rico
o
SO GNU/Linux Ubuntu 9.10 Karmic Koala,
Arquiteturas de
Software
2.6.31-14-generic;
Design Patterns
PHP Pacotes: apache2 2.2.12, php5 5.2.10, pdo-mysql 5.1.37,
Descri¸˜o do
ca
Ambiente
mysql-server-5.1 5.1.37.
Experimental
Tecnologias
Padr˜es
o
Estrutura F´ısica
Aplicativos
Arquitetura
Proposta
Implementa¸˜o
ca
Estudo de Caso
Demonstra¸˜o
ca
17. Descri¸˜o do Ambiente Experimental
ca
Frameworks
Trabalho de
Curso -
CESUFOZ -
2009
Fernando
Geraldo
Mantoan
Objetivo Geral
Frameworks
Referencial
Te´rico
o
Arquiteturas de Zend Framework - Simplicidade, Produtividade, Web 2.0,
Software
Design Patterns C´digo bem testado, Baixo acoplamento dos componentes.
o
PHP
Descri¸˜o do
ca
Ambiente
Experimental
Tecnologias
Padr˜es
o
Estrutura F´ısica
Aplicativos
Arquitetura
Proposta
Implementa¸˜o
ca
Estudo de Caso
Demonstra¸˜o
ca
18. Sum´rio
a
Trabalho de 1 Objetivo Geral
Curso -
CESUFOZ -
2009
2 Referencial Te´rico
o
Fernando Arquiteturas de Software
Geraldo
Mantoan Design Patterns
PHP
Objetivo Geral
Referencial
3 Descri¸˜o do Ambiente Experimental
ca
Te´rico
o
Arquiteturas de
Tecnologias
Software
Design Patterns
Padr˜es
o
PHP
Estrutura F´ ısica
Descri¸˜o do
ca
Ambiente Aplicativos
Experimental
Tecnologias 4 Arquitetura Proposta
Padr˜es
o
Estrutura F´
Aplicativos
ısica
5 Implementa¸˜o
ca
Arquitetura Estudo de Caso
Proposta
Demonstra¸˜oca
Implementa¸˜o
ca
Estudo de Caso 6 Considera¸˜es Finais e Trabalhos Futuros
co
Demonstra¸˜o
ca
19. Arquitetura Proposta
Trabalho de
Curso - Arquitetura Proposta
CESUFOZ -
2009
Fernando
Geraldo
Mantoan
Objetivo Geral
Referencial
Te´rico
o
Arquiteturas de
Software
Design Patterns
PHP
Descri¸˜o do
ca
Ambiente
Experimental
Tecnologias
Padr˜es
o
Estrutura F´ısica
Aplicativos
Arquitetura
Proposta
Implementa¸˜o
ca
Estudo de Caso
Demonstra¸˜o
ca Figura: Diagrama da Arquitetura Proposta
20. Sum´rio
a
Trabalho de 1 Objetivo Geral
Curso -
CESUFOZ -
2009
2 Referencial Te´rico
o
Fernando Arquiteturas de Software
Geraldo
Mantoan Design Patterns
PHP
Objetivo Geral
Referencial
3 Descri¸˜o do Ambiente Experimental
ca
Te´rico
o
Arquiteturas de
Tecnologias
Software
Design Patterns
Padr˜es
o
PHP
Estrutura F´ ısica
Descri¸˜o do
ca
Ambiente Aplicativos
Experimental
Tecnologias 4 Arquitetura Proposta
Padr˜es
o
Estrutura F´
Aplicativos
ısica
5 Implementa¸˜o
ca
Arquitetura Estudo de Caso
Proposta
Demonstra¸˜oca
Implementa¸˜o
ca
Estudo de Caso 6 Considera¸˜es Finais e Trabalhos Futuros
co
Demonstra¸˜o
ca
21. Estudo de Caso
Casos de Uso
Trabalho de
Curso - Diagrama de Casos de Uso
CESUFOZ -
2009
Fernando
Geraldo
Mantoan
Objetivo Geral
Referencial
Te´rico
o
Arquiteturas de
Software
Design Patterns
PHP
Descri¸˜o do
ca
Ambiente
Experimental
Tecnologias
Padr˜es
o
Estrutura F´ısica
Aplicativos
Arquitetura
Proposta
Implementa¸˜o
ca
Estudo de Caso
Demonstra¸˜o
ca Figura: Diagrama de Casos de Uso
22. Estudo de Caso
Classes
Trabalho de
Curso -
CESUFOZ - Diagrama de Classes
2009
Fernando
Geraldo
Mantoan
Objetivo Geral
Referencial
Te´rico
o
Arquiteturas de
Software
Design Patterns
PHP
Descri¸˜o do
ca
Ambiente
Experimental
Tecnologias
Padr˜es
o
Estrutura F´ısica
Aplicativos
Arquitetura
Proposta Figura: Diagrama de Classes
Implementa¸˜o
ca
Estudo de Caso
Demonstra¸˜o
ca
23. Sum´rio
a
Trabalho de 1 Objetivo Geral
Curso -
CESUFOZ -
2009
2 Referencial Te´rico
o
Fernando Arquiteturas de Software
Geraldo
Mantoan Design Patterns
PHP
Objetivo Geral
Referencial
3 Descri¸˜o do Ambiente Experimental
ca
Te´rico
o
Arquiteturas de
Tecnologias
Software
Design Patterns
Padr˜es
o
PHP
Estrutura F´ ısica
Descri¸˜o do
ca
Ambiente Aplicativos
Experimental
Tecnologias 4 Arquitetura Proposta
Padr˜es
o
Estrutura F´
Aplicativos
ısica
5 Implementa¸˜o
ca
Arquitetura Estudo de Caso
Proposta
Demonstra¸˜oca
Implementa¸˜o
ca
Estudo de Caso 6 Considera¸˜es Finais e Trabalhos Futuros
co
Demonstra¸˜o
ca
24. Demonstra¸˜o
ca
Trabalho de
Curso -
CESUFOZ -
2009
Fernando
Geraldo
Mantoan
Objetivo Geral
Referencial
Te´rico
o Demonstra¸˜o
ca
Arquiteturas de
Software
Design Patterns
PHP
Descri¸˜o do
ca
Ambiente
Experimental
Tecnologias
Padr˜es
o
Estrutura F´ısica
Aplicativos
Arquitetura
Proposta
Implementa¸˜o
ca
Estudo de Caso
Demonstra¸˜o
ca
25. Considera¸oes Finais e Trabalhos Futuros
c˜
Considera¸oes Finais
c˜
Trabalho de
Curso -
CESUFOZ -
2009
Fernando
Considera¸˜es Finais
co
Geraldo
Mantoan
Organiza¸˜o no desenvolvimento;
ca
Objetivo Geral
Reusabilidade e solu¸˜o de problemas comuns a projetos
ca
Referencial
Te´rico
o de software;
Arquiteturas de
Software
Design Patterns
Legibilidade e camadas l´gicas;
o
PHP
Descri¸˜o do
ca
Manutenibilidade, com documenta¸˜o completa da
ca
Ambiente
Experimental
arquitetura;
Tecnologias
Padr˜es
o
Concluindo: Ciclo de vida de um software prolongado;
Estrutura F´ısica
Aplicativos vantagens para clientes e para desenvolvedores.
Arquitetura
Proposta
Implementa¸˜o
ca
Estudo de Caso
Demonstra¸˜o
ca
26. Considera¸oes Finais e Trabalhos Futuros
c˜
Trabalhos Futuros
Trabalho de
Curso -
CESUFOZ -
2009
Fernando
Geraldo Trabalhos Futuros
Mantoan
Objetivo Geral Adicionar ou remover design patterns de acordo com os
Referencial problemas que os projetos de software apresentem;
Te´rico
o
Arquiteturas de
Software
Desacoplar a arquitetura do Zend Framework, isto facilita
Design Patterns
PHP
a migra¸˜o entre frameworks PHP;
ca
Descri¸˜o do
ca Basear a arquitetura em plugins, o que traz mais
Ambiente
Experimental consistˆncia e praticidade na adi¸˜o ou remo¸˜o de
e ca ca
Tecnologias
Padr˜es
o funcionalidades.
Estrutura F´ısica
Aplicativos
Arquitetura
Proposta
Implementa¸˜o
ca
Estudo de Caso
Demonstra¸˜o
ca
27. Referˆncias Bibliogr´ficas
e a
Trabalho de
Curso -
CESUFOZ -
2009
BASS, L.; CLEMENTS, P.; KAZMAN, R. Software Architecture in Practice. 2. ed. Boston: Addison
Fernando Wesley, 2003.
Geraldo
Mantoan BUSCHMANN, F. et al. Pattern-Oriented Software Architeture. Chichester: Wiley, 1996.
Objetivo Geral DALL’OGLIO, P. PHP - Programando com Orienta¸˜o a Objetos. S˜o Paulo: Novatec, 2007.
ca a
Referencial FOWLER, M. et al. Patterns of Enterprise Application Architecture. Indianapolis: Addison-Wesley,
Te´rico
o 2002.
Arquiteturas de
Software GAMMA, E. et al. Design Patterns, Elements of Reusable Object-Oriented Software. Indianapolis:
Design Patterns Addison-Wesley, 1995.
PHP
MELO, A. A. de; NASCIMENTO, M. G. F. do. PHP Profissional. S˜o Paulo: Novatec, 2007.
a
Descri¸˜o do
ca
Ambiente
Experimental PRESSMAN, R. S. Engenharia de Software. 5. ed. Rio de Janeiro: McGraw-Hill, 2002.
Tecnologias
Padr˜es
o VAROTO, A. C. Vis˜es em Arquitetura de software. S˜o Paulo: [s.n.], 2002.
o a
Estrutura F´ısica
Aplicativos ZEND. Zend Framework. 2009. Dispon´ em: <http://framework.zend.com>. Acesso em: 20 nov.
ıvel
2009.
Arquitetura
Proposta
Implementa¸˜o
ca
Estudo de Caso
Demonstra¸˜o
ca
28. Trabalho de
Curso -
CESUFOZ -
2009
Fernando
Geraldo
Mantoan
Objetivo Geral
Referencial
Te´rico
o
Arquiteturas de
Software D´vidas ???
u
Design Patterns
PHP
Descri¸˜o do
ca
Ambiente
Experimental
Tecnologias
Padr˜es
o
Estrutura F´ısica
Aplicativos
Arquitetura
Proposta
Implementa¸˜o
ca
Estudo de Caso
Demonstra¸˜o
ca