Banca: Proposta de Arquitetura de Desenvolvimento Web Baseada em PHP Utilizando Design Patterns. Um...

Preview:

Citation preview

Trabalho deCurso -

CESUFOZ -2009

FernandoGeraldo

Mantoan

Objetivo Geral

ReferencialTeorico

Arquiteturas deSoftware

Design Patterns

PHP

Descricao doAmbienteExperimental

Tecnologias

Padroes

Estrutura Fısica

Aplicativos

ArquiteturaProposta

Implementacao

Estudo de Caso

Demonstracao

ConsideracoesFinais eTrabalhosFuturos

Proposta de Arquitetura de DesenvolvimentoWeb Baseada em PHP Utilizando Design

Patterns. Um Estudo de Caso

Fernando Geraldo MantoanOrientador: Prof. Gildomiro Bairros

CESUFOZ - Centro de Ensino Superior de Foz do Iguacu

7 de dezembro de 2009

Trabalho deCurso -

CESUFOZ -2009

FernandoGeraldo

Mantoan

Objetivo Geral

ReferencialTeorico

Arquiteturas deSoftware

Design Patterns

PHP

Descricao doAmbienteExperimental

Tecnologias

Padroes

Estrutura Fısica

Aplicativos

ArquiteturaProposta

Implementacao

Estudo de Caso

Demonstracao

ConsideracoesFinais eTrabalhosFuturos

Sumario

1 Objetivo Geral

2 Referencial TeoricoArquiteturas de SoftwareDesign PatternsPHP

3 Descricao do Ambiente ExperimentalTecnologiasPadroesEstrutura FısicaAplicativos

4 Arquitetura Proposta

5 ImplementacaoEstudo de CasoDemonstracao

6 Consideracoes Finais e Trabalhos Futuros

Trabalho deCurso -

CESUFOZ -2009

FernandoGeraldo

Mantoan

Objetivo Geral

ReferencialTeorico

Arquiteturas deSoftware

Design Patterns

PHP

Descricao doAmbienteExperimental

Tecnologias

Padroes

Estrutura Fısica

Aplicativos

ArquiteturaProposta

Implementacao

Estudo de Caso

Demonstracao

ConsideracoesFinais eTrabalhosFuturos

Objetivo Geral

Objetivo Geral

Propor uma arquitetura de desenvolvimento de aplicacoes emPHP contendo design patterns que forneca uma maior estruturaorganizacional, padronizacao de programacao, facilidade demanutencao, menos repeticao de codigo e que evite bad smell.

Trabalho deCurso -

CESUFOZ -2009

FernandoGeraldo

Mantoan

Objetivo Geral

ReferencialTeorico

Arquiteturas deSoftware

Design Patterns

PHP

Descricao doAmbienteExperimental

Tecnologias

Padroes

Estrutura Fısica

Aplicativos

ArquiteturaProposta

Implementacao

Estudo de Caso

Demonstracao

ConsideracoesFinais eTrabalhosFuturos

Sumario

1 Objetivo Geral

2 Referencial TeoricoArquiteturas de SoftwareDesign PatternsPHP

3 Descricao do Ambiente ExperimentalTecnologiasPadroesEstrutura FısicaAplicativos

4 Arquitetura Proposta

5 ImplementacaoEstudo de CasoDemonstracao

6 Consideracoes Finais e Trabalhos Futuros

Trabalho deCurso -

CESUFOZ -2009

FernandoGeraldo

Mantoan

Objetivo Geral

ReferencialTeorico

Arquiteturas deSoftware

Design Patterns

PHP

Descricao doAmbienteExperimental

Tecnologias

Padroes

Estrutura Fısica

Aplicativos

ArquiteturaProposta

Implementacao

Estudo de Caso

Demonstracao

ConsideracoesFinais eTrabalhosFuturos

Arquiteturas de Software

Arquiteturas de Software

Abstracao de detalhes;

Analise de efetividade do projeto;

Importancia na: Comunicacao, Decisoes iniciais eAbstracao.

Trabalho deCurso -

CESUFOZ -2009

FernandoGeraldo

Mantoan

Objetivo Geral

ReferencialTeorico

Arquiteturas deSoftware

Design Patterns

PHP

Descricao doAmbienteExperimental

Tecnologias

Padroes

Estrutura Fısica

Aplicativos

ArquiteturaProposta

Implementacao

Estudo de Caso

Demonstracao

ConsideracoesFinais eTrabalhosFuturos

Sumario

1 Objetivo Geral

2 Referencial TeoricoArquiteturas de SoftwareDesign PatternsPHP

3 Descricao do Ambiente ExperimentalTecnologiasPadroesEstrutura FısicaAplicativos

4 Arquitetura Proposta

5 ImplementacaoEstudo de CasoDemonstracao

6 Consideracoes Finais e Trabalhos Futuros

Trabalho deCurso -

CESUFOZ -2009

FernandoGeraldo

Mantoan

Objetivo Geral

ReferencialTeorico

Arquiteturas deSoftware

Design Patterns

PHP

Descricao doAmbienteExperimental

Tecnologias

Padroes

Estrutura Fısica

Aplicativos

ArquiteturaProposta

Implementacao

Estudo de Caso

Demonstracao

ConsideracoesFinais eTrabalhosFuturos

Design PatternsDefinicao

Definicao de Design Patterns

Problema, solucao e reutilizacao;

Classes e instancias;

Problemas distintos;

Documentacao e manutencao.

Trabalho deCurso -

CESUFOZ -2009

FernandoGeraldo

Mantoan

Objetivo Geral

ReferencialTeorico

Arquiteturas deSoftware

Design Patterns

PHP

Descricao doAmbienteExperimental

Tecnologias

Padroes

Estrutura Fısica

Aplicativos

ArquiteturaProposta

Implementacao

Estudo de Caso

Demonstracao

ConsideracoesFinais eTrabalhosFuturos

Design PatternsLista dos Padroes

Figura: Padroes de Projeto e seus Relacionamentos.

Trabalho deCurso -

CESUFOZ -2009

FernandoGeraldo

Mantoan

Objetivo Geral

ReferencialTeorico

Arquiteturas deSoftware

Design Patterns

PHP

Descricao doAmbienteExperimental

Tecnologias

Padroes

Estrutura Fısica

Aplicativos

ArquiteturaProposta

Implementacao

Estudo de Caso

Demonstracao

ConsideracoesFinais eTrabalhosFuturos

Sumario

1 Objetivo Geral

2 Referencial TeoricoArquiteturas de SoftwareDesign PatternsPHP

3 Descricao do Ambiente ExperimentalTecnologiasPadroesEstrutura FısicaAplicativos

4 Arquitetura Proposta

5 ImplementacaoEstudo de CasoDemonstracao

6 Consideracoes Finais e Trabalhos Futuros

Trabalho deCurso -

CESUFOZ -2009

FernandoGeraldo

Mantoan

Objetivo Geral

ReferencialTeorico

Arquiteturas deSoftware

Design Patterns

PHP

Descricao doAmbienteExperimental

Tecnologias

Padroes

Estrutura Fısica

Aplicativos

ArquiteturaProposta

Implementacao

Estudo de Caso

Demonstracao

ConsideracoesFinais eTrabalhosFuturos

PHPPHP

PHP

Rasmus Lerdorf (1994);

Andi Gutmans e Zeev Suraski (1998);

Hypertext Preprocessor ;

Versao 5 (OO, Zend Engine 2, Webservices, ExtensibleMarkup Language).

Trabalho deCurso -

CESUFOZ -2009

FernandoGeraldo

Mantoan

Objetivo Geral

ReferencialTeorico

Arquiteturas deSoftware

Design Patterns

PHP

Descricao doAmbienteExperimental

Tecnologias

Padroes

Estrutura Fısica

Aplicativos

ArquiteturaProposta

Implementacao

Estudo de Caso

Demonstracao

ConsideracoesFinais eTrabalhosFuturos

PHPPrincipais Frameworks PHP

Frameworks

Aplicativo;

Ferramentas e subsistemas;

Servicos necessarios para sistemas;

Don’t Repeat Yourself ;

Alguns Frameworks para PHP: Zend Framework,CakePHP e Code Igniter.

Trabalho deCurso -

CESUFOZ -2009

FernandoGeraldo

Mantoan

Objetivo Geral

ReferencialTeorico

Arquiteturas deSoftware

Design Patterns

PHP

Descricao doAmbienteExperimental

Tecnologias

Padroes

Estrutura Fısica

Aplicativos

ArquiteturaProposta

Implementacao

Estudo de Caso

Demonstracao

ConsideracoesFinais eTrabalhosFuturos

Sumario

1 Objetivo Geral

2 Referencial TeoricoArquiteturas de SoftwareDesign PatternsPHP

3 Descricao do Ambiente ExperimentalTecnologiasPadroesEstrutura FısicaAplicativos

4 Arquitetura Proposta

5 ImplementacaoEstudo de CasoDemonstracao

6 Consideracoes Finais e Trabalhos Futuros

Trabalho deCurso -

CESUFOZ -2009

FernandoGeraldo

Mantoan

Objetivo Geral

ReferencialTeorico

Arquiteturas deSoftware

Design Patterns

PHP

Descricao doAmbienteExperimental

Tecnologias

Padroes

Estrutura Fısica

Aplicativos

ArquiteturaProposta

Implementacao

Estudo de Caso

Demonstracao

ConsideracoesFinais eTrabalhosFuturos

Descricao do Ambiente ExperimentalTecnologias Envolvidas

Tecnologias Envolvidas

UML;

PHP;

Apache HTTP;

HTML;

MySQL.

Trabalho deCurso -

CESUFOZ -2009

FernandoGeraldo

Mantoan

Objetivo Geral

ReferencialTeorico

Arquiteturas deSoftware

Design Patterns

PHP

Descricao doAmbienteExperimental

Tecnologias

Padroes

Estrutura Fısica

Aplicativos

ArquiteturaProposta

Implementacao

Estudo de Caso

Demonstracao

ConsideracoesFinais eTrabalhosFuturos

Descricao do Ambiente ExperimentalPadroes Envolvidos

Padroes Envolvidos

Programacao Orientada a Objetos;

Design Patterns:

Singleton;Factory ;Facade;Observer ;Data Mapper ;Table Data Gateway ;Model-View-Controller ;

Trabalho deCurso -

CESUFOZ -2009

FernandoGeraldo

Mantoan

Objetivo Geral

ReferencialTeorico

Arquiteturas deSoftware

Design Patterns

PHP

Descricao doAmbienteExperimental

Tecnologias

Padroes

Estrutura Fısica

Aplicativos

ArquiteturaProposta

Implementacao

Estudo de Caso

Demonstracao

ConsideracoesFinais eTrabalhosFuturos

Descricao do Ambiente ExperimentalEstrutura Fısica

Servidor

CPU Sempron 3800+;

512 MB de memoria DDR 400MHz;

HD de 80GB PATA.

Cliente

CPU Pentium Dual Core T2130 1.86GHz;

2GB de memoria DDR2 667MHz;

HD de 160GB Sata.

Trabalho deCurso -

CESUFOZ -2009

FernandoGeraldo

Mantoan

Objetivo Geral

ReferencialTeorico

Arquiteturas deSoftware

Design Patterns

PHP

Descricao doAmbienteExperimental

Tecnologias

Padroes

Estrutura Fısica

Aplicativos

ArquiteturaProposta

Implementacao

Estudo de Caso

Demonstracao

ConsideracoesFinais eTrabalhosFuturos

Descricao do Ambiente ExperimentalEstrutura Fısica

Estrutura Logica

SO GNU/Linux Ubuntu 9.10 Karmic Koala,2.6.31-14-generic;

Pacotes: apache2 2.2.12, php5 5.2.10, pdo-mysql 5.1.37,mysql-server-5.1 5.1.37.

Trabalho deCurso -

CESUFOZ -2009

FernandoGeraldo

Mantoan

Objetivo Geral

ReferencialTeorico

Arquiteturas deSoftware

Design Patterns

PHP

Descricao doAmbienteExperimental

Tecnologias

Padroes

Estrutura Fısica

Aplicativos

ArquiteturaProposta

Implementacao

Estudo de Caso

Demonstracao

ConsideracoesFinais eTrabalhosFuturos

Descricao do Ambiente ExperimentalFrameworks

Frameworks

Zend Framework - Simplicidade, Produtividade, Web 2.0,Codigo bem testado, Baixo acoplamento dos componentes.

Trabalho deCurso -

CESUFOZ -2009

FernandoGeraldo

Mantoan

Objetivo Geral

ReferencialTeorico

Arquiteturas deSoftware

Design Patterns

PHP

Descricao doAmbienteExperimental

Tecnologias

Padroes

Estrutura Fısica

Aplicativos

ArquiteturaProposta

Implementacao

Estudo de Caso

Demonstracao

ConsideracoesFinais eTrabalhosFuturos

Sumario

1 Objetivo Geral

2 Referencial TeoricoArquiteturas de SoftwareDesign PatternsPHP

3 Descricao do Ambiente ExperimentalTecnologiasPadroesEstrutura FısicaAplicativos

4 Arquitetura Proposta

5 ImplementacaoEstudo de CasoDemonstracao

6 Consideracoes Finais e Trabalhos Futuros

Trabalho deCurso -

CESUFOZ -2009

FernandoGeraldo

Mantoan

Objetivo Geral

ReferencialTeorico

Arquiteturas deSoftware

Design Patterns

PHP

Descricao doAmbienteExperimental

Tecnologias

Padroes

Estrutura Fısica

Aplicativos

ArquiteturaProposta

Implementacao

Estudo de Caso

Demonstracao

ConsideracoesFinais eTrabalhosFuturos

Arquitetura Proposta

Arquitetura Proposta

Figura: Diagrama da Arquitetura Proposta

Trabalho deCurso -

CESUFOZ -2009

FernandoGeraldo

Mantoan

Objetivo Geral

ReferencialTeorico

Arquiteturas deSoftware

Design Patterns

PHP

Descricao doAmbienteExperimental

Tecnologias

Padroes

Estrutura Fısica

Aplicativos

ArquiteturaProposta

Implementacao

Estudo de Caso

Demonstracao

ConsideracoesFinais eTrabalhosFuturos

Sumario

1 Objetivo Geral

2 Referencial TeoricoArquiteturas de SoftwareDesign PatternsPHP

3 Descricao do Ambiente ExperimentalTecnologiasPadroesEstrutura FısicaAplicativos

4 Arquitetura Proposta

5 ImplementacaoEstudo de CasoDemonstracao

6 Consideracoes Finais e Trabalhos Futuros

Trabalho deCurso -

CESUFOZ -2009

FernandoGeraldo

Mantoan

Objetivo Geral

ReferencialTeorico

Arquiteturas deSoftware

Design Patterns

PHP

Descricao doAmbienteExperimental

Tecnologias

Padroes

Estrutura Fısica

Aplicativos

ArquiteturaProposta

Implementacao

Estudo de Caso

Demonstracao

ConsideracoesFinais eTrabalhosFuturos

Estudo de CasoCasos de Uso

Diagrama de Casos de Uso

Figura: Diagrama de Casos de Uso

Trabalho deCurso -

CESUFOZ -2009

FernandoGeraldo

Mantoan

Objetivo Geral

ReferencialTeorico

Arquiteturas deSoftware

Design Patterns

PHP

Descricao doAmbienteExperimental

Tecnologias

Padroes

Estrutura Fısica

Aplicativos

ArquiteturaProposta

Implementacao

Estudo de Caso

Demonstracao

ConsideracoesFinais eTrabalhosFuturos

Estudo de CasoClasses

Diagrama de Classes

Figura: Diagrama de Classes

Trabalho deCurso -

CESUFOZ -2009

FernandoGeraldo

Mantoan

Objetivo Geral

ReferencialTeorico

Arquiteturas deSoftware

Design Patterns

PHP

Descricao doAmbienteExperimental

Tecnologias

Padroes

Estrutura Fısica

Aplicativos

ArquiteturaProposta

Implementacao

Estudo de Caso

Demonstracao

ConsideracoesFinais eTrabalhosFuturos

Sumario

1 Objetivo Geral

2 Referencial TeoricoArquiteturas de SoftwareDesign PatternsPHP

3 Descricao do Ambiente ExperimentalTecnologiasPadroesEstrutura FısicaAplicativos

4 Arquitetura Proposta

5 ImplementacaoEstudo de CasoDemonstracao

6 Consideracoes Finais e Trabalhos Futuros

Trabalho deCurso -

CESUFOZ -2009

FernandoGeraldo

Mantoan

Objetivo Geral

ReferencialTeorico

Arquiteturas deSoftware

Design Patterns

PHP

Descricao doAmbienteExperimental

Tecnologias

Padroes

Estrutura Fısica

Aplicativos

ArquiteturaProposta

Implementacao

Estudo de Caso

Demonstracao

ConsideracoesFinais eTrabalhosFuturos

Demonstracao

Demonstracao

Trabalho deCurso -

CESUFOZ -2009

FernandoGeraldo

Mantoan

Objetivo Geral

ReferencialTeorico

Arquiteturas deSoftware

Design Patterns

PHP

Descricao doAmbienteExperimental

Tecnologias

Padroes

Estrutura Fısica

Aplicativos

ArquiteturaProposta

Implementacao

Estudo de Caso

Demonstracao

ConsideracoesFinais eTrabalhosFuturos

Consideracoes Finais e Trabalhos FuturosConsideracoes Finais

Consideracoes Finais

Organizacao no desenvolvimento;

Reusabilidade e solucao de problemas comuns a projetosde software;

Legibilidade e camadas logicas;

Manutenibilidade, com documentacao completa daarquitetura;

Concluindo: Ciclo de vida de um software prolongado;vantagens para clientes e para desenvolvedores.

Trabalho deCurso -

CESUFOZ -2009

FernandoGeraldo

Mantoan

Objetivo Geral

ReferencialTeorico

Arquiteturas deSoftware

Design Patterns

PHP

Descricao doAmbienteExperimental

Tecnologias

Padroes

Estrutura Fısica

Aplicativos

ArquiteturaProposta

Implementacao

Estudo de Caso

Demonstracao

ConsideracoesFinais eTrabalhosFuturos

Consideracoes Finais e Trabalhos FuturosTrabalhos Futuros

Trabalhos Futuros

Adicionar ou remover design patterns de acordo com osproblemas que os projetos de software apresentem;

Desacoplar a arquitetura do Zend Framework, isto facilitaa migracao entre frameworks PHP;

Basear a arquitetura em plugins, o que traz maisconsistencia e praticidade na adicao ou remocao defuncionalidades.

Trabalho deCurso -

CESUFOZ -2009

FernandoGeraldo

Mantoan

Objetivo Geral

ReferencialTeorico

Arquiteturas deSoftware

Design Patterns

PHP

Descricao doAmbienteExperimental

Tecnologias

Padroes

Estrutura Fısica

Aplicativos

ArquiteturaProposta

Implementacao

Estudo de Caso

Demonstracao

ConsideracoesFinais eTrabalhosFuturos

Referencias Bibliograficas

BASS, L.; CLEMENTS, P.; KAZMAN, R. Software Architecture in Practice. 2. ed. Boston: Addison

Wesley, 2003.

BUSCHMANN, F. et al. Pattern-Oriented Software Architeture. Chichester: Wiley, 1996.

DALL’OGLIO, P. PHP - Programando com Orientacao a Objetos. Sao Paulo: Novatec, 2007.

FOWLER, M. et al. Patterns of Enterprise Application Architecture. Indianapolis: Addison-Wesley,

2002.

GAMMA, E. et al. Design Patterns, Elements of Reusable Object-Oriented Software. Indianapolis:

Addison-Wesley, 1995.

MELO, A. A. de; NASCIMENTO, M. G. F. do. PHP Profissional. Sao Paulo: Novatec, 2007.

PRESSMAN, R. S. Engenharia de Software. 5. ed. Rio de Janeiro: McGraw-Hill, 2002.

VAROTO, A. C. Visoes em Arquitetura de software. Sao Paulo: [s.n.], 2002.

ZEND. Zend Framework. 2009. Disponıvel em: <http://framework.zend.com>. Acesso em: 20 nov.

2009.

Trabalho deCurso -

CESUFOZ -2009

FernandoGeraldo

Mantoan

Objetivo Geral

ReferencialTeorico

Arquiteturas deSoftware

Design Patterns

PHP

Descricao doAmbienteExperimental

Tecnologias

Padroes

Estrutura Fısica

Aplicativos

ArquiteturaProposta

Implementacao

Estudo de Caso

Demonstracao

ConsideracoesFinais eTrabalhosFuturos

Duvidas ???