Vous êtes sur la page 1sur 5

I Jornada Cientfica e VI FIPA do CEFET Bambu Bambu/MG 2008

PROPOSTA DE UMA ARQUITETURA DE SOFTWARE E FUNCIONALIDADES PARA IMPLEMENTAO DE UM AMBIENTE INTEGRADO DE DESENVOLVIMENTO PARA A LINGUAGEM PHP
Aline Martins CHAVES, Gabriel da SILVA*
Centro Federal de Educao Tecnolgica de Bambu-MG

RESUMO
A concepo de sistemas para Web confiveis e de alta qualidade, requer, fundamentalmente, a adoo de uma linguagem de programao e de uma ferramenta de desenvolvimento adequadas. O presente trabalho prope o estudo dos principais IDE existentes para a linguagem PHP e suas metodologias de implementao. Alguns IDE e editores, livres ou proprietrios, implementados sob os paradigmas de programao estruturada ou orientada a objetos, so apresentados, expondo as principais caractersticas de cada um. Em seguida, testes foram realizados a fim de identificar as vantagens e desvantagens de cada um destes. As principais caractersticas que um IDE deve possuir e uma proposta de arquitetura para implementao de um IDE so apresentadas. Palavras-chave: Ambiente de Desenvolvimento Integrado, IDE, software, PHP.

1.

INTRODUO

A utilizao de um Ambiente de Desenvolvimento Integrado (do ingls Integrated Development Enviroment - IDE) adequado para o desenvolvimento de software de suma importncia em um desenvolvimento de sucesso, principalmente quando o desenvolvimento focado para Web, que geralmente apresenta uma maior complexidade que os sistemas stand alone. Uma das linguagens mais utilizadas atualmente para o desenvolvimento de sites Web a PHP. Entretanto, pela inexistncia de um IDE eficiente para uso desta linguagem, um desenvolvedor PHP faz uso de uma srie de ferramentas no processo de desenvolvimento de software. A alternncia entre um aplicativo e outro costuma diminuir o rendimento do programador. Uma soluo eficiente para este problema encontrada quando todas, ou pelo menos a maioria das ferramentas necessrias, encontram-se num mesmo ambiente. Atualmente, existem editores e IDE para PHP, mas estes no so completos. Cada um deles trata o desenvolvimento de aplicaes de forma particular, porm anloga. Este trabalho tem como objetivo analisar de forma exploratria alguns ambientes de desenvolvimento de software para a linguagem PHP, do ponto de vista do desenvolvedor, bem como da
* gabrields@cefetbambui.edu.br

metodologia de desenvolvimento, a fim de propor uma srie de requisitos funcionais e no funcionais para construo de um IDE. Tambm uma arquitetura de software para implementao do mesmo proposta. A escolha de um nico ambiente no tem a inteno de limitar as opes dos desenvolvedores e usurios, mas servir como uma referncia comum a todos. Este trabalho est inserido no mbito do projeto IDE4PHP Metodologia e Implementao para Desenvolvimento de um IDE para a linguagem PHP, desenvolvido no Centro Federal de Educao Tecnolgica de Bambu, Minas Gerais.

2. DESENVOLVIMENTO SOFTWARE

DE

No que diz respeito construo do software, para Borges e Viana Preto (2006), um paradigma de programao fornece e determina a viso que o desenvolvedor possui sobre a estruturao e execuo do programa. Com relao ao licenciamento de software, atualmente existem duas grandes correntes, que so os software livres SL e os software proprietrios SP. SL qualquer software cuja licena garanta ao seu usurio liberdades relacionadas ao uso, alterao e redistribuio. Como a grande maioria de software proprietrios no possui cdigo aberto, no possvel personalizar o programa, verificar a

I Jornada Cientfica e VI FIPA do CEFET Bambu Bambu/MG 2008

qualidade do cdigo, realizar melhorias ou corrigir erros. O presente trabalho buscou avaliar IDE cujo paradigma de desenvolvimento permita, inicialmente, a expanso ou modificao de suas funcionalidas, bem como uma maior facilidade na realizao desta tarefa, isto , IDE desenvolvidos sob o paradigma da orientao a objetos e distribudos como software livre. A seguir so apresentados conceitos que permitem um maior entendimento das prximas sees.

Compatibilidade: O PHP pode ser utilizado na maioria dos sistemas operacionais, incluindo, Linux, Unix e Windows. Tambm suportado pela maioria dos servidores Web atuais, principalmente Apache. Diversos bancos de dados so suportados pelo PHP, entre eles pode-se citar; MySQL, PostgreSQL, Sybase, Oracle, SQLServer e muitos outros.

2.3.

Reuso e extenso de software

2.1.

IDE

De acordo com Sebesta (2000, p. 46), IDE pode ser identificado como um ambiente de desenvolvimento integrado que rene caractersticas e ferramentas que do apoio ao desenvolvimento de software, com o objetivo de agilizar o processo. Geralmente, IDE apresenta a tcnica RAD (do ingls Rapid Application Development), que consiste em permitir que os desenvolvedores tenham um aproveitamento maior, desenvolvendo cdigos com mais rapidez e facilidade. integrado porque envolve pelo menos, editor, compilador e depurador.

O reuso de cdigo um dos principais objetivos para desenvolvedores de software. uma caracterstica muito forte no que diz respeito a tempo e custo de desenvolvimento do sistema. O reuso pode se dar de diversas formas, se a arquitetura estiver bem organizada, cada componente computacional ou parte dele pode ser construda com vistas para reuso. Nos tpicos a seguir so apresentados alguns tipos de reuso.

2.3.1. API
API, do ingls Application Programing Interface, comumente traduzida como Interface de Programao de Aplicativos. um conjunto de rotinas e padres estabelecidos por um software para utilizao de suas funcionalidades por programas aplicativos, isto : programadores que no querem envolver-se em detalhes da implementao do software, mas apenas usar seus servios. Segundo Goodman (2001) freqente dar expresso API um sentido mais restrito e especfico do que este, considerando API apenas as interfaces formadas por funes, reservando outros nomes para interfaces que faam uso de tecnologias mais complexas, como frameworks e componentes, que sero discutidos no prximo tpico.

2.2.

Linguagem PHP

O presente artigo fundamenta-se na linguagem PHP (PHP.NET). Esta uma linguagem para programar scripts do lado do servidor, incorporada HyperText Markup Language HTML, permite a criao de sites dinmicos, possibilitando uma interao com o usurio. Esta linguagem trabalha em conformidade com a estrutura cliente servidor, na qual, o servidor responsvel por interpretar os scripts que compem o documento solicitado, transform-lo em cdigo HTML e enviar o resultado ao cliente que fez a solicitao. O PHP pode ser usado tanto para produo de software para Web quanto para aplicaes desktop. Caso o desenvolvedor deseje usar alguns recursos avanados do PHP em aplicaes do lado do cliente, poder utilizar o PHP-GTK para desenvolver estes programas. E programas desenvolvidos desta forma sero independentes de plataforma. O PHP-GTK uma extenso do PHP. Algumas caractersticas do PHP esto listadas a seguir: Gratuito e com cdigo-fonte aberto

2.3.2. Biblioteca
Uma das grandes vantagens da programao orientada a objetos a utilizao de bibliotecas de classes. Estas bibliotecas lembram as bibliotecas de cdigo (procedimentos e funes), utilizadas na programao modular (estruturada). As bibliotecas de classes permitem uma capacidade muito maior de compartilhamento e reutilizao de cdigo, pois possvel criar-se subclasses para atender novas necessidades, em funo das classes.

I Jornada Cientfica e VI FIPA do CEFET Bambu Bambu/MG 2008

2.3.3. Framework
Pode-se dizer que um framework se baseia nas principais caractersticas da programao orientada a objetos: abstrao de dados, polimorfismo e herana. Essas caractersticas so responsveis por tornar o framework possvel de ser feito, tendo como objetivo a reutilizao de cdigo, pois permitem a criao de classes genricas. Os benefcios do uso de frameworks, alm de reuso, da facilidade de manuteno e da inverso de controle, so a capacidade de extenso e a modularidade. A modularidade atingida quando os detalhes de implementao so encapsulados pelo framework em classes fixas. Devido ao framework disponibilizar esqueletos de mtodos, permitindo que as classes possam ser estendidas. A extenso de um framework uma caracterstica fundamental para economizar tempo de programao.

prprio Eclipse constitudo de um conjunto de plugins inter-relacionados (ECLIPSE, 2007).

3.

AVALIAO DOS IDE

Foram realizados experimentos com seis ambientes de desenvolvimento existentes para a programao para a Web com suporte linguagem PHP, a saber: Eclipse com plugin PHP PHPEclipse (ECLIPSE, 2007), Delphi for PHP (CODE GEAR, 2007), Zend Studio (ZEND,2007), Dreamweaver (MACROMEDIA, 2007), PHPEditor (PHPEDITOR, 2007) e Anbis (ESTEVARENGO,2007). Estes foram definidos por dois motivos: os cinco primeiros, aps pesquisas realizadas a fim de se descobrir quais os mais utilizados pelos desenvolvedores; o Anbis, por estar sendo utilizado em outro trabalho tambm integrante do mesmo projeto do qual o presente trabalho faz parte. O objetivo destas avaliaes foi o de encontrar as vantagens e desvantagens do uso de cada um destes ambientes, a fim de elencar quais as principais caractersticas devem ser contempladas na construo de um novo IDE para desenvolvimento com a linguagem PHP. Os ambientes foram instalados e uma aplicao teste foi desenvolvida em todos. Para a utilizao dos mesmos foram utilizados tutoriais e documentao oficial, quando disponvel. As avaliaes tambm se basearam em entrevistas realizadas em fruns de discusso, com desenvolvedores que as utilizam no seu dia-a-dia. A Tabela 1 apresenta os resultados da avaliao dos ambientes e algumas caractersticas consideradas importantes para os autores.

2.3.4. Plugin
Segundo Lima et.al.(2004), a idia de plugin est associada extenso das funcionalidades da ferramenta, ou seja, plugar um pedao de software ao que j existe, o qual ir possibilitar ao desenvolvedor realizar atividades alm das que j eram possveis. Com isso, possvel adicionar recursos a um ambiente, criar novos ambientes de programao para outras linguagens ou para um propsito especfico. Um plugin pode ser desenvolvido e distribudo separadamente, pois, a menor unidade de funo de uma plataforma. Usualmente, uma ferramenta pequena pode ser escrita em apenas um plugin, porm pode ter funcionalidades divididas. Pode-se citar como exemplo, o Eclipse, onde tudo so plugins, o

Tabela 1 Caractersticas dos IDE/Editores Ambientes Caracterstica Proprietrio, livre ou gratuito? Cdigo-fonte aberto Possui API Documentao Capacidade de extenso PHP ECLIPSE Gratuito No Sim Sim Sim ZEND Studio Proprietrio No No Sim Sim DELPHI for DreamWeaver PHP Proprietrio No No Sim Sim Proprietrio No No Sim Sim PHP Editor Gratuito No No Sim No ANBIS Livre Sim No No Sim

I Jornada Cientfica e VI FIPA do CEFET Bambu Bambu/MG 2008

Algumas observaes que destacaram alguns dos ambientes avaliados dizem respeito facilidade de desenho e necessidade de construo de pouco cdigo. Entretanto, importante destacar que nenhum dos IDE possui ferramentas que ofeream num mesmo ambiente, facilidade de desenho e implementao de cdigo. 4. RESULTADOS E DISCUSSES

4.1.

Caractersticas desejveis do IDE

As anlises basearam-se nas facilidades oferecidas pelos ambientes, buscando algo mais produtivo, com recursos interessantes, no tendo uma anlise profunda sobre suas funcionalidades. O ambiente Eclipse possui facilidades de uso e possui API de extenso, atravs de sua API ele pode ser estendido a qualquer momento. O Anbis no possui nenhuma documentao til ao desenvolvedor, uma ferramenta para criao de aplicaes desktop, sendo que o foco maior em torno de aplicaes Web. O Zend Studio possui um timo analisador de cdigo, um interpretador que mostra a sada do cdigo sem ser preciso ir ao browser, mas proprietrio, o que dificulta para desenvolvedores. No PHPEclipse encontram-se estas mesmas caractersticas do Zend, porm, ele um produto livre e de cdigo aberto. Dos IDE avaliados o Eclipse apresenta-se como o mais completo e interessante, alm de possuir uma documentao extensa. Os plugins do eclipse possuem todas as permisses do ambiente principal, a API oferece aos plugins acesso ao ambiente e suficientemente completa. Contudo, expandir o IDE Eclipse pode ser trabalhoso, mas o prprio ambiente oferece ferramentas que do apoio a isso, como tambm suporte de vrias comunidades. A partir das comparaes feitas, possvel escolher qual o ambiente oferece maiores recursos para se desenvolver um IDE, a fim de, proporcionar facilidades e melhorias para o desenvolvimento de software. Diante disso, foi possvel identificar as facilidades que cada IDE possui, bem como suas caractersticas. Deste modo so apresentados requisitos funcionais e no funcionais de um IDE para PHP, como tambm uma arquitetura de software deste IDE.

Um IDE deve possuir uma API de extenso, pois, atravs da API que o plugin implementado; uma boa documentao, para que haja meios para viabilizar a construo de todas as funcionalidades; suporte a outros desenvolvedores; cdigo-fonte aberto, para maior facilidade, no desenvolvimento de plugins; aceitao do ambiente, quanto maior o nmero de usurios do ambiente, maior ser a aceitao do projeto. A localizao e o tipo de suportes oferecidos para os IDE devem ser observados, o suporte pode ser oferecido tanto por comunidades de usurios no Brasil quanto por comunidades estrangeiras. Para facilitar o entendimento de algumas caractersticas dos IDE. Em conformidade com o que se busca neste trabalho, um IDE/RAD que permita extenso e alta produtividade deve possuir alguns recursos que so indispensveis, dentre eles: Gratuito e open source; Multiplataforma; Possuir interface (API); Suporte a outras tecnologias, como HTML. JavaScript, Flash, ActiveX e outras que forem necessrias; Suporte a linguagem PHP-GTK, para possibilitar criao de aplicaes stand alone; Integrao com banco de dados; Checagem de sintaxe em tempo real; Colorao de sintaxe; Auto complemento de cdigo; Ajuda rpida ao selecionar palavra chave e mover mouse sobre a mesma; Um bom debugger; Organizador de cdigo; Browser integrado; Uma documentao desenvolvedor; que ajude o

Aps caracterizar o IDE, foi possvel apresentar uma proposta de arquitetura de software bsica para o desenvolvimento do IDE definido.

I Jornada Cientfica e VI FIPA do CEFET Bambu Bambu/MG 2008

4.2. Proposta Software

da

Arquitetura

de

O IDE definido deve ser desenvolvido sobre o paradigma de orientao a objetos, em uma plataforma como a do Eclipse, ou seja, possuir um kernel, que oferea, atravs da API de extenso, possibilidade de criao e acoplamento de plugins, utilizando reuso de software, como frameworks e bibliotecas. Este IDE deve ser livre e open source, possibilitando o desenvolvimento de aplicaes tanto para Web quanto para stand alone. Considerando a plataforma Eclipse e o ambiente PHPEclipse, que j possui muitos recursos importantes, sugere-se o desenvolvimento de plugins e acoplamento dos mesmos a este ambinete. Como proposta, desenvolver os seguintes plugins: Plugin para construo de aplicaes stand alone; Plugin para suporte a linguagem PHP-GTK; Plugin editor visual para interface.

possam refletir a partir desta pesquisa e dar continuidade proposta do mesmo. Tem-se como sugesto, a aplicao da proposta apresentada, para adio de alguma nova funcionalidade ao plugin PHP para plataforma Eclipse e busca de uma nova plataforma de desenvolvimento de IDE que atenda todas as necessidades do desenvolvedor.

REFERNCIAS
BORGES, Karen; VIANA PRETO, Alexandre; Notas de Aula, paradigmas e linguagens de programao. Disponvel em <http://www.thielke.com.br/alexandre/ paradigma.htm>. Acesso em: 20 de Maro de 2007. CODE GEAR, 2007; Site oficial Disponvel em < http://www.codegear.com/ /delphi/php>. Acesso em 28 de Maro de 2007. LIMA, Lucas Albertins, et al. Eclipse tools ferramenta para auxlio composio dinmica de software. Campina Grande, 2005. Depto. de Sistemas e Computao DSC/UFCG. Disponvel em /~pet/Artigos/ <http://www.dsc.ufcg.edu. _ECLIPSETOOLS. >. Acesso em 17 de Janeiro de 2007. CONVERSE, Tim; PARK, Joyce. PHP a bblia. 2. ed. Rio de Janeiro: Elsevier, 2003. 868 p. DALLOGLIO, Pablo; PHP-GTK, Criando aplicaes grficas com PHP. 1. ed. Rio de Janeiro: Novatec, 2004. 127p. ECLIPSE, 2007; Site oficial. Disponvel em <http://www.eclipse.org>. ltimo acesso em 15 Maro de 2007. ESTEVARENGO, L. F. Z.. Comunicao pessoal via software de comunicao MS Messenger em 02 de Junho de 2007. GOODMAN, Danny. Java script a bblia. 1. ed. Rio de Janeiro: Elsevier Editora Ltda, 2001. 909p. MACROMEDIA, 2007; Site Oficial. Disponvel em <http//www.macromedia/softwaresoftware/ dreamweaver>. Acesso em 30 de Janeiro de 2007. PHPEDITOR, 2007. Site oficial. Disponvel em <http://paginas.terra.com.br/informatica/php_editor/> em 25 de Janeiro de 2007. PHP.NET, Inc. PHP. Hipertext Preprocessor. 1995 2007. Disponvel em <http://www.php.net>. Acesso em: 25 de Janeiro de 2007. SEBESTA, Robert W. Conceitos de linguagem de programao. 4.ed. Rio de Janeiro: Alta Books, 2000. ZEND, 2007. Zend Studio. Disponvel em http://www.zend.com/products/zend_studio?hpb=4 >. Acesso em 20 de Maro de 2008.

Aps definida a arquitetura bsica do IDE e os requisitos funcionais e no funcionais, possvel escolher entre fazer aplicaes para Web ou stand alone. Este IDE ter todas as funcionalidades presentes no PHPEclipse, como tambm as funcionalidades adicionais, observadas em outros ambientes.

5.

CONCLUSO

Cabe, por fim, ressaltar que este artigo colaborou com o estudo de um IDE, com o intuito de propor melhores facilidades no desenvolvimento de software. Alguns IDE e editores existentes para linguagem PHP foram analisados, as avaliaes foram satisfatrias e permitiram o estudo de tcnicas de reusos de software. Neste contexto, foi escolhida a plataforma Eclipse, pelas suas vantagens, caractersticas e por oferecer facilidades de extenso, atravs de plugins. As metas alcanadas serviro de fundamento para definio de um IDE, onde ser definido todas as atividades, passos e fases de desenvolvimento, alm dos plugins de implementao que devem ser gerados. Cabe, salientar que este artigo j pode ser utilizado como referncia, para desenvolvedores de software, a fim de desenvolver o ambiente aqui definido. Este trabalho contribuiu para o projeto IDE4PHP, no tendo nenhum custo financeiro, permitindo um estudo para que outros desenvolvedores

Vous aimerez peut-être aussi