Universidade Federal do Rio Grande do Norte
Instituto Metrópole Digital
Programa de Residência em Engenharia de Software
D...
1. Introdução
A frota nacional de veículos automotores mais que duplicou nos últimos dez
anos, ultrapassando a marca de 79...
Figura 2: Processo de negócio “Registro de Veículos”, atualmente implantado
nos DETRANs.
Fonte: Elaborado pelo autor
Mesmo...
2. Referencial Teórico ou Tecnológico
Desde que o Manifesto Ágil foi divulgado, seus princípios vêm influenciando
cada vez...
Figura 3: Ranking das linguagens mais utilizadas na Web em 2014
Fonte: Website do IEEE Spectrum
2
As principais linguagens...
Figura 4: Principais frameworks ágeis PHP
Fonte: Elaborado pelo autor
Para o projeto proposto, o framework Yii foi o selec...
De acordo com KECK (2014) suas características fundamentais:
 Padrões de projeto: Uso do padrão de projeto MVC (Modelo-
V...
 Documentação detalhada: cada método, classe e propriedade
está documentado. O portal é mantido por uma comunidade ativa
...
2.1. Outras tecnologias utilizadas
Diversas outras tecnologias foram utilizadas: o servidor web Apache, o
gerenciador de b...
3. Detran Mais Fácil
Atualmente, os departamentos estaduais de trânsito no Brasil, têm suas
atribuições previstas pela Lei...
Figura 6: Informações do Serviço “Certidão negativa de multas de trânsito, débitos e
dados cadastrais – Nada Consta”, disp...
Figura 7: Página inicial do website do DETRAN-SC.
Fonte: Website do DETRAN-SC
5
A seguir, serão apresentados os detalhes t...
RF06 O sistema deve permitir o cadastro de despachantes.
RF07 O sistema deve permitir a abertura de processos de
registro/...
3.2. Arquitetura do software
A seguir, serão apresentados os principais diagramas do sistema, cobrindo
todo escopo do soft...
Figura 9: Diagrama de Decomposição do Sistema.
Fonte: Elaborado pelo autor
Relacionando o diagrama acima com o arquétipo a...
Por último, acima é exposto o diagrama de implantação do sistema,
mostrando uma visão geral da solução em pleno funcioname...
3.4. Protótipo desenvolvido
A seguir, serão descritas as funcionalidades desenvolvidas para o protótipo do
Detran Mais Fác...
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 Detra...
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 ...
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ár...
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 possibilidad...
Figura 21: Profile de usuário
Fonte: Print Screen do protótipo do Aplicativo Detran Mais Fácil
3.4.6 Cadastros: CRUD Veícu...
Figura 23: Cadastro de despachantes
Fonte: Print Screen do protótipo do Aplicativo Detran Mais Fácil
Figura 24: Abertura d...
Figura 25: Gerência de usuários
Fonte: Print Screen do protótipo do Aplicativo Detran Mais Fácil
4. Avaliação da Solução
O primeiro ponto a ser avaliado é o escopo. O protótipo desenvolvido ainda
está incompleto em rela...
5. Conclusões
O objetivo do projeto foi alcançado em grande parte, já que os envolvidos no
ganharam bastante know-how com ...
Agradecimentos
Agradeço a Deus, minha esposa Cássia pela compreensão ao longo dos
últimos 18 meses envolvido no projeto, a...
Referências Bibliográficas
DENATRAN. Departamento Nacional de Trânsito. Frota de veículos. Disponível
em: <http://www.dena...
Anexo
A seguir, são apresentados todos os diagramas elaborados para definição da
arquitetura da solução. Tais diagramas fo...
Figura 27: Diagrama de Classe Emitir Guia
Fonte: Elaborado pelo Autor
Figura 28: Diagrama de Classe Emitir Alerta
Fonte: E...
Figura 29: Diagrama de Classe Emitir Relatório
Fonte: Elaborado pelo Autor
Figura 30: Diagrama de Classe Promover Usuário ...
Figura 31: Diagrama de Classe Realizar Pagamento
Fonte: Elaborado pelo Autor
II. Diagramas de Comunicação
Figura 32: Diagr...
Figura 33: Diagrama de Comunicação Emitir Alerta
Fonte: Elaborado pelo Autor
Figura 34: Diagrama de Comunicação Emitir Gui...
Figura 35: Diagrama de Comunicação Emitir Relatório
Fonte: Elaborado pelo Autor
Figura 36: Diagrama de Comunicação Emitir ...
III. Diagrama de Sequência
Figura 37: Diagrama de Sequência Abrir Processo
Fonte: Elaborado pelo Autor
IV. Diagrama de Cas...
V. Diagrama de Decomposição
Figura 39: Diagrama de Decomposição
Fonte: Elaborado pelo Autor
VI. Diagrama de Implementação
...
VII. Diagrama de Usa
Figura 41: Diagrama de Usa
Fonte: Elaborado pelo Autor
VIII. Diagrama Componente-e-conector
Figura 42...
IX. Diagrama de Implantação
Figura 43: Diagrama de Implantação
Fonte: Elaborado pelo Autor
Próximos SlideShares
Carregando em…5
×

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

1.067 visualizações

Publicada em

Relatório Final da Especialização/Residência em Engenharia de Software - Turma I - IMD/UFRN

Publicada em: Educação
0 comentários
0 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Sem downloads
Visualizações
Visualizações totais
1.067
No SlideShare
0
A partir de incorporações
0
Número de incorporações
3
Ações
Compartilhamentos
0
Downloads
15
Comentários
0
Gostaram
0
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

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

  1. 1. 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) ed.eder@gmail.com Sob orientação de: Prof. Dr. Aquiles Medeiros Filgueira Burlamaqui Universidade Federal do Rio Grande do Norte aquilesburlamaqui@ect.ufrn.br Prof. Dr. Rummenigge Rudson Dantas Universidade Federal do Rio Grande do Norte rudson@ect.ufrn.br 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.
  2. 2. 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 Blogspot 1 . 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.
  3. 3. 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.
  4. 4. 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):
  5. 5. Figura 3: Ranking das linguagens mais utilizadas na Web em 2014 Fonte: Website do IEEE Spectrum 2 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.
  6. 6. 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).
  7. 7. 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;
  8. 8.  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 Framework 3 3 Disponível em: <http://www.yiiframework.com/performance/>. Acessado em jan.2014
  9. 9. 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.
  10. 10. 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:
  11. 11. 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.
  12. 12. 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.
  13. 13. 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.
  14. 14. 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:
  15. 15. 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
  16. 16. 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
  17. 17. 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
  18. 18. 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
  19. 19. 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
  20. 20. 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
  21. 21. 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
  22. 22. 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
  23. 23. 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
  24. 24. Figura 25: Gerência de usuários Fonte: Print Screen do protótipo do Aplicativo Detran Mais Fácil
  25. 25. 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.
  26. 26. 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.
  27. 27. 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.
  28. 28. 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.
  29. 29. 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
  30. 30. Figura 27: Diagrama de Classe Emitir Guia Fonte: Elaborado pelo Autor Figura 28: Diagrama de Classe Emitir Alerta Fonte: Elaborado pelo Autor
  31. 31. 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
  32. 32. 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
  33. 33. Figura 33: Diagrama de Comunicação Emitir Alerta Fonte: Elaborado pelo Autor Figura 34: Diagrama de Comunicação Emitir Guia Fonte: Elaborado pelo Autor
  34. 34. 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
  35. 35. 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
  36. 36. 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
  37. 37. 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
  38. 38. IX. Diagrama de Implantação Figura 43: Diagrama de Implantação Fonte: Elaborado pelo Autor

×