plus rad - desenvolvimento rápido de aplicações comerciais

13
Desenvolvimento Rápido de Aplicações Comerciais com a Ferramenta RAD Plus Sérgio Antônio Pohlmann Departamento de Informática – Universidade Católica “Nuestra Señora de la Asunción” Sede Regional itapúa – Encarnación - Paraguay [email protected] Abstract. This paper describes a RAD Plus system, a tool developed by the paper’s 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 fácil, rápido e altamente portável, para aplicações web. O software apresentado, de acordo com suas especificações e casos de uso, permite um desenvolvimento eficiente e limpo de sistemas destinados à gestão comercial. 1. Introdução O desenvolvimento de sistemas é um dos principais objetivos de estudos da Ciência da Computação, em todos os países do mundo. As dificuldades enfrentadas, os problemas de prazos, de estruturas, de acessibilidade e conectividade são problemas que preocupam a jovens e antigos programadores de todos os tempos [Brooks, 1995]. Entre às áreas de programação, a chamada programação comercial, software de gestão, ou desenvolvimento de sistemas com usos em aplicações comerciais, é uma das mais requisitadas, pois representa o front end da Ciência da Computação [Pressman, 2005], em relação ao universo de usuários existentes. Neste artigo, o autor faz uma apresentação da ferramenta RAD Plus, que busca otimizar alguns dos pontos

Upload: sergio-a-pohlmann

Post on 28-Oct-2015

53 views

Category:

Documents


1 download

DESCRIPTION

Paper sobre o uso da ferramenta de programação rápida RAD Plus, de autoria de Sérgio A. Pohlmann, no desenvolvimento de aplicações comerciais.

TRANSCRIPT

Page 1: Plus RAD - Desenvolvimento Rápido de Aplicações Comerciais

Desenvolvimento Rápido de Aplicações Comerciais com a Ferramenta RAD Plus

Sérgio Antônio Pohlmann

Departamento de Informática – Universidade Católica “Nuestra Señora de la Asunción” Sede Regional itapúa – Encarnación - Paraguay

[email protected]

Abstract. This paper describes a RAD Plus system, a tool developed by the paper’s 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 fácil, rápido e altamente portável, para aplicações web. O software apresentado, de acordo com suas especificações e casos de uso, permite um desenvolvimento eficiente e limpo de sistemas destinados à gestão comercial.

1. Introdução

O desenvolvimento de sistemas é um dos principais objetivos de estudos da Ciência da Computação, em todos os países do mundo. As dificuldades enfrentadas, os problemas de prazos, de estruturas, de acessibilidade e conectividade são problemas que preocupam a jovens e antigos programadores de todos os tempos [Brooks, 1995].

Entre às áreas de programação, a chamada programação comercial, software de gestão, ou desenvolvimento de sistemas com usos em aplicações comerciais, é uma das mais requisitadas, pois representa o front end da Ciência da Computação [Pressman, 2005], em relação ao universo de usuários existentes.

Neste artigo, o autor faz uma apresentação da ferramenta RAD Plus, que busca otimizar alguns dos pontos mais críticos do processo de desenvolvimento de sistemas comerciais.

2. Metodologias de desenvolvimento

Muitas são as metodologias de desenvolvimentos de software conhecidas. Algumas tradicionais, outras consideradas avançadas, ou ágeis [Pressman,2005].

Não 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 são fundamentais para entender os princípios básicos que nortearam a criação do software aqui apresentado: Tempo de desenvolvimento (cumprir com prazos) [Brooks, 1995]; Portabilidade [Nakhimovsky, 2004]; Padronização de Interfaces [Goodman, 1998]; Reaproveitamento de código [Pressman, 2005]; Conectividade Local ou Global (intranet/extranet/internet); Interação com o Cliente [McConnel, 1996]; Dificuldade de Manutenção [Pressman, 2005].

Page 2: Plus RAD - Desenvolvimento Rápido de Aplicações Comerciais

Evidentemente, são muitas as metodologias, as técnicas, e as ferramentas que se desenvolveram ou aperfeiçoaram 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 misericórdia nos problemas de desenvolvimento de software.

3. O projeto RAD Plus

Nesta seção, se apresentará de uma forma mais completa a ferramenta de que se trata o escopo deste trabalho. Como consiste de princípios e técnicas muito específicas, será prudente apresentar uma pequena resenha histórica, seguido dos objetivos e características do produto, para melhor compreensão.

3.1. Histórico

Baseado na idéia de facilitar o processo de programação de sistemas comerciais ou de gestão, e de padronizar processos para empresas criadoras de software, o autor deste artigo começou, ainda no início da década de 90, tentando criar um padrão de desenvolvimento orientado a gestão, que resultou muito limitado devido à pouca experiência do autor, e às limitações da linguagem. Na metade da década, já com alguns dos princípios hoje utilizados pela ferramenta, logrou um significativo avanço, desenvolvendo uma ferramenta RAD (Desenvolvimento Rápido de Aplicações) [McConnel, 1996] utilizando a linguagem Clipper.

Os anos restantes da década de 90, e os primeiros da década atual, foram dedicados a estudos e retroalimentação sobre os resultados obtidos. Finalmente, no ano de 2004, o autor completou o que seria o desenho inicial, e a relação das características principais que deveriam guiar o desenvolvimento da ferramenta. As experiências anteriores, desenvolvendo aplicações comerciais e utilitários com muitas linguagens de programação (C, Clipper, PHP, Java, Linguagens visuais), e a versão Clipper da ferramenta, permitiram ter uma idéia bastante precisa sobre as dificuldades apresentadas para o desenvolvimento de sistemas completos utilizando princípios 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 constituíam os casos de uso para provas mais adequadas à realidade, foi liberada a primeira versão considerada estável.

Além de provar a funcionalidade direta da ferramenta em questão, o grupo de testers também esteve encarregado de elaborar estudos de viabilidade, análises e desenhos de sistemas com características semelhantes, em linguagens como Delphi, PHP, Java, JSP e Visual FoxPro, de forma a dispor de comparações 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 apresentação da tese de Engenharia de uma das programadoras participantes do projeto. Os clientes também (como em toda a metodologia RAD) participaram destas provas, retornando sua opinião para aumentar e eficiência do sistema, e confirmando as provas e resultados obtidos pelos programadores.

A metodologia formal de provas era a de analizar e desenhar uma determinada aplicação de prova, utilizando as técnicas convencionais, estimar as características, o

Page 3: Plus RAD - Desenvolvimento Rápido de Aplicações Comerciais

custo e o tempo de desenvolvimento [Pressman, 2005], paralela ao desenvolvimento desta mesma aplicação com o uso da ferramenta Rad Plus. Devido à substancial diferença de tempo estimado entre as duas metodologias, somente em raras vezes se desenvolveram, na prática, os dois sistemas (convencional e RAD). Finalmente, concluída e aprovada a aplicação RAD pelo própio 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 prática, 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 manutenção do produto. Cabe observar que, ainda que o tempo de desenvolvimento não 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, lançando novas versões, e buscando novas funcionalidades, em especial, buscando cumprir com as necessidades que a retroalimentacão dos clientes lhe propiciavam, disponibilizando o produto em web, e ditando palestras e cursos sobre seu uso e aplicações.

3.2. Objetivos

Em primeiro lugar, cabe observar que a ferramenta em questão (RAD Plus), em nenhum momento pode ter a pretensão de consistir-se uma solução definitiva para os problemas de desenvolvimento e metodologias anteriormente apresentados. Tão somente trata-se de mais uma alternativa, que permitirá ao programador, uma opção a mais, na vasta gama de alternativas de desenvolvimento de software disponíveis no mercado.

Como objetivos principais, estão:

Simplicidade - Propiciar um ambiente simples de desenvolvimento, de operação rápida, que permita unificar processos e procedimentos.

Compatibilidade e Baixa exigência de Hardware / Software – Permitir que o sistema gerado, tanto a nível de servidor quanto a nível de cliente, exija um mínimo de requerimentos de hardware e software. Da mesma forma, utilizando tecnologias altamente compatíveis, garantir excelente nível 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 proporções quanto à velocidade), nas plataformas de hardware IBM PC compatíveis, 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 (várias distribuições). Os referidos testes foram efetuados tanto na configuração de cliente, como de servidor, assim como utilizando a mesma máquina simultâneamente como cliente e como servidor, e os resultados foram plenamente satisfatórios (sem diferenças funcionais entre os diferentes sistemas operacionais). Com um grupo de alunos voluntários de duas

Page 4: Plus RAD - Desenvolvimento Rápido de Aplicações Comerciais

Universidades locais, chegamos a provar (com absoluto sucesso), o sistema funcionando em máquinas 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 níveis de acesso definíveis para cada usuário).

Baixo custo – O uso de tecnologias Open Source, aliado as poucas exigências 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 Português, Inglês e Espanhol, a estrutura utilizada, com um eficiente sistema de templates internacionalizáveis, permite a conversão rápida da ferramenta para muitos outros idiomas.

Multi projeto – Facilitar a que, em um mesmo servidor, utilizando a mesma cópia da ferramenta, se permita o desenvolvimento de vários projetos, a clientes diferentes, que podem se conectar de forma simultânea e transparente.

Facilidade de aprendizagem – Tanto para o programador, como para o usuário, a interface apresentada é simples e consistente, facilitando muito a tarefa de aprendizagem, que costuma ser um obstáculo adicional, principalmente quando se trata de usuários.

3.3. Casos de Uso

Desde as primeiras versões estáveis, o sistema sempre foi provado com clientes reais, além, obviamente, da enorme quantidade de provas com clientes e situações fictícias, a que, normalmente, se submete um software, para garantia de qualidade [Pressman, 2005]. Podemos citar alguns dos casos de uso mais salientes, como referência.

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 solicitação de uma empresa brasileira, classificadora de cereais, desenvolveu-se, com o Plus, um sistema completo de classificação 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 eletrônico, entre os usuários do sistema).

No ano de 2006, desenvolveu-se um sistema de controle de estoque, para dois clientes específicos 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 genéricas, a nível de comércio: Estoque, Clientes, Fornecedores, Bancos, Caixa, Contas a Pagar e Receber. Também tivemos a experiência de um sistema de Gestão de configuração, de uso e manutenção bastante simples, desenvolvido com o Plus, por um aluno da Universidade Nacional de Itapúa, no Paraguai.

Page 5: Plus RAD - Desenvolvimento Rápido de Aplicações Comerciais

O sistema de Classificação Vegetal foi desenvolvido em português (sem nenhuma modificação na ferramenta), e os demais, devido a localização geográfica 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á distribuída em Windows, Linux e MAC OSX.

Não existe nenhuma diferença operacional entre os sistemas em qualquer das plataformas. Inclusive, para o servidor MAC OSX, alguns módulos foram desenvolvidos em máquinas Windows, outros em MAC OSX, e ainda outros em Linux.

Os projetos correspondentes foram apenas transportados de uma máquina para outra, sem nenhum processo de conversão, funcionando com perfeição, 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 versão 5.0 ou superior, devido ao suporte mais estável à transações, e aos procedimentos armazenados.

O Servidor de Aplicações consiste de um Apache, como Servidor web (qualquer versão), 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 básica de usuário, e dar suporte às conexões 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 fácil de instalar (muitos dos sistemas operacionais provados já o traziam pré-instalado), e permite um desenho de interface bastante simplificado e eficiente, em comparação com HTML convencional.

Page 6: Plus RAD - Desenvolvimento Rápido de Aplicações Comerciais

Figura 1. Estrutura básica 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 aplicação, permitindo uma aparência 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 necessários à validação de dados, consultas on-line assíncronas à Base de Dados (através de xmlhttprequest), e recriação de elementos de interface.

O uso de xmlHTTPrequest de forma direta [Nakhimovsky, 2004], em lugar de soluções mais completas, como AJAX, veio da necessidade de reduzir ao máximo o tráfego de rede, o que se obteve com o desenho de uma estrutura própria para tratar as conexões assíncronas. No momento do desenho do motor, esta característica se fazia necessaria, ainda que em detrimento da compatibilidade e comprovada eficiência de AJAX. Os planos para implementações de futuras versões contemplam a migração definitiva para AJAX.

Uma vez instalado no servidor, o RAD Plus pode ser acessado desde qualquer estação de serviço dentro da rede, permitindo um inicio imediato do desenvolvimento.

A interface utilizada para desenvolvimento é a mesma da aplicação final, o que permite que a manutenção seja feita de qualquer estação, bastando dispor de suficiente permissão de acesso.

O Acesso ao sistema, por parte dos usuários, utiliza um sistema de grupos e trustees (relações de confiança), que, utilizando uma estrutura binária de conferencia, permite muita flexibilidade e velocidade na determinação das permissões de acesso.

O sistema se baseia em formulários. Enquanto o programador determina como quer que sejam seus formulários, o sistema se encarrega de manter, ordenar e preparar as tabelas necessárias na Base de Dados.

Page 7: Plus RAD - Desenvolvimento Rápido de Aplicações Comerciais

Os campos e estruturas criados são constantemente armazenados em uma espécie de base de conhecimento, onde o sistema consulta quando do desenvolvimento de outros formulários 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 características que foram especificadas para cada projeto/formulário. Desta forma, a documentação correspondente, gerada de forma dinâmica, está sempre atualizada, e pode ser consultada em qualquer momento.

3.5. Envolvimento com o Cliente, e Facilidade de Manutenção

Onde mais se centra a tecnologia RAD [McConnel, 1996] é na efetiva participação do cliente no desenvolvimento do sistema, e na constante retroalimentação para modificações[Pressman, 2005]. O RAD Plus se mostrou muito eficiente nestes conceitos, visto que a manutenção dos sistemas gerados é bastante direta, se encarregando, inclusive, a ferramenta, de efetuar as consistências de campos na Base de Dados, quando se produz uma modificação no sistema gerado. Assim, o cliente pode solicitar alterações (definitivas ou experimentais), que podem ser introduzidas de forma rápida e eficiente, refletindo, imediatamente, na Base de Dados do cliente.

Devido aos princípios de conectividade e portabilidade, estas manutenções e alterações podem ser efetuadas, inclusive, de forma remota, via web, dependendo do caso e necessidade do cliente.

3.6. Licença de Uso

Originalmente, o RAD Plus foi desenhado para ser uma ferramenta proprietária. Com o passar dos anos, e com o acúmulo de experiências em relação a clientes e desenvolvedores, o autor disponibilizou a ferramenta como Open Source, utilizando internet como recurso principal de distribuição e suporte. O uso de uma licença Creative Commons, permite a necessária flexibilidade para empresas de software ou mesmo programadores free lancers.

3.7. Obtenção, Documentação e Colaboração com o Projeto

Ainda que a página oficial do projeto esteja desde o ano de 2005 hospedada em http://www.ycube.net/plusproject.php, as atualizações mais constantes estão na página do grupo de desenvolvimento http://groups.google.com.py/group/desarrollo_plus_rad.

Na mesma página do grupo de desenvolvimento, se encontra a documentação, ainda em fase de desenvolvimento, além de acesso a demonstrações e comentários dos usuários (programadores).

3.8. Dificuldades, e projeção para o futuro

Desenvolver um sistema desta magnitude implica, sempre, em um esforço considerável. Mais ainda se consideramos que o autor não conta com nenhum patrocínio ou contrato que permita uma dedicação exclusiva ao projeto, ou grupo de trabalho que agilize a divulgação do mesmo. No entanto, a participação em palestras e seminários em

Page 8: Plus RAD - Desenvolvimento Rápido de Aplicações Comerciais

Universidades da área de informática, permitem que, lentamente, possa haver um conhecimento e uma adesão a este novo conceito de desenvolvimento de software de gestão.

Ainda faltam (como um to do) para versões futuras, um suporte a imagens, a possibilidade de uso de múltiplos Motores de Bases de Dados, Melhorias na documentação do projeto, aumento de recursos a nível de interface de usuário, e algumas melhorias na migração inter-projetos.

5. Conclusão

A principal motivação deste artigo foi a possibilidade de apresentação desta ferramenta de desenvolvimento à comunidade científica. Não obstante, existem fatores secundários que estimularam a que o presente trabalho possa ser apresentado.

Tomando em conta a história do sistema, seus casos de uso, os recursos apresentados, e a experiência de desenvolver utilizando esta ferramenta, podemos afirmar, sem medo de equívocos, que se trata de um sistema capaz de impactar a aos desenvolvedores de software de gestão, devido à suas características e a sua inovadora forma de desenvolvimento e manutenção de sistemas.

As dificuldades aqui apresentadas em relação a continuação do projeto, ainda que tenham uma enorme relação pecuniária, não são somente de ordem financeira: O elevado grau de abstração utilizado no desenvolvimento de algumas partes do projeto desestimula a participação de alguns programadores no núcleo 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 núcleo do Plus, visto que deles deve partir a predisposição para estudar devidamente o sistema, buscar elucidar dúvidas estruturais que surjam, e efetuar uma planificação adequada para as atividades (sejam ou não relacionadas à programação) que podem desenvolver. Uma atividade interessante que estamos fomentando (no momento, apenas no ambiente universitário) é a de promover palestras e cursos de esclarecimentos para auxiliar os programadores interessados na contribuição com o progresso do sistema.

A popularização do uso do RAD Plus também obedece às leis convencionais de mercado. Como é muito pouco conhecido, não há incentivo para seu uso, existe pouco auxilio à documentação e provas, e são poucos os clientes que conhecem a tecnologia utilizada, e que estejam dispostos a investir em sistemas de gestão desenvolvidos com esta ferramenta.

Sendo possível ao meio acadêmico, conhecer, provar e incentivar a adoção da ferramenta como alternativa de desenvolvimento, poderíamos prever uma curva crescente de uso e recursos, visto que a utilização massiva de uma ferramenta de software sempre traz um crescimento de qualidade da mesma.

Não há dúvidas em quanto a utilidade do RAD Plus, inclusive quando observamos os critérios de desenvolvimento rápido de aplicações [McConnel, 1996], ou as conceituadas considerações de The Mythical Man-Month [Brooks, 1995]. Como ferramenta de desenvolvimento, o sistema consegue cumprir com as propostas e objetivos apresentados, e mantém um invejável nível de estabilidade, garantido,

Page 9: Plus RAD - Desenvolvimento Rápido de Aplicações Comerciais

especialmente, pelas ferramentas utilizadas a nível de servidor, conhecidas e mundialmente aceitas como soluções confiáveis.

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, O’Reilly, 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 Practioner’s Approach McGraw-Hill, 6th edición.