Framework de Desenvolvimento de Aplicações Web ?· Desenvolvimento de Software e Sistemas Interactivos,…

  • Published on
    03-Jan-2019

  • View
    213

  • Download
    0

Embed Size (px)

Transcript

Framework de Desenvolvimento de Aplicaes Web

Mestrado em Desenvolvimento de Software e Sistemas Interactivos

Tiago Filipe de Andrade Alves

Orientadores Doutor Jos Carlos Meireles Monteiro Metrlho Doutor Fernando Reinaldo Da Silva Garcia Ribeiro

Maio de 2013

Instituto Politcnicode Castelo BrancoEscola Superiorde Tecnologia

Framework de Desenvolvimento de Aplicaes Web

Tiago Filipe de Andrade Alves

Orientadores

Doutor Jos Carlos Meireles Monteiro Metrlho

Doutor Fernando Reinaldo Da Silva Garcia Ribeiro

Relatrio de Projeto apresentado Escola Superior de Tecnologia do Instituto Politcnico de Castelo Branco para cumprimento dos requisitos necessrios obteno do grau de Mestre em Desenvolvimento de Software e Sistemas Interactivos, realizada sob a orientao cientfica do Doutor Jos Carlos Meireles Monteiro Metrlho e co-orientao do Doutor Fernando Reinaldo Da Silva Garcia Ribeiro, do Instituto Politcnico de Castelo Branco.

Maio de 2013

II

III

Composio do jri

Presidente do jri

Doutor Osvaldo Arede dos Santos, Professor Adjunto do Instituto Politcnico de Castelo Branco.

Vogais

Doutor Jos Manuel Cabral, Professor Auxiliar da Escola de Engenharia da Universidade do Minho;

Doutor Alexandre Jos Pereira Duro da Fonte, Professor Adjunto do Instituto Politcnico de Castelo Branco;

Doutor Jos Carlos Meireles Monteiro Metrlho, Professor Adjunto do Instituto Politcnico de Castelo Branco (Orientador);

Doutor Fernando Reinaldo Silva Garcia Ribeiro, Professor Adjunto do Instituto Politcnico de Castelo Branco (Co-orientador).

IV

V

Agradecimentos Aos meus pais, minha av e minha madrinha, pelo incentivo em continuar os estudos,

por todo o apoio e amizade, e pela companhia em longas noites de trabalho.

Ctia por todo o amor, carinho e compreenso, e por no me deixar desistir de seguir os meus ideais, mesmo quando por vezes duvidei dos mesmos.

Ao Cordeiro, Sara, Pedro, Patrcia, Paulo e Fontes pela camaradagem, pela companhia, por toda a farra que me ajudou a desanuviar um pouco de todo o trabalho em mos. Tambm a vs devo grande parte do conhecimento e motivao que tenho para seguir esta rea.

Ao Catarino, Guilherme e Hiugo, pelo apoio, motivao e contributo que deram ao longo deste trabalho, por me ajudarem e motivarem a crescer profissionalmente.

malta do Lab que me acompanhou e apoiou durante esta ltima fase.

Um agradecimento especial aos Professores Jos Metrlho e Fernando Ribeiro, por todo apoio e confiana que me deram ao longo do meu percurso nesta instituio.

VI

VII

Resumo Neste documento apresenta-se uma framework de desenvolvimento de aplicaes web.

Este projeto conta com um sistema base concebido sobre PHP e num paradigma totalmente orientado a objetos. A framework disponibiliza diversos mtodos atravs dos quais se torna possvel integrar uma aplicao especfica sobre uma base comum a diversos tipos de projetos. Este sistema foi criado de forma a disponibilizar ao programador diversas vantagens na construo das suas aplicaes, sem que o mesmo necessite de se preocupar com a sua implementao, uma vez que estas esto embutidas no funcionamento desta framework. Um dos principais objetivos deste projeto est em focar o esforo de desenvolvimento num problema especfico, deixando de parte o problema comum da criao de uma arquitetura base para cada aplicao.

Palavras chave Framework, Model View Controller, Model View Presenter, Web.

VIII

IX

Abstract This document contains information about a framework for web application

development. This project is based on a PHP system in a fully object oriented paradigm. This framework provides various methods that allow the integration of a specific application in a common base for any type of project. This system was designed in order to provide the programmer a number of advantages in the construction of its applications, without the need to worry about the implementation, since these advantages are embedded in the operation of this framework. A major goal of this project is to focus the development efforts on a specific problem, leaving aside the common problem of creating a base architecture for each application.

Keywords Framework, Model View Controller, Model View Presenter, Web.

X

XI

ndice geral 1. Introduo ................................................................................................................................... 1

1.1. Enquadramento e Motivao ....................................................................................... 11.2. Objetivos.............................................................................................................................. 21.3. Organizao do Documento ......................................................................................... 2

2. Estado da arte ............................................................................................................................. 32.1. CakePHP .............................................................................................................................. 32.2. CodeIgniter ......................................................................................................................... 32.3. Yii ........................................................................................................................................... 32.4. Zend....................................................................................................................................... 42.5. Anlise Comparativa ....................................................................................................... 4

3. A Framework ............................................................................................................................... 73.1. Desenvolvimento ............................................................................................................. 7

3.1.1. Metodologia de Desenvolvimento .................................................................................. 73.1.2. Iteraes no Processo de Desenvolvimento ............................................................... 73.1.3. Ambiente de Desenvolvimento ....................................................................................... 83.1.4. Arquitetura .............................................................................................................................. 83.1.5. Ciclo de Vida dos Componentes ................................................................................... 11

3.2. Modelao ........................................................................................................................ 143.2.1. Diagrama de Componentes ............................................................................................ 153.2.2. Diagrama de Classes.......................................................................................................... 173.2.3. Diagramas de Sequncia ................................................................................................. 19

3.3. Outras Caractersticas ................................................................................................. 253.3.1. SEO Uniform Resource Locator (URL) ........................................................................ 253.3.2. Auto Loading ......................................................................................................................... 253.3.3. Integrao com Document Object Model (DOM) .................................................... 263.3.4. Escalabilidade ...................................................................................................................... 263.3.5. Facilidade de Utilizao ................................................................................................... 273.3.6. Render Engine ...................................................................................................................... 273.3.7. Suporte de mltiplos idiomas ....................................................................................... 273.3.8. Role Based Access Control (RBAC) ............................................................................... 27

4. Otimizao, Testes e Documentao ............................................................................... 294.1. Otimizao de Cdigo .................................................................................................. 294.2. Testes................................................................................................................................. 29

4.2.1. Ambiente de testes ............................................................................................................ 294.2.2. Resultados dos testes ....................................................................................................... 294.2.3. Comparao com outras plataformas ........................................................................ 31

4.3. Documentao ................................................................................................................ 324.4. Exemplo de utilizao .................................................................................................. 32

5. Concluso e Trabalho Futuro ............................................................................................ 37

Referncias ......................................................................................................................................... 39

Glossrio .............................................................................................................................................. 43

Anexos .................................................................................................................................................. 48

XII

Anexo I Documentao das Classes ..................................................................................... 48

XIII

ndice de figuras Figura 1 - Arquitetura Aplicacional ..................................................................................................................... 8

Figura 2 - Model View Controller........................................................................................................................... 9

Figura 3 - Front Controller ................................................................................................................................... 10

Figura 4 - Model View Presenter (Passive View) .......................................................................................... 11

Figura 5 - Ciclo de Vida dos Componentes .................................................................................................... 11

Figura 6 - Ciclo de vida da App e Controller .................................................................................................. 13

Figura 7 - Diagrama de Componentes ............................................................................................................. 15

Figura 8 - Diagrama de Relacionamento entre Classes ............................................................................ 17

Figura 9 - Diagrama de Sequncia Processar Pedido ............................................................................ 20Figura 10 - Diagrama de Sequncia Validar Pedido .............................................................................. 21Figura 11 Diagrama de Sequncia - Verificar Permisso .................................................................... 22Figura 12 - Diagrama Sequncia Gerir Exceo ...................................................................................... 23Figura 13- Diagrama de Sequncia - Executar Controller ....................................................................... 24

Figura 14 - Diagrama de Sequncia - Render View .................................................................................... 25

Figura 15 Primeiro Profiling da Aplicao ................................................................................................. 30

Figura 16 Segundo Profiling da Aplicao ................................................................................................. 31Figura 17 - Resultado do Exemplo ................................................................................................................... 35

XIV

XV

Lista de tabelas Tabela 1 - Comparao de caractersticas entre frameworks .................................................................. 5

Tabela 2 - Resultados de Teste de Desempenho ........................................................................................ 31

XVI

XVII

Lista de abreviaturas, siglas e acrnimos AJAX Asynchronous JavaScript and XML API Application Programming Interface DHTML Dynamic HTML DOM Document Object Model HTML HyperText Markup Language HTTP Hypertext Transfer Protocol IDE Integrated Development Environment, MVC Model View Controller MVP Model View Presenter PDO PHP Data Objects PDT PHP Development Tools PHP PHP Hypertext Preprocessor POO Programao Orientada a Objetos RAD Rapid Application Development RBAC Role Based Access Control SEO Search Engine Optimization URI Uniform Resource Indentifier URL Uniform Resource Locator WSDL Web Service Definition Language

XVIII

Framework de Desenvolvimento de Aplicaes Web

1

1. Introduo

1.1. Enquadramento e Motivao

A motivao por detrs da conceo de uma framework web est comummente focada na resoluo de um ou vrios problemas, que podero abranger diversas reas ou camadas de uma arquitetura de uma aplicao web, quer na construo de cdigo de servidor, bem como na conceo da componente que ser apresentada a um utilizador atravs de um cliente. Estas frameworks so normalmente dedicadas produo de cdigo robusto, estruturado, modular e reutilizvel, seguindo uma design pattern apropriada a este propsito, tal como a Model View Controller (MVC). A Model View Controller uma design pattern focada na arquitetura de software que separa a informao por trs componentes, em que cada qual controla uma parte dessa informao, enquanto que garantida a interao entre elas [1]. A utilizao deste tipo de patterns permite a simplificao da construo de cdigo, e a sua correcta estruturao. A MVC observada em maior detalhe no captulo 3.1.4.

Uma framework PHP Hypertext Preprocessor (PHP) [2] MVC, regularmente inclui as componentes presentes numa estrutura MVC, adicionando ainda o suporte para a criao de uma aplicao web completa. Estas possuem capacidades para responder aos vrios problemas apresentados pelas camadas distintas de uma aplicao web, apresentando uma forte componente server-sided, bem como uma forte integrao com uma, ou vrias, componentes client-sided, na qual o foco se estende int...

Recommended

View more >