DETRAN MAIS FÁCIL: CONSTRUÇÃO DE APP WEB USANDO O FRAMEWORK ÁGIL YII

38
Universidade Federal do Rio Grande do Norte Instituto Metrópole Digital Programa de Residência em Engenharia de Software DETRAN MAIS FÁCIL: CONSTRUÇÃO DE APP WEB USANDO O FRAMEWORK ÁGIL YII Trabalho de Conclusão de Curso Eder Carlos de Oliveira Nogueira CGS Consultoria (Improve) [email protected] Sob orientação de: Prof. Dr. Aquiles Medeiros Filgueira Burlamaqui Universidade Federal do Rio Grande do Norte [email protected] Prof. Dr. Rummenigge Rudson Dantas Universidade Federal do Rio Grande do Norte [email protected] Resumo. O presente trabalho apresenta a problemática envolvida nos diversos processos realizados nos departamentos estaduais de trânsito do Brasil. Em seguida, é apresentada uma solução de software para um destes processos, o registro de veículos. Tal solução foi desenvolvida usando o Framework Yii. A arquitetura, os componentes e as características dessa solução são descritas neste artigo. Abstract. This paper presents the issues involved in the various processes performed in the state departments of transit Brazil. Then a software solution to one of these processes is presented, the vehicle registration. This solution was developed using Yii Framework. The architecture, the components and characteristics of this solution are described in this article.

Transcript of DETRAN MAIS FÁCIL: CONSTRUÇÃO DE APP WEB USANDO O FRAMEWORK ÁGIL YII

Page 1: DETRAN MAIS FÁCIL: CONSTRUÇÃO DE APP WEB USANDO O FRAMEWORK ÁGIL YII

Universidade Federal do Rio Grande do Norte

Instituto Metrópole Digital Programa de Residência em Engenharia de Software

DETRAN MAIS FÁCIL: CONSTRUÇÃO DE APP WEB USANDO O FRAMEWORK ÁGIL YII

Trabalho de Conclusão de Curso

Eder Carlos de Oliveira Nogueira

CGS Consultoria (Improve) [email protected]

Sob orientação de:

Prof. Dr. Aquiles Medeiros Filgueira Burlamaqui Universidade Federal do Rio Grande do Norte

[email protected]

Prof. Dr. Rummenigge Rudson Dantas

Universidade Federal do Rio Grande do Norte

[email protected]

Resumo. O presente trabalho apresenta a problemática envolvida nos diversos processos realizados nos departamentos estaduais de trânsito do Brasil. Em seguida, é apresentada uma solução de software para um destes processos, o registro de veículos. Tal solução foi desenvolvida usando o Framework Yii. A arquitetura, os componentes e as características dessa solução são descritas neste artigo. Abstract. This paper presents the issues involved in the various processes performed in the state departments of transit Brazil. Then a software solution to one of these processes is presented, the vehicle registration. This solution was developed using Yii Framework. The architecture, the components and characteristics of this solution are described in this article.

Page 2: DETRAN MAIS FÁCIL: CONSTRUÇÃO DE APP WEB USANDO O FRAMEWORK ÁGIL YII

1. Introdução

A frota nacional de veículos automotores mais que duplicou nos últimos dez anos, ultrapassando a marca de 79 milhões de veículos (ver figura 1), de acordo com os últimos dados disponibilizados pelo Departamento Nacional de Trânsito (DENATRAN, 2014).

Figura 1: Evolução da frota de automóveis e motocicletas entre 1998 e 2012.

Fonte: Página do Professor PhD. Alexandre Costa no Blogspot1.

Entretanto, a capacidade de atendimento dos Departamentos Estaduais

de Trânsito (DETRANs) não evoluiu na mesma proporção, resultando em equipes sobrecarregadas e aumento de filas, isto é, na redução da qualidade dos serviços prestados aos cidadãos.

Umas das principais causas do cenário apresentado é o excesso de atividades realizadas pelo usuário (como é chamado o cliente do DETRAN) presencialmente no órgão. Atualmente um usuário que, por exemplo, adquire um veículo usado e precisa realizar a “Transferência de Propriedade” participa da execução do processo de negócio Registro de Veículo ilustrado de forma resumida na figura 2.

1 Disponível em: <http://oquevocefariasesoubesse.blogspot.com.br/2013/01/transporte-

individual-contra-mao-beco.html>. Acessado em dez. 2014.

Page 3: DETRAN MAIS FÁCIL: CONSTRUÇÃO DE APP WEB USANDO O FRAMEWORK ÁGIL YII

Figura 2: Processo de negócio “Registro de Veículos”, atualmente implantado nos DETRANs.

Fonte: Elaborado pelo autor

Mesmo havendo variação no processo apresentado na Figura 2, tanto entre os DETRANs, quanto entre outros serviços de Registro de Veículo, o cliente chega a enfrentar até 05 (cinco) filas até receber o Certificado de Registro de Veículo – CRV.

O problema se agrava com a ausência de informações para o cidadão que precisa do atendimento, causando, muitas vezes, idas ao DETRAN sem a documentação necessária, gerando perda de tempo tanto por parte do atendente do órgão quanto por parte do cidadão que precisa voltar para retomar o atendimento do início do processo.

Além disso, é importante frisar a deficiência de pessoal qualificado dos DETRANs e de órgãos públicos em geral para pesquisa e desenvolvimento de novas tecnologias e automações, deixando em aberto uma forte demanda por terceirização de serviços com tecnologia aplicada. A seguir, serão apresentadas as principais soluções de software relacionadas ao tema, assim como as tecnologias utilizadas no projeto proposto.

Page 4: DETRAN MAIS FÁCIL: CONSTRUÇÃO DE APP WEB USANDO O FRAMEWORK ÁGIL YII

2. Referencial Teórico ou Tecnológico

Desde que o Manifesto Ágil foi divulgado, seus princípios vêm influenciando cada vez mais adeptos na forma de desenvolver software. Desenvolvedores, gestores de projeto e clientes vem repensando e refinando seus papéis, visando melhorar a interação entre si. São 12 princípios que se resumem em 04 frases (MANIFESTO ÁGIL, 2001):

Indivíduos e interação entre eles mais que processos e ferramentas;

Software em funcionamento mais que documentação abrangente; Colaboração com o cliente mais que negociação de contratos; Responder a mudanças mais que seguir um plano;

A partir daí, surgiram frameworks de desenvolvimento que fomentaram os princípios acima. Muitas tecnologias começaram a trazer embutidos componentes “prontos” e adaptáveis de software que atendem os requisitos não funcionais da maioria dos sistemas, como internacionalização, validação de formulários, suporte a autenticação, segurança, web services, entre muitos outros componentes. Oferecer estes requisitos ajudou as equipes de desenvolvimento a focarem em suas regras de negócio e alcançar metas junto a seus clientes. Desde então, estas tecnologias foram largamente adotadas no mundo web, com diferentes linguagens de programação. Segundo pesquisa da IEEE (Institute of Electrical and Electronics Engineers), baseado em diversas fontes (artigos de revistas especializadas, resultados de pesquisa no Google, dados do Google Trends, tweets do Twitter, repositórios GitHub, perguntas do StackOverfow, mensagens do Reddit, entre outros), como ilustrado na figura abaixo, as 10 linguagens mais utilizadas na web em 2014 são (IEEE, 2014):

Page 5: DETRAN MAIS FÁCIL: CONSTRUÇÃO DE APP WEB USANDO O FRAMEWORK ÁGIL YII

Figura 3: Ranking das linguagens mais utilizadas na Web em 2014

Fonte: Website do IEEE Spectrum2

As principais linguagens exibidas na figura 3 abraçaram as tendências do desenvolvimento ágil, disponibilizando ferramentas como por exemplo: Vraptor e Hibernate (Java), Django (Python), AngularJS, BackBoneJS e EmberJS (JavaScript), Rails (Ruby), Play (Scala), Grails (Groovy) e Revel (Go). Dentre várias possibilidades existentes para o projeto proposto, foi escolhida como linguagem de programação base o PHP. Criada em 1995, se consolidou como umas das mais utilizadas linguagens da web, em aplicações que vão desde redes sociais, como o Facebook, gestores de conteúdo como Drupal e Wordpress, até plataformas de comércio eletrônico como Magento e Oscommerce. A linguagem PHP também possui um ecossistema rico de ferramentas ágeis. De acordo com o portal Mashable (MASHABLE, 2014), os mais utilizados são: Laravel (lavarel.com), CakePHP (cakephp.org), CodeIgniter (codeigniter.com), Symfony (symfony.com), Zend (zend.com), Phalcon (phalconphp.com) e Yii (yiiframework.com).

2 Disponível em: <http://spectrum.ieee.org/static/interactive-the-top-programming-languages>.

Acessado em dez. 2014.

Page 6: DETRAN MAIS FÁCIL: CONSTRUÇÃO DE APP WEB USANDO O FRAMEWORK ÁGIL YII

Figura 4: Principais frameworks ágeis PHP

Fonte: Elaborado pelo autor

Para o projeto proposto, o framework Yii foi o selecionado por cobrir

muitos requisitos do sistema. Além disso, a equipe de desenvolvimento usa a

linguagem PHP como linguagem principal no desenvolvimento, o que reforçou

a escolha por este framework, além do Yii contar com uma comunidade ativa

com centenas de desenvolvedores espalhados por diversos países, como

Rússia, Índia, China, Brasil e Estados Unidos (YII GUIA DE REFERÊNCIA,

2014).

Atualmente na versão 2, foi criado em janeiro de 2008, por Qiang Xue,

sendo bastante influenciado por outros frameworks web como Prado

(pradosoft.com), Ruby on Rails (rubyonrails.com), jQuery (jquery.com/),

Symfony (symfony.com) e Joomla (joomla.org). A proposta principal de seus

idealizadores, sempre foi disponibilizar “…um framework PHP baseado em

componentes, de alta performance, para desenvolvimento ágil de modernas

aplicações web.”, “…livre, de código aberto… que promove design limpo (dry

design) e encoraja o desenvolvimento ágil…”, ou ainda, “…para

desenvolvimento de todo tipo de aplicação web…”, como “…portais, fóruns,

gestores de conteúdo, comércio eletrônico, serviços RESTful, entre muitos

outros” (ULLMAN, 2013).

Page 7: DETRAN MAIS FÁCIL: CONSTRUÇÃO DE APP WEB USANDO O FRAMEWORK ÁGIL YII

De acordo com KECK (2014) suas características fundamentais:

Padrões de projeto: Uso do padrão de projeto MVC (Modelo-Visão-Controle), visando a separação de conceitos (separation of concerns, SoC), ou melhor separação do software em camadas; Uso do padrão Active Record para associação de classes a tabelas da base de dados;

Banco de Dados: Baseado nos PHP Data Objects (PDO), o Yii implementa Data Access Objects (DAO) para possibilitar o acesso a diferentes tipos de bancos de dados;

Formulários e Validação: o Yii coleta entrada dos formulários de maneira fáci e segura, fornecendo widgets e métodos apropriados para validação de dados;

Suporte a AJAX: fornece um conjunto de widgets com suporte a esta tecnologia, como auto-complete input field, treeview, data grid, entre outros, com interface versátil e simples;

Autenticação e Autorização: Yii fornece uma estrutura com suporte a autentição de usuários via controle de acesso baseado em níveis hierárquicos (RBAC, role-based access control);

Layout e Temas: Yii fornece um mecanismo que permite criar e trocar temas com facilidade;

Web Services: suporte ao uso e geração de arquivos WSDL, assim como gerência de requisições de serviços web;

Internacionalização e Localização: suporte a internacionalização (I18N) do software para diferentes línguas, assim como configuração de local (L18N), adaptando o software a uma determinada país;

Caching: suporte a cache de dados (data caching), cache das páginas (page caching), cache de fragmento de páginas (fragment caching) e caching do HTTP (http caching);

Tratamento de Erros e Log: tratamento de erros de forma elegante, assim como mensagens de logs que podem ser categorizadas, filtradas e roteadas de acordo com as necessidades do desenvolvedor;

Segurança: é equipado com medidas de segurança para previnir a aplicação de ataques como sql injection, cross-site scripting (XSS), cross-site request forgery (CSRF) e interceptação de cookies;

Suporte a testes: fornece suporte a escrita e execução de testes unitários, baseados nas tecnologias PHPUnit(phpunit.de) e Selenium (seleniumhq.org);

Geração automática de código: fornece ferramentas que geram formulários, CRUDs, etc;

Amigável com código de terceiros: adaptável para utilizar códigos de outras tecnologias, como Zend, Pear, etc;

Page 8: DETRAN MAIS FÁCIL: CONSTRUÇÃO DE APP WEB USANDO O FRAMEWORK ÁGIL YII

Documentação detalhada: cada método, classe e propriedade está documentado. O portal é mantido por uma comunidade ativa de desenvolvedores;

Extensão de bibliotecas: Yii provê a extensão e integração de seu código-fonte com bibliotecas criadas pelos próprios usuários desenvolvedores, contando atualmente com uma gama de bibliotecas disponíveis e criadas pela comunidade;

Outro requisito de destaque é a performance do framework. As aplicações desenvolvidas em Yii utilizam a técnica de lazy loading. Segundo KHALILI (2010), esta técnica permite um “carregamento tardio” do objeto, ou seja, disponibilizando-o somente quando necessário. É muito eficaz para ganhos de desempenho, já que reduz substancialmente os acessos ao banco de dados. A técnica é recomendada, especialmente, para o padrão de Projeto Active Record, utilizado no core do Yii. Outra técnica utilizada é o Caching (PHP MANUAL), utilizado em conformidade com o APC (Alternative PHP Cache), o que reforça o dado framework como um dos que apresentam melhor desempenho no mercado, como mostra a figura 5. Em seguida, será apresentado o projeto “Detran Mais Fácil”, no qual foi aplicado o Yii e muitos de suas funcionalidades.

Figura 5: Comparação de Performance entre frameworks PHP

Fonte: Website do Yii Framework3

3 Disponível em: <http://www.yiiframework.com/performance/>. Acessado em jan.2014

Page 9: DETRAN MAIS FÁCIL: CONSTRUÇÃO DE APP WEB USANDO O FRAMEWORK ÁGIL YII

2.1. Outras tecnologias utilizadas Diversas outras tecnologias foram utilizadas: o servidor web Apache, o gerenciador de banco de dados MySQL, além da PHP, linguagem do Yii (já abordados na seção anterior), todos componentes da pilha AMP. O Git foi o escolhido para versionador do código.

O fato de se tratarem de ferramentas livres e consolidadas no mercado pesou na escolha das respectivas tecnologias. A seguir, são apresentadas em mais detalhes.

2.1.1 Apache O servidor web líder mundial do mercado, desenvolvido pela Apache Software Foundation foi utilizado no protótipo, tanto em estágio de desenvolvimento quanto em produção. Foram realizados testes, na sua versão 2.x, em ambiente local, remoto e como serviço em plataformas de nuvem, com sucesso. 2.1.2 MySQL O sistema gerenciador de banco de dados MySQL é líder mundial dos SGBDs transacionais de plataforma livre encontrado no mercado. É mantido pela Oracle, uma gigante de TI, além de possuir grande comunidade de usuários e de ser utilizado em conjunto com o MySQL Workbench, um cliente gráfico com muitas ferramentas. Outro fato que pesou é o custo menor de uma instância deste SGBD em plataformas de nuvem, como a Amazon, por exemplo. Testes ainda foram feitos sucesso, utilizando o Postgres como repositório de dados.

2.1.3 Componentes Yii Framework O framework MVC Yii foi o escolhido para construir o backend do protótipo, utilizado na sua versão 2.x, na versão PHP 5.4.x Suas principais características já foram elencadas no documento, mas vale ressaltar as diversas tecnologias contidas neste framework:

Layout: HTML5 e template AdminLTE versão 2.1; Assets: CSS3, JQuery 2.1.4, Bootstrap 2.3.2, Biblioteca de fontes

FontAwesome; Gerenciamento de dependências: Composer 1.0-dev;

2.1.4 Git

A ferramenta Git é a mais utilizada no mercado para repositório e controle de versão de projetos no mercado e foi largamente utilizada no projeto. Usada na versão 2.x, foi utilizado um repositório remoto da Atlassian Bitbucket, assim como interface de deploy na plataforma de nuvem Heroku.

Page 10: DETRAN MAIS FÁCIL: CONSTRUÇÃO DE APP WEB USANDO O FRAMEWORK ÁGIL YII

3. Detran Mais Fácil Atualmente, os departamentos estaduais de trânsito no Brasil, têm suas atribuições previstas pela Lei nº 9.503/97, que instituiu o Código de Trânsito Brasileiro, e as respectivas legislações estaduais. Dentre as principais competências, destacam-se:

Art. 22. Compete aos órgãos ou entidades executivos de trânsito dos Estados e do Distrito Federal, no âmbito de sua circunscrição: [...] III - vistoriar, inspecionar quanto às condições de segurança veicular, registrar, emplacar, selar a placa, e licenciar veículos, expedindo o Certificado de Registro e o Licenciamento Anual, mediante delegação do órgão federal competente; [...] XIII - integrar-se a outros órgãos e entidades do Sistema Nacional de Trânsito para fins de arrecadação e compensação de multas impostas na área de sua competência, com vistas à unificação do licenciamento, à simplificação e à celeridade das transferências de veículos e de prontuários de condutores de uma para outra unidade da Federação; XIV - fornecer, aos órgãos e entidades executivos de trânsito e executivos rodoviários municipais, os dados cadastrais dos veículos registrados e dos condutores habilitados, para fins de imposição e notificação de penalidades e de arrecadação de multas nas áreas de suas competências; (BRASIL, Lei nº 9.503, de 23 de setembro de 1997. Diário Oficial da União – Seção I – 24/09/1997)

Baseado nas informações acima, o DETRAN Mais Fácil, em pleno estado de funcionamento, será uma plataforma de software que se integrará aos sistemas dos DETRANs e permitirão que seus usuários realizem previamente, através da Internet, algumas das etapas do processo de Registro de Veículo, quais sejam: a abertura de processo de registro de veículo, geração de guia de pagamento e emissão de laudo de vistoria. Aqui está a primeira inovação do sistema: nenhum órgão de trânsito brasileiro oferece a possibilidade do registro de veículos on-line.

O segundo aspecto inovador do software desenvolvido ainda se refere ao fato do DETRAN Mais Fácil ser um serviço on-line: comodidade e praticidade. Apesar de todos os órgãos estaduais de trânsito, das 27 unidades da federação, além do DENATRAN (Departamento Nacional de Trânsito), contarem com sítios web, nem todas as suas atribuições estão disponibilizados como serviços on-line. Alguns destes serviços, algumas vezes, são apenas listas de instruções, informando apenas quais documentos são necessários para abertura presencial de determinado processo no órgão, exemplificado na figura abaixo:

Page 11: DETRAN MAIS FÁCIL: CONSTRUÇÃO DE APP WEB USANDO O FRAMEWORK ÁGIL YII

Figura 6: Informações do Serviço “Certidão negativa de multas de trânsito, débitos e dados cadastrais – Nada Consta”, disponível no website do DETRAN-RN.

Fonte: Website do DETRAN-RN

4

Com o DETRAN Mais Fácil, o usuário fará a abertura do processo diretamente de sua residência, evitando filas e burocracia. O procedimento será mais transparente, já que o usuário compreenderá melhor o processo. O próprio órgão ganhará em agilidade de atendimento, além de melhoria de sua imagem frente a população.

Outro aspecto inovador do DETRAN Mais Fácil é a sua facilidade de uso. Alguns órgãos de trânsito oferecem serviços on-line, como consulta de dados relacionados à habilitação, infração, multas, veículos, além de acessos a alguns dados estatísticos. A maioria carece de uma interface acessível e amigável ao usuário, conforme visto na figura a seguir:

4 Disponível em: <http://www.detran.rn.gov.br/ser_certidao.asp>. Acessado em jan. 2015.

Page 12: DETRAN MAIS FÁCIL: CONSTRUÇÃO DE APP WEB USANDO O FRAMEWORK ÁGIL YII

Figura 7: Página inicial do website do DETRAN-SC.

Fonte: Website do DETRAN-SC

5

A seguir, serão apresentados os detalhes técnicos do protótipo desenvolvido, como requisitos, arquitetura e tecnologias utilizadas.

3.1. Requisitos A seguir serão listados os principais requisitos funcionais e não funcionais utilizados para o desenvolvimento do protótipo do Detran Mais Fácil.

Tabela 1: Requisitos Funcionais para o protótipo RF01 O sistema deve permitir o registro de usuário.

RF02 O sistema deve permitir login/logout do usuário.

RF03 O sistema deve permitir reset de senha por parte do usuário.

RF04 O sistema deve permitir o cadastro de um perfil do usuário

RF05 O sistema deve permitir o cadastro de veículos.

5 Disponível em: <http://detran.sc.gov.br/>. Acessado em jan. 2015.

Page 13: DETRAN MAIS FÁCIL: CONSTRUÇÃO DE APP WEB USANDO O FRAMEWORK ÁGIL YII

RF06 O sistema deve permitir o cadastro de despachantes.

RF07 O sistema deve permitir a abertura de processos de registro/transferência de veículo por meio de um wizard.

RF08 O sistema deve permitir gerência de usuários do sistema.

RF09 O sistema deve permitir a gerência de processos de registro/transferência de veículos.

Os requisitos funcionais acima se referem ao protótipo da solução. Cabe destacar que a aplicação completa possuirá um escopo maior, com requisitos de um sistema corporativo. Entre eles, podemos destacar: o sistema terá suporte multiusuário; será modularizado; implementado em múltiplas plataformas; interação com outras aplicações; possuirá uma missão crítica, de forma a ser robusto o suficiente para sustentar seu funcionamento contínuo, seguro e escalável. No fim do documento, há mais informações a respeito do futuro do projeto no que diz respeito ao atendimento destes requisitos.

Tabela 2: Requisitos Não Funcionais para o protótipo RNF01 O sistema deve permitir a validação do email do usuário registrado.

RNF02 O sistema deve ter controle de acesso para diferentes perfis de usuário. Utiliza-se padrão RBAC (Role Based Access Control).

RNF03 O sistema utiliza o algoritmo MD5 para criptografar os dados transmitidos, assim como o uso dos protocolos HTTPS/SSL.

RNF04 O wizard do sistema deverá ser responsivo, acessível nos principais navegadores do mercado, assim como ser acessível através de dispositivos móveis como smartphones e tablets.

Já os requisitos não funcionais acima abordam um tema importante: a segurança. O requisito “RNF01” evidencia o requisito de segurança “autenticação”, de forma que só usuários logados terão a determinadas funcionalidades do sistema. O “RNF02” evidencia o requisito de “autorização”, definindo um controle de acesso ao sistema baseado em determinadas regras.

Já no “RNF03”, o uso do algoritmo MD5 expõe o requisito “confidencialidade”, extremamente necessário no tráfego de dados realizado nas operações do sistema. Por último, o “RNF04”, além de abordar a “usabilidade” (não está relacionada a segurança), aborda a questão da disponibilidade do sistema, seja em diversos navegadores, diferentes plataformas, a múltiplos usuários simultâneos.

Page 14: DETRAN MAIS FÁCIL: CONSTRUÇÃO DE APP WEB USANDO O FRAMEWORK ÁGIL YII

3.2. Arquitetura do software

A seguir, serão apresentados os principais diagramas do sistema, cobrindo todo escopo do software.

Figura 8: Diagrama de Casos de Uso, representando o escopo do sistema.

Fonte: Elaborado pelo autor

Os casos de uso “Abrir Processo”, “Manter Usuário”, “Validar Email”,

“Manter Veículo” e “Promover Despachante” foram contemplados na versão atual do protótipo. Respectivamente, o primeiro se refere à abertura de processo de registro/transferência de veículos online, realizado através do wizard da aplicação. Já o segundo e o terceiro caso de uso contemplam todos os requisitos funcionais e não funcionais relacionados ao registro e autenticação de usuários no sistema.

Já os dois últimos abordados referem-se as funcionalidades relacionadas ao perfil de usuário “despachante”. O despachante é um perfil específico de usuário, já que se trata de um intermediário entre o usuário cidadão e o Detran. Ele é um profissional que pode cuidar da documentação do usuário, do veículo, emplacamento, CRV, registro e transferência de veículos.

Os demais casos de uso estão definidos para as próximas evoluções da solução. Para o melhor entendimento da visão atual e futura do sistema, o sistema é apresentado a nível de módulos no diagrama de decomposição, exposto logo a seguir:

Page 15: DETRAN MAIS FÁCIL: CONSTRUÇÃO DE APP WEB USANDO O FRAMEWORK ÁGIL YII

Figura 9: Diagrama de Decomposição do Sistema.

Fonte: Elaborado pelo autor

Relacionando o diagrama acima com o arquétipo apresentado, os módulos “Proprietário” e “Despachante” são aqueles com estágio mais avançado de desenvolvimento, já que vários de seus submódulos encontram-se no escopo do protótipo desenvolvido. Os outros submódulos, assim como os módulos “Comunicação” e “Administrador” serão alcançados nas próximas evoluções do sistema.

Figura 10: Diagrama de implantação do sistema

Fonte: Elaborado pelo autor

Page 16: DETRAN MAIS FÁCIL: CONSTRUÇÃO DE APP WEB USANDO O FRAMEWORK ÁGIL YII

Por último, acima é exposto o diagrama de implantação do sistema, mostrando uma visão geral da solução em pleno funcionamento. Por se tratar de um sistema web, o sistema estará disponível para as diversas requisições de usuários com o perfil “Cidadão”, assim como acessível para os diversos departamentos estaduais de trânsito conveniados com a aplicação. O protótipo atual roda sob um servidor web convencional, com expectativa de deploy no futuro para uma plataforma em nuvem. No final deste artigo, na seção “Anexo”, são apresentados o restante dos diagramas da solução.

3.3. Processo de Desenvolvimento O processo de desenvolvimento foi baseado em métodos ágeis, principalmente no SCRUM. Foi baseado em poucos artefatos e é facilitado pelo uso da ferramenta Trello, da Trello Inc.

O processo basicamente consistiu nos seguintes passos: definição de um product backlog pelo gestor do projeto, ou seja, um conjunto de requisitos gerais definidos para o sistema. Em seguida, um sprint backlog era definido com ajuda da ferramenta Trello, para cada iteração de desenvolvimento, que podia consumir de 15 a 30 dias. Cada sprint possui um número de cards, tarefas a serem executadas e registradas através de commits no repositório git do projeto, hospedado na aplicação Atlassian Bitbucket. Para esclarecer melhor o processo, a figura 11 mostra um momento recente de um sprint do projeto:

Figura 11: Exemplo de sprint do projeto no Trello.

Fonte: Print da aplicação Trello

Page 17: DETRAN MAIS FÁCIL: CONSTRUÇÃO DE APP WEB USANDO O FRAMEWORK ÁGIL YII

3.4. Protótipo desenvolvido A seguir, serão descritas as funcionalidades desenvolvidas para o protótipo do Detran Mais Fácil.

3.4.1 Abertura de Processo pelo Wizard O fluxo principal para os usuários, perfil “Cidadão”, que acessarem o sistema começa pelo wizard. Foi desenvolvido um sistema de abas, responsivo e intuitivo, onde os usuários respondem algumas perguntas no passo-a-passo, de modo a tirar dúvidas a respeito da documentação exigida e facilitar o entendimento de qualquer cidadão que deseje abrir um processo de registro/transferência de veículos.

Figura 12: Wizard do Detran Mais Fácil

Fonte: Print do protótipo do Detran Mais Fácil

Durante o passo-a-passo, o usuário fornece os dados do veículo (número da placa, código Renavam, código CRV e a data de aquisição do veículo). Em seguida, fornece seus dados pessoais, finalizando o processo de abertura de registro/transferência do veículo em questão. No fim, é disponibilizado um menu, com as funções de impressão do laudo de vistoria, a ficha de alteração cadastral e impressão do boleto bancário.

Figura 13: Inserção dos dados do veículo

Page 18: DETRAN MAIS FÁCIL: CONSTRUÇÃO DE APP WEB USANDO O FRAMEWORK ÁGIL YII

Fonte: Print do protótipo do Detran Mais Fácil

Figura 14: Inserção dos dados do cidadão

Fonte: Print do protótipo do Detran Mais Fácil

Figura 15: Finalização do wizard

Page 19: DETRAN MAIS FÁCIL: CONSTRUÇÃO DE APP WEB USANDO O FRAMEWORK ÁGIL YII

Fonte: Print do protótipo do Detran Mais Fácil

3.4.2 Registro de Usuário As figuras 16 e 17 são, respectivamente, o print da página inicial e da página de signup, ou seja, registro de usuários no sistema. O aplicativo exige nome, e-mail e senha do novo usuário, alertando para dados inválidos e verificando a disponibilidade e o formato do e-mail.

Figura 16: Página inicial do Detran Mais Fácil

Fonte: Print Screen do protótipo do Aplicativo Detran Mais Fácil

Page 20: DETRAN MAIS FÁCIL: CONSTRUÇÃO DE APP WEB USANDO O FRAMEWORK ÁGIL YII

Figura 17: Página de Registro

Fonte: Print Screen do protótipo do Aplicativo Detran Mais Fácil

3.4.3 Login/Logout do usuário Em seguida, tela de autenticação do sistema:

Figura 18: Página de login do usuário

Fonte: Print Screen do protótipo do Aplicativo Detran Mais Fácil

Page 21: DETRAN MAIS FÁCIL: CONSTRUÇÃO DE APP WEB USANDO O FRAMEWORK ÁGIL YII

3.4.4 Resetar senha do usuário Em situações que o usuário se esqueça da senha para acessar o aplicativo, há a possibilidade de reset de senha, apenas informando o email cadastrado. O sistema envia para o email fornecido um link para reset e cadastro de nova senha.

Figura 19: Página de Reset de senha de usuário

Fonte: Print Screen do protótipo do Aplicativo Detran Mais Fácil

3.4.5 Cadastrar Perfil de Usuário Com o usuário autenticado, ele pode cadastrar seu perfil no sistema, independente do seu perfil de usuário. Um menu com funções específicas é exibido conforme o perfil do usuário, seja ele cidadão, despachante ou administrador.

Figura 20: Usuário autenticado como administrador

Fonte: Print Screen do protótipo do Aplicativo Detran Mais Fácil

Page 22: DETRAN MAIS FÁCIL: CONSTRUÇÃO DE APP WEB USANDO O FRAMEWORK ÁGIL YII

Figura 21: Profile de usuário

Fonte: Print Screen do protótipo do Aplicativo Detran Mais Fácil

3.4.6 Cadastros: CRUD Veículo, Despachante, Processo e Usuário

O usuário “despachante” tem acesso ao cadastro de veículos e processos. Já o usuário “administrador” tem acesso a todas as funcionalidades do sistema, inclusive, a gerência de usuários.

Figura 22: Cadastro de veículos

Fonte: Print Screen do protótipo do Aplicativo Detran Mais Fácil

Page 23: DETRAN MAIS FÁCIL: CONSTRUÇÃO DE APP WEB USANDO O FRAMEWORK ÁGIL YII

Figura 23: Cadastro de despachantes

Fonte: Print Screen do protótipo do Aplicativo Detran Mais Fácil

Figura 24: Abertura de processos

Fonte: Print Screen do protótipo do Aplicativo Detran Mais Fácil

Page 24: DETRAN MAIS FÁCIL: CONSTRUÇÃO DE APP WEB USANDO O FRAMEWORK ÁGIL YII

Figura 25: Gerência de usuários

Fonte: Print Screen do protótipo do Aplicativo Detran Mais Fácil

Page 25: DETRAN MAIS FÁCIL: CONSTRUÇÃO DE APP WEB USANDO O FRAMEWORK ÁGIL YII

4. Avaliação da Solução

O primeiro ponto a ser avaliado é o escopo. O protótipo desenvolvido ainda está incompleto em relação ao escopo original do projeto. Dos 9 casos de uso levantados, 50% foram implementados. De qualquer forma, seu escopo foi bem documentado através dos diagramas apresentados, o que facilitará no desenvolvimento do restante da aplicação.

O segundo ponto a ser levantado foi a produtividade das tecnologias empregadas. Além da vantagem de serem utilizadas apenas ferramentas open-source, o que reduziu consideravelmente os custos do projeto, os métodos ágeis empregados facilitaram na condução dos sprints, além de fornecer a equipe do projeto sempre uma visão macro da evolução da solução. Cabe destacar o uso do framework Yii, que teve suas funcionalidades testadas e positivamente aprovadas na construção do protótipo. O uso de tais tecnologias é fortemente recomendado para a evolução da aplicação.

4.1 Trabalhos Futuros

O último ponto a ser avaliado é o futuro do projeto. Por ser uma solução web, se faz necessária sua implantação em algum DETRAN específico, testes de usabilidade com usuários reais, além do deploy do sistema em uma arquitetura de nuvem agregariam valor ao sistema.

A utilização cada vez maior da plataforma mobile nos próximos anos torna essencial a criação de uma versão mobile da aplicação Detran Mais Fácil. Uma primeira versão na plataforma Android, que é líder no mercado brasileiro, deverá ser a primeira meta na área de dispositivos móveis.

A comercialização do sistema como serviço é outro enfoque que deve ser realizado para garantir monetização com a solução. A integração com sistemas de pagamentos bancários dos principais bancos brasileiros deverá está no plano de ações futuros da solução.

Page 26: DETRAN MAIS FÁCIL: CONSTRUÇÃO DE APP WEB USANDO O FRAMEWORK ÁGIL YII

5. Conclusões

O objetivo do projeto foi alcançado em grande parte, já que os envolvidos no ganharam bastante know-how com as tecnologias empregadas, além da divulgação do projeto em congresso da agência fomentadora (FAPERN/CAPES) e na web. A Residência em Engenharia de Software teve papel-chave na formação e desenvolvimento do trabalho. Muito do conteúdo das disciplinas ministradas ao longo do curso foi aplicado no desenvolvimento da solução. Disciplinas como “Gerência de Configuração” forneceram base para a escolha das tecnologias de versionamento de código; “Arquitetura de Software” ajudou a definir o escopo do projeto; “Desenvolvimento Ágil para Web” reforçou a escolha do Yii como tecnologia referência, assim como muitas outras disciplinas contribuíram no desenvolvimento da aplicação.

Além disso, forneceu motivação no estudo de várias tecnologias, como o Yii, Heroku, Composer, Git, entre outras, além da prática dos conhecimentos adquiridos em sala de aula.

Page 27: DETRAN MAIS FÁCIL: CONSTRUÇÃO DE APP WEB USANDO O FRAMEWORK ÁGIL YII

Agradecimentos

Agradeço a Deus, minha esposa Cássia pela compreensão ao longo dos últimos 18 meses envolvido no projeto, aos professores Rummenigge e Aranha, ao gestor do projeto George Freire, a FAPERN/CAPES que abriu as portas para a residência, além de todos os colegas e amigos do Instituto Metrópole Digital.

Page 28: DETRAN MAIS FÁCIL: CONSTRUÇÃO DE APP WEB USANDO O FRAMEWORK ÁGIL YII

Referências Bibliográficas

DENATRAN. Departamento Nacional de Trânsito. Frota de veículos. Disponível

em: <http://www.denatran.gov.br/frota.htm>. Acesso em: 10 dez. 2014.

MANIFESTO ÁGIL. Manifesto Ágil para Desenvolvimento de Software. Disponível em: <http://www.manifestoagil.com.br>. Acesso em: 10 dez. 2014.

IEEE. Institute of Electrical and Electronics Engineers. Interactive: The Top Programming Languages. Disponível em: <http://spectrum.ieee.org/static/interactive-the-top-programming-languages>. Acesso em: 10 dez. 2014.

MASHABLE. 13 PHP Frameworks to Help Build Agile Applications. Disponível em: <http://mashable.com/2014/04/04/php-frameworks-build-applications>. Acesso em: 10 dez. 2014.

YII GUIA DE REFERÊNCIA. Yii PHP Framework Version 2. Disponível em: <http://www.yiiframework.com/doc-2.0/>. Acesso em: 10 dez. 2014.

ULLMAN, Larry. (2013) . The Yii Book: Developing Web Applications Using the Yii PHP Framework. Disponível em: <https://larry.pub/>. Acesso em: 20 dez. 2014.

KECK, Bill. (2014). Yii 2 For Beginners. Disponível em: <http://leanpub.com/yii2forbeginners>. Acesso em: 20 dez. 2014.

KHALILI, Mehdi. ORM anti-patterns - Part 3: Lazy loading. Disponível em: <http://www.mehdi-khalili.com/orm-anti-patterns-part-3-lazy-loading>. Acesso em: 20 dez. 2014.

PHP MANUAL, Manual do PHP. Referência das Funções. Afetando o comportamento do PHP. APC. Disponível em: <http://php.net/manual/pt_BR/intro.apc.php>. Acesso em: 20 dez. 2014.

Page 29: DETRAN MAIS FÁCIL: CONSTRUÇÃO DE APP WEB USANDO O FRAMEWORK ÁGIL YII

Anexo A seguir, são apresentados todos os diagramas elaborados para definição da arquitetura da solução. Tais diagramas foram construídos segundo a UML (Unified Modeling Language): diagramas de classe, comunicação, sequência casos de uso, decomposição , implementação, usa, componente-e-conector e implantação.

I. Diagramas de Classe

Figura 26: Diagrama de Classe Abrir Processo

Fonte: Elaborado pelo Autor

Page 30: DETRAN MAIS FÁCIL: CONSTRUÇÃO DE APP WEB USANDO O FRAMEWORK ÁGIL YII

Figura 27: Diagrama de Classe Emitir Guia

Fonte: Elaborado pelo Autor

Figura 28: Diagrama de Classe Emitir Alerta

Fonte: Elaborado pelo Autor

Page 31: DETRAN MAIS FÁCIL: CONSTRUÇÃO DE APP WEB USANDO O FRAMEWORK ÁGIL YII

Figura 29: Diagrama de Classe Emitir Relatório

Fonte: Elaborado pelo Autor

Figura 30: Diagrama de Classe Promover Usuário a Despachante

Fonte: Elaborado pelo Autor

Page 32: DETRAN MAIS FÁCIL: CONSTRUÇÃO DE APP WEB USANDO O FRAMEWORK ÁGIL YII

Figura 31: Diagrama de Classe Realizar Pagamento

Fonte: Elaborado pelo Autor

II. Diagramas de Comunicação

Figura 32: Diagrama de Comunicação Abrir Processo

Fonte: Elaborado pelo Autor

Page 33: DETRAN MAIS FÁCIL: CONSTRUÇÃO DE APP WEB USANDO O FRAMEWORK ÁGIL YII

Figura 33: Diagrama de Comunicação Emitir Alerta

Fonte: Elaborado pelo Autor

Figura 34: Diagrama de Comunicação Emitir Guia

Fonte: Elaborado pelo Autor

Page 34: DETRAN MAIS FÁCIL: CONSTRUÇÃO DE APP WEB USANDO O FRAMEWORK ÁGIL YII

Figura 35: Diagrama de Comunicação Emitir Relatório

Fonte: Elaborado pelo Autor

Figura 36: Diagrama de Comunicação Emitir Relatório

Fonte: Elaborado pelo Autor

Page 35: DETRAN MAIS FÁCIL: CONSTRUÇÃO DE APP WEB USANDO O FRAMEWORK ÁGIL YII

III. Diagrama de Sequência

Figura 37: Diagrama de Sequência Abrir Processo

Fonte: Elaborado pelo Autor

IV. Diagrama de Casos de Uso

Figura 38: Diagrama de Casos de Uso

Fonte: Elaborado pelo Autor

Page 36: DETRAN MAIS FÁCIL: CONSTRUÇÃO DE APP WEB USANDO O FRAMEWORK ÁGIL YII

V. Diagrama de Decomposição

Figura 39: Diagrama de Decomposição

Fonte: Elaborado pelo Autor

VI. Diagrama de Implementação

Figura 40: Diagrama de Implementação

Fonte: Elaborado pelo Autor

Page 37: DETRAN MAIS FÁCIL: CONSTRUÇÃO DE APP WEB USANDO O FRAMEWORK ÁGIL YII

VII. Diagrama de Usa

Figura 41: Diagrama de Usa

Fonte: Elaborado pelo Autor

VIII. Diagrama Componente-e-conector

Figura 42: Diagrama Componente-e-conector

Fonte: Elaborado pelo Autor

Page 38: DETRAN MAIS FÁCIL: CONSTRUÇÃO DE APP WEB USANDO O FRAMEWORK ÁGIL YII

IX. Diagrama de Implantação

Figura 43: Diagrama de Implantação

Fonte: Elaborado pelo Autor