Está en la página 1de 8

Desenvolvimento Rpido de Aplicaes Comerciais com a Ferramenta RAD Plus

Srgio Antnio Pohlmann Departamento de Informtica Universidade Catlica Nuestra Seora de la Asuncin Sede Regional itapa Encarnacin - Paraguay
sergio@ycube.net

Abstract. This paper describes a RAD Plus system, a tool developed by the papers author, to permit an easy, faster and very portable develop of a web application. The presented software, according your specifications and use cases, permit a clean and efficient development of a business systems. Resumo. Este artigo descreve o sistema RAD Plus, uma ferramenta desenvolvida pelo autor do artigo, para permitir um desenvolvimento fcil, rpido e altamente portvel, para aplicaes web. O software apresentado, de acordo com suas especificaes e casos de uso, permite um desenvolvimento eficiente e limpo de sistemas destinados gesto comercial.

1. Introduo
O desenvolvimento de sistemas um dos principais objetivos de estudos da Cincia da Computao, em todos os pases do mundo. As dificuldades enfrentadas, os problemas de prazos, de estruturas, de acessibilidade e conectividade so problemas que preocupam a jovens e antigos programadores de todos os tempos [Brooks, 1995]. Entre s reas de programao, a chamada programao comercial, software de gesto, ou desenvolvimento de sistemas com usos em aplicaes comerciais, uma das mais requisitadas, pois representa o front end da Cincia da Computao [Pressman, 2005], em relao ao universo de usurios existentes. Neste artigo, o autor faz uma apresentao da ferramenta RAD Plus, que busca otimizar alguns dos pontos mais crticos do processo de desenvolvimento de sistemas comerciais.

2. Metodologias de desenvolvimento
Muitas so as metodologias de desenvolvimentos de software conhecidas. Algumas tradicionais, outras consideradas avanadas, ou geis [Pressman,2005]. No pertence ao escopo deste trabalho, aprofundar conhecimentos na rea de metodologias, no entanto, devemos citar alguns dos problemas mais comuns, no processo de desenvolvimento, e que so fundamentais para entender os princpios bsicos que nortearam a criao do software aqui apresentado: Tempo de desenvolvimento (cumprir com prazos) [Brooks, 1995]; Portabilidade [Nakhimovsky, 2004]; Padronizao de Interfaces [Goodman, 1998]; Reaproveitamento de cdigo [Pressman, 2005]; Conectividade Local ou Global (intranet/extranet/internet); Interao com o Cliente [McConnel, 1996]; Dificuldade de Manuteno [Pressman, 2005].

Evidentemente, so muitas as metodologias, as tcnicas, e as ferramentas que se desenvolveram ou aperfeioaram nestes ltimos anos, com a finalidade de adequar-se nossa realidade, e aos problemas ou dificuldades antes apresentados. No entanto, ainda estamos longe de conseguir a bala de prata (silver bullet) [Brooks, 1995] que ir dar o tiro de misericrdia nos problemas de desenvolvimento de software.

3. O projeto RAD Plus


Nesta seo, se apresentar de uma forma mais completa a ferramenta de que se trata o escopo deste trabalho. Como consiste de princpios e tcnicas muito especficas, ser prudente apresentar uma pequena resenha histrica, seguido dos objetivos e caractersticas do produto, para melhor compreenso. 3.1. Histrico Baseado na idia de facilitar o processo de programao de sistemas comerciais ou de gesto, e de padronizar processos para empresas criadoras de software, o autor deste artigo comeou, ainda no incio da dcada de 90, tentando criar um padro de desenvolvimento orientado a gesto, que resultou muito limitado devido pouca experincia do autor, e s limitaes da linguagem. Na metade da dcada, j com alguns dos princpios hoje utilizados pela ferramenta, logrou um significativo avano, desenvolvendo uma ferramenta RAD (Desenvolvimento Rpido de Aplicaes) [McConnel, 1996] utilizando a linguagem Clipper. Os anos restantes da dcada de 90, e os primeiros da dcada atual, foram dedicados a estudos e retroalimentao sobre os resultados obtidos. Finalmente, no ano de 2004, o autor completou o que seria o desenho inicial, e a relao das caractersticas principais que deveriam guiar o desenvolvimento da ferramenta. As experincias anteriores, desenvolvendo aplicaes comerciais e utilitrios com muitas linguagens de programao (C, Clipper, PHP, Java, Linguagens visuais), e a verso Clipper da ferramenta, permitiram ter uma idia bastante precisa sobre as dificuldades apresentadas para o desenvolvimento de sistemas completos utilizando princpios RAD. Na metade de 2005, apoiado por um pequeno grupo de programadores que faziam as vezes de testers do sistema, e por alguns clientes que constituam os casos de uso para provas mais adequadas realidade, foi liberada a primeira verso considerada estvel. Alm de provar a funcionalidade direta da ferramenta em questo, o grupo de testers tambm esteve encarregado de elaborar estudos de viabilidade, anlises e desenhos de sistemas com caractersticas semelhantes, em linguagens como Delphi, PHP, Java, JSP e Visual FoxPro, de forma a dispor de comparaes efetivas entre o desenvolvimento convencional e o desenvolvimento RAD com a ferramenta RAD Plus. Alguns dos resultados chegaram a ser utilizados como aporte para a apresentao da tese de Engenharia de uma das programadoras participantes do projeto. Os clientes tambm (como em toda a metodologia RAD) participaram destas provas, retornando sua opinio para aumentar e eficincia do sistema, e confirmando as provas e resultados obtidos pelos programadores. A metodologia formal de provas era a de analizar e desenhar uma determinada aplicao de prova, utilizando as tcnicas convencionais, estimar as caractersticas, o custo e o tempo de desenvolvimento [Pressman, 2005], paralela ao desenvolvimento desta mesma aplicao com o uso da ferramenta Rad Plus. Devido substancial

diferena de tempo estimado entre as duas metodologias, somente em raras vezes se desenvolveram, na prtica, os dois sistemas (convencional e RAD). Finalmente, concluda e aprovada a aplicao RAD pelo prpio cliente, um estudo realizado entre os clientes e programadores estimava o ganho de produtividade obtido. Nos poucos casos em que realmente se programou utilizando as duas metodologias, estas estimativas foram postas prova, na prtica, e mostraram ser corretas. Chegamos a obter uma aproximado de 50% de ganho de tempo (mantendo a necessaria qualidade do software produzido) na etapa de desenvolvimento, e 80% na etapa de manuteno do produto. Cabe observar que, ainda que o tempo de desenvolvimento no estava entre nossos objetivos principais, foi um dos fatores apontados como mais significativos por parte dos clientes, aliado, evidentemente, aos objetivos principais, que se mostraram plenamente cumpridos. Nos anos seguintes, sem contar com a equipe anterior, o autor continuou o desenvolvimento, lanando novas verses, e buscando novas funcionalidades, em especial, buscando cumprir com as necessidades que a retroalimentaco dos clientes lhe propiciavam, disponibilizando o produto em web, e ditando palestras e cursos sobre seu uso e aplicaes. 3.2. Objetivos Em primeiro lugar, cabe observar que a ferramenta em questo (RAD Plus), em nenhum momento pode ter a pretenso de consistir-se uma soluo definitiva para os problemas de desenvolvimento e metodologias anteriormente apresentados. To somente trata-se de mais uma alternativa, que permitir ao programador, uma opo a mais, na vasta gama de alternativas de desenvolvimento de software disponveis no mercado. Como objetivos principais, esto: Simplicidade - Propiciar um ambiente simples de desenvolvimento, de operao rpida, que permita unificar processos e procedimentos. Compatibilidade e Baixa exigncia de Hardware / Software Permitir que o sistema gerado, tanto a nvel de servidor quanto a nvel de cliente, exija um mnimo de requerimentos de hardware e software. Da mesma forma, utilizando tecnologias altamente compatveis, garantir excelente nvel de portabilidade, permitindo que um sistema possa ser desenvolvido em qualquer das plataformas utilizadas, tanto em hardware como a nivel de sistemas operacionais. Para compatibilidade de hardware, a ferramenta foi provada e teve igual comportamento (guardadas as propores quanto velocidade), nas plataformas de hardware IBM PC compatveis, com um e dois microprocessadores de 32 e 64 bits, RISC RS6000, Apple Macintosh PPC 32 e 64 bits e Apple Macintosh Intel Core Duo 64 bits. Para as provas de compatibilidade de sistema operacional, foram usados os sistemas operacionais Windows (95, 98, 2000 e XP), MAC OS X 10 (Panther e Tiger), IBM AIX, e Linux (vrias distribuies). Os referidos testes foram efetuados tanto na configurao de cliente, como de servidor, assim como utilizando a mesma mquina simultneamente como cliente e como servidor, e os resultados foram plenamente satisfatrios (sem diferenas funcionais entre os diferentes sistemas operacionais). Com um grupo de alunos voluntrios de duas Universidades locais, chegamos a provar (com absoluto sucesso), o sistema funcionando em mquinas com apenas 128 Mb de RAM, e tendo seu arranque (Boot) em um dispositivo flash (pen drive).

Alta conectividade O sistema gerado deve permitir acesso desde redes locais (LAN) at acessos por internet (evidentemente com nveis de acesso definveis para cada usurio). Baixo custo O uso de tecnologias Open Source, aliado as poucas exigncias de hardware e software, permite que os sistemas gerados possam representar um investimento bastante modesto por parte do programador. Suporte a i18n Ainda que o sistema original suporta apenas os idiomas Portugus, Ingls e Espanhol, a estrutura utilizada, com um eficiente sistema de templates internacionalizveis, permite a converso rpida da ferramenta para muitos outros idiomas. Multi projeto Facilitar a que, em um mesmo servidor, utilizando a mesma cpia da ferramenta, se permita o desenvolvimento de vrios projetos, a clientes diferentes, que podem se conectar de forma simultnea e transparente. Facilidade de aprendizagem Tanto para o programador, como para o usurio, a interface apresentada simples e consistente, facilitando muito a tarefa de aprendizagem, que costuma ser um obstculo adicional, principalmente quando se trata de usurios. 3.3. Casos de Uso Desde as primeiras verses estveis, o sistema sempre foi provado com clientes reais, alm, obviamente, da enorme quantidade de provas com clientes e situaes fictcias, a que, normalmente, se submete um software, para garantia de qualidade [Pressman, 2005]. Podemos citar alguns dos casos de uso mais salientes, como referncia. O primeiro caso de uso considerado como positivo (aceitado em 100% pelo cliente), foi um pequeno sistema de controle de uma lavanderia, desenvolvido no ano de 2005 para um cliente da cidade de Posadas, Argentina. No ano de 2006, por solicitao de uma empresa brasileira, classificadora de cereais, desenvolveu-se, com o Plus, um sistema completo de classificao vegetal, j utilizando acesso web, clientes dispersos, etc. Ainda em 2006, Aumentamos um pouco os recursos do sistema de lavanderia, incluindo controle de fluxo de caixa e um pequeno sistema interno de mensagens (tipo correio eletrnico, entre os usurios do sistema). No ano de 2006, desenvolveu-se um sistema de controle de estoque, para dois clientes especficos do Paraguai (ferragem e distribuidora de tecidos), e o segundo semestre do ano est dedicado ao desenvolvimento de um sistema mais complexo, com finalidades absolutamente genricas, a nvel de comrcio: Estoque, Clientes, Fornecedores, Bancos, Caixa, Contas a Pagar e Receber. Tambm tivemos a experincia de um sistema de Gesto de configurao, de uso e manuteno bastante simples, desenvolvido com o Plus, por um aluno da Universidade Nacional de Itapa, no Paraguai. O sistema de Classificao Vegetal foi desenvolvido em portugus (sem nenhuma modificao na ferramenta), e os demais, devido a localizao geogrfica dos clientes, em espanhol.

A maioria destes clientes utilizam servidor Linux e clientes Windows. No entanto, um deles utiliza Apple ppc, e a base de clientes do outro est distribuda em Windows, Linux e MAC OSX. No existe nenhuma diferena operacional entre os sistemas em qualquer das plataformas. Inclusive, para o servidor MAC OSX, alguns mdulos foram desenvolvidos em mquinas Windows, outros em MAC OSX, e ainda outros em Linux. Os projetos correspondentes foram apenas transportados de uma mquina para outra, sem nenhum processo de converso, funcionando com perfeio, logo depois de transportadas. 3.4. Tecnologias utilizadas O RAD Plus utiliza somente tecnologias bastante conhecidas e consideradas conceituadas no mercado. A figura 1 cumpre o objetivo de demonstrar em forma de blocos, o diagrama simplificado da estrutura utilizada. Como Servidor de Base de Dados, utilizamos MySQL, havendo optado por verso 5.0 ou superior, devido ao suporte mais estvel transaes, e aos procedimentos armazenados. O Servidor de Aplicaes consiste de um Apache, como Servidor web (qualquer verso), e um PHP 4 ou superior. O que convencionamos chamar de motor interno se trata, realmente, de um conjunto de programas em PHP, HTML, XUL e Javascript, que se encarregam de montar a interface bsica de usurio, e dar suporte s conexes com a Base de Dados, e interagir com o projeto, que a sua vez, consiste de um grupo de arquivos controlados totalmente pela ferramenta, e que determinam o comportamento do sistema desenvolvido. O uso de XUL exige que o cliente utilize um motor gecko (o motor dos navegadores baseados na tecnologia de Mozilla, como Firefox), que bastante funcional e fcil de instalar (muitos dos sistemas operacionais provados j o traziam pr-instalado), e permite um desenho de interface bastante simplificado e eficiente, em comparao com HTML convencional.

Figura 1. Estrutura bsica do Plus

No lado do Cliente, utilizamos um Cliente HTML, que, conforme antes mencionado, se trata de um motor gecko, que, uma vez instalado, pode funcionar tanto no modo de navegador web, como no modo aplicao, permitindo uma aparncia mais profissional aos sistemas gerados [ Goodman, 2001] [Shafer, 2003] [Zakas, 2005]. O Motor Cliente consiste em um conjunto de sistemas Javascript, suportando de forma direta a interface XUL previamente gerada, de forma a efetuar todos os processos necessrios validao de dados, consultas on-line assncronas Base de Dados (atravs de xmlhttprequest), e recriao de elementos de interface. O uso de xmlHTTPrequest de forma direta [Nakhimovsky, 2004], em lugar de solues mais completas, como AJAX, veio da necessidade de reduzir ao mximo o trfego de rede, o que se obteve com o desenho de uma estrutura prpria para tratar as conexes assncronas. No momento do desenho do motor, esta caracterstica se fazia necessaria, ainda que em detrimento da compatibilidade e comprovada eficincia de AJAX. Os planos para implementaes de futuras verses contemplam a migrao definitiva para AJAX. Uma vez instalado no servidor, o RAD Plus pode ser acessado desde qualquer estao de servio dentro da rede, permitindo um inicio imediato do desenvolvimento. A interface utilizada para desenvolvimento a mesma da aplicao final, o que permite que a manuteno seja feita de qualquer estao, bastando dispor de suficiente permisso de acesso. O Acesso ao sistema, por parte dos usurios, utiliza um sistema de grupos e trustees (relaes de confiana), que, utilizando uma estrutura binria de conferencia, permite muita flexibilidade e velocidade na determinao das permisses de acesso. O sistema se baseia em formulrios. Enquanto o programador determina como quer que sejam seus formulrios, o sistema se encarrega de manter, ordenar e preparar as tabelas necessrias na Base de Dados. Os campos e estruturas criados so constantemente armazenados em uma espcie de base de conhecimento, onde o sistema consulta quando do desenvolvimento de outros formulrios no mesmo projeto, ou mesmo, quando o programador est trabalhando em projetos diferentes. Isto permite portar estruturas de dados de forma transparente, em um mesmo projeto, ou entre projetos isolados, dentro do mesmo servidor. Para documentar o sistema gerado, o RAD Plus aproveita a sua base de conhecimento, e as caractersticas que foram especificadas para cada projeto/formulrio. Desta forma, a documentao correspondente, gerada de forma dinmica, est sempre atualizada, e pode ser consultada em qualquer momento. 3.5. Envolvimento com o Cliente, e Facilidade de Manuteno Onde mais se centra a tecnologia RAD [McConnel, 1996] na efetiva participao do cliente no desenvolvimento do sistema, e na constante retroalimentao para modificaes[Pressman, 2005]. O RAD Plus se mostrou muito eficiente nestes conceitos, visto que a manuteno dos sistemas gerados bastante direta, se encarregando, inclusive, a ferramenta, de efetuar as consistncias de campos na Base de Dados, quando se produz uma modificao no sistema gerado. Assim, o cliente pode solicitar alteraes (definitivas ou experimentais), que podem ser introduzidas de forma rpida e eficiente, refletindo, imediatamente, na Base de Dados do cliente.

Devido aos princpios de conectividade e portabilidade, estas manutenes e alteraes podem ser efetuadas, inclusive, de forma remota, via web, dependendo do caso e necessidade do cliente. 3.6. Licena de Uso Originalmente, o RAD Plus foi desenhado para ser uma ferramenta proprietria. Com o passar dos anos, e com o acmulo de experincias em relao a clientes e desenvolvedores, o autor disponibilizou a ferramenta como Open Source, utilizando internet como recurso principal de distribuio e suporte. O uso de uma licena Creative Commons, permite a necessria flexibilidade para empresas de software ou mesmo programadores free lancers. 3.7. Obteno, Documentao e Colaborao com o Projeto Ainda que a pgina oficial do projeto esteja desde o ano de 2005 hospedada em http://www.ycube.net/plusproject.php, as atualizaes mais constantes esto na pgina do grupo de desenvolvimento http://groups.google.com.py/group/desarrollo_plus_rad. Na mesma pgina do grupo de desenvolvimento, se encontra a documentao, ainda em fase de desenvolvimento, alm de acesso a demonstraes e comentrios dos usurios (programadores). 3.8. Dificuldades, e projeo para o futuro Desenvolver um sistema desta magnitude implica, sempre, em um esforo considervel. Mais ainda se consideramos que o autor no conta com nenhum patrocnio ou contrato que permita uma dedicao exclusiva ao projeto, ou grupo de trabalho que agilize a divulgao do mesmo. No entanto, a participao em palestras e seminrios em Universidades da rea de informtica, permitem que, lentamente, possa haver um conhecimento e uma adeso a este novo conceito de desenvolvimento de software de gesto. Ainda faltam (como um to do) para verses futuras, um suporte a imagens, a possibilidade de uso de mltiplos Motores de Bases de Dados, Melhorias na documentao do projeto, aumento de recursos a nvel de interface de usurio, e algumas melhorias na migrao inter-projetos.

5. Concluso
A principal motivao deste artigo foi a possibilidade de apresentao desta ferramenta de desenvolvimento comunidade cientfica. No obstante, existem fatores secundrios que estimularam a que o presente trabalho possa ser apresentado. Tomando em conta a histria do sistema, seus casos de uso, os recursos apresentados, e a experincia de desenvolver utilizando esta ferramenta, podemos afirmar, sem medo de equvocos, que se trata de um sistema capaz de impactar a aos desenvolvedores de software de gesto, devido suas caractersticas e a sua inovadora forma de desenvolvimento e manuteno de sistemas. As dificuldades aqui apresentadas em relao a continuao do projeto, ainda que tenham uma enorme relao pecuniria, no so somente de ordem financeira: O elevado grau de abstrao utilizado no desenvolvimento de algumas partes do projeto desestimula a participao de alguns programadores no ncleo do sistema, mesmo este

sendo Open Source, e estando relativamente bem documentado. Evidentemente aqui deve ser assumida uma enorme responsabilidade por parte dos programadores que desejam ou se proponham a participar do desenvolvimento e das melhorias no ncleo do Plus, visto que deles deve partir a predisposio para estudar devidamente o sistema, buscar elucidar dvidas estruturais que surjam, e efetuar uma planificao adequada para as atividades (sejam ou no relacionadas programao) que podem desenvolver. Uma atividade interessante que estamos fomentando (no momento, apenas no ambiente universitrio) a de promover palestras e cursos de esclarecimentos para auxiliar os programadores interessados na contribuio com o progresso do sistema. A popularizao do uso do RAD Plus tambm obedece s leis convencionais de mercado. Como muito pouco conhecido, no h incentivo para seu uso, existe pouco auxilio documentao e provas, e so poucos os clientes que conhecem a tecnologia utilizada, e que estejam dispostos a investir em sistemas de gesto desenvolvidos com esta ferramenta. Sendo possvel ao meio acadmico, conhecer, provar e incentivar a adoo da ferramenta como alternativa de desenvolvimento, poderamos prever uma curva crescente de uso e recursos, visto que a utilizao massiva de uma ferramenta de software sempre traz um crescimento de qualidade da mesma. No h dvidas em quanto a utilidade do RAD Plus, inclusive quando observamos os critrios de desenvolvimento rpido de aplicaes [McConnel, 1996], ou as conceituadas consideraes de The Mythical Man-Month [Brooks, 1995]. Como ferramenta de desenvolvimento, o sistema consegue cumprir com as propostas e objetivos apresentados, e mantm um invejvel nvel de estabilidade, garantido, especialmente, pelas ferramentas utilizadas a nvel de servidor, conhecidas e mundialmente aceitas como solues confiveis.

6. Referencias
Brooks, Frederick P., Jr. (1995), The Mythical Man Month, Addison Wesley, anniversary edition. McConnel, Steve (1996), Rapid Development, Microsoft Press, 1st edition. Goodman, Danny (1998), Dynamic HTML: The Definitive Reference, OReilly, first edition. Goodman, Danny (2001), Javascript Bible, Gold Edition, Hungry Minds, 1st edition. Shafer, Dan (2003), HTML Utopia. Designing Without Tables Usibng CSS SitePoint, 1st edition. Nakhimovsky, Alexander and Myers, Tom (2004), Google, Amazon, and Beyond: Creating and Consuming Web Services, Springer-Verlag, 1st edition. Zakas, Nicholas C. (2005), Profesional Javascript for Web Developers, Wiley Publishing, 1st edition. Pressman, Roger S. (2005),Software Engineering A Practioners Approach McGrawHill, 6th edicin.

También podría gustarte