Aplicações Móveis: Gestão de Estacionamento em Shoppings O conteúdo deste tutorial foi obtido do artigo de autoria da Kelly Lima Borges da Silva e da Linéia Bulhões Souza Rizzuto para a etapa de classificação do II Concurso Teleco de Trabalhos de Conclusão de Curso (TCC) 2006. Este tutorial apresenta o desenvolvimento de uma aplicação para ambiente móvel, desenvolvida em Java ME, que visa acesso remoto a informações sobre os estacionamentos de shoppings de modo que os usuários possam ter ciência da sua situação antes mesmo de utilizá-los, possibilitando ainda que esses clientes possam reservar vagas. O protótipo é composto por um módulo móvel e um módulo servidor. Por fim aborda-se a viabilidade da criação do sistema e futuras melhorias para oferecer um ambiente completo de Gestão para os Estacionamentos Privados de Shoppings. Kelly Lima Borges da Silva É graduada em Ciência da Computação com ênfase em Análise de Sistemas pela Universidade Salvador (UNIFACS, 2006). Atuou como Monitor na Politec Informática, exercendo atividades no Help Desk da Caixa Econômica Federal, e como Estagiária na Prefeitura Municipal de Salvador, exercendo atividades de implantação de sistemas. Atualmente é Analista de Suporte na Glauco Informática, exercendo atividades de implantação, suporte e treinamento aos usuários. Email: [email protected] 1 Linéia Bulhões Souza Rizzuto É graduada em Ciência da Computação com ênfase em Análise de Sistemas pela Universidade Salvador (UNIFACS, 2006). Atuou como Agente Administrativa na Prefeitura Municipal de Santo Antônio de Jesus, como Recepcionista no Banco do Brasil (Santo Antônio de Jesus), como Suporte de TI na Fundação José Silveira / Hospital Santo Amaro e como Suporte de Tecnologia na ILIMIT – Serviços de Informática e Comunicação Ltda. Outras ocupações mais recentes foram as de Atendimento WEB na NETRA Tecnologia, exercendo atividades de planejamento, homologação, implantação, treinamento e suporte Web, e como Desenvolvimento TI Internet na Rede Bahia, exercendo atividades de implementação de sistema para conteúdo de internet, homologação de sites e sistemas, treinamento e suporte de usuários. Atualmente é Gerente de Contas na Allen Informática – F&R Bahia Informática Ltda, exercendo atividades de atendimento, acompanhamento e análise das necessidades dos clientes, consultoria de projetos, preparação e participação de licitações e pregões, e comercialização de produtos (software e hardware) e serviços junto a empresas. Email: [email protected] Categoria: Telefonia Celular Nível: Introdutório Enfoque: Técnico Duração: 15 minutos Publicado em: 08/10/2007 2 Aplicações Móveis: Introdução Atualmente, existe a necessidade cada vez maior de integrar tecnologias de comunicação e mobilidade. Com o mundo globalizado e capitalista, as empresas estão sempre em busca de diferenciais que apresente soluções que possam prover a seus funcionários e clientes, ferramentas capazes de dinamizar seu tempo e facilitar a busca de informações a qualquer hora ou lugar, de forma rápida e eficiente. O acentuado desenvolvimento das tecnologias móveis vem permitindo a criação de uma grande variedade de sistemas e aplicativos que propõem facilitar operações de acesso e transmissão de dados via dispositivos móveis. No entanto, embora tenha disponibilidade de recursos, as várias possibilidades de implementações de aplicações para dispositivos móveis ainda não foi totalmente descoberta. Ao mesmo tempo, alguns pontos devem ser observados como a integração de uma grande variedade de plataformas, o desempenho da aplicação e as despesas com o desenvolvimento e alocação. O objetivo geral deste trabalho é o desenvolvimento de um protótipo para celular implementado na linguagem Java ME para gestão de estacionamentos privados de Shopping Centers. No tocante ao telefone celular, com a sua vasta utilização em diversos setores na economia, esse dispositivo ainda é utilizado como mero dispositivo de voz. Entretanto, mesmo com a sua capacidade computacional limitada, este dispositivo pode ser utilizado como ferramenta de dados, como será visto nas seções posteriores deste tutorial. Para compor este trabalho, procurou-se abordar os seguintes temas: As tecnologias para transmissão de dados que utilizadas atualmente; As plataformas de desenvolvimento BREW e Java ME, sendo a última utilizada neste trabalho; A metodologia utilizada na implementação do protótipo, bem como os padrões de projeto, a análise do problema, os requisitos e recursos necessários para a implementação; A solução proposta, seus módulos e interface; E finalmente, as conclusões obtidas a partir do desenvolvimento do projeto em questão. 3 Aplicações Móveis: Tecnologias de Transmissão Com o crescimento da telefonia celular, que antes era apenas centrada na transmissão de voz, os dispositivos passaram a disponibilizar cada vez mais serviços baseados em processamento e transmissão de dados. Para o desenvolvimento de aplicações para celular, estão sendo criados e utilizados vários tipos de tecnologias. Algumas operadoras restringem a utilização de certas tecnologias em seus aparelhos de celular. As tecnologias de transmissão mais utilizadas são GSM (Global System for Móbile Communication) e CDMA (Code Division Multiple Access). A primeira está crescendo em uma escala maior que a segunda. Segundo o portal TELECO, 2006, a tendência é que a GSM lidere o mercado de tecnologias de transmissão no Brasil e seja adotado por todas as operadoras de telefonia móvel. Por este motivo, GSM foi à tecnologia escolhida para a implementação deste projeto. Ambas são detalhadas a seguir. Global System for Mobiles (GSM) O GSM (Global System for Mobile Communication) é um padrão digital de segunda geração do telefone celular, que foi desenvolvido na Europa e é utilizado na maior parte do mundo. A arquitetura GSM utiliza a estrutura básica dos telefones celulares e apresenta as mesmas funcionalidades básicas dos demais sistemas celulares associadas à mobilidade como roaming[1] e handover[2] entre células (TELECO, 2006). A tecnologia GSM oferece um serviço para comunicação de dados que permite uma conexão a Internet sem a necessidade de se estabelecer uma chamada telefônica (always on), esse serviço é chamado de General Packet Radio Service (GPRS). No GPRS (General Packet Radio Service) os pacotes de dados são enviados através de múltiplos slots de tempo e não existe reserva. Os slots são alocados conforme a demanda dos pacotes enviados ou recebidos. Oferece o serviço de dados always on sem a necessidade de reservar permanentemente slots de tempo para o transporte de dados. A taxa de transporte de dados máxima do GPRS é de 26 a 40 kbit/s (TELECO, 2006). Com o objetivo de aumentar a taxa de dados para transmissão GSM/GPRS foi desenvolvido o padrão Enhanced Data rates for GSM Evolution (EDGE). Permitindo à operadora a utilização da mesma portadora de 200 KHz e direcionando-a à terceira geração. Code Division Multiple Access (CDMA) O padrão Code Division Multiple Access – CDMA (Acesso Múltiplo por Divisão de Código) é uma tecnologia que utiliza espalhamento espectral (Spread Spectrum) como meio de acesso para permitir que vários usuários compartilhem uma mesma banda de freqüências. O CDMA permite uma melhor utilização do espectro possibilitando um aumento de capacidade dos sistemas celulares, (TELECO, 2006). Uma das vantagens da utilização da tecnologia CDMA é a eficiência na utilização do espectro de freqüência, que é maior que as demais tecnologias existentes: AMPS, TDMA e GSM. Um dos fatores que contribui para a grande capacidade alcançada por sistemas CDMA é a reutilização da mesma freqüência de portadora em todas as células, o chamado reuso de 1. 4 Com o intuito de oferecer um aumento na capacidade do sistema e dos serviços disponíveis no CDMA foi desenvolvida uma tecnologia de transmissão de rádio chamada cdma2000 1xRTT (One Next Radio Transmission Technology), baseada na evolução do atual sistema cdmaOne para um sistema multimídia. Além de satisfazer as necessidades da geração 2,5 de sistemas sem fio, o CDMA 1xRTT é compatível com as versões anteriores do sistema, como o cdmaOne desenvolvido mundialmente, garantindo uma migração suave dos sistemas de segunda para os de terceira geração. Com a finalidade de aumentar ainda mais a velocidade dos dispositivos wireless, rumo à terceira geração, foi criada a tecnologia 1xEV-DO, um sistema de dados sem fio com alta velocidade e alta capacidade que combina a conveniência da mobilidade com o desempenho de uma rede de dados fixa. É verdadeiramente uma tecnologia 3G uma vez que permite transmissão de dados com taxas acima de 2.4 Mbps e ao mesmo tempo permite serviço de dados multimídia bastante avançados. [1] “No contexto de sistemas celulares, uma estação móvel está em roaming quando opera em um sistema celular de uma localidade diferente daquela em que ele é assinante do serviço” (TELECO, 2006). [2] “Em sistemas celulares, handover é o processo que ocorre quando o terminal móvel passa da área de cobertura de uma célula para a área de cobertura de uma célula vizinha” (TELECO, 2006). 5 Aplicações Móveis: Plataformas de Desenvolvimento Esta seção dá maior ênfase à plataforma Java ME, por ter sido a utilizada para o desenvolvimento da aplicação, devido às características de portabilidade, plataforma aberta (maior custo-benefício), orientada a objeto e por ter sido adotada pela tecnologia de transmissão GSM, a mais utilizada atualmente no Brasil para uso pessoal, conforme dados do portal TELECO, 2006. Binary Runtime Environment for Wireless (BREW) O Binary Runtime Environment for Wireless (BREW) ou Ambiente Binário de Execução para Celulares, da QUALCOMM, é uma plataforma voltada para o desenvolvimento de aplicações wirelless (sem fio), com distribuição gratuita do Kit de Desenvolvimento de Software (BREW SDK ou Software Development Kit) para os desenvolvedores de aplicativos, disponível na Web no site do BREW http://www.qualcomm.com /brew. Cliente BREW O software cliente BREW é um ambiente aberto, baseado na linguagem de programação C/C++. Ele atua em todos os tipos e camadas de dispositivos, desde aparelhos de custo mais baixo até smartphones (telefones inteligentes) de alto desempenho. Consiste em um ambiente de execução de aplicativos que trabalha por cima do software do chipset do dispositivo e pode ser usado em harmonia com outros aplicativos e elementos de software que residam no dispositivo. O cliente BREW pode atuar como plataforma estendida para outros ambientes, permitindo a execução de navegadores como aplicativos. A flexibilidade proporcionada por suas extensões, permite que o software acomode outras tecnologias. O modelo de arquitetura extensível do BREW permite que aplicações J2ME sejam transferidas e executadas em aparelhos baseados no cliente BREW 2.0. Isso é possível a partir do desenvolvimento de Máquinas Virtuais (VM ou Virtual Machine) Java, de extensão ao BREW, que também podem ser transferidas pelo ar e provisionadas automaticamente nos dispositivos com cliente BREW 2.0. BREW Delivery System (BDS) A distribuição, o gerenciamento e a venda de aplicativos de comunicação móvel são a essência do modelo de negócios do BREW. O BDS proporciona um mercado que: A. Permite que os desenvolvedores ofereçam os aplicativos e facilita seus testes através de centros de testes de terceiros; B. Oferece à operadora a possibilidade de escolher dentre de milhares aplicativos desenvolvidos em diversas linguagens, através de uma comunidade de desenvolvimento global; C. Proporciona sites Extranet para operadora e o desenvolvedor, facilitando a negociação virtual entre os mesmos. Java ME A plataforma Java ME consiste de máquinas virtuais (KVM) e API’s (Application Programming Interface 6 ou Interface de Programação de Aplicativos) especificadas em "documentos de configuração" ("Configuration" – CDC e CLDC) em conjunto com perfis ("Profiles" - MIDP) para uma determinada aplicação ou mercado (WIRELESSBRASIL, 2006). Tudo isso disposto em camadas de software, como mostra a Figura 1. Figura 1: Camadas de software do J2ME. Fonte: Wirelessbrasil, 2006. Essa camadas são descritas a seguir: A. Máquina Virtual (KVM - Kilo Virtual Machine): é uma implementação da VM (Virtual Machine) otimizada para ser utilizada em dispositivos limitados e foi desenvolvida para ser facilmente portável. B. Configurações: uma configuração determina uma plataforma mínima para um grupo de dispositivos com características similares, tanto quanto a capacidade de memória como quanto ao poder de processamento. Atualmente existem duas configurações definidas e validadas pela Sun: CLDC e CDC (SUN MICROSYSTEMS, 2006). A CLDC (Connected Limited Device Configuration) contém uma API mínima para poder rodar aplicativos em dispositivos móveis, pequenos e com grande restrição de recursos, tais como, telefones celulares, smartphones, pagers e PDA’s. Já a CDC (Connected Device Configuration) é designada para dispositivos fixos um pouco maiores, com pelo menos alguns megabytes de memória disponível e alguma forma de acesso à Internet, tais como os telefones da geração 3G e alguns PDA’s. C. Perfis: no topo da camada Configuração, encontra-se uma camada de software chamada Perfil. Um perfil (profile) define uma plataforma Java para uma categoria de dispositivos. Alguns Perfis existentes são: MIDP (Mobile Information Device Profile, para telefones celulares, PDAs, etc.), Personal Profile, RMI Profile, etc. Neste trabalho foi utilizado o CLDC junto com o MIDP, para o desenvolvimento de Aplicações J2ME (MIDlets). Essa combinação fornece a criação de um ambiente completo de desenvolvimento para a criação de aplicações em dispositivos móveis, como celulares e pagers. O MIDP define tudo o que há no CLDC com o acréscimo dos pacotes javax.microedition.lcdui (interface com o usuário), javax.microedition.rms (sistema de gerência de registros para persistência de informações) e javax.microedition.midlet (suporte para aplicações MIDP, os chamados midlet’s) (JAVA 2 BRASIL, 2006). Sobre o MIDP, pode-se afirmar (JAVA 2 BRASIL, 2006): A. É o perfil mais utilizado em telefones celulares e PDA’s; B. Atualmente existem duas versões: MIDP 1.0 e MIDP 2.0; C. A versão MIDP 2.0 suporta aplicações desenvolvidas para o MIDP 1.0; 7 D. Define o ciclo de vida de uma aplicação (MIDlet), similar ao de uma Applet; E. Define API’s para GUI’s (Graphical User Interface), manipulações de eventos, armazenamento de dados no dispositivo, conectividade, etc. Quanto à diferença entre as versões do MIDP 1.0 e 2.0, existem algumas alterações. Além de métodos a mais e algumas facilidades maiores do MIDP versão 2.0 como classes para jogos e tratamento de sons, existe a diferença na comunicação de dados e a possibilidade de determinar alinhamento aos componentes (centro, esquerdo, direito). Outra vantagem do MIDP 2.0 é permitir a construção de componentes costumizáveis através da classe CustomItem [MDCC, 2006]. Java é a plataforma de desenvolvimento adotada pela tecnologia de telefonia móvel GSM (Global System for Mobiles). 8 Aplicações Móveis: Metodologia de Desenvolvimento A metodologia utilizada para o desenvolvimento da aplicação foi a Análise e Projeto Orientado a Objetos por permitirem a construção de aplicações a partir de duas características básicas: reutilização de código e modularidade. Dentro desta metodologia, a análise preocupa-se com a investigação do problema, enquanto o projeto com a proposta de uma solução que atenda aos requisitos da análise. Na metodologia foi utilizada a Unified Modeling Language (UML), que é uma linguagem visual utilizada para modelar sistemas computacionais orientados a objeto. Padrões de Projeto “Os padrões de projeto são descrições de objetos que se comunicam e classes que são customizadas para resolver um problema de projeto genérico em um contexto específico” (GAMMA, et al. 2005). O padrão de projeto utilizado para o desenvolvimento do protótipo foi o Model-View-Control (MVC). O modelo é a camada que representa os objetos de negócio, mantém o estado da aplicação e fornece ao controlador o acesso aos dados. A visualização representa a interface com o usuário, sendo responsável por definir a forma como os dados serão apresentados e encaminhar as ações dos usuários para o controlador. Já a camada de controle é responsável por fazer a ligação entre o modelo e a visualização, além de interpretar as ações do usuário e as traduzir para uma operação sobre o modelo, onde são realizadas mudanças e, então, gerar uma visualização apropriada. Análise do Problema A definição do problema foi feita a partir das seguintes premissas: A. A procura por vagas disponíveis nos estacionamentos dos shoppings em horários de pico e em períodos festivos aumenta consideravelmente, acarretando em um maior tempo de espera para os usuários e causando desistências; B. A evolução das tecnologias de comunicação tem contribuído para a comunicação rápida e dinâmica de sistemas empresariais, auxiliando em uma melhor administração e distribuição de informações; C. Analisando o panorama atual, a consulta a vagas nos shoppings e possíveis reservas através de um dispositivo móvel pode ser considerado um fator diferencial e de sucesso para as organizações que disponibilizem esse serviço para seus clientes. Descrição de Requisitos Levando-se em consideração o escopo do projeto e a grande importância da mobilidade no desenvolvimento e crescimento das organizações, destacamos a seguir os seguintes requisitos do sistema: A. Oferecer acesso às informações do sistema de gestão de estacionamentos de um shopping, permitindo consulta da situação dos estacionamentos, inclusão e exclusão de reserva; B. Permitir a reserva de vagas em estacionamentos específicos para tal, caso não existam vagas disponíveis nos estacionamentos regulares; 9 C. Garantir que a aplicação seja compatível com sistemas pré-existentes; D. Assegurar que a aplicação móvel possa ser instalada na maioria dos aparelhos celulares disponíveis para venda no mercado que suportem a tecnologia utilizada. 10 Aplicações Móveis: A Aplicação Este projeto propõe uma aplicação móvel para telefones celulares chamada de MobParking. O objetivo da aplicação é prover acesso a informações em tempo real sobre os estacionamentos de shoppings, de forma que o usuário esteja ciente da situação dos mesmos e possa utilizá-los com maior conforto, tendo a opção de reservar a sua vaga caso seja o mais cômodo. Havendo vagas disponíveis no estacionamento de reserva, o usuário pode fazer uma reserva que será mantida por um tempo determinado. Após este tempo, a reserva é automaticamente cancelada. Após um determinado número de cancelamentos ou não usos de reservas, a realização de reservas pelo sistema será automaticamente bloqueada para o usuário por um período. O projeto é composto por um módulo móvel e um módulo servidor. O módulo móvel é o aplicativo cliente desenvolvido em J2ME. Este aplicativo dá acesso às informações sobre o estado dos estacionamentos do shopping e a disponibilidade de vagas nos estacionamentos Reservados. É também através do aplicativo que o usuário efetua e cancela reservas. O módulo servidor é composto por um contêiner web onde estão armazenadas as servlets que fazem comunicação com as midlets; e por um banco de dados para armazenar as reservas e parâmetros. O contêiner recebe as requisições HTTP feitas pelo aplicativo cliente e as processa. Através de um protocolo específico é enviada uma resposta ao aplicativo cliente, que a interpreta e a exibe na tela do dispositivo móvel. A ilustração dessas operações é mostrada na Figura 2. Figura 2: Comunicação entre a aplicação e o banco de dados. Fonte: MICRO JAVA NETWORK, 2006, Adaptada. O módulo servidor desempenha duas funções: A. Servir informações ao aplicativo cliente instalado nos celulares dos usuários; B. Interagir com o sistema de controle de entrada e saída que existe nos estacionamentos, com o objetivo de alimentar o banco de dados da aplicação para a atualização da situação das vagas (quantidade de vagas disponíveis ou ocupadas). A aplicação como um todo segue o padrão MVC, onde: A. O Model representa as classes de serviço que executam tarefas de reserva e verificação do estado dos estacionamentos; 11 B. O View é o próprio aplicativo cliente onde são exibidas as respostas para as requisições; C. O Control é resolvido pelo lado servidor, que recebe as requisições vindas do aplicativo e direciona para as classes de serviços específicas. Para o armazenamento dos dados necessários ao funcionamento dos serviços da aplicação, foi adotado o SGBD MySql 4.1. No esquema da aplicação, foram criadas tabelas para o registro das seguintes informações: A. Informações sobre as áreas internas dos estacionamentos: estado, número máximo de vagas, se é uma área reservada, número de vagas disponíveis, tempo de aguardo para reservas, tempo máximo para cancelamento; B. Informações sobre a reserva efetuada pelo usuário: estacionamento, placa e horário da reserva; C. Histórico de reserva do usuário: estacionamento, placa, estado (se foi utilizada, cancelada ou não utilizada) e horário da reserva; D. Informações sobre a entrada do usuário na área reservada do estacionamento. Padronização das Interfaces A interface inicial do módulo móvel utiliza uma lista de seleção, facilitando a escolha do item desejado com um único comando. A maioria das telas também utiliza essas listas de seleção ou Forms, que permitem outros componentes aninhados. Foram utilizadas caixas de alerta para exibir as mensagens de erro ou sucesso. Foram adicionados comandos a essas interfaces de forma a permitir que os usuários possam navegar entre as telas e ter acesso aos comandos do sistema e cada tela possui os comandos “Sair” e “Voltar”, com exceção dos alertas, que possuem o comando “Concluído”. Apesar de utilizar um padrão para as interfaces do sistema, cada dispositivo implementa-o à sua maneira. A Figura 3 mostra a interface do módulo móvel, onde é mostrada a tela de menu inicial. Figura 3: Interface Inicial do Módulo Móvel. 12 Aplicações Móveis: Considerações Finais Este trabalho proporcionou um estudo sobre a tecnologia Java ME e a implementação do protótipo de uma aplicação para dar atendimento ao aumento da necessidade por soluções de mobilidade com disponibilidade no mercado de gestão de estacionamento privado de Shoppings. O protótipo permite que o cliente faça consultas e reserva de vagas nos estacionamentos privados de Shoppings por meio de um telefone celular via conexão com um servidor web. O MobParking utiliza softwares livres para que tenha custo/benefício atrativo para as empresas que almejarem utilizá-lo. Além disso, é compatível com a maior parte dos aparelhos celulares em operação, facilitando sua aceitação no mercado. A utilização de padrões de projeto mostrou-se de fundamental importância para o planejamento e implementação de toda a aplicação. Além de simplificar a manutenção das aplicações, os padrões são de extrema importância para o programador compreender e corrigir falhas no desenvolvimento. A utilização da tecnologia Java ME permite a compatibilidade com a grande maioria dos aparelhos celulares em operação hoje no mercado. Do mesmo modo, a modularidade do projeto possibilita que estes recursos possam ser facilmente absorvidos no futuro. Referências JAVA2 BRASIL. Programação J2ME. Disponível em: http://www.j2b.com.br/artigos/j2me/progj2me/tres.htm Acesso em: 15 jun. 2006. MDCC - Mestrado e Doutorado em Ciência da Computação. Um Ambiente de Desenvolvimento de Aplicações Multi-Plataformas e Adaptativas para Dispositivos Móveis. Disponível em: http://www.mcc.ufc.br/ Acesso em: 18 jun. 2006. PEREIRA, Mirella e GUEDES, Leonardo. Perspectivas das comunicações móveis no Brasil. Trabalho de graduação do curso de Tecnologia da Universidade de Brasília. Disponível em: http://www.revdigonline.com/revistas_download/revista_2.pdf Acesso em: 30 mai. 2006. QUALCOMM. Documentação do BREW. Disponível em: http://brew.qualcomm.com/brew/pt/developer/resources/ad/documentation.html Acesso em: 20 mar. 2006. SUN MICROSYSTEMS. Connected Limited Device Configuration. Disponível em: http://java.sun.com/products/cldc/ Acesso em: 17 jun. 2006. TELECO. Seção: Comentários Teleco. Disponível em: http://www.teleco.com.br/comentario/com127.asp Acesso em: 03 mar. 2006. 13 TELECO. Seção: Comentários Teleco. Disponível em: http://www.teleco.com.br/comentario/com140.asp Acesso em: 02 ago. 2006. TELECO. Tutoriais Telefonia Celular. Disponível em: http://www.teleco.com.br/tutoriais/tutorialgsm/ Acesso em: 30 mai. 2006. TELECO. Tutoriais Telefonia Celular. Disponível em: http://www.teleco.com.br/tutoriais/tutorialcdma/ Acesso em: 30 mai. 2006. WIRELESSBRASIL. Plataforma Java 2 Micro Edição J2ME. Disponível em: http://www.wirelessbrasil.org/wirelessbr/colaboradores/corbera_martins/j2me_01.html Acesso em: 28 mai. 2006. 14 Aplicações Móveis: Teste seu Entendimento 1. Quais são as plataformas de desenvolvimento de aplicações usadas com as tecnologias CDMA e GSM, respectivamente? BREW e Java ME. BREW e Microsoft VBA. Microsoft VBA e Java ME. Symbian e Microsoft VBA. 2. Qual foi a metodologia de desenvolvimento de aplicações usada no projeto descrito neste tutorial? Diagrama de Fluxo de Dados. Análise e Projeto Orientado a Objetos. Desenvolvimento Orientado a Linguagem Procedural. Metodologia de Desenvolvimento Cliente – Servidor. 3. Qual foi o padrão de projeto utilizado no projeto descrito neste tutorial? Virtual-Private-Network (VPN). Unified-Modeling-Language (UML). Visual-Basic-for-Applications (VBA). Model-View-Control (MVC). 15