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

Embed Size (px)

Text of Framework de Desenvolvimento de Aplicações Web ?· Desenvolvimento de Software e Sistemas...

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 ................................................................