0 ANDERSON CORRÊA DA SILVA FERNANDA MUNHOZ DA ROCHA LEMOS DA COSTA LUIZ GUSTAVO NUNES STEFHANY ALINE ZGODA GARUPANDO – APLICATIVO DE COMPARTILHAMENTO DE CARONAS PARA WINDOWS PHONE CURITIBA 2012 1 ANDERSON CORRÊA DA SILVA FERNANDA MUNHOZ DA ROCHA LEMOS DA COSTA LUIZ GUSTAVO NUNES STEFHANY ALINE ZGODA GARUPANDO – APLICATIVO DE COMPARTILHAMENTO DE CARONAS PARA WINDOWS PHONE Trabalho apresentado ao Programa de Aplicação Profissional do Curso de Análise e Desenvolvimento de Sistemas, Centro Tecnológico da Universidade Positivo, como requisito para a conclusão do curso. Orientador: Juliana Jenny Kolb Coordenador: Nélio Kubo CURITIBA 2012 2 TERMO DE ANUÊNCIA Pelo presente Termo de Anuência, declaro estar de pleno acordo com as informações contidas neste projeto, o qual se apresenta apto a ser entregue à banca examinadora. Orientador: Profª. Juliana Jenny Kolb Centro Tecnológico – Universidade Positivo ______________________________________ Assinatura do Orientador Curitiba 2012 3 TERMO DE APROVAÇÃO ANDERSON CORRÊA DA SILVA FERNANDA MUNHOZ DA ROCHA LEMOS DA COSTA LUIZ GUSTAVO NUNES STEFHANY ALINE ZGODA GARUPANDO – APLICATIVO DE COMPARTILHAMENTO DE CARONAS PARA WINDOWS PHONE Projeto de Inovação Tecnológica apresentado ao Programa de Aplicação Profissional, do Curso de Tecnologia em Análise e Desenvolvimento de Sistemas, do Centro Tecnológico da Universidade Positivo, pela seguinte banca examinadora: Orientador: Profª. Juliana Jenny Kolb Centro Tecnológico – Universidade Positivo Marcos Aurélio de Abreu Rodrigues e Silva Employer Curitiba 2012 4 "... uma mente necessita de livros da mesma forma que uma espada necessita de uma pedra de amolar se quisermos mantê-la afiada..." TyrionLannister - As Crônicas de Gelo e Fogo - A Guerra dos Tronos 5 RESUMO Este documento apresenta o aplicativo de compartilhamento de caronas para Windows Phone Garupando. O objetivo do projeto consiste em prover uma alternativa de transporte para pessoas que compartilhem rotas em comum, de forma a contribuir para a redução dos congestionamentos e da poluição, que é um dos principais problemas enfrentados atualmente pela humanidade. 6 ABSTRACT The present document brings thecarpooling applicationforWindows PhoneGarupando. The project goalis toprovide analternativetransportation forpeople who sharecommonroutesin order tohelp reducingcongestionand pollution, which isone of the mainproblemscurrently facedby humanity 7 SUMÁRIO 1. INTRODUÇÃO .......................................................................................... 14 2. FUNDAMENTAÇÃO TEÓRICA................................................................. 16 2.1. Nicho de Mercado ............................................................................... 16 2.1.1 Mobilidade .................................................................................... 16 2.1.2 Sustentabilidade ........................................................................... 17 2.1.3 Carona Solidária ........................................................................... 19 2.1.4 Smartphones ................................................................................ 20 2.2. Gerenciamento de Projetos................................................................. 22 2.2.1 2.3. PMBOK ......................................................................................... 24 Modelagem de sistemas de software .................................................. 25 2.3.1 Princípios da Modelagem ............................................................. 26 2.3.2 A Linguagem de Modelagem Unificada (UML) ............................. 27 2.4. 2.3.2.1 Modelagem de Casos de Uso ................................................ 28 2.3.2.2 Casos de Uso ......................................................................... 29 2.3.2.3 Diagramas de Casos de Uso ................................................. 30 2.3.2.4 Diagrama de Classes ............................................................. 32 Tecnologias Utilizadas ........................................................................ 33 2.4.1. Microsoft Visual Studio ................................................................. 33 2.4.2. C Sharp ........................................................................................ 33 2.4.3. Windows Phone ............................................................................ 35 2.4.4. Microsoft Expression Blend .......................................................... 36 2.4.5. Silverlight ...................................................................................... 36 2.4.6. XAML ............................................................................................ 37 2.4.7. Bing Maps ..................................................................................... 38 2.4.8. SQL Server ................................................................................... 39 8 2.4.9. 3. ORGANIZAÇÃO-CLIENTE ....................................................................... 41 3.1. 4. Windows Communication Foundation .......................................... 40 Histórico .............................................................................................. 41 DIAGNÓSTICO DO AMBIENTE ............................................................... 42 4.1 Pesquisa de aceitação da Carona Solidária........................................ 42 4.2 Caracterização da amostra ................................................................. 43 5. OBJETIVOS .............................................................................................. 47 6. DESENVOLVIMENTO .............................................................................. 48 7. CONSIDERAÇÕES FINAIS ...................................................................... 50 8. REFERÊNCIAS BIBLIOGRÁFICAS .......................................................... 51 9. APÊNDICES ............................................................................................. 59 9.1 Apêndice A – Gerenciamento do Projeto ............................................ 59 9.1.1 9.2 Termo de Abertura do Projeto ...................................................... 59 9.1.1.1 Justificativa............................................................................. 59 9.1.1.2 Visão Geral do Escopo .......................................................... 60 9.1.1.3 Restrições .............................................................................. 60 9.1.1.4 Premissas .............................................................................. 60 Apêndice B - Plano de Gerenciamento do escopo .............................. 61 9.2.1 Descrição Detalhada do Produto .................................................. 61 9.2.2 Escopo não Contemplado ............................................................ 62 9.2.3 EAP / WBS ................................................................................... 62 9.2.4 Dicionário EAP / WBS .................................................................. 66 9.3 Apêndice C – Gerenciamento do tempo ............................................. 67 9.3.1 Cronograma .................................................................................. 70 9.3.2 Durações das Atividades .............................................................. 74 9.4 Apêndice D - Gerenciamento da qualidade......................................... 75 9.5 Apêndice E - Gerenciamento da comunicação ................................... 77 9 9.6 Apêndice F – Especificação dos Requisitos do Projeto ...................... 80 9.7 Apêndice G – Modelagem ................................................................... 84 9.7.1 Cadastrar usuário ......................................................................... 84 9.7.2 Recuperar Senha.......................................................................... 94 9.7.3 Acessar Sistema ......................................................................... 102 9.7.4 Configurar Conta ........................................................................ 109 9.7.5 Gerenciar Rotas.......................................................................... 119 9.7.6 Consultar Rotas .......................................................................... 131 9.7.7 Gerenciar Mensagens ................................................................ 138 9.8 Apêndice H – Modelo Físico de Dados ............................................. 148 9.9 Apêndice I – Documento de Diagrama de classe ............................. 149 9.10 Apêndice J – Documento de Arquitetura........................................ 150 9.10.1 Objetivo ................................................................................... 150 9.10.2 Escopo .................................................................................... 150 9.10.3 Representação da Arquitetura ................................................. 150 9.10.4 Princípios e Restrições da Arquitetura .................................... 151 9.10.5 Visão Lógica ............................................................................ 151 9.10.6 Visão Física ............................................................................. 152 9.10.7 Mecanismos arquiteturais........................................................ 153 9.10.8 Tecnologias utilizadas ............................................................. 153 9.10.9 Elementos do Sistema............................................................. 153 9.10.10 Performance ............................................................................ 154 9.11 Apêndice K – Questionário Carona Solidaria ................................. 155 10 ÍNDICE DE IMAGENS Figura I - Diagrama de Rede ............................................................................ 70 Figura II - Estrutura Analítica dos Recursos ..................................................... 74 Figura III - Diagrama de caso de uso Cadastrar Usuário ................................. 89 Figura IV - Protótipo Cadastro de usuário ........................................................ 90 Figura V - Diagrama de caso de uso Recuperar Senha .................................. 99 Figura VI - Protótipo Recuperar Senha ........................................................... 99 Figura VII - Diagrama de caso de uso Acessar Sistema ................................ 106 Figura VIII – Protótipo Acessar Sistema ......................................................... 107 Figura IX – Diagrama caso de uso Configurar Conta ..................................... 114 Figura X – Protótipo Configurar Conta ........................................................... 115 Figura XI – Diagrama de caso de uso Gerenciar Rotas ................................. 127 Figura XII – Protótipo Gerenciar Rotas .......................................................... 128 Figura XIII – Diagrama de caso de uso Consultar Rotas ............................... 135 Figura XIV - Protótipo Consultar Rotas .......................................................... 136 Figura XV – Diagrama de caso de uso Gerenciar Mensagem ....................... 144 Figura XVI - Protótipo Gerenciar Mensagem caixa de entrada ...................... 145 Figura XVII - Protótipo Gerenciar Mensagem caixa de entrada ..................... 146 Figura XVIII - Visão do modelo Físico de dados ............................................ 148 Figura XIX - Visão do Diagrama de Classe .................................................... 149 Figura XX Arquitetura do Aplicativo na visão do Smartphone ........................ 150 11 Figura XXI - Arquitetura do Aplicativo na visão do Web Server/Banco de Dados ....................................................................................................................... 151 Figura XXII - Visão Lógica do Aplicativo ........................................................ 152 Figura XXIII - Visão Física do Aplicativo ........................................................ 152 12 ÍNDICE DE TABELAS Tabela I -- Características da amostra ............................................................. 43 Tabela II - Aspectos relacionados à carona solidária ...................................... 44 Tabela III - Informações consideradas importantes na busca por caronas ...... 45 Tabela IV - Critérios de aprovação ................................................................... 66 Tabela V - Lista de Atividades .......................................................................... 67 Tabela VI - Lista de atributos das atividades .................................................... 68 Tabela VII - Lista de Marcos............................................................................. 69 Tabela VIII - Recursos das Atividades ............................................................. 70 Tabela IX - Requisitos e Garantia da Qualidade .............................................. 75 Tabela X - Identificação das Partes Interessadas e Estratégia de Comunicação ......................................................................................................................... 77 Tabela XI - Plano de Comunicação .................................................................. 79 Tabela XII - Característica de Qualidade – Funcionalidade ............................. 80 Tabela XIII - Característica de Qualidade – Usabilidade ................................. 81 Tabela XIV - Característica de Qualidade – Confiabilidade ............................. 82 Tabela XV - Característica de Qualidade – Eficiência ...................................... 82 Tabela XVI - Característica de Qualidade – Portabilidade ............................... 83 Tabela XVII - Característica de Qualidade – Manutenibilidade ....................... 83 Tabela XVIII - Mapa de testes Cadastro de usuário ......................................... 90 Tabela XIX - Campos do formulário cadastro de usuário ................................. 92 Tabela XX - Mapa de testes Recuperar Senha .............................................. 100 13 Tabela XXI - Campos do formulário Recuperar Senha .................................. 100 Tabela XXII - Mapa de testes Acessar Sistema ............................................. 107 Tabela XXIII - Campos do formulário Acessar Sistema ................................. 108 Tabela XXIV - Mapa de testes Configurar Conta ........................................... 115 Tabela XXV- Campos do formulário Configurar Conta ................................... 117 Tabela XXVI - Mapa de testes Gerenciar Rotas............................................. 128 Tabela XXVII - Campos do formulário Gerenciar Rotas ................................. 129 Tabela XXVIII - Mapa de testes Consultar Rotas ........................................... 136 Tabela XXIX - Campos do formulário Consultar Rotas .................................. 137 Tabela XXX - Mapa de testes Gerenciar Mensagem ..................................... 146 Tabela XXXI - Campos do formulário Gerenciar Mensagem.......................... 147 14 1. INTRODUÇÃO Ao longo das últimas três décadas, os temas “crescimento econômico” e “sustentabilidade ambiental” têm sidoconstantemente debatidos no mundo inteiro.A sociedade presencia o fortalecimento econômico global, principalmente por parte dos países emergentes. Embora a preocupação com o impacto no meio ambiente tenha crescido junto com a economia mundial, pouco tem sido feito pelos governantes: as campanhas educativas sobre preservação ambiental são pífias, o investimento no transporte público não atinge um nível desejado que possibilite conforto e rapidez aos usuários e as indústrias automobilísticas, além de não investirem maciçamente em fontes de energia menos poluentes, utilizam sua imensa mão-de-obra como refém nas negociações com os governos com o intuito de reduzir impostos e maximizar os lucros. Ainda em relação ao crescimento econômico global, não se pode deixar de citar como um de seus resultados o crescimento tecnológico na área de informação que permitiu, a um baixo custo, a utilização de computadores pessoais, telefones celulares e, principalmente, a revolução na interconectividade entre pessoas do mundo inteiro através da Internet. A adoção de práticas não sustentáveis está diretamente relacionada aos graves desequilíbrios ambientais que o Planeta Terra está sofrendo. Dessa forma, a população mundial deve se conscientizar de que, para termos um futuro melhor, será necessário quebrar paradigmas sociais e mudar os hábitos de consumo das pessoas. Para compensar e regular esse consumo excessivo surgiu a TI Verde, que visa promover a utilização dos recursos computacionais de forma consciente, proporcionando a preservação ambiental e a redução dos gastos na infraestrutura da Tecnologia da Informação (TI) (ROLT et al., 2010). Baseando-se nessas premissas, os próprios softwares poderiam contribuir de outras formas além das citadas acima, para ajudar a preservação do meio ambiente. 15 Dessa forma, este trabalho tem como objetivo prover uma solução tecnológica que possibilite a minimização dos impactos causados pelos automóveis no meio ambiente. Essa solução consiste no desenvolvimento de um aplicativo para smartphone1 que contribua com a diminuição no número de carros no trânsito através do processo de “Carona Solidária”. 1 Smartphones – também conhecidos como telefones inteligentes. São celulares com funcionalidades avançadas que podem ser estendidas por meio de programas executados no seu Sistema Operacional. 16 2. FUNDAMENTAÇÃO TEÓRICA 2.1. Nicho de Mercado 2.1.1 Mobilidade O planeta Terra vem passando por constantes e aceleradas transformações, as quais têm afetado significativamente o meio ambiente nos aspectos físico, biológico, político e social, impactando negativamente a qualidade de vida das pessoas (OLIVEIRA, 2009). Muitos pesquisadores afirmam que o aquecimento global está ocorrendo em função do aumento da emissão de gases poluentes, principalmente derivados da queima de combustíveis fósseis (gasolina, diesel, etc.) na atmosfera. Estes gases (ozônio, dióxido de carbono, metano, óxido nitroso e monóxido de carbono) formam uma camada de poluentes de difícil dispersão, causando o efeito estufa e toda a degradação ambiental associada a ele (SILVA, 2009). O setor de transporte é atualmente um dos principais responsáveis pelo lançamento de gases na atmosfera, respondendo por cerca de 20% das emissões globais de CO2. Já no Brasil, segundo informações do Ministério da Ciência e Tecnologia (MCT), o setor de transporte é responsável por cerca de 9% das emissões totais desse gás (CARVALHO, 2011). O crescimento desenfreado da frota de veículos trouxe à tona vários problemas ligados ao tráfego, como congestionamentos, crescimento no índicede acidentes de trânsito, poluição atmosférica, problemas de estacionamento, desumanização das cidades com consequente impacto na qualidade de vida, dentre outros (FERREIRA, RIBEIRO e BARBOSA, 2012). Sob esta ótica, Curitiba é a capital brasileira com o maior índice de motorização, apresentando o índice de um veículo para cada 1,58 habitante (REZENDE et al., 2011). Outro fator agravante reside no fato de que as pessoas não têm a percepção e a consciência do uso compartilhado e eficiente dos veículos, uma vez que a maioria deles é conduzido apenas pelo motorista.Segundo estudo realizado por Carvalho (2011), o transporte individual responde por cerca de 17 35% das viagens motorizadas, e é responsável em média por quase 60% das emissões de dióxido de carbono nos centros urbanos brasileiros. Uma das principais questões do urbanismo atual está centrada na garantia da mobilidade nos centros urbanos, uma vez que a infraestrutura existente não tem capacidade de absorver, com qualidade, o fluxo de veículos proporcionalmente ao seu crescimento (ROCHA, 2007). Em decorrência disso, cada vez mais tem se buscado medidas para minimizar os problemas ligados a esse crescimento acelerado da frota. Atualmente, algumas grandes metrópoles estão desincentivando o transporte motorizado individual, e inclusive, proibindo a circulação em áreas específicas. Essas estratégias, que tem como objetivo estruturar um sistema equilibrado social, econômico e ambientalmente estão, em geral, vinculadas ao conceito de Gerenciamento da Mobilidade (KUWAHARA; BALASSIANO; SANTOS, 2012). O Gerenciamento da Mobilidade é uma técnica de planejamento de transportes que, dentre outros aspectos, busca estratégias para promover a redução dos impactos ao meio ambiente gerados pelos sistemas de transporte. Esta técnica engloba uma série de medidas que buscam modificar a forma de pensar, agir, trabalhar e locomover-se das pessoas, conscientizando-as da importância do uso de meios mais sustentáveis de transporte, e ajudando a tornar o sistema de transportes existente mais eficaz (FERREIRA; RIBEIRO; BARBOSA, 2012). Dentre as várias estratégias de Gerenciamento da Mobilidade citam-se: mudança do hábito de viagens, restrição ao uso do automóvel, sistema de rodízio, incentivo e priorização dos meios não motorizados e de transporte de massa em detrimento ao uso do transporte individual, incentivo ao compartilhamento do automóvel (Carpooling), Clube do carro (Carsharing), entre outros como forma de reduzir os impactos ambientais ocasionados pelos veículos automotores(FERREIRA; RIBEIRO; BARBOSA, 2012; KUWAHARA; BALASSIANO; SANTOS, 2012). 2.1.2 Sustentabilidade 18 Frente à necessidade de estratégias globais para o desenvolvimento de um mundo sustentável, este trabalho analisa a necessidade de mudança dos paradigmas do deslocamento humano, tendo como foco de análise a perspectiva das pessoas em detrimento à dos veículos, orientando-se pelos princípios da qualidade de vida e da sustentabilidade (OLIVEIRA, M. F. S.; OLIVEIRA, O. J. R.; OLIVEIRA, J.F. S., 2010). O conceito de sustentabilidade consiste em atender às necessidades do presente sem comprometer, ao mesmo tempo, os interesses das gerações futuras. Na problemática da sustentabilidade, a prosperidade econômica, o desenvolvimento humano e social e a preservação do meio ambiente possuem o mesmo grau de importância (FILETO, 2009). A obtenção da sustentabilidade global sofre a ação de diversos entraves: culturais, científicos, político-econômicos, sociais, éticos, ideológicos e psicológicos. Contudo, acredita-se firmemente que os cidadãos podem modificar os seus hábitos de vida e de consumo e, dessa forma, atuar como os atores principais da mudança de paradigma da mobilidade sustentável (FILETO, 2009). Neste contexto, para que a questão da mobilidade se torne sustentável, é necessário que os problemas sejam abordados de forma mais ampla, incluindo não apenas a gestão, o desenvolvimento e a adoção de inovações tecnológicas, mas também promovendo mudanças quanto ao comportamento da sociedade, de forma a promover o crescimento da consciência ambiental (SILVA et al., 2003). Os consumidores têm um enorme potencial para impulsionar a redução das emissões de CO2 através de suas atitudes no dia-a-dia, como suas decisões sobre aquecimento e iluminação em casa, a escolha dos aparelhos elétricos e suas opções de transporte (FILETO, 2009). O sentido de pertencimento a uma comunidade e o senso de responsabilidade sobre os destinos da sociedade são fundamentais para que os indivíduos abdiquem do seu conforto particular em prol do bem-estar social (OLIVEIRA, M. F. S.; OLIVEIRA, O. J. R.; OLIVEIRA, J.F. S., 2010). A redução do uso do automóvel estimula a co-responsabilidade social na preservação do meio ambiente, chamando a atenção das pessoas sobre as consequências relacionadas à poluição do ar (JACOBI, 2003). Dessa forma, a 19 realização de campanhas de divulgação e conscientização, voltadas aos proprietários de veículos, para adesão a algumas alternativas são extremamente importantes (KUWAHARA; BALASSIANO; SANTOS, 2012). Como o automóvel é o meio de transporte mais utilizado, se houver uma melhora na utilização desse meio, o impacto final será de extrema relevância (SANTOS; SILVA, 2009). 2.1.3 Carona Solidária Uma das estratégias utilizadas para reduzir os impactos ambientais causados pelos automóveis e os congestionamentos é o incentivo ao uso compartilhado dos mesmos, conhecido como Carpooling, e traduzido para o português como Carona Solidária. A carona solidária pode ser definida como a realização de uma viagem com pelo menos duas pessoas compartilhando um automóvel pertencente a um desses ocupantes, sendo que ambos são considerados praticantes da carona solidária (FERREIRA; RIBEIRO; BARBOSA, 2012). Em geral, todos os participantes são proprietários de um automóvel e alternam seu uso, economizando assim com as despesas de viagem e contribuindo para reduzir os fatores citados anteriormente (EPC, 2011). O estabelecimento de uma carona envolve encontrar pessoas com horários e rotas semelhantes. Os participantes devem estar prontos no horário e lugar combinados com a pessoa que está oferecendo a carona, requerendo dessa forma um acordo mútuo de confiança (MINETT; PEARCE, 2009, tradução nossa). O sistema de caronas é frequentemente utilizado para viagens ao trabalho, instituições de ensino superior e escolas, uma vez que há muitas pessoas viajando ao mesmo tempo para o mesmo local. A carona é flexível e pode ser usada para uma única viagem ou para viagens regulares. Este programa de Carona Solidária é utilizado há muitos anos, com bastante sucesso, em vários países como: França, Alemanha, Inglaterra, Canadá e Estados Unidos. Na França, por exemplo, um site com mais de 200 mil pessoas inscritas realizou uma pesquisa com seus usuários que relataram como vantagens das caronas a economia nos gastos com pedágio e com 20 gasolina e o prazer em conhecer outras pessoas e fazer novos amigos (OLIVEIRA, 2009). Além das vantagens citadas pelos usuários, a carona solidária também promove redução na demandapor estacionamento, dos congestionamentos e da poluição do ar, melhorando dessa forma o bem-estar social e reduzindo o impacto ambiental. Também é possível destacar osbenefíciossociaisa partir de umaperspectiva comportamental, como mudançasnos hábitosculturais e sociais e na mentalidade das pessoas (GALIZZI, 2004, tradução nossa). A eficiência da carona solidáriaestá condicionada à adoção de medidas que incentivem sua prática, uma vez que ela traz desvantagens como a perda da privacidade e disponibilidade, insegurança, perda da independência e a dificuldade de coordenação de viagens de pessoas diferentes (FERREIRA; RIBEIRO; BARBOSA, 2012). Com base nessas informações, percebe-se que osucesso deste programadepende de um conjunto de medidas, como o apoio das pessoas e das instituições, a realização de campanhas educativas e informativas para que a população possa conhecer e usufruir desta facilidade e assim melhorar sua mobilidade (DEWAN; AHMAD, 2007). Outra formade aumentar a adesão ao sistema de caronas consiste na oferta de benefícios ou incentivos aos participantes, comopor exemplo, uma faixa destinadapara o tráfego de veículosde alta ocupação (pelo menos dois ocupantes) e espaçospreferenciais de estacionamento(FERREIRA; RIBEIRO; BARBOSA, 2012). 2.1.4 Smartphones A tecnologia móvel está se tornando cada vez mais presente no cotidiano da população envolvendo todas as classes sociais. A presença dos dispositivos móveis está revolucionando a vida das pessoas à medida que esses ficam mais acessíveis e oferecem mais serviços. Nesse sentido, o termo computação móvelé frequentemente empregado no sentido genérico de descrever a habilidade de utilizar tecnologia apropriada para obter conexão sem fio e usufruir de informação e/ou software de aplicação centralmente 21 encontrado através de aplicações pequenas, portáteis, e dispositivos de computação e comunicação sem fio (KLIEMANN, 2006). O Brasil está deixando de ser o país do telefone celular para ganhar o status de nação dos smartphonestabela. Essa constatação provém de uma pesquisa conduzida pela IHS iSuppli, a qual revelou que a venda de smartphones deve ultrapassar a dos celulares “normais” em 2013. Estima-se que os chamados “celulares inteligentes” representarão 54% da venda total de aparelhos móveis no ano que vem. Atualmente eles representam 46% do total de vendas de celulares móveis(VENDA, 2012). Segundo pesquisa realizada pela Nielsen acerca do mercado de dispositivos móveis as vendas de smartphones no Brasil em 2011 registraram um crescimento de 179% em relação ao ano anterior. Ainda de acordo com a Nielsen, foi a queda de 33% no preço médio do celular inteligente em comparação a 2010, que contribuiu para o crescimento nas vendas (VENDAS, 2012). Os resultados de uma pesquisa realizada pelo IDC mostraram que nos próximos quatro anos o Windows Phone pode superar o mercado do iOS e se tornar o segundo sistema operacional móvel mais usado do mundo. Dos 5,2% atuais, o Sistema Operacional da Microsoft deverá ter um aumento de 14% até 2016, enquanto o iOS terá uma perda de 1,5%, ficando com 19% do mercado. No primeiro lugar está o Android que atualmente detém 61% do mercado de telefonia móvel e deve ficar com 52,9% daqui a quatro anos. No geral, o IDC estima que o mercado global de telefones móveis cresça 4% ao longo dos próximos quatro anos e que, neste ano, 1,8 bilhões de smartphones sejam enviados ao mercado (PESQUISA, 2012). No Brasil, o panorama é um pouco diferente. A empresa KantarWorldpanel Com Tech divulgou os dados de uma pesquisa, que analisou o mês de agosto de 2012, sobre a utilização de smartphones em diversos países do mundo. Os resultados indicam que a base de usuários brasileiros usando a plataforma do Google corresponde a 46.8% do mercado, já o iOS2 é apenas o quarto colocado, com 7,5% de participação, atrás do Windows Phone com quase 15% e até do Nokia Symbian3(22% dos aparelhos).A tendência, 2 3 IOS - Sistema operacionalmóvel da Apple Inc. desenvolvido originalmente para o iPhone. Symbian - Sistema operacional móvel (OS) e plataforma de computação, projetado para smartphones. 22 com o passar do tempo, é que a participação do Symbian caia em desuso e iOS e Windows Phone fiquem como principais concorrentes do Android4 na luta pelo topo deste mercado, que não para de crescer (ANDROID, 2012). O sistema operacional da Microsoft para smartphones, o Windows Phone chegou para competir com iPhones e Androids, já estabelecidos no mercado há algum tempo. A interface da plataforma da Microsoft é mais intuitiva e é diferente dos demais smartphones. A maior diferença entre essas plataformas está relacionada a uma das principais características dos smartphones: a quantidade e qualidade dos aplicativos disponíveis para cada plataforma(PRADO, 2012). Com mais de 600 mil aplicativos disponíveis, a AppStore, da Apple, está à frente de suas concorrentes. O Google Play, substituto do Android Market, oferece algo em torno de 500 mil aplicativos. Já o MarketPlace do Windows Phone ainda está no começo, mas já conta com 120 mil aplicativos disponíveis para download (MACHADO, 2012). Um blog americano realizou uma pesquisa para comparar a venda de um software (Mortal Kombattáticas) que existe tanto para Windows Phone 7 como paraAndroid, sendo que em ambas as plataformas o aplicativo demonstra as mesmas funções. A pesquisa durou 5 dias e a versão para o Windows Phone obteve um total de 12.331 avaliações e uma receita de U$ 14,77. Os resultados mostraram que no 1° dia a versão para o Windows Phone já havia superado os resultados do Android, que em 5 dias obteve um total de 3.684 avaliações e uma receita total de U$ 1,27 (PROGRAMAR, 2011). De acordo com essas informações, fica evidente que o mercado de aplicativos para o Windows Phone está em franca expansão. 2.2. Gerenciamento de Projetos A humanidade vem enfrentando inúmeras mudanças ambientais e quebras de paradigmas, os quais possibilitam o desenvolvimento de projetos motivados pelo intenso movimento de globalização do mundo dos negócios. A ciência acerca dessas transformações possibilita a condução de diversos 4 Android - Sistema operacional baseado no núcleo Linux para dispositivos móveis. 23 conjuntos de atividades que devem ser tratados como projetos, por suas características inovadoras e necessidades de integração (MENEZES, 2009). O desenvolvimento de produtos ou soluções novas demanda um planejamento orientado na criação, no desenvolvimento e em todas as fases intermediárias de validação do projeto, pois facilita o controle no lançamento desses produtos (MENEZES, 2009). Um projeto corresponde a um empreendimento único que apresenta objetivo bem definido, uma sequência clara e lógica de eventos, com início, meio e fim, sendo conduzido por pessoas e respeitando os parâmetros predefinidos de tempo, custo e qualidade (BRUZZI, 2002). Dessa forma, a gestão de projetos pode ser definida como o planejamento, a programação e o controle de uma série de tarefas integradas para atingir seus objetivos com êxito (KERZNER, 2006). Além disso, o gerenciamento de projetos consiste na aplicação de conhecimento, habilidades, ferramentas, e técnicas às atividades do projeto de forma a atender seus requisitos (PMI, 2008). Segundo Sommerville (2007), um bom gerenciamento não é suficiente para garantir o sucesso de um projeto. No entanto, um mau gerenciamento geralmente resulta em falha do projeto: entrega fora do prazo, custo maior do que o estimado e falha no atendimento aos requisitos. O controle e gerenciamento de um projeto estão baseados em três fatores básicos: escopo, tempo e custo, comumente conhecidos como “Restrição Tripla”. Eles constituem o foco do gerenciamento de projetos, concentrando toda energia e atenção do Gerente do Projeto (POSSI, 2004). Esses três parâmetros estão fortemente relacionados, de forma que se ocorrer uma mudança em um deles, provavelmente irá afetar os demais (PMI, 2008). O conhecimento das variáveis que influenciam o projeto, além dos parâmetros citados acima, também é importante. Como exemplo desses parâmetros pode-se citar a cultura local e os padrões de comportamento da população, os quais podem igualmente influenciar o projeto (MENEZES, 2009). Para que o gerenciamento de projetos seja eficiente, os mesmos devem ser segmentados em fases, constituindo o ciclo de vida do projeto. Esse ciclo inclui os principais passos do projeto, funcionando como uma ferramenta de apoio para definir o começo e o término do mesmo, através da definição de 24 fases, cujos subprodutos são avaliados de forma a determinar a continuidade ou não de um projeto (POSSI, 2004). O plano de gerenciamento do projeto é considerado iterativo devido ao potencial de mudança do mesmo. Ele passa por uma elaboração progressiva no decorrer do ciclo de vida do projeto. Dessa forma, conforme o projeto evolui, o nível de detalhes aumenta (PMI, 2008). 2.2.1 PMBOK Nos últimos anos a área de gerenciamento de projetos tem ganhado cada vez mais reconhecimento e importância. Um dos principais responsáveis por essa ascensão é o Instituto de Gerenciamento de Projetos (PMI - Project Management Institute), o qual tem como objetivo a difusão do conhecimento em gerenciamento de projetos. Uma das principais iniciativas do PMI para atingir esse objetivo é a publicação de padrões globais de gerenciamento de projetos, programas e portfólio, sendo a mais popular delas o Guia do Conjunto de Conhecimentos em Gerenciamento de Projetos (Guia PMBOK® - Project Management BodyofKnowledge) (D'ÁVILA, 2006). Os padrões globais publicados pelo PMI são amplamente aceitos e fornecem diretrizes, regras e características do gerenciamento de projetos. O Guia PMBOK é atualmente o principal padrão global para gerenciamento de projetos(LIBRARY, 2012, tradução nossa). O PMI (2008) descreve diversos conhecimentos acerca do gerenciamento de projetos, categorizando-os em nove áreas: Gerenciamento da Integração do Projeto, Gerenciamento do Escopo do Projeto, Gerenciamento do Tempo do Projeto, Gerenciamento dos Custos do Projeto, Gerenciamento da Qualidade do Projeto, Gerenciamento dos Recursos Humanos do Projeto, Gerenciamento da Comunicação do Projeto, Gerenciamento dos Riscos do Projeto e Gerenciamento das Aquisições do Projeto. Dessas nove áreas de conhecimento, os principais determinantes para o objetivo de um projeto são o Escopo, Tempo, Custos e Qualidade: entregar um resultado de acordo com o escopo, prazo e custo definidos, com uma 25 qualidade adequada. Os Recursos Humanos e as Aquisições correspondem aos insumos necessários para produzir o trabalho do projeto. A Comunicação e os Riscos devem ser gerenciados continuamente, de forma a controlar as expectativas e as incertezas do projeto e garantir que o mesmo está sendo conduzido para a direção correta. Já a Integração abrange a coordenação de todos estes aspectos (D'ÁVILA, 2006). 2.3. Modelagem de sistemas de software De acordo com Booch, Rumbaugh e Jacobson (2012), um software que satisfaça as necessidades de seus usuários e respectivos negócios é o principal produto de uma equipe de desenvolvimento, sendo o restante secundário. O que ocorre muitas vezes é a confusão de secundário com irrelevante. Para Bezerra (2002) a utilização da modelagem na construção de sistemas de software permite o gerenciamento da complexidade do sistema, a comunicação entre as partes envolvidas, a redução de custos no desenvolvimento e a predição do comportamento futuro do sistema. Bezerra (2002) ainda define a modelagem de sistemas como sendo: A utilização de notações gráficas e textuais com o objetivo de construir modelos que representam as partes essenciais de um sistema, considerando-se diversas perspectivas diferentes e complementares. O motivo principal para a utilização da modelagem nos sistemas de software consiste na capacidade dessa metodologia de simplificar a realidade e possibilitar uma melhor compreensão do sistema que está sendo desenvolvido. Além disso, através da modelagem é possível alcançar os seguintes objetivos: visualizar o sistema como ele é ou como gostaríamos que fosse; especificar a estrutura ou o comportamento do sistema; fornecer um guia para a construção do sistema; documentar as decisões tomadas (BOOCH; RUMBAUGH; JACOBSON, 2012). 26 O uso da modelagem não deve ser relacionado ao tamanho do software, uma vez que os sistemas apresentam uma tendência natural para se transformar em algo mais complexo ao longo do tempo. Porém, é evidente que quanto maior e mais complexo o sistema, maior será a importância da modelagem, uma vez que ela possibilita o trabalho em níveis mais altos de abstração (BOOCH; RUMBAUGH; JACOBSON, 2012). 2.3.1 Princípios da Modelagem A experiência que o uso da modelagem adquiriu com todas as disciplinas Engenharia sugere quatro princípios básicos de modelagem(BOOCH; RUMBAUGH; JACOBSON, 2012): 1. A seleção dos modelos que serão criados possui grande influência sobre a maneira como um determinado problema é enfrentado e como uma solução é definida. Esse princípio demonstra a importância da escolha criteriosa dos modelos, uma vez que modelos corretos esclarecem os problemas de desenvolvimento mais complicados e proporcionam conclusões que não seriam possíveis de outra maneira. Por outro lado, os modelos inadequados irão desviar o foco para questões irrelevantes na medida em que causam confusões. A escolha dos desenvolvimento, modelos ou seja, depende os fortemente modelos do contexto selecionados por do um desenvolvedor de banco de dados serão diferentes dos modelos definidos por um analista de análise estruturada, que por sua vez irão diferir da perspectiva de um desenvolvedor orientado a objetos. 2. Os modelos poderão ser expressos em diferentes níveis de precisão. Os melhores tipos de modelo são aqueles que possibilitam a escolha do grau de detalhamento, dependendo de quem esteja fazendo a visualização e do por que deseja fazê-la. Essa característica é importante, pois cada observador deseja visualizar o sistema em diferentes níveis de detalhamento, em situações distintas. 3. Os melhores modelos estão associados à realidade. 27 Esse princípio ressalta o fato de que o modelo é uma simplificação da realidade e, portanto, deve-se ter certeza de que a sua simplificação não ocultará detalhes importantes. 4. Nenhum modelo único é suficiente. Qualquer sistema não trivial será mais bem investigado por meio de um pequeno conjunto de modelos quase independentes com vários pontos de vista. No contexto em que se encontra, a expressão “quase independente” se refere ao fato de que os modelos podem ser criados e estudados separadamente, mas continuar inter-relacionados. Para compreender a arquitetura dos sistemas orientados a objetos, é necessário recorrer a várias visões complementares e inter-relacionadas: como a visão dos casos de uso, de projeto, do processo, da implementação e da implantação do sistema. Em conjunto, essas visões representam a base do projeto de software. Conforme a natureza do sistema, alguns modelos se tornarão mais importantes que outros. 2.3.2 A Linguagem de Modelagem Unificada (UML) A UML (UnifiedModelingLanguage) foi criada devido à necessidade de se ter uma linguagem padrão para a modelagem de sistemas. Dessa forma, ela surgiu para ser a linguagem “unificadora” de notações, diagramas e formas de representação existentes em diferentes técnicas (BEZERRA, 2012). A UML foi criada no final da década de 90 por GradyBooch, Ivar Jacobson e Jim Rumbaugh e atualmente é um padrão adotado pela OMG (Object Management Group) (PAGE-JONES, 2001). Bezerra (2002) define a UML da seguinte forma: A UML é uma linguagem visual para modelar sistemas orientados a objetos. Isso quer dizer que a UML é uma linguagem constituída de elementos gráficos (visuais) utilizados na modelagem que permitem representar os conceitos do paradigma da orientação a objetos. Através dos elementos gráficos definidos nesta linguagem podem-se construir diagramas que representam diversas perspectivas de um sistema. 28 De acordo com Booch, Rumbaugh e Jacobson (2012), a UML pode ser empregada para a visualização, especificação, construção e documentação de artefatos que utilizam sistemas complexos de software. Ainda, segundo esses autores, a UML abrange a documentação da arquitetura do sistema e de todos os seus detalhes, proporciona uma linguagem para a expressão de requisitos e para a realização de testes e possibilita a modelagem das atividades de planejamento do projeto e de gerenciamento de versões (BOOCH; RUMBAUGH; JACOBSON, 2012). A UML consegue capturar a estrutura de sistemas orientados a objetos acima do nível das linhas individuais de código, e pode ser expressa em diagramas que englobam a gama de construções dos sistemas típicos orientados a objeto (PAGE-JONES, 2001). Um diagrama consiste na apresentação gráfica de um conjunto de elementos, geralmente representados como gráficos de vértices (itens) e arcos (relacionamentos). Eles são desenhados para possibilitar a visualização de um sistema sob diferentes perspectivas, constituindo assim uma projeção de um determinado sistema (BOOCH; RUMBAUGH; JACOBSON, 2012). Dentre os modelos preconizados pela UML foram utilizados nesse trabalho os Casos de Uso, os Diagramas de Casos de Uso e o Diagrama de Classes. 2.3.2.1 Modelagem de Casos de Uso Bezerra (2002) define o modelo de casos de uso da seguinte forma: O modelo de casos de uso é uma representação das funcionalidades externamente observáveis do sistema e dos elementos externos ao sistema que interagem com ele. Este modelo descreve quais os requisitos funcionais do sistema e quais são as entidades do ambiente (atores) que interagem com o sistema. Este modelo nos informa também quais são as ações do sistema conforme percebidas pelos atores. Com este modelo, podem ser respondidas questões sobre o que o sistema deve fazer e para quem. 29 Ao modelar casos de uso, o analista descreve a interação do usuário com o sistema, o que o usuário demanda e o que o sistema responde. Durante esse processo, o objetivo não contempla a especificação do software nem dos programas, mas sim o que o software deve atender e o que o usuário espera dele, não devendo haver preocupações sobre a construção de código ou com a implementação (SILVA; GOMIDE;PETRILLO, 2003). Esse modelo tem se tornado cada vez mais popular devido à sua notação gráfica simples e descrição em linguagem natural, facilitando dessa forma a comunicação entre desenvolvedores e usuários. Além disso, o modelo de casos de uso leva os desenvolvedores a moldarem o sistema de acordo com o usuário, e não o usuário de acordo com o sistema(BEZERRA, 2012). O modelo de casos de uso é composto da documentação dos casos de uso e dos atores e do diagrama de casos de uso (BEZERRA, 2012). 2.3.2.2 Casos de Uso Um caso de uso consiste em uma descrição de um conjunto de sequências de interações entre um sistema e os agentes externos que o utilizam (BEZERRA, 2012). Os casos de usos podem ser aplicados para especificar o comportamento pretendido do sistema que está sendo desenvolvido, sem a necessidade de especificar como ele será implementado (BOOCH; RUMBAUGH; JACOBSON, 2012). A ampla utilização dos casos de uso está atrelada ao fato de que eles fornecem uma maneira para os desenvolvedores chegarem a uma compreensão comum com os usuários finais do sistema e com os especialistas do domínio. Além disso, eles auxiliam na validação da arquitetura e na verificação do sistema à medida que ele evolui durante seu desenvolvimento (BOOCH; RUMBAUGH; JACOBSON, 2012). A identificação dos atores que interagem com o sistema e dos casos de uso do mesmo é feita com base nas informações coletadas na fase de levantamento de requisitos do sistema. Durante essa fase, os analistas de sistemas identificam quais atividades do processo de negócio são relevantes 30 ao sistema a ser construído e quais os elementos que interagem nesses processos (BEZERRA, 2012). Segundo a terminologia da UML, qualquer elemento externo que interage com o sistema é considerado um ator. O termo “externo” indica que os atores não fazem parte do sistema e o termo “interage” indica que um ator troca informações com o sistema (BEZERRA, 2012). Os atores podem ser humanos ou sistemas automatizados.Os casos de uso e atores não existem sozinhos. Dessa forma, um ator deve estar relacionado a um ou mais casos de uso do sistema. Também podem ocorrer relacionamentos entre os casos de uso de um sistema (BEZERRA, 2012). A UML não define o formato e o grau de abstração a serem utilizados na descrição de um caso de uso. Bezerra (2002) aponta alguns itens importantes, como: ator primário (ator que inicia o caso de uso), atores secundários (demais atores participantes do caso de uso, se existirem), fluxo principal (descrição da sequência de passos do fluxo principal, o qual descreve o que normalmente acontece quando o caso de uso é realizado), fluxos alternativos (descrevem o que acontece quando o ator faz uma escolha alternativa, diferente da descrita no fluxo principal), fluxos de exceção (descrevem o que acontece quando algo inesperado ocorre na interação entre ator e caso de uso) (BEZERRA, 2012). A descrição de um caso de uso também pode fazer referência a uma ou mais regras do negócio. Essas regras são consideradas como as políticas, condições ou restrições que devem ser consideradas na execução dos processos existentes em uma organização, uma vez que elas descrevem a maneira como a organização funciona. As regras do negócio de uma organização são normalmente identificadas nas fases de levantamento de requisitos de análise e normalmente têm influência sobre a lógica de execução de um ou mais casos de uso (BEZERRA, 2012). 2.3.2.3 Diagramas de Casos de Uso Os diagramas de casos de uso (DCUs) fornecem uma visão global e de alto nível do sistema, pois descrevem a visão externa do sistema e representam graficamente os atores, casos de uso e os relacionamentos entre 31 esses elementos. Eles têm como objetivo principal ilustrar em um nível alto de abstração quais elementos externos interagem com quais funcionalidades do sistema (BEZERRA, 2012). Os DCUs são importantes para a visualização, especificação e documentação do comportamento de um elemento. Esses diagramas fazem com que sistemas, subsistemas e classes se tornem acessíveis e compreensíveis. Eles também são importantes para testar sistemas executáveis por meio de engenharia direta (processo de transformar um modelo em código) e para compreendê-los por meio de engenharia reversa (processo de transformar código em um modelo) (BOOCH; RUMBAUGH; JACOBSON, 2012). A notação utilizada para representar atores em um DCU é a figura de um boneco, com o nome do ator definido logo abaixo dessa figura. Já os casos de uso são representados por uma elipse, com o nome posicionado abaixo ou dentro da elipse. Um ator pode estar associado a vários casos de uso em um mesmo diagrama (BEZERRA, 2012). A UML define diferentes tipos de relacionamentos, os quais são aplicados em todos os diagramas da UML. Os relacionamentos são representados graficamente de acordo com o seu tipo. Os relacionamentos do tipo dependência são relacionamentos de utilização, determinando que um item usa as informações e os serviços de outro item, mas não necessariamente o inverso. Esse tipo de relacionamento é representado por linhas tracejadas apontando o item do qual o outro depende (BOOCH; RUMBAUGH; JACOBSON, 2012). O relacionamento do tipo generalização consiste em um relacionamento entre itens gerais (denominados classes-mãe) e tipos mais específicos desses itens (denominados classes-filha). Dessa forma, a filha herda as propriedades da mãe, principalmente seus atributos e operações. Uma generalização é representada graficamente como linhas sólidas com uma grande seta triangular apontando a mãe (BOOCH; RUMBAUGH; JACOBSON, 2012). Já uma associação é um relacionamento estrutural que especifica objetos de um item conectados a objetos de outro item. Sendo assim, a partir de uma associação conectando duas classes, é possível navegar do objeto de uma classe até o objeto de outra e vice-versa. Esse tipo de relacionamento é 32 representado graficamente como uma linha sólida conectando classes ou casos de uso (BOOCH; RUMBAUGH; JACOBSON, 2012). É possível também representar a fronteira do sistema no diagrama de casos de uso. Ela é representada graficamente por um retângulo no qual são inseridos os casos de uso. Os atores são posicionados do lado de fora do retângulo, para demonstrar a divisão entre o interior e o exterior do sistema (BEZERRA, 2012). 2.3.2.4 Diagrama de Classes Os diagramas de classes são os diagramas mais frequentemente utilizados na modelagem de sistemas orientados a objetos. Eles mostram um conjunto de classes, interfaces e colaborações e seus relacionamentos (BOOCH; RUMBAUGH; JACOBSON, 2012). Esse tipo de diagrama é utilizado para fazer a modelagem da visão estática de um sistema, a qual oferece principalmente suporte aos requisitos funcionais do sistema, em outras palavras, os serviços que o sistema deverá fornecer aos usuários finais (BOOCH; RUMBAUGH; JACOBSON, 2012). Ao criar a modelagem da visão estática do sistema, o diagrama de classes poderá ser utilizado para fazer a modelagem do vocabulário do sistema, que envolve a decisão a respeito de quais abstrações fazem parte do sistema e quais estão fora dos limites dele; a modelagem de colaborações, responsável por visualizar e especificar o conjunto de classes e relacionamentos do sistema; ou a modelagem do esquema lógico de um banco de dados (BOOCH; RUMBAUGH; JACOBSON, 2012). Os Diagramas de classes são importantes para a visualização, a especificação, a documentação de modelos estruturais e a construção de sistemas executáveis por intermédio de engenharia direta e reversa (BOOCH; RUMBAUGH; JACOBSON, 2012). 33 2.4. Tecnologias Utilizadas As tecnologias utilizadas no desenvolvimento deste trabalho são descritas a seguir. 2.4.1. Microsoft Visual Studio O Microsoft Visual Studio é um conjunto de ferramentas que simplifica o processo de desenvolvimento de aplicações e novos softwares. O processo de criação de softwares não consiste apenas na escrita de códigos. Desta forma, a versão 2010 do Visual Studio conta com os recursos das ferramentas de ALM (ApplicationLifecycle Management), para gerenciar todo o ciclo de vida do programa, desde a documentação, arquitetura do software até a parte de testes e implantação. Esta nova ferramenta ainda permite que toda a equipe de desenvolvimento colabore e dialogue ao longo das etapas de desenvolvimento(VISUAL, 2012). O Microsoft Visual integrado (IDE) da Microsoft, aplicações para todas as Studio é um ambiente podendo ser plataformas CE,.NET Framework e Microsoft Ele diferentes linguagens de programação, usado suportadas Windows, Windows Mobile, Windows Silverlight. de desenvolvimento para desenvolver pelo Microsoft Framework, .NET também oferece como C, Compact suporte a C++ (via Visual C++), VB.NET (via Visual Basic .NET) e C# (via Visual C#), e linguagens para desenvolvimento web, como XML, XSLT, HTML, XHTML, Javascript e CSS(TUTORIAL, 2012). 2.4.2. C Sharp O avanço das ferramentas de programação (ex: C++ e Java) e dos dispositivos eletrônicos inteligentes (ex: telefones celulares) gerou novas exigências, criando muitas expectativas para o mercado de software. Como resultado da popularidade dos dispositivos eletrônicos móveis, os desenvolvedores reconheceram a necessidade de criar aplicativos baseados na Web que pudessem ser acessados e usados via Internet e que estivessem 34 disponíveis por meio de praticamente qualquer tipo de dispositivo. Para tratar dessas necessidades, a Microsoft anunciou sua iniciativa .NET e a linguagem de programação C# (DEITEL, 2003). A linguagem de programação C Sharp, que daqui em diante iremos descrever como C#, é a fase seguinte na evolução do C e C++, fornece diversos recursos importantes para os programadores, como programação orientada a objetos, strings, elementos gráficos, componentes de interface gráfica (GUI), tratamento de exceções, múltiplas linhas de execução, multimídia (áudio, imagens, animação e vídeo), processamento de arquivos, estruturas de dados pré-empacotadas, processamento de banco de dados, redes cliente/servidor com base na Internet e computação distribuída (DEITEL, 2003). O C# é uma linguagem de programação visual dirigida por eventos e totalmente orientada a objetos, na qual os programas são criados usando-se uma IDE (IntegratedDevelopmentEnvironment – ambiente de desenvolvimento integrado). O uso da IDE permite que o programador crie, execute, teste e depure os programas, reduzindo assim o tempo necessário para criar um programa funcional (DEITEL, 2003). A programação orientada a objetos apresenta diversas vantagens em relação à programação procedimental, dentre as quais pode-se citar: melhor produtividade, reutilização de software e produção de software mais inteligível, pois ele é melhor organizado e tem menos requisitos de manutenção. A orientação a objetos também permite que os programadores abstraiam os detalhes do software e se concentram no todo, criando programas fáceis de entender, modificar e atualizar, pois oculta grande parte dos detalhes (DEITEL, 2003). Lima (2002) cita algumas características do C# consideradas essenciais: - Simplicidade: os projetistas de C# costumam dizer que essa linguagem é tão poderosa quanto o C++ e tão simples quanto o Visual Basic. - Completamente orientada a objetos: o C# requer que toda a lógica do programa esteja contida em classes - Fortemente tipada: ajuda a evitar erros por manipulação imprópria de tipos, atribuições incorretas etc. - Tudo é um objeto: System.Object é a classe base de todo o sistema de tipos de C#. 35 - Controle de versões: cada assembly gerado, seja como EXE ou DLL, tem informação sobre a versão do código, permitindo a coexistência de dois assemblies homônimos, mas de versões diferentes no mesmo ambiente. - Linguagem gerenciada: os programas desenvolvidos em C# executam num ambiente gerenciado, o que significa que todo o gerenciamento de memória é feito pelo runtime via o GC (GarbageCollector), e não diretamente pelo programador, reduzindo as chances de cometer erros comuns a linguagens de programação onde o gerenciamento da memória é feito diretamente pelo programador. - Suporte a código legado: o C# pode interagir com código legado de objetos COM e DLLs escritas em uma linguagem não-gerenciada. - Flexibilidade: o C# permite o uso de ponteiros, se necessário. 2.4.3. Windows Phone O desenvolvimento para telefones é um termo abrangente que se refere ao processo de criar aplicativos para smartphones. Os telefones executam o sistema operacional como uma plataforma para fornecer serviços aos aplicativos. Dessa forma, o desenvolvimento para telefones é semelhante ao desenvolvimento para computadores, com a ressalva de que os telefones não têm a mesma memória ou desempenho dos desktops. Para simplificar o desenvolvimento, é possível executar, depurar e testar os aplicativos em um emulador, que é uma versão do software do telefone. Essa funcionalidade permite a criação do aplicativo em um ambiente padrão e familiar, que depois poderá ser implantado em um telefone quando estiver pronto para uso(TELEFONE, 2012). O Microsoft Visual Studio possui a capacidade de adquirir várias funções que não são nativas através da instalação de SDK's (Software Development Kit) e plug-ins, como o SDK Windows Phone 7.1, que possibilita a programação para Windows Phone. Ainda, a versão 2010 do Visual Studio, fornece um emulador de Windows Phone 7 para que o desenvolvedor possa testar o aplicativo direto no computador (TUTORIAL, 2010). Os programas para "Windows Phone 7" podem ser programados com C# em "Silverlight" ou XNA. Para criar esses programas é necessário que o 36 "Visual Studio" apresente os seguintes pacotes instalados: "Phone Emulator", "Blend" e Bibliotecas Silverlight Phone) (TUTORIAL: Clássico, 2010). 2.4.4. Microsoft Expression Blend O Microsoft Expression Blend pertence à família Microsoft Expression Studio, a qual tem como foco a criação e o design de páginas, telas, elementos, etc. Seu ambiente permite o desenvolvimento integrado a outros desenvolvedores, através de ferramentas especiais que possibilitam o compartilhamento dos projetos sem nenhuma alteração, garantindo assim, a propriedade e a integridade dos mesmos (MACORATTI, s.d). A utilização do Expression Blend integrada ao Microsoft Visual Studio possibilita a criação de aplicativos ricos e bem arquitetados para dispositivos móveis (EXPRESSION, s.d, tradução nossa). Apresenta interface atrativa e prática de usar, melhorando significativamente o ambiente de trabalho dos desenvolvedores (MACORATTI, s.d). Utilizando tecnologias como Silverlight, XAML e C#, o Expression Blend permite o desenvolvimento de aplicativos estáveis, escaláveis, acessíveis, confiáveis e altamente seguros, mantendo um ótimo desempenho (POWERFUL, s.d). 2.4.5. Silverlight O Silverlight é uma poderosa plataforma de desenvolvimento da Microsoft para a nova fase da web, pois trabalha com um novo conceito de recursos visuais, como os de som, vídeo e animações, além da praticidade, usabilidade, agilidade e intuitividade de navegação que compõem a chamada Experiência do Usuário (UsereXperience) (DURÃES et al., 2008). Desenvolvido para competir com o Flash, da Adobe, o Silverlight oferece uma nova experiência para aplicativos ricos e interativos na internet sendo um plug-in de vários navegadores e plataformas. Usado para criar interfaces com o usuário, tem como diferencial o fato de criar aplicações que usam o conceito de RIA (Rich Internet Application), permitindo uma experiência mais rica ao usuário (MACORATTI, s.d). Dessa forma, permite o desenvolvimento visual de 37 interfaces de alta produção e de experiências interativas que podem ser executadas dentro de navegadores, em dispositivos móveis e sistemas operacionais desktop (DURÃES et al.,2008). Durãeset al. (2008) ressaltam alguns pontos interessantes dessa plataforma: - É cross-browser5 e multiplataforma, ou seja, foi projetada para rodar em praticamente todos os navegadores da Web e trabalhar em diversas arquiteturas e sistemas operacionais; - Apresenta Layout visual consistente. Dessa forma, o layout não é distorcido entre browsers e ambientes diferentes. - Realiza stream6 de áudio e vídeo de maneira inteligente. Ele controla a demanda da qualidade do vídeo para o dispositivo cliente, desde smartphones até navegadores comuns. - É vetorial e suporta gráficos 2D e até mesmo 3D. - Lê e recebe dados sem precisar atualizar a página. - No quesito segurança, o Silverlight é executado no contexto do navegador e não tem acesso à máquina do cliente. - Utiliza o C# ou VB.NET para desenvolver a parte do código gerenciado, agilizando o desenvolvimento. - O download do plugin é pequeno (pouco mais de 4MB) e se instala em segundos. 2.4.6. XAML XAMLouExtensibleApplicationMarkupLanguage é uma linguagem de marcação baseada em XML criada pela Microsoft para criar interfaces com o usuário (UI) e facilitar a integração entre os designers e os desenvolvedores(MACORATTI, 2009; MICROSOFT, 2010). É uma linguagem que possibilita a criação de elementos de UI visíveis na marcação declarativa de XAML e, através do uso de arquivos code-behind7, permite a separação da definição da UI do código lógico em tempo de 5 Cross-browser - refere-se à habilidade de um site, Aplicação Web, contructor HTML ou scriptsuportar múltiplos navegadores. 6 Forma de distribuir informação de áudio e vídeo pela Internet através de pacotes. 7 Termo utilizado para descrever o código que é unido ao código criado por um processador XAML quando uma página XAML é compilada. 38 execução. Ao contrário da maioria das outras linguagens de marcação, a XAML diretamente representa a instanciação de objetos gerenciados. Esse princípio de design geral permite código simplificado e acesso de depuração aos objetos criados em XAML (XAML, s.d). Algumas ferramentas para design gráfico como o Expression Blend, requerem a utilização do XAML(PEREIRA; ISENTO, 2010).Os arquivos XAML também sãousados para especificar declarativamente uma interface de aplicação no Silverlight(DURÃES et al., 2008). No projeto Silverlight, por padrão são criados dois arquivos XAML (App.xaml e Page.xaml) com seus respectivos arquivos de classe (DURÃES et al., 2008).O arquivo "App.xaml", é muito importante pois ele carrega boa parte das características do software. Como exemplo, por padrão ele carrega o arquivo Page.xaml que corresponde ao controle inicial da UI (TUTORIAL, 2010). Ao executar o build do projeto, o Visual Studio compila o código C# e o código XAML para um arquivo assembly, que será empacotado em um arquivo de recurso com a extensão .XAP. Este arquivo utiliza o algoritmo de compressão zip para minimizar o impacto do download no cliente(DURÃES et al., 2008). 2.4.7. Bing Maps O conjunto de tecnologias que envolvem coleta, processamento, análise e disponibilização de informação com referência geográfica constituem as Geotecnologias(QUEIROZ, 2006).Essas tecnologias são comumente utilizadas para executar buscas de endereços, mapeamento de rotas, localização de lugares, entre outras. (GERAÇÃO, s.d) O Bing Maps é um serviço de mapeamento online criado pela Microsoft para possibilitar a criação de aplicações geográficas utilizando uma API com diversas funções espaciais, traçando rotas, encontrando lugares a partir do endereço, etc. (SANTIAGO, 2008)O serviço de mapeamento padrão no Windows Phone 7 é o Bing Maps. O controle de mapas no Windows Phone 7Developer Toolkit é gratuito para uso em produtos de consumo voltados para 39 aplicações móveis. Dessa forma, fica mais fácil incorporar uma experiência de mapeamento consistente para as soluções móveis (BING, s.d). 2.4.8. SQL Server SQL é a linguagem utilizada para geração, manipulação e recuperação de dados de um banco de dados relacional, o qual possibilita o tratamento de quantidades enormes de dados. Os bancos de dados relacionais estão disponíveis comercialmente há pelo menos duas décadas; dentre eles pode-se citar o SQL Server, da Microsoft (BEAULIEU, 2010). O Microsoft SQL Server é um servidor de banco de dados e de informações abrangente que oferece um conjunto completo de tecnologias e ferramentas enterprise-ready, as quais possibilitam gerar valor máximo de informações a um custo total de propriedade baixíssimo. Por ser uma plataforma completa e integrada, o Microsoft SQL Server fornece altos níveis de desempenho, disponibilidade e segurança (POR QUE, 2011). Quando comparado com outros bancos de dados, o SQL Server fornece funcionalidade mais flexível, melhor escalabilidade e desempenho mais confiável. Além disso, o SQL Server 2008 R2 estabeleceu recordes de desempenho no TPC-E, a medida de desempenho de OLTP padrão do setor industrial mais rigoroso. (Microsoft SQL Server, 2011). Dentre as principais razões para utilizar o SQL Server pode-se citar: - O SQL Server fornece seis noves (99.9999%) em disponibilidade de tempo de atividade. - O SQL Server é a plataforma de bancos de dados mais segura. - O SQL Server é o líder incontestável nos parâmetros de comparação de desempenho TPC-E. - O SQL Server proporciona uma economia de 460% no custo anual de administração por banco de dados comparado com o Oracle. - O SQL Server supera o IBM DB2 ao alcançar o segundo lugar em receita de licenças de bancos de dados relacionais em 2009. - A Microsoft tomou a dianteira no mercado de BI com um crescimento de 23.6% baseado na receita em 2010 (POR QUE, 2011). 40 2.4.9. Windows Communication Foundation Windows CommunicationFoundation (WCF) é um modelo de programação unificado criado pela Microsoft para a construção deaplicações orientadas a serviços (WINDOWS COMMUNICATION, s.d, tradução nossa). O objetivo principal do WCF consiste em permitir que analistas e desenvolvedores criem aplicações voltadas para a computação distribuída. O WCF é considerado como uma evolução ao Web Service, visto que ele agrupa várias tecnologias para resolver os problemas na comunicação dos dados (LIMA, 2010). Esse modelo de programação baseia-se na comunicação orientada a mensagens, contemplando tudo que pode ser modelado como uma mensagem, como por exemplo, um pedido de HTTP. Dessa forma, ele permite o envio de dados como mensagens assíncronas entre serviços e clientes (WHAT IS, s.d). O modelo distingue os clientes, que são os aplicativos que iniciam a comunicação, e os serviços, que são as aplicações que esperam por clientes para estabelecer a comunicação (FUNDAMENTAL, s.d., tradução nossa). O WCF apresenta dois tipos de configuração de serviço: imperativo e declarativo. O primeiro é criado no próprio código gerenciado (C#, VB.NET), já o segundo é criado através de um arquivo de configuração (Web.Config, App.Config). O tipo declarativo é mais vantajoso quando comparado ao imperativo, pois como as configurações estão escritas nos arquivos de configuração, não é necessário recompilar o sistema a cada vez que uma modificação for feita (BALTIERI, S.d). O WCF pode ser utilizado tanto como um serviço seguro para processar transações de negócios quanto como um serviço de chat, permitindo que duas pessoasse comuniquem outro quem dados emtempo real (FUNDAMENTAL, s.d., tradução nossa). 41 3. ORGANIZAÇÃO-CLIENTE Empresa: Employer Organização de Recursos Humanos. Endereço eletrônico: [email protected] Telefone para contato: 0800-412400. Serviços prestados: Mão-de-obra temporária, Terceirização de mão-deobra, Serviços de Recursos Humanos como recrutamento e seleção. 3.1. Histórico Fundada em 1986, pelo presidente Marcos Aurélio de Abreu Rodrigues e Silva, ex-presidente da ABRH nacional (1981-1983), a Employer é reconhecida por sua excelência na cessão de mão-de-obra, temporária e serviços de Recursos Humanos, conquistada com ousadia. Em 21 anos, a empresa tornouse uma das maiores do Brasil, líder de mercado no segmento para o agronegócio e para serviços financeiros. Hoje, a matriz localizada em Curitiba, conta com o apoio de 56 filiais, estrategicamente presentes em todas as regiões do país. 42 4. DIAGNÓSTICO DO AMBIENTE No Brasil, o resultado do crescimento econômico global, aliado a uma inflação controlada desde 1994 através do Plano Real, tem sido o crescimento do poder aquisitivo do cidadão brasileiro, a utilização maciça de redes sociais (impulsionada por programas de inclusão digital) e o desejo por uma mobilidade urbana mais ágil; todavia, a atual ineficiência do transporte público e a baixa aderência a meios de transporte alternativos resultou num trânsito caótico nas grandes e médias cidades, enfrentado por pessoas que têm a necessidade de se locomover de um ponto a outro no menor tempo possível. Além disso, o setor automobilístico é um dos setores que mais contribui para a poluição ambiental no mundo. Se ainda não é possível criar em larga escala veículos movidos à energia limpa, como a eletricidade, pois os preços são inviáveis, pelo menos se pode colaborar com ações mais baratas, em menor escala e com menos recursos, que resultem em outra forma de redução de poluentes. Frente à situação atual do trânsito nas grandes cidades brasileiras, às questões socioambientais e entendendo que os aparelhos celulares deixaram de ser um mero telefone e se transformaram numa poderosa ferramenta que permite a interatividade entre os cidadãos, o aplicativo “Garupando”, tem como finalidade principal permitir que pessoas compartilhem seus meios de transporte. O resultado prático do uso do “Garupando” pelo cidadão que deixa seu carro na garagem e desloca-se para o trabalho, escola, faculdade ou qualquer outro local por meio de caronas é uma melhora na mobilidade urbana e a redução de gás carbônico emitido na atmosfera e da interatividade com outras pessoas além da tela de um computador. 4.1 Pesquisa de aceitação da Carona Solidária Como o sistema de Carona Solidária ainda não é muito difundido, resolvemos realizar uma pesquisa com o objetivo de avaliar a aceitabilidade desse sistema. Para tanto, desenvolvemos um questionário (ApêndiceK) contendo perguntas relacionadas à utilização de um aplicativo de caronas e 43 quais informações seriam importantes ao se realizar uma busca por caronas. A pesquisa foi criada utilizando-se a ferramenta de formulários do Google Docs, e foi divulgada via e-mail e através das redes sociais. A primeira parte do questionário tinha como objetivo caracterizar a amostra com dados como sexo, idade, estado civil, escolaridade e propriedade de automóvel. A segunda parte apresentava perguntas relativas à utilização de um aplicativo de caronas, como: “Você acharia interessante ter um aplicativo que mostre pessoas que tem rotas similares à sua?” e “Você daria carona para uma pessoa que conheceu através de um aplicativo?”. Já a terceira parte do questionário apresentava diversas informações para que as pessoas avaliassem a sua importância na hora de realizar uma busca rápida por caronas. 4.2 Caracterização da amostra Um total de 219 pessoas respondeu à pesquisa. A Tabela Imostra as características dos respondentes. Analisando os dados coletados pode-se observar que mais da metade das pessoas é do sexo masculino, está entre a faixa etária de 18 a 29 anos, possui curso superior completo e tem carro próprio. - Características da amostra TabelaI -- Características da amostra Sexo % Carro Próprio Feminino 35 Sim 72 Masculino 65 Não 28 Faixa Etária % Escolaridade % 18 a 29 anos 52 2º grau incompleto 01 30 a 39 anos 23 2º grau completo 03 40 a 49 anos 14 Superior 32 50 a 59 anos 09 Incompleto % 55 44 Acima de 60 02 Superior Completo 07 Mestrado 02 Outro Estado Civil % Solteiro (a) 50 Casado (a) 39 Separação 09 Legal 02 Outro 4.3 Aceitabilidade da Carona Solidária A Tabela IIcontempla os resultados obtidos através das perguntas relacionadas à utilização de um aplicativo de caronas. TabelaII- Aspectos relacionados à carona solidária Pergunta Sim Não (%) (%) Você já ouviu falar em “Carona Solidária”? 82 18 Você acharia interessante ter um aplicativo que mostre 90 10 Você utilizaria um aplicativo de caronas? 68 32 Você buscaria por caronas em um aplicativo de caronas? 65 35 Você daria carona para uma pessoa que conheceu através 55 45 pessoas que tem rotas similares à sua? de um aplicativo? Analisando as respostas podemos observar que uma grande parte das pessoas (82%) está familiarizada ao tema “Carona Solidária” e que consideram interessante um aplicativo que mostre pessoas com rotas similares às delas (90%). Porém, quando perguntado se a pessoa faria uso de um aplicativo de 45 caronas, e se daria carona para uma pessoa que conheceu através dele, esse número diminui drasticamente (68% e 55%, respectivamente). Essa redução está relacionada principalmente as questões de segurança e de confiança das pessoas. Mais da metade das pessoas que responderam não à última pergunta indicaram que a segurança é o principal motivo para não oferecer a carona, porém, muitos desses disseram que se tivessem um primeiro contato antes da carona, ou se fosse uma pessoa conhecida, não teriam problemas em compartilhar seus veículos. Uma sugestão bastante interessante, e que já havia sido pensada pelos membros da equipe, foi a possibilidade de vincular o aplicativo a redes sociais, como o Facebook. Algumas pessoas informaram que não dariam caronas para não ficarem presas a horários, por não terem horários fixos de deslocamento e também pela comodidade, conforto e privacidade. Resumindo, todos os pontos citados pelos participantes são realmente fatores limitantes à adoção desse sistema. A Tabela IIIcontempla os resultados da terceira parte do questionário, a qual apresentava a seguinte questão: “Avalie abaixo quais informações você considera importante que estejam presentes em uma busca rápida por caronas:*Avalie conforme o grau de importância”. TabelaIII - Informações consideradas importantes na busca por caronas Informação Muito Interessant Importante (%) e Indiferente (%) (%) Estado Civil 18 36 46 Idade 23 42 35 Fumante / NãoFumante 58 23 19 Uso de bebidas alcoólicas 58 24 18 Marca do veículo 04 31 65 Quantidade de vagas disponíveis no 53 39 08 veículo 46 Tempo de carteira 38 44 18 Documentação do veículo em dia 68 20 12 Disponibilidade de dias 74 24 02 Horários disponíveis 80 18 02 Já compartilha caronas com outras 48 26 25 pessoas A análise desses resultados nos mostra que a maioria das pessoas não acha necessário saber o estado civil (46%) e nem a marca do veículo (65%) da outra pessoa na hora de procurar por uma carona. Já para a idade (42%) e para o tempo de carteira (44%), a maioria considerou interessante ter esse conhecimento prévio. Também foi possível verificar que as pessoas se preocupam com os assuntos relacionados aos hábitos de vida na hora de procurar uma carona, como pode ser observado nas questões relacionadas ao hábito de fumar (58%) e consumir bebidas alcoólicas (58%). Ainda, a maioria das pessoas considerou como itens essenciais na busca por caronas a disponibilidade de dias (74%) e de horários (80%), além da informação de documentação do veículo em dia (68%) e do fato da pessoa já ter compartilhado caronas com outras pessoas (48%). Fazendo a correlação entre os pontos considerados importantes e algumas características da amostra pudemos observar que os homens estão mais propensos a utilizar e oferecer caronas através de um aplicativo do que as mulheres, fato que está diretamente relacionado às questões de segurança citadas anteriormente. Também foi possível observar que os respondentes que não possuem carro próprio são mais favoráveis a utilização do aplicativo de caronas. 47 5. OBJETIVOS O objetivo do projeto consiste em prover um aplicativo para Windows Phone que possibilite uma alternativa de transporte para pessoas que compartilhem trajetos em comum, visando ocupar melhor os veículos. Desse modo os custos da viagem, tanto para quem oferece carona quanto para quem faz uso dela, diminuem e ambos passam a contribuir para a redução dos congestionamentos e a emissão de poluentes no meio ambiente. 48 6. DESENVOLVIMENTO O processo de desenvolvimento do projeto partiu da reunião de uma equipe cujas principais características são o comprometimento e o empreendedorismo. Desse modo, tornou-se uma escolha natural a concepção de um software que não atingisse apenas o objetivo de concluir com sucesso a graduação, mas que também pudesse mudar alguns paradigmas sociais e contribuísse para preservação do meio ambiente. Com a idéia já definida e discussões sobre a melhor forma de vencer os desafios propostos, a equipe buscou a melhor estratégia para iniciar, gerenciar, desenvolver, documentar, testar e finalizar o projeto. A partir do aprendizado durante o decorrer da graduação, o gerenciamento do projeto foi realizado com base nos documentos gerados pelas áreas de conhecimento do PMBOK. Foram utilizadas as seguintes áreas: Gerenciamento da Integração, representada pelo Termo de Abertura do Projeto, Gerenciamento do Escopo, Gerenciamento do Tempo, Gerenciamento da Qualidade e Gerenciamento de Comunicação. Os documentos gerados podem ser observados no Apêndice A – Gerenciamento do Projeto. A etapa de análise e definição dos requisitos foi realizada levando em consideração o problema a ser resolvido e quais funcionalidades seriam necessárias para o usuário na utilização do aplicativo. Paralelamente à construção dos artefatos de gerenciamento e documentação do software, deu-se início ao desenvolvimento de um protótipo do aplicativo, com o objetivo principal de afastar as dúvidas sobre a viabilidade técnica do que estava proposto no escopo. A IDE utilizada para a prototipação foi o Microsoft Visual Studio 2010, utilizando a SDK Windows Phone 7.1, baseada em linguagem C#. A prototipação do projeto foi desenvolvida com base nas definições da UML, através da criação de casos de uso, dos diagramas de casos de uso e do diagrama de classes. Cada caso de uso apresenta o protótipo de tela e o mapa de testes utilizado para testá-lo. O design do protótipo e do aplicativo foi realizado através da ferramenta Microsoft Expression Blend. O resultado desta prototipação demonstrou que as dúvidas 49 sobre a viabilidade técnica eram infundadas, e que os objetivos elencados no escopo podiam ser atingidos. O desenvolvimento do softwarefoi baseado na arquitetura em três camadas, sendo que essas diferem na visão do Smartphone e na visão do Web Server/Banco de Dados. A modelagem física dos dados foi gerada a partir do Microsoft SQL Server 2008 R2 e definida numa máquina servidora Windows Server 2008 R2, enquanto a comunicação entre o banco de dados e o aplicativo foi feito através de um serviço WCF construído especificamente para esse fim, também disponibilizado na máquina servidora. A documentação utilizada no desenvolvimento do aplicativo pode ser observada no Apêndice F – Especificação dos Requisitos do Projeto, Apêndice G – Modelagem, Apêndice H – Modelo Físico de Dados, Apêndice, J – Documento de Arquitetura. O total de horas utilizadas, dentro e fora de sala de aula, para superar os desafios a que se propuseram os membros da equipe no desenvolvimento deste projeto é superior a 1500 horas. O resultado obtido com o projeto, que utilizou grande parte das técnicas de gerenciamento e desenvolvimento de software aprendidas durante o decorrer da graduação, é um aplicativo com uma interface amigável e fortemente intuitiva e de grande utilidade para o fim que se destina. 50 7. CONSIDERAÇÕES FINAIS O sucesso de um projeto não depende somente da capacidade técnica e gerencial de uma equipe. Aliás, depende muito pouco desses quesitos. Um projeto bem sucedido é baseado principalmente no comprometimento de cada integrante da equipe com o objetivo final. Muitos foram os desafios pessoais enfrentados durante o projeto. O domínio de ferramentas de desenvolvimento utilizadas durante a graduação, a prática de técnicas de gerenciamento de projeto (também aprendidas durante a graduação) e o desenvolvimento de um projeto de inovação tecnológica voltado para smartphones utilizando serviços web e comunicação com banco de dados foram, de fato, os principais desafios. O resultado deste projeto é o aplicativo Garupando, disponível para Windows Phone, que possibilita que pessoas com rotas semelhantes possam oferecer ou solicitar caronas, diminuindo o tráfego urbano e a emissão de gases poluentes, além de permitir novas relações sociais. A comercialização desse aplicativo está diretamente relacionada à aceitação dos usuários, uma vez que a prática de carona solidária está atrelada à quebra de paradigmas sociais e à mudança nos hábitos de vida das pessoas. Contudo, o aprendizado e as experiências vividas pelos integrantes deste projeto, além da alta qualidade de um aplicativo totalmente construído a partir de ferramentas Microsoft, qualificam a equipe como um todo a aprimorar o aplicativo Garupando e participar da Imagine Cup 2013, maior competição de tecnologia em todo mundo, que é organizada pela Microsoft e oferece uma premiação de US$ 50 mil na categoria World Citizenship, na qual o aplicativo irá concorrer. 51 8. REFERÊNCIAS BIBLIOGRÁFICAS ABNT. ABNT, 2008. Disponível em: <www.abnt.org.br>. Acesso em: 19 out. 2012. ANDROID domina mercado brasileiro; Windows Phone mais expressivo que iPhone. São Paulo:TechTudo, 2012. Disponível em:<http://www.techtudo.com.br/noticias/noticia/2012/09/android-dominamercado-brasileiro-windows-phone-mais-expressivo-que-iphone.html>Acesso em: 27 de Outubro de 2012. BALTIERI, A. Criando e consumindo serviços com WCF. S.d.. Disponível em: http://www.linhadecodigo.com.br/artigo/2949/criando-e-consumindo-servicoscom-wcf.aspx>Acesso em: 06 de novembro de 2012 BEAULIEU, A. Aprendendo SQL. Tradução de Edgard Batista Damiani. São Paulo: Novatec Editora, 2010. BEZERRA, E. Princípios de análise e projeto de sistemas com UML. Rio de Janeiro: Campus, 2002. BING Mapsis for you. Microsoft Corporation, s.d. Disponível em:<http://www.microsoft.com/maps/developers/mobile.aspx>Acesso em: 28de Outubro de2012 BOOCH, G.; RUMBAUGH, J.; JACOBSON, I. UML: Guia do Usuário. Tradução de Fábio Freitas da Silva e Cristina de Amorim Machado. Rio de Janeiro :Elsevier, 2012. 12ª reimpressão. BRUZZI, D. G. Gerência de Projetos: Uma Visão Prática. São Paulo: Érica, 2002. CARVALHO, C. H. R. de. Emissões relativas de poluentes do transporte motorizado de passageiros nos grandes centros urbanos brasileiros. Brasília: IPEA, 2011. Disponível em:<http://www.ipea.gov.br/sites/000/2/publicacoes/tds/TD_1606_WEB.pdf>Ac esso: 08 de Outubro de 2012. D'ÁVILA, M. H. C. PMBOK e Gerenciamento de Projetos. Minas Gerais: Belo Horizonte, 2006. Disponível em: <http://www.mhavila.com.br/topicos/gestao/pmbok.html> Acesso em: 13 de Outubro de 2012. 52 DEITEL, H.M. et al. C# - Como programar. Tradução de João Eduardo Nóbrega Tortello. São Paulo: Pearson Makron Books, 2003. DEWAN, K. K; AHMAD, I. Carpooling: A Step To Reduce Congestion (A Case Study of Delhi) Engineering Letters, 12 February 2007. DINSMORE, P. C.; CAVALIERI, A. Como se tornar um profissional em gerenciamento de projetos: livro-base de "preparação para certificação PMPProject Management Professional". Rio de Janeiro: Qualitymark, 2004. DURÃES, R. et. al. Desenvolvendo para Web usando o Visual Studio 2008. Rio de Janeiro: Brasport, 2008. ESMIN, A. A. A. Modelando com UML – UnifiedModelingLanguage. Departamento de Ciência da Computação da Universidade Federal deLavras. Disponivel em:<http://www.dcc.ufla.br/infocomp/artigos/v1.1/art09.pdf>. Acesso em: 13 de Outubro de 2012. ESPÍNDOLA, E. C. A importância do Modelagem de Objetos no Desenvolvimento de Sistemas. Linha de Código. Disponivel em: <http://www.linhadecodigo.com.br/artigo/1293/a-importancia-do-modelagemdeobjetos-no-desenvolvimento-de-sistemas.aspx>. Acesso em: 27 de Outubro de 2012. EXPRESSION Blend® 4 for Windows Phone. Microsoft Expression, s.d. Disponível em: <http://www.microsoft.com/expression/windowsphone/Default.aspx>Acesso em: 28 de Outubro de 2012. FERREIRA, A. F.; RIBEIRO, R. G.; BARBOSA, H. M.. Aceitabilidade da carona programada como forma de gerenciamento da demanda por estacionamento.Departamento de Transportes, Universidade Federal de Minas Gerais. Belo Horizonte, 2012. Disponível em: <http://redpgv.coppe.ufrj.br/index.php?option=com_docman&task=doc_details& gid=557&Itemid=28&lang=br> Acesso: 08 de Outubro de 2012. FILETO, A. Cuide do Seu Bolso e do Planeta Já ! Cartilha Didática. Editora Rede Três – Educação e Consultoria para a Sustentabilidade. Belo Horizonte: 2ª edição, 26 páginas, 2009. Disponível em: <http://www.sindusconmg.org.br/site/arquivos/up/geral/Cartilha_Cuide_do_Seu_Bolso_Planeta.pdf>Ac esso em: 08 de Outubro de 2012. 53 FOWLER, M.; SCOTT, K. UML essencial: um breve guia para a linguagem padrão da modelagem de objetos. 2ª Edição. ed. Porto Alegre: Bookman , 2000. FUNDAMENTAL Windows Communication Foundation Concepts, s.d Disponível em: <http://msdn.microsoft.com/en-us/library/ms731079.aspx>Acesso em: 06 de novembro de 2012 GALIZZI, M. M..The Economics of Car-Pooling: A Survey for Europe.Bergamo, 2004. Disponível em: <http://dinamico2.unibg.it/highways/paper/galizzi.pdf>Acesso em: 08 de Outubro de 2012. GERAÇÃO de mapas com informações agregadas aplicado no Asp.Net utilizando o Bing Maps. DevMedia, s.d. Disponível em: <http://www.devmedia.com.br/geracao-de-mapas-com-informacoes-agregadasaplicado-no-asp-net-utilizando-o-bing-maps/17299>Acesso em:28 de Outubro de 2012 JACOBI, P. Educação ambiental, cidadania e sustentabilidade. Cadernos de Pesquisa, n. 118, p. 189-205, 2003. Disponível em: <http://www.scielo.br/pdf/cp/n118/16834.pdf>Acesso em: 08 de Outubro de 2012 KERZNER, H. Gestão de Projetos - As Melhores Práticas. 2ª Edição, BOOKMAN, 2006. KLIEMANN, J. M.. Modelagem de uma API para serviços baseados em localização integrada com APIs de localização, o middleware EXEHDA e GIS. Universidade Federal do Rio Grande do Sul, Porto Alegre, 2006.Disponível em: <http://saloon.inf.ufrgs.br/twiki/viewfile/Docs/OnlineDoc20060817225008?rev=1 ;filename=Monografia_Jos%E9_Marcelo_Kliemann.pdf>Acesso em: 28 de Outubro de 2012 KUWAHARA, N.; BALASSIANO, Ronaldo; SANTOS, Marcio Peixoto de Sequeira. Alternativas de gerenciamento da mobilidade no campus da ufam. Universidade Federal do Amazonas, Manaus, 2012. Disponível em: http://redpgv.coppe.ufrj.br/index.php?option=com_docman&task=doc_details&g id=567&Itemid=28&lang=br> Acesso em: 08 de Outubro de 2012 LARMAN, C. Utilizando UML e padrões: uma introdução a analise e ao projeto orientados a objetos e ao desenvolvimento iterativo. 3ª Edição.ed. Porto Alegre: Bookman , 2007. 54 LIBRARY of PMI Global Standards.USA: Washington, 2012. Disponível em: <http://www.pmi.org/PMBOK-Guide-and-Standards/Standards-Library-of-PMIGlobal-Standards.aspx> Acesso em: 27 de Outubro de 2012 LIMA, E. C# e .Net para desenvolvedores. Eugênio Reis, Rio de Janeiro : Campus, 2002. Disponível em: <http://www.etelg.com.br/paginaete/downloads/informatica/apostila2.pdf>Acess o em: 28 de Outubro de 2012 LIMA, L.. WCF Data Service, 2010. Disponível em: <http://www.lucianolima.com.br/post/2010/06/23/WCF-Data-Service.aspx> Acesso em: 08 de novembro de 2012. MACHADO, A. Smartphones Android e Windows Phone fazem bonito e podem baratear depois de nova MP. <http://clippingmp.planejamento.gov.br/cadastros/noticias/2012/9/17/enquantoo-iphone-5-nao-vem-ha-opcoes/> Acesso em: 27 de Outubro de 2012 MACORATTI, J. C. .NET - Apresentando o Silverlight e o Expression Blend. Macoratti, s.d. Disponível em: <http://www.macoratti.net/08/01/vbn8_svl.htm> Acesso em: 28 de Outubro de 2012 MACORATTI, J. C. Introdução a XAML (ExtensibleApplicationMarkupLanguage). Imasters, 2009. Disponível em:<http://imasters.com.br/artigo/12239/dotnet/introducao-a-xaml-extensibleapplication-markup-language> Acesso em:28 de Outubro de 2012 MENEZES,L. C. M.Gestão de Projetos. Atlas. 2009 MICROSOFT x Adobe . É possível mudar paradigmas?Expressionblend, 2010 Disponível em:<http://expressionblend.blogspot.com.br/>Acesso em:28 de Outubro de 2012 MICROSOFT SQL SERVER. Microsoft Corporation, 2001. Disponível em:<http://www.microsoft.com/sqlserver/pt/br/product-info.aspx> Acesso em:28 de Outubro de 2012 MINETT, P., PEARCE, J. Estimating the Energy Consumption Impact of Casual Carpooling, 2009. Disponível em: <http://www.flexiblecarpooling.org/casualcarpoolingenergysaving.pdf>Acesso em: 08 de Outubro de 2012 OLIVEIRA, M. F. S.; OLIVEIRA, O. J. R.; OLIVEIRA, J. F. S. Mobilidade Urbana e Sustentabilidade. V Encontro Nacional da Anppas, Florianópolis: 55 Santa Catarina, 2010. Disponível em: <http://www.anppas.org.br/encontro5/cd/artigos/GT11-236-94920100904103333.pdf> Acesso em: 08 de Outubro de 2012 OLIVEIRA, S. C. Educação Ambiental com vistas a um trânsito saudável. 2009. Monografia. (Aperfeiçoamento/Especialização em Interdisciplinar em Saúde Pública) - Faculdade de Saúde Pública da Usp. PAGE-JONES, M. Fundamentos do Desenho Orientado a Objeto com UML. Tradução de Celso Roberto Paschoa. São Paulo: MAKRON Books, 2001. PEREIRA, P.; ISENTO J. ExtensibleApplicationMarkupLanguage. 2010 <http://www.di.ubi.pt/~ddg/aulas/licenciatura/ppi/Apresentacao5.pdf> Acesso em:28 de Outubro de 2012 PESQUISA indica que mercado do Windows Phone será maior que do iOS em quatro anos. São Paulo: UOL, 2012. Disponível em:<http://adrenaline.uol.com.br/telecom/noticias/12829/pesquisa-indica-quemercado-do-windows-phone-sera-maior-que-do-ios-em-quatro-anos.html> Acesso em: 28 de Outubro de 2012. PMI. Um guia do conhecimento em gerenciamento de projetos: Guia PMBOK. 4ª Edição. Pensilvânia: Project Management Institute, 2008. POR QUE SQL Server? Microsoft Corporation, 2001. Disponível em:<http://www.microsoft.com/sqlserver/pt/br/product-info/why-sql-server.aspx> Acesso em:28 de Outubro de 2012. POSSI, M. Capacitação em gerenciamento de projetos: guia de referência didática. Rio de Janeiro: Brasport, 2004. POWERFUL Technology. Microsoft Expression, s.d. Disponível em:<http://www.microsoft.com/expression/products/Blend_WhatIsExpressionBl end.aspx> Acesso em: 28 de Outubro de 2012. PRADO, T. Android, iOS e Windows Phone: conheça as diferenças entre os sistemas móveis e escolha o seu! Tappnews, 2012. Disponível em: <http://www.tappnews.com.br/tecnologia1/1705-android,-ios-e-windows-phoneconhe%C3%A7a-as-diferen%C3%A7as-entre-os-sistemas-m%C3%B3veis-eescolha-o-seu.html> Acesso em: 28 de Outubro de 2012. PROGRAMAR para Windows Phone é mais vantagem para desenvolvedores. Comunidade Windows Mobile Brasil. 2011. Disponível em: <http://winmobr.org/index.php/noticia-programar-para-windows-phone-e-maisvantagem-para-desenvolvedores/> Acesso em: 28 de Outubro de 2012. 56 QUEIROZ, R. B. Serviços baseados em localização (lbs).proposta de um framework para implantação de lbs em aparelhos celulares. Montes Claros, 2006. REZENDE, M. A.; FRASSON; A. C.; PILATTI, L. A.; OLIVEIRA, I. L.; MACEDO; D. C.Perspectivas e tendências de sustentabilidade e mobilidade urbana devido à copa do mundo 2014: o caso de Curitiba. Produção em Foco, v.1, n.1, p.66, 83, 2011.Disponível em: <http://www.sociesc.org.br/producaoemfoco/index.php/producaoemfoco/article/ view/21> Acesso em: 08 de Outubro de 2012. ROCHA, D. C. T.Gerenciamento da Mobilidade em Empreendimentos Pólos Geradores de Trafego: Shopping Center em Salvador, 2007. Disponível em: http://www.meau.ufba.br/site/publicacoes/gerenciamento-da-mobilidadeem-empreendimentos-polos-geradores-de-trafegoshopping-center> Acesso em: 08 de Outubro de 2012. SANTIAGO, S. Geolocalização no Bing com Windows Phone. .net Magazine, edição 83, ano VI, p.7. SANTOS, I.D. C.; SILVA, T. A. A degradação ambiental causada pela utilização do transporte aéreo e terrestre. Boletim de Ciências Aeronáuticas - BCA, V.3, p.5-26. 2009. Disponível em:<http://professor.ucg.br/siteDocente/admin/arquivosUpload/13772/material/ Boletim%20CAER%202009_3.pdf> Acesso em: 08 de Outubro de 2012. SEABRA JÚNIOR, R. M. Análise e Projeto Orientado a Objetos Usando UML e o Processo Unificado. Universidade Federal do Pará, 2001. Disponível em: <http://www.ufpa.br/cdesouza/teaching/cedai/APOOUMLP.pdf>. Acesso em: 13 de Outubro de 2012. SILVA, A. de A.; GOMIDE, C. F.; PETRILLO, F. Metodologia e Projeto de Software Orientados a Objetos: Modelando, Projetando e Desenvolvendo Sistemas com UML e Componentes Distribuídos. 1. ed. São Paulo: Érica, 2003. SILVA, M. V. Aquecimento global. Colégio Adventista de Taboão da Serra. Taboão da Serra, 2009. Disponível em: <http://www.cms.paulistasul.org.br/content/files/afd900c397b94721a642eed96b 64ce5e/Modelo_TCPEM.pdf> Acesso: 08 de Outubro de 2012. SILVA, E. P.; CAMARGO, J. C.; SORDI, A.; SANTOS, A. M. R.Recursos energéticos, meio ambiente e desenvolvimento. Multi Ciência: O Futuro dos Recursos. 2003. Disponível em: <http://www.multiciencia.unicamp.br/art04.htm>Acesso em: 08de Outubro de 2012. 57 SOMMERVILLE, I. Engenharia de software. Tradução de Selma Shin Shimizu Melnikoff, Reginaldo Arakaki e Edílson de Andrade Barbosa. 8ª Edição. São Paulo: Pearson Addison-Wesley, 2007. TELEFONE plataforma de desenvolvimento. O que é o desenvolvimento para telefones? (visão geral). MSDN,2012. Disponível em: <http://msdn.microsoft.com/pt-br/ff380145.aspx>Acesso em: 28 de Outubro de 2012. TRANSPORTES e logística na gestão de emissões de gases de efeito estufa. São Paulo: Fundação Getulio Vargas, 2011. Disponível em: <http://ces.fgvsp.br/epc/cms/arquivos/cartilha_epc_transportes.pdf>Acesso em: 08 de Outubro de 2012. TUTORIAL: Clássico “Olá Brasil” (Olá mundo) para Windows Phone 7. Comunidade Windows Mobile Brasil. 2010. Disponível em: <http://winmobr.org/index.php/tutorial-desenvolvendo-para-windows-phone-7parte-001/> Acesso em: 28 de Outubro de 2012. TUTORIAL: Microsoft Visual Studio. Comunidade Windows Mobile Brasil. 2010. Disponível em:<http://winmobr.org/index.php/tutorial-microsoft-visual-studio/> Acesso em: 28 de Outubro de 2012. VENDA de smartphones ultrapassará a de celulares em 2013. São Paulo: INFO Online, 2012. Disponível em: <http://adnews.uol.com.br/pt/tecnologia/venda-de-smartphones-ultrapassara-ade-celulares-em-2013-diz-pesquisa.html> Acesso em: 28 de Outubro de 2012. VENDAS de smartphones no Brasil crescem 179% em 2011, diz pesquisa. São Paulo: Globo, 2012. Disponível em: <http://g1.globo.com/tecnologia/noticia/2012/03/vendas-de-smartphones-nobrasil-crescem-179-em-2011-diz-pesquisa.html> Acesso em: 28 de Outubro de 2012. VISUAL Studio. Microsoft, 2012. Disponível em: <http://www.allen.com.br/parceiros/microsoft/Paginas/visualstudio.aspx>Acesso em: 28 de Outubro de 2012. WHAT IS Windows Communication Foundation, s.d. Disponível em: <http://msdn.microsoft.com/en-us/library/ms731082.aspx>Acesso em: 08 de novembro de 2012 WINDOWS COMMUNICATION Foundation,s.d. Disponível em: <http://msdn.microsoft.com/en-us/library/dd456779.aspx>Acesso em: 24 de 58 outubro de 2012. XAML Overview. Msdn, s.d. Disponível em: <http://msdn.microsoft.com/ptbr/library/ms752059(v=vs.90).aspx> Acesso em:28 de Outubro de 2012. 59 9. APÊNDICES 9.1 ApêndiceA – Gerenciamento do Projeto 9.1.1 Termo de Abertura do Projeto 9.1.1.1 Justificativa Ao longo das últimas três décadas, os temas “crescimento econômico” e “sustentabilidade ambiental” têm sido debatidos no mundo inteiro. A sociedade presencia o fortalecimento econômico global, principalmente por parte dos países emergentes. Embora a preocupação com o impacto no meio ambiente tenha crescido junto com a economia mundial, pouco tem sido feito pelos governantes: as campanhas educativas sobre preservação ambiental são pífias, o investimento no transporte público não atinge um nível desejado que possibilite conforto e rapidez aos usuários e as indústrias automobilísticas, além de não investirem maciçamente em fontes de energia menos poluentes, utilizam sua imensa mão-de-obra como refém nas negociações com os governos com o intuito de reduzir impostos e maximizar os lucros. Ainda em relação ao crescimento econômico global, não se pode deixar de citar como um de seus resultados o crescimento tecnológico na área de informação que permitiu, a um baixo custo, a utilização de computadores pessoais, telefones celulares e, principalmente, a revolução na interconectividade entre pessoas do mundo inteiro através da Internet. O resultado no Brasil deste crescimento econômico global, aliado a uma inflação controlada desde 1994 através do Plano Real, tem sido o crescimento do poder aquisitivo do cidadão brasileiro, a utilização maciça de redes sociais (impulsionada por programas de inclusão digital) e o desejo por uma mobilidade urbana mais ágil; todavia, a atual ineficiência do transporte público e a baixa aderência a meios de transporte alternativos resultou num trânsito caótico nas grandes e médias cidades, enfrentado por pessoas que têm a necessidade de se locomover de um ponto a outro no menor tempo possível. Frente à situação atual do trânsito nas grandes cidades brasileiras, e entendendo que os aparelhos celulares deixaram de ser um mero telefone e se transformaram numa poderosa ferramenta que permite a interatividade entre os cidadãos, o aplicativo “Garupando”, tem como finalidade principal permitir que 60 pessoas compartilhem seus meios de transporte. O resultado prático do uso do “Garupando” pelo cidadão que deixa seu carro na garagem e desloca-se para o trabalho, escola, faculdade ou qualquer outro local por meio de caronas é uma melhora na mobilidade urbana e a redução de gás carbônico emitido na atmosfera e da interatividade com outras pessoas além da tela de um computador. 9.1.1.2 Visão Geral do Escopo O aplicativo para Windows Phone “Garupando” é uma solução criativa e poderosa que possibilita a interatividade entre pessoas que possuem rotas em comum, diminuindo a quantidade de veículos transitando num mesmo momento e para o mesmo local, e contribuindo significativamente para a redução dos congestionamentos e a emissão de poluentes no meio ambiente. 9.1.1.3 Restrições - Prazo para entrega do PAP. - Recursos técnicos e humanos limitados à equipe do PAP. - Falta de estrutura adequada para o desenvolvimento do PAP. 9.1.1.4 Premissas As premissas para o desenvolvimento e implantação do aplicativo Garupando são: - Disponibilização de uma equipe comprometida com o sucesso no desenvolvimento e implementação do projeto, de acordo com os perfis e cronograma apresentados no projeto; - Participação do orientador, também comprometido com o sucesso do projeto; - Aprovação de todos os integrantes da equipe no PAP. 61 9.2 Apêndice B -Plano de Gerenciamento do escopo 9.2.1 Descrição Detalhada do Produto O software a ser desenvolvido deve observar características específicas de produto, entre elas: Aplicativo exclusivo para sistemas mobile (Windows Phone); Plataforma C#; Banco de dados SQL Server 2008 Express; Microsoft Visual Studio 2010 Express; API para serviço web e comunicação com o Banco de dados através de XML. Escopo contemplado: O projeto proverá uma solução que possibilite uma alternativa de transporte para pessoas que compartilham trajetos em comum, visando ocupar melhor os veículos. Desse modo os custos da viagem, tanto para quem oferece carona quanto para quem faz uso dela, diminuem e ambos passam a contribuir para a redução dos congestionamentos e a emissão de poluentes no meio ambiente. O aplicativo Garupandopossibilita que o usuário encontre o seu parceiro ideal de carona, sendo possível selecionar a melhor carona para seu destino de forma segura, rápida e eficaz. O usuário poderá se cadastrar como motorista ou garupeiro. Ele deverá cadastrar suas rotas e pesquisar por caronas oferecidas para compartilhar viagens com outros membros. De acordo com a sua localização (rua, bairro ou ponto de encontro), nosso software irá buscar e mostrar resultados por proximidade dentro de um perímetro, com base nas rotas cadastradas por outros usuários. O usuário poderá enviar mensagens para outros usuários, controladas pelo aplicativo, contendo texto livre, a fim de combinar os detalhes da carona. Após a carona efetivada, o usuário poderá qualificar a carona, a fim de manter um histórico da reputação dos usuários caroneiros. 62 9.2.2 Escopo não Contemplado Não será entregue o escopo de Layout. Não será cedido o código-fonte do aplicativo ao cliente. Não serão cedidos aparelhos Windows Phone ao cliente. Não será cedido manual ou dado treinamento ao cliente. Não será prestada assistência ao cliente sobre a utilização do aparelho. Após a entrega do aplicativo, cessará o vínculo entre os integrantes do projeto com o cliente, não sendo prestada qualquer assistência de suporte/ajuda ao cliente. A utilização do aplicativo é de responsabilidade única e exclusiva do usuário. Não é (são) responsabilidade(s) dos integrantes do projeto: - integridade dos dados informados pelos usuários; - disponibilidade de conexão com a web; - disponibilidade do aplicativo; - atualizações e manutenções preventivas e/ou corretivas do aplicativo; - malversação na utilização do aplicativo. 9.2.3 EAP / WBS 1. Gerenciamento do Projeto 1.1 Engenharia 1.1.1 Ambientação com o projeto 1.1.2Requisitos 1.1.2.1Encontrar necessidades do cliente 1.1.2.2Definir requisitos do cliente 1.1.2.3Definir estratégia preliminar de implementação 1.1.2.4Marcar ponto de aprovação com o cliente (Termo Abertura) 1.2 Gestão Integrada do Projeto 1.2.1 Escopo do Projeto 1.2.2 Gerenciamento de Tempo do Projeto 1.2.2.1 Definição das Atividades 63 1.2.2.2 Sequenciamento das Atividades 1.2.2.3 Estimativa de Recursos 1.2.2.4 Cronograma 1.2.3 Gerenciamento de Custo do Projeto 1.2.3.1 Estimativa de Custo 1.2.3.2 Orçamento 1.2.4 Análise dos Requisitos 1.2.4.1 Entrega 1 1.2.4.1.1 Caso de uso “Cadastrar usuário” 1.2.4.1.2 Caso de uso “Recuperar Senha” 1.2.4.1.3 Caso de uso “Configurar Conta” 1.2.4.1.4 Criação dos protótipos 1.2.4.2 Alterações Entrega 1 1.2.4.2.1 Reunião de aprovação com o cliente 1.2.4.2.2 Marcar ponto de aprovação com o cliente 1.2.4.3 Entrega 2 1.2.4.3.1 Caso de uso “Acessar Sistema” 1.2.4.3.2 Caso de uso “Gerenciar Rotas” 1.2.4.3.3 Criação dos protótipos 1.2.4.4 Alteração Entrega 2 1.2.4.4.1 Reunião de aprovação com o cliente 1.2.4.4.2 Marcar ponto de aprovação com o cliente 1.2.4.5 Entrega 3 1.2.4.5.1 Caso de uso “Consultar Rotas” 1.2.4.5.2 Caso de uso “Gerenciar Mensagens” 1.2.4.5.3 Criação dos protótipos 1.2.4.6 Alteração Entrega 3 1.2.4.6.1 Reunião de aprovação com o cliente 1.2.4.6.2 Marcar ponto de aprovação com o cliente 1.3 Arquitetura 1.3.1 Entrega 1 1.3.1.1 Diagrama de atividade 1.3.1.2 Projeto Banco de dados 1.3.1.3 Diagrama de classe 64 1.3.1.4 Diagrama de sequencia 1.3.1.5 Desenho da arquitetura 1.3.1.6 Marco: Ponto de aprovação 1.3.2 Alteração Entrega 1 1.3.2.1 Alterar Diagrama de atividade 1.3.2.2 Alterar Banco de dados 1.3.2.3 Alterar Diagrama de Classe 1.3.2.4 Alterar Diagrama de sequência 1.3.2.5 Alterar Desenho da arquitetura 1.4 Testes 1.4.1 Definir Testes 1.4.2Entrega 1 1.4.2.1 Caso de teste “Cadastrar Usuário” 1.4.2.2 Caso de teste “Recuperar Senha” 1.4.2.3 Caso de teste “Configurar Conta” 1.4.2.4 Inspeção Casos de Testes 1.4.2.5 Retrabalho de Inspeção 1.4.2.6 Marco: Ponto de aprovação 1.4.3Entrega 2 1.4.3.1 Caso de teste “Acessar Sistema” 1.4.3.2 Caso de teste “Gerenciar Rotas” 1.4.3.3 Inspeção Casos de Testes 1.4.3.4 Retrabalho de Inspeção 1.4.3.5 Marco: Ponto de aprovação 1.4.4 Entrega 3 1.4.4.1 Caso de teste “Consultar Rotas” 1.4.4.2 Caso de teste “Gerenciar Mensagem” 1.4.4.3 Inspeção Casos de Testes 1.4.4.4 Retrabalho de Inspeção 1.4.4.5 Marco: Ponto de aprovação 1.5 Codificação 1.5.1 Ambientação com o projeto – codificação 1.5.2 Montar ambiente 1.5.3 Codificação Entrega 1 65 1.5.3.1 Implementar Produto 1.5.3.1.1 Entrega caso de uso “Cadastrar Usuário” 1.5.3.1.2 Entrega caso de uso “Recuperar Senha” 1.5.3.1.3 Entrega caso de uso “Configurar Conta” 1.5.3.2 Testes 1.5.3.2.1 Executar caso de uso “Cadastrar Usuário” 1.5.3.2.2 Retrabalho em caso de imperfeições 1.5.3.2.3 Executar caso de uso “Recuperar Senha” 1.5.3.2.4 Retrabalho em caso de imperfeições 1.5.3.2.5 Executar caso de uso “Configurar Conta” 1.5.3.2.6 Retrabalho em caso de imperfeições 1.5.4 Codificação Entrega 2 1.5.4.1 Implementar Produto 1.5.4.1.1 Entrega caso de uso “Acessar Sistema” 1.5.4.1.2 Entrega caso de uso “Gerenciar Rotas” 1.5.4.2 Testes 1.5.4.2.1 Executar caso de uso “Acessar Sistema” 1.5.4.2.2 Retrabalho em caso de imperfeições 1.5.4.2.3 Executar caso de uso “Gerenciar Rotas” 1.5.4.2.4 Retrabalho em caso de imperfeições 1.5.5 Codificação Entrega 3 1.5.5.1 Implementar Produto 1.5.5.1.1 Entrega caso de uso “Consultar Rotas” 1.5.5.1.2 Entrega caso de uso “Gerenciar Mensagens” 1.5.5.2 Testes 1.5.5.2.1 Executar caso de uso “Consultar Rotas” 1.5.5.2.2 Retrabalho em caso de imperfeições 1.5.5.2.3 Executar caso de uso “Gerenciar Mensagens” 1.5.5.2.4 Retrabalho em caso de imperfeições 1.6 Elaboração do PAP 1.6.1 Elaborar a fundamentação teórica 1.6.2 Formatar trabalho 1.6.3 Testes Integrados 66 1.6.4 Testes Assistidos (Banca) 9.2.4 Dicionário EAP / WBS TabelaIV - Critérios de aprovação ID Pacote de Trabalho Descrição Critério de Aceitação 1 Gerenciamento do Projeto Documentos e áreas de Conhecimento necessárias para o gerenciamento do projeto. Aprovação do orientador. 1.1 Engenharia Documentos necessários para a ambientação com o projeto. Aprovação do orientador. 1.1.2 Requisitos Documentos que contemplam os requisitos solicitados pelo cliente. Aceite do cliente. 1.1.2.4 Termo de Abertura Documento que contempla o escopo macro, marcos, restrições e premissas do projeto. Aceite do cliente. 1.2 Gestão Integrada do Projeto Documentos que auxiliam o controle e acompanhamento do projeto. Aprovação do orientador. 1.2.1 Escopo do Projeto Descreve em detalhes (EAP) os pacotes de trabalho que devem ser entregues. Aceite do cliente. 1.2.2 Gerenciamento de Tempo do Projeto Documentos necessários para o gerenciamento do tempo do projeto. Aprovação do orientador. 1.2.2.1 Definição das Atividades Definição das atividades que compõem o desenvolvimento do software e gerenciamento do projeto. Aceite do cliente. 1.2.2.3 Estimativa de Recursos Estimativa da quantidade e cargos/funções da equipe do projeto. Aceite do cliente. 1.2.3 Gerenciamento de Custo do Projeto Documento que descreve como o custo do projeto deve ser gerenciado. Aprovação do orientador. 67 1.2.3.1 Estimativa de Custo Estimativa de custo para realização do projeto. Aceite do cliente. 1.2.4 Análise dos Requisitos Definição dos casos de uso e protótipos. Aceite do cliente. 1.3 Arquitetura Definição dos componentes de software Aprovação do orientador. 1.4 Testes Definir estratégia de implementação dos testes. Aceite do cliente. 1.5 Codificação Desenvolvimento e teste dos casos de uso Aceite do cliente. 1.6 Elaboração do PAP Documentos necessários para a defesa do projeto. Aprovação do orientador e da banca. 9.3 Apêndice C – Gerenciamento do tempo Plano de gerenciamento do tempo TabelaV - Lista de Atividades Id EAP Descrição Atividades 1.5.3.1.1 Entrega caso de 1. Criar a tela de Autenticação do usuário. uso“Cadastrar usuário“ 2. Criar campo de Aceitação de Contrato. 1.5.3.1.2 Entrega caso de uso 1. Criar a tela de Recuperação de Senha. “Recuperar Senha” 2. Criar validação para recuperação. 1.5.3.1.3 Entrega caso de 1. Criar a tela de configurar Conta. uso“Configurar Conta” 2. Criar validação de atualização do registro. 1.5.4.1.1 Entrega caso de uso 1. Criar a tela de menu principal. “Acessar Sistema” 2. Integrar menucom as outras telas do sistema. 68 1.5.4.1.2 Entrega caso de uso 1. Criar a tela de inserção das rotas. “Gerenciar Rotas” 2. Criar a tela de apresentação das rotas. 1.5.5.1.1 Entrega caso de uso 1. Criar a tela de comparação das rotas. “Consultar Rotas” 2. Configurar a API para comparar as rotas informadas. 1.5.5.1.2 Entrega caso de uso 1. Configurar o sistema para permitir o contato “Gerenciar Mensagem” entre usuários. 2. Criar as telas de contato. TabelaVI - Lista de atributos das atividades Id EAP Descrição Atividade Atividade Predecessora Restrição Premissas 1.5.3.1.1 Criar a tela de Autenticação do usuário. n/c n/c n/c 1.5.3.1.1 Criar campo de Aceitação de Contrato. 1.5.3.1.1.1 Criar a tela de Autenticação do usuário n/c 1.5.3.1.2 Recuperar Senha. n/c n/c 1.5.3.1.2 Criar tela de recuperação de senha. 1.5.3.1.1 – Configurar autenticação do usuário n/c 1.5.3.1.3 Configurar conta n/c n/c n/c Fernanda Lemos 1.5.3.1.3 Criar tela Configurar conta n/c n/c n/c Fernanda Lemos 1.5.4.1.1 Acessar 1.5.3.1.1 – n/c Atividade 1.5.3.1.1.1 concluída n/c Atividade 1.5.3.1.1 concluída Atividade Responsável Anderson Silva Anderson Silva Luiz Gustavo Luiz Gustavo StefhanyZgod 69 Sistema. Configurar autenticação do usuário 1.5.3.1.1 concluída a 1.5.4.1.1 Criar tela Acessar Sistema 1.5.3.1.1 – Configurar autenticação do usuário n/c Atividade 1.5.3.1.1 concluída StefhanyZgod a 1.5.4.1.2 Criar a tela de gerenciar rotas. 1.5.3.1.1 – Configurar autenticação do usuário n/c Ferramenta implementa da e homologad a pelo cliente. Anderson Silva 1.5.4.1.2 Criar a tela de gerenciar rotas. 1.5.3.1.1 – Configurar autenticação do usuário n/c Atividade 1.5.3.1.1 concluída Anderson Silva 1.5.5.1.1 Criar a tela de comparação das rotas. 1.5.4.1.2 – Gerenciar Rota n/c Ferramenta implementa da e homologad a pelo cliente. Luiz Gustavo 1.5.5.1.1 Configurar consultar Rotas. 1.5.5.1.1. Criar a tela de comparação das rotas. n/c Atividade 1.5.5.1.1 concluída Luiz Gustavo 1.5.5.1.2 Configurar Gerenciar Mensagens 1.5.5.1.1 – Configurar Consultar Rotas n/c Atividade 1.5.5.1.1 concluída Fernanda Lemos TabelaVII - Lista de Marcos Id EAP 1.1.2.4 1.2.4 1.4 Descrição Marcar ponto de aprovação com o cliente (Termo Abertura) Análise dos requisitos Testes Obrigatório Sim Origem Previsto em acordo Sim Previsto em acordo Sim Previsto em acordo 70 Figura I - Diagrama de Rede 9.3.1 Cronograma O cronograma foi ajustado para refletir a realidade da seguinte forma: - Número de horas trabalhadas por dia: 2 horas. - Número de dias trabalhados por mês: 20 dias. TabelaVIII - Recursos das Atividades Nome da tarefa Duração Gerenciamento do Projeto 696 hrs 1.1 Engenharia 32 hrs 1.1.1 Ambientação com o projeto 4 hrs 1.1.2 Requisitos 28 hrs 1.1.2.1 Encontrar necessidades do cliente 2 hrs 1.1.2.2 Definir requisitos do cliente 16 hrs 1.1.2.3 Definir estratégia preliminar de implementação 8 hrs 1.1.2.4 Marcar ponto de aprovação com o cliente (Termo Abertura) 1.2 Gestão Integrada do Projeto 2 hrs 120 hrs 1.2.1 Escopo do Projeto 8 hrs 1.2.2 Gerenciamento de Tempo do Projeto 102 hrs 1.2.2.1 Definição das Atividades 2 hrs 1.2.2.2 Sequenciamento das Atividades 2 hrs 71 1.2.2.3 Estimativa de Recursos 4 hrs 1.2.2.4 Cronograma 6 hrs 1.2.3 Gerenciamento de Custo do Projeto 10 hrs 1.2.3.1 Estimativa de Custo 2 hrs 1.2.3.2 Orçamento 8 hrs 1.2.4 Análise dos Requisitos 1.2.4.1 Entrega 1 104 hrs 26 hrs 1.2.4.1.1 Caso de uso “Cadastrar usuário” 4 hrs 1.2.4.1.2 Caso de uso “Recuperar Senha” 6 hrs 1.2.4.1.4 Caso de uso "Configurar Conta" 8 hrs 1.2.4.1.4 Criação dos protótipos 8 hrs 1.2.4.2 Alterações Entrega 1 6 hrs 1.2.4.2.1 Reunião de aprovação com o cliente 4 hrs 1.2.4.2.2 Marcar ponto de aprovação com o cliente 2 hrs 1.2.4.3 Entrega 2 18 hrs 1.2.4.3.1 Caso de uso “Acessar Sistema” 2 hrs 1.2.4.3.2 Caso de uso "Gerenciar Rotas" 8 hrs 1.2.4.3.3 Criação dos protótipos 8 hrs 1.2.4.4 Alteração Entrega 2 8 hrs 1.2.4.4.1 Reunião de aprovação com o cliente 4 hrs 1.2.4.4.2 Marcar ponto de aprovação com o cliente 4 hrs 1.2.4.5 Entrega 3 1.2.4.5.1 Caso de uso "Consultar Rotas" 38 hrs 14 hrs 1.2.4.5.2 Caso de uso "Gerenciar Mensagens" 14 hrs 1.2.4.5.3 Criação dos protótipos 10 hrs 1.2.4.6 Alteração Entrega 3 8 hrs 1.2.4.6.1 Reunião de aprovação com o cliente 4 hrs 1.2.4.6.2 Marcar ponto de aprovação com o cliente 4 hrs 1.3 Arquitetura 1.3.1 Entrega 1 106 hrs 90 hrs 72 1.3.1.1 Diagrama de atividade 10 hrs 1.3.1.2 Projeto Banco de dados 8 hrs 1.3.1.3 Diagrama de classe 10 hrs 1.3.1.4 Diagrama de sequencia 8 hrs 1.3.1.5 Desenho da arquitetura 8 hrs 1.3.1.6 Marco: Ponto de aprovação 4 hrs 1.3.2 Alteração Entrega 1 76 hrs 1.3.2.1 Alterar Diagrama de atividade 8 hrs 1.3.2.2 Alterar Banco de dados 8 hrs 1.3.2.3 Alterar Diagrama de Classe 8 hrs 1.3.2.4 Alterar Diagrama de sequencia 8 hrs 1.3.2.5 Alterar Desenho da arquitetura 8 hrs 1.4 Testes 142 hrs 1.4.1 Definir Testes 8 hrs 1. 4.2 Entrega 1 46 hrs 1.4.2.1 Caso de Teste “Cadastrar usuário” 8 hrs 1.4.2.2 Caso de Teste “Recuperar Senha” 8 hrs 1.4.2.3 Caso de Teste "Configurar Conta" 8 hrs 1.4.2.4 Inspeção Casos de Testes 6 hrs 1.4.2.5 Retrabalho de Inspeção 8 hrs 1.4.2.6 Marco: Ponto de aprovação 8 hrs 1.4.3 Entrega 2 1.4.3.1 Caso de Teste “Acessar Sistema” 1.4.3.2 Caso de Teste "Gerenciar Rotas " 48 hrs 12 hrs 10 hrs 1.4.3.3 Inspeção Casos de Testes 10 hrs 1.4.3.4 Retrabalho de Inspeção 8 hrs 1.4.3.5 Marco: Ponto de aprovação 8 hrs 1.4.4 Entrega 3 40 hrs 1.4.4.1 Caso de Teste " Consultar Rotas" 10 hrs 1.4.4.2 Caso de Teste " Gerenciar Mensagens" 8 hrs 73 1.4.4.3 Inspeção Casos de Testes 6 hrs 1.4.4.4 Retrabalho de Inspeção 8 hrs 1.4.4.5 Marco: Ponto de aprovação 8 hrs 1.5 Codificação 696 hrs 1.5.1 Ambientação com o projeto – codificação 20 hrs 1.5.2 Montar ambiente 20 hrs 1.5.3 Codificação Entrega 1 280 hrs 1.5.3.1 Implementar Produto 86 hrs 1.5.3.2 Testes 84 hrs 1.5.3.2.1 Executar Caso de Teste “Cadastrar usuário” 8 hrs 1.5.3.2.2 Retrabalho em caso de imperfeições 20 hrs 1.5.3.2.3 Executar Caso de Teste “Recuperar Senha” 8 hrs 1.5.3.2.4 Retrabalho em caso de imperfeições 20 hrs 1.5.3.2.5 Executar Caso de Teste " Configurar Conta" 8 hrs 1.5.3.6 Retrabalho em caso de imperfeições 20 hrs 1.5.4 Codificação Entrega 2 1.5.4.1 Implementar Produto 496 hrs 100 hrs 1.5.4.1 Entrega caso de uso “Acessar Sistema” 50 hrs 1.5.4.2 Entrega caso de uso " Gerenciar Rotas" 50 hrs 1.5.4.2 Testes 496 hrs 1.5.4.2.1 Executar caso de uso “Acessar Sistema” 8 hrs 1.5.4.2.2 Retrabalho em caso de imperfeições 20 hrs 1.5.4.2.3 Executar caso de uso “Gerenciar Rotas” 8 hrs 1.5.4.2.4 Retrabalho em caso de imperfeições 20 hrs 1.5.5 Codificação Entrega 3 1.5.5.1 Implementar Produto 680 hrs 160 hrs 1.5.5.1.1 Entrega caso de uso “Consultar Rotas” 80 hrs 1.5.5.1.2 Entrega caso de uso “Gerenciar Mensagens” 80 hrs 1.5.5.2 Testes 1.5.5.2.1 Executar caso de uso “Consultar Rotas” 680 hrs 8 hrs 74 1.5.5.2.2 Retrabalho em caso de imperfeições 20 hrs 1.5.5.2.3 Executar caso de uso “Gerenciar Mensagens” 8 hrs 1.5.5.2.4 Retrabalho em caso de imperfeições 20 hrs 1.6 Elaboração do PAP 96 hrs 1.6.1 Elaborar a fundamentação teórica 80 hrs 1.6.2 Formatar trabalho 8 hrs 1.6.3 Testes Integrados 6 hrs 1.6.4 Testes Assistidos (Banca) 2 hrs Figura II - Estrutura Analítica dos Recursos 9.3.2 Durações das Atividades As durações das atividades serão estimadas através dos casos de uso respeitando as datas definidas no cronograma do PAP. 75 9.4 Apêndice D - Gerenciamento da qualidade Plano de gerenciamento da qualidade TabelaIX - Requisitos e Garantia da Qualidade Item da EAP Indicadores Definição Forma de Medição Meta Responsável 1.3.3 Status de Verificar se o cliente está de Aprovação ou não do 100% Stefhany Análise dos aprovação do acordo com os requisitos cliente em relação aos análise de requisito. Requisitos apresentados. requisitos. Conforme cliente. Periodicidade A cada pacote de cronograma. Status de Verificar se todas as regras Comparação entre as implementação de negócio estão regras de negócio e as desenvolvimento de dos casos de uso. implementadas nos métodos. funcionalidades do acordo com o sistema. cronograma. 1.4 Status de Verificar se a pesquisa e Aprovação ou não do Elaboração aprovação do documentação estão de orientador. do PAP orientador. acordo com a norma da ABNT e com o modelo do PAP. 100% 100% Luiz Fernanda A cada pacote de Quinzenalmente 76 1.5 Definir Status de Arquitetura Verificar se o cliente está de Aprovação ou não do 100% aprovação do acordo com a plataforma cliente em relação à cliente. solicitada. plataforma. Status de Verificar implementação planejada está de acordo aferir a adequação da da arquitetura. com os se a casos arquitetura Realizar de testes para 100% Anderson Única Anderson Única Stefhany A cada finalização uso arquitetura. aprovados pelo cliente. 1.6.1 Definir Relação Testes entre Verificar a quantidade total erros encontrados de erros encontrados durante % = Erros/ casos de 30% teste. do pacote de pelo número de os testes e dividir pelo entrega do código / casos de teste. número total de casos de programa, testes criados. estipulado no cronograma. 77 9.5 Apêndice E -Gerenciamento da comunicação Plano de gerenciamento da comunicação TabelaX - Identificação das Partes Interessadas e Estratégia de Comunicação Stakeholder Contato Identificação Análise dos constituintes Estratégia da Categoria Orientadora [email protected] Juliana Kolb Entrega de Poder: potencial impacto da Envio de resultados, avaliação do projeto; influência: documentação geral contribuinte, positiva, atuando como do projeto, tais como revisão, formadora de opinião e cronograma, auditoria. motivadora da equipe; escopo, casos de envolvimento: comprometimento uso; pedidos de e apoio; prioridade: prazo e orientação. qualidade do produto. Equipe [email protected], Desenvolviment Poder: alto impacto no Troca de Anderson Corrêa, [email protected], o, entrega de desenvolvimento do projeto; experiências e Fernanda Lemos, [email protected], resultados, influência: positiva, atuando dificuldades Luiz Gustavo, [email protected] testes. com coesão; envolvimento: foco enfrentadas pela ecomprometimento total com o equipe. StefhanyZgoda projeto; prioridade: prazo e qualidade do projeto. 78 Coordenador [email protected] Nélio Kubo Auditoria, Poder: potencial impacto da Envio da homologação. avaliação do projeto; influência: documentação irrelevante; envolvimento: compilada ao final irrelevante; prioridade: prazo e do projeto. qualidade do produto e do projeto. Cliente Employer [email protected] Homologação. Poder: alto impacto da Envio do produto avaliação e homologação do final. produto; influência: irrelevante; envolvimento: irrelevante; prioridade: qualidade do produto. 79 TabelaXI - Plano de Comunicação Stakeholders Propósito das Ferramentas/Mídias de comunicação Responsável Quando mensagens / Ações da Comunicação Orientador Informações e Formalmente por e-mail e reuniões, questionamentos sobre o informalmente por telefone. Fernanda toda semana, e sempre que se andamento do projeto Equipe Impreterivelmente fizer necessário. Troca de experiências e Formalmente por atas de reunião, dificuldades enfrentadas informalmente por e-mails e telefone. Orientador Sempre que se necessário. durante o projeto Coordenador Protocolar o projeto e Sempre formalmente, através do Portal solicitações. Fazer as acadêmico, protocolo, apresentações, devidas apresentações e memorandos. Equipe Ao final do projeto. entregas solicitadas pelo stakeholder. Cliente Informações sobre o Formalmente por e-mail, informalmente andamento do projeto por telefone. Luiz Gustavo A cada entrega parcial. fizer 80 9.6 Apêndice F – Especificação dos Requisitos do Projeto Este capítulo determina os requisitos do projeto. Legendas 1. Prioridade a) P – Pouca importância b) ME – Média para baixa importância c) MU – Muita importância d) E – Essencial importância 2. Fonte de Identificação de Requisitos a) C – Cliente b) A - Analista 3. Operação - Gerenciamento de Requisitos – OP. a) I – Inclusão – Novo Requisito b) A – Alteração – Requisito Alterado c) E – Exclusão – Requisito Excluído Requisitos do Projeto TabelaXII - Característica de Qualidade – Funcionalidade Nro. Descrição do Requisito F-1 Utilização do Bing Maps API para E encontrar a localização. Prioridade Fonte A 81 F-2 Disponibilidade do aplicativo via P A Marketplace. F-3 Obrigatoriedade de concordância no MU contrato de aceite sobre A as informações cadastradas. F-4 Estabelecer métodos que garantam o sigilo do usuário. administradores do Somente servidor E A os serão autorizados a acessar e manipular as informações. F-5 Suportar a inclusão de texto livre. MU A F-6 Capacidade de consultar e rever todas MU A MU A as mensagens recebidas e enviadas desde que as mesmas não tenham sido excluídas pelo usuário. F-7 Capacidade de apresentar os dados de forma automática, como rotas similares. TabelaXIII- Característica de Qualidade – Usabilidade Nro. Descrição do Requisito Prioridade Fonte U-1 Interface amigável. ME C U-2 Ajuda contextual facilitada em cada P A tela. U-3 Disponibilidade qualquer parte Marketplace. de do instalação mundo de P via C 82 U-4 Fácil aprendizado ME C U-5 Memorização: o sistema deve ser de ME C fácil lembrança, ou seja, ao passar um determinado período sem utilizar o sistema o usuário pode utilizá-lo novamente sem ter que aprender tudo novamente. TabelaXIV - Característica de Qualidade – Confiabilidade Nro. Descrição do Requisito Prioridade C-1 Cuidados no desenvolvimento a fim de E Fonte A evitar defeitos. C-2 Testes de tempo médio entre falhas. MU A C-3 Tempo de resposta. MU A C-4 Garantir a verificação da integridade E A dos dados armazenados no banco de dados. TabelaXV - Característica de Qualidade – Eficiência Nro. Descrição do Requisito Prioridade E-1 Necessidade de inserir aspectos ainda P Fonte A inexistentes em produtos concorrentes. E-2 Compatibilidade smartphones. com versões de ME A 83 TabelaXVI - Característica de Qualidade – Portabilidade Nro. Descrição do Requisito Prioridade P-1 Permitir ao máximo de usuários o MU Fonte C acesso ao sistema. P-2 Organização do sistema em camadas. UM A TabelaXVII -Característica de Qualidade – Manutenibilidade Nro. Descrição do Requisito Prioridade M-1 Avaliar a requisição da mudança, ME Fonte A avaliando sua real necessidade. M-2 Estimar custo e tempo para ME A ME A de umprojeto ME A M-5 Padronização de código. ME A M-6 Identificação correta dos componentes ME A Implementação. M-3 Atualizar a documentação. M-4 Desenvolvimento simplificado. conforme documentação. 84 9.7 Apêndice G – Modelagem Casos de uso 9.7.1 Cadastrar usuário IDENTIFICAÇÃO DO UC001 NOME DO CASO DE USO: Cadastrar Usuário CASO DE USO: DESCRIÇÃO: Este caso de uso descreve o funcionamento do cadastro inicial do aplicativo, suas permissões e opções de configuração. Dados de Identificação do requisito Caso de uso: Identificação Cadastrar Usuário do Nome do Requisito: requisito: RS001 Primeiro acesso ao aplicativo O sistema deve apresentar ao usuário a opção na tela inicial para cadastro do primeiro acesso ao aplicativo. No primeiro acesso, o usuário deverá inserir suas informações de perfil. Esses dados ficarão na estrutura do banco de dados externo. RS002 Contrato de aceitação O sistema deve ter a opção de visualização do contrato de aceite no primeiro acesso. Carregando um texto informativo sobre o aplicativo, responsabilizando o usuário pela utilização do mesmo, além de apresentar os termos de confidencialidade conforme a lei. O usuário deve aceitar os termos preenchendo um campo que será obrigatório para o prosseguimento do cadastro. 85 RS003 Habilitar/Desabilitar “Avançar” A ação “Cadastrar” da Tela de aceitação do aplicativo deve vir desabilitada por padrão. - Ela só deve ser habilitada se os campos obrigatórios forem preenchidos. - Após o preenchimento dos campos obrigatórios, a ação “Cadastrar” deve mudar o status para habilitado. RS004 Campos Obrigatórios O sistema deve considerar obrigatórios os campos: - Aceitação do contrato; - Nome; - Login; - Senha; - Repita a senha; - Pergunta Secreta; - Resposta; - E-mail. RS005 Fechar o aplicativo antes do fim do cadastro Se o usuário fechar o aplicativo antes de finalizar o cadastro, o sistema deve começar novamente o processo no próximo acesso e todos os dados cadastrados serão perdidos. 86 RS006 Redirecionar para outra tela Ao realizar com sucesso o cadastro no aplicativo, o sistema deve redirecionar o usuário a tela do Menu Principal. RS007 Ajuda Ao clicar no botão de ajuda o sistema deverá abrir uma modal explicando o funcionamento da tela de Cadastro do Usuário de forma simplificada. RS008 Usuário já cadastrado Caso o usuário já seja cadastrado o sistema deve trazer todos os campos já preenchidos. RS009 Validação de Login, Senha e Resposta secreta Login - o sistema deve validar o mínimo de 6 caracteres e o máximo de 20 caracteres. Senha – o sistema deve validar o mínimo de 6 caracteres e o máximo de 15 caracteres. Resposta Secreta – o sistema deve validar mínimo de 10 e máximo de 150 caracteres. Caso exista um Login já cadastrado no banco, o sistema deve informar que o Login já existe, não permitindo o cadastro. 87 Fluxo principal O caso de uso inicia quando o ator acessa o aplicativo pela primeira vez. Nro Ação do Ator Resposta do Sistema Fluxo Fluxo de Alternativo Exceção 1 O ATOR acessa a O SISTEMA apresenta a FA2 “HOME” do aplicativo. - tela inicial do sistema. [RS001] 2 O ATOR aciona a opção O SISTEMA redireciona “Cadastrar” - para a tela de cadastro de usuário.[RS002] [RS003] [RSS004] [RS005] [RS007][RS008] 3 O ATOR preenche os O SISTEMA grava os - FE1, dados da tela e aciona dados dentro do banco FE2, “Cadastrar” de externo FE3, [RS006][RS007][RS008] através um FE4 dados de webservice. [RS002] 4 Fim do caso de uso. Fluxo Alternativo FA1 – Fechar o aplicativo antes do fim do cadastro Nro Ação do Ator 1 O ATOR Resposta do Sistema fecha o O SISTEMA fecha aplicativo antes do fim aplicativo. [RS005] Fluxo Fluxo de Alternativo Exceção o - - 88 do cadastro. 2 - Fim do caso de uso. - - Resposta do Sistema Fluxo Fluxo de Alternativo Exceção FA2 – Tela de Ajuda Nro Ação do Ator 1 O ATOR aciona opção a O SISTEMA Apresenta - - a O SISTEMA retorna para - - “Ajuda”. uma modal. [RS007] 2 O ATOR aciona opção “Fechar”. 3 a tela anterior. Fim do caso de uso. - - Fluxo de Exceção Nro Ação do Ator FE1 Campo obrigatório Resposta do Sistema O SISTEMA deverá apresentar uma mensagem informando a obrigatoriedade do preenchimento dos campos. Com a seguinte mensagem: Campo obrigatório não preenchido. FE2 Validação de usuário O SISTEMA deverá apresentar uma mensagem informando ao usuário que o login escolhido já está sendo utilizado. Com a seguinte mensagem: Login já cadastrado por outro usuário 89 FE3 Validação Email O SISTEMA deverá apresentar uma mensagem informando que o campo email está preenchido incorretamente: Email inválido. FE4 Falha na Indisponível Conexão / Rede O SISTEMA deverá apresentar uma mensagem informando que os dados não foram salvos corretamente devido à falha na conexão com o banco de dados ou indisponibilidade da rede:Os dados não foram salvos, tente novamente. Figura III - Diagrama de caso de uso Cadastrar Usuário 90 Figura IV - Protótipo Cadastro de usuário TabelaXVIII - Mapa de testes Cadastro de usuário Ação Resultado esperado Ao entrar na tela de cadastro Carregar os campos em branco para serem preenchidos junto com o contrato. Ao entrar na tela com usuário já Carregar os campos já preenchidos com cadastrado as informações do usuário. Digitar oNome Passar ao campo “Login”. Não digitar o Nome Mensagem de erro. 91 DigitarLogin Passar ao campo “Senha”. Não Digitar o campo Login Mensagem de erro. Validar campo Login O sistema deve aceitar mínimo de 6 e máximo de 20 caracteres. Digitar Senha Passar ao campo “Confirmar senha”. Não digitar Senha Mensagem de erro. Validar campo Senha O sistema deve aceitar mínimo de 6 e máximo de 15 caracteres. Digitar Repita aSenha Passar ao campo “Pergunta secreta” Não digitarRepita a Senha Mensagem de erro. Validar campo Repita a Senha O sistema deve validar se o campo “Repita a Senha” tem os mesmos caracteres que o campo “Senha”. Caso contrário, enviar mensagem de erro. Digitar Pergunta Secreta Passar ao campo “Resposta”. Não digitar Pergunta Secreta Mensagem de erro. Digitar Resposta Habilitar o botão “E-mail”. Não digitar Resposta Secreta Mensagem de erro. Clicar no botão Cadastrar sem aceitar o Mensagem de erro. termo de uso do Aplicativo Digitar e-mail Validar e-mail. 92 Não digitar e-mail Mensagem de erro. Botão Cadastrar habilitado Habilitar botão após preenchimento dos campos obrigatórios. Clicar no botão Cadastrar com os campos Efetuar o cadastro. Redirecionar para a obrigatórios preenchidos e com a tela de Menu principal. aceitação do termo de uso. Ajuda Fechar Abrir modal. aplicativo antes do fim cadastro do Verificar se o sistema cancela o cadastro. Não salvando os dados. TabelaXIX - Campos do formulário cadastro de usuário Label Campo Obrigatório Descrição Contrato cbContrato Sim Campo Char apresentado em forma CheckBox, que conterá o valor “Accept”. Nome simples txtNome Sim Campo String, com tamanho padrão de 20 caracteres. Login txtLogin Sim Campo String, com tamanho padrão de 20 caracteres. Senha txtSenha Sim Campo String, com tamanho padrão de 15 caracteres. Campo inativo para alteração. Confirmar Senha txtConfirmar Senha Sim Campo String, com tamanho padrão de 50 caracteres. Campo inativo para alteração. Pergunta txtPergunta Sim Campo String, com tamanho padrão 93 de 150 caracteres. Resposta secreta txtRespostaS ecreta Sim Campo String, com tamanho padrão de 150 caracteres. E-mail txtEmail Sim Campo String, com tamanho padrão de 50 caracteres. btnContrato Não Botão de visualização do contrato de aceite. btnAjuda Não Botão de visualização de Ajuda, em formato modal. Ler o contrato de utilização Ajuda 94 9.7.2 Recuperar Senha Identificação do UC002 Caso de Uso: Nome do Recuperar Senha Caso de Uso: Descrição: Este caso de uso descreve o funcionamento da validação do usuário caso o mesmo esqueça sua senha. Dados de Identificação do requisito Caso de uso: Identificação Recuperar senha do Nome do Requisito: requisito: RS001 Acesso à tela de recuperação de senha O sistema deve apresentar ao usuário a opção na tela inicial para recuperação da senha do aplicativo. O usuário deverá inserir as informações de perfil. Esses dados serão buscados no banco de dados externos do aplicativo para confirmação. RS002 Autenticação do sistema (A.D.) O sistema deve resgatar os dados do usuário em sua base de dados. O usuário ao preencher os dados necessários para a recuperação de senha deve acionar a opção “Enviar e-mail com nova senha”. O sistema deve disponibilizar uma nova senha de acesso ao usuário através do e-mail cadastrado no primeiro acesso. RS003 Habilitar/Desabilitar o botão “Enviar e-mail com nova senha” 95 O botão “Enviar e-mail com nova senha” da Tela de recuperação de senha do aplicativo deve vir desabilitado por padrão. - Ele só deve ser habilitado se os campos obrigatórios forem preenchidos e validados. - Ao preencher os campos, o botão “Enviar e-mail com nova senha” deve ter seu status alterado para habilitado. RS004 Campos Obrigatórios O sistema deve considerar obrigatórios os campos: - E-mail - Resposta secreta. RS005 Fechar o aplicativo antes do fim da validação Se o usuário fechar o aplicativo antes de finalizar a validação, o sistema deve começar novamente o processo de validação no próximo acesso e o campo com os dados preenchidos será perdido. RS006 Redirecionar para outra tela Ao finalizar a validação dos dados fornecidos o sistema deve apresentar a seguinte mensagem de confirmação: “Seus dados foram validados com sucesso, uma nova senha foi encaminhada para o seu e-mail”, o sistema deve apresentar um botão de Ok, que ao ser acionado deve redirecionar o usuário a tela inicial. RS007 Ajuda Ao clicar no botão de ajuda o sistema deverá abrir uma 96 modal explicando o funcionamento da tela Esqueci minha senha de forma simplificada. Fluxo principal O caso de uso inicia quando o ator acessa o aplicativo. Nro Ação do Ator Resposta do Sistema Fluxo Fluxo de Alternativo Exceção 1 O ATOR acessa “home” do aplicativo. a O SISTEMA apresenta a FA1 FA2 tela inicial do - sistema. [RS001] 2 O ATOR aciona a O SISTEMA redireciona FA1, FA2 opção “Esqueci minha para a tela de Esqueci senha” minha senha. [UI2][RS001] [RS002] [RS003] [RS004] [RS005] 3 O ATOR preenche os O SISTEMA busca na base FA1, FA2 FE1, dados da tela E aciona de informações os dados FE2, a opção“Enviar e-mail inseridos, e gera uma nova FE3, com a nova senha”. FE4 senha ao enviando-a usuário por e-mail. [RS006] 4 - O SISTEMA deverá - apresentar uma mensagem informando ao usuário que sua resposta está correta. Com a seguinte mensagem:Seus foram validados dados com - 97 sucesso, uma nova senha foi encaminhada para o seu e-mail. 5 - O SISTEMA apresenta a FA2 - tela do menu principal. 6 - Fim do caso de uso. - - Fluxo Alternativo FA1 – Fechar o aplicativo antes do fim da validação Nro Ação do Ator 1 O ATOR Resposta do Sistema fecha o O SISTEMA fecha Fluxo Fluxo de Alternativo Exceção o - - Fim do caso de uso. - - Resposta do Sistema Fluxo Fluxo de Alternativo Exceção aplicativo antes do fim aplicativo. [RS005] da validação. 2 - FA2 – Tela de Ajuda Nro Ação do Ator 1 O ATOR aciona opção a O SISTEMA Apresenta - - a O SISTEMA retorna para - - “Ajuda”. uma modal. [RS007] 2 O ATOR aciona opção “Fechar”. 3 - a tela anterior. Fim do caso de uso. - - 98 Fluxo de Exceção Nro Ação do Ator Resposta do Sistema FE1 Campo obrigatório O SISTEMA deverá apresentar uma mensagem informando a obrigatoriedade do preenchimento dos campos. Com a seguinte mensagem: Campo obrigatório não preenchido. FE2 Validação de respostaincorreta O SISTEMA deverá apresentar uma mensagem informando ao usuário que sua resposta está incorreta. Com a seguinte mensagem: Resposta incorreta, tente novamente. FE3 Validação Email O SISTEMA deverá apresentar uma mensagem informando que o campo email está preenchido incorretamente: Email inválido FE4 Falha na Indisponível Conexão / Rede O SISTEMA deverá apresentar uma mensagem informando que não foi possível validar os dados devido à falha na conexão com o banco de dados ou indisponibilidade possível validar novamente. da os rede:Não dados, foi tente 99 Figura V -Diagrama de caso de uso Recuperar Senha Acessar sistema «extends» Acessar ajuda «extends» Usuário Recuperar senha Figura VI -Protótipo Recuperar Senha 100 TabelaXX - Mapa de testes Recuperar Senha Ação Resultado esperado Ao entrar na telade Recuperar Senha Carregar o campo Pergunta já preenchido. Digitar a Resposta Secreta Validar a resposta, verificar encaminhamento de e-mail. Não digitara Resposta Secreta Mensagem de erro. Botão Enviar e-mail habilitado Habilitar após preenchimento de campos obrigatórios. Clicar no botão Enviar e-mail com os Efetuar a troca de senha. Redirecionar campos obrigatórios preenchidos. para a tela de Menu principal. Ajuda Abrir modal. Fechar aplicativo antes do fim recuperação de senha da Verificar se o sistema cancela a recuperação de senha. Não enviando a nova senha. TabelaXXI - Campos do formulário Recuperar Senha Label Campo Obrigatório Descrição Pergunta txtPergunta Sim Campo String, com tamanho padrão Secreta de 150 caracteres. Resposta txtRespostaS Secreta ecreta Enviar com senha E-mail btnContrato a nova Sim Campo String, com tamanho padrão de 150 caracteres. Não Botão de visualização do contrato de aceite. 101 Ajuda btnAjuda Não Botão de visualização de Ajuda, em formato modal. 102 9.7.3 Acessar Sistema Identificação do UC003 Caso de Uso: Nome do Acessar Sistema Caso de Uso: Descrição: Este caso de uso descreve o funcionamento do menu principal do aplicativo. Dados de Identificação do requisito Caso de uso: Identificação Acessar Sistema do Nome do Requisito: requisito: RS001 Acesso a tela do Menu Principal O sistema deve apresentar ao usuário a opção na tela inicial para realizar o login no aplicativo. O usuário deverá informar seu login e senha e confirmar suas informações. Esses dados serão buscados no banco de dados externos do aplicativo para confirmação e em seguida o sistema deve apresentar a tela do Menu principal. RS002 Autenticação do sistema (A.D.) O sistema deve resgatar os dados do usuário em sua base de dados. O usuário ao preencher os dados necessários para realizar o login deve acionar a opção “Entrar”. RS003 Navegação do aplicativo O aplicativo deve disponibilizar uma forma fácil e intuitiva 103 de navegação, apresentando os seguintes botões no menu: - Minhas rotas - Consultar rotas similares - Mensagens Também deve apresentar no applicationBar os seguintes botões: - Ajuda - Configurações RS004 Configurações Ao acionar o Botão de configuração o sistema deve redirecionar para a tela de configurações descrita no UC004_Configurar conta. RS005 Ajuda Ao clicar no botão de ajuda o sistema deverá abrir uma modal explicando o funcionamento da tela do Menu Principal de forma simplificada. RS006 Redirecionar para outra tela Ao clicar na opção “Minhas Rotas” o sistema deve redirecionar para a página de rotas conforme descrição do UC005_Cadastrar Rota. Ao clicar na opção “Consultar Rotas Similares” o sistema deve redirecionar para a página de consulta conforme descrição do UC006_Consultar rota. 104 Ao clicar na opção “Mensagens” o sistema deve redirecionar para a página de mensagens conforme descrição do UC007_Verificar Mensagens. Fluxo principal O caso de uso inicia quando o ator valida seu login e senha no aplicativo. Nro Ação do Ator Resposta do Sistema Fluxo Fluxo de Alternativo Exceção 1 O ATOR acessa a O SISTEMA valida as FA1 “home” do aplicativo, informações e apresenta a FE1, FE2 e insere seu login e tela do menu principal. senha. 2 O SISTEMA apresenta as seguintes - opções: [RS001][RS002][RS003] - Minhas rotas - Consultar rotas similares - - Mensagens Também deve apresentar no applicationBar os seguintes botões: -Ajuda - Configurações 3 - Fim do caso de uso. - - 105 Fluxo Alternativo FA1 – Tela de Ajuda Nro Ação do Ator 2 O ATOR Resposta do Sistema aciona opção a O SISTEMA Fluxo Fluxo de Alternativo Exceção Apresenta - - a O SISTEMA retorna para - - “Ajuda”. uma modal. [RS005] 3 O ATOR aciona opção “Fechar”. 4 a tela anterior. Fim do caso de uso. - - Fluxo de Exceção Nro Ação do Ator Resposta do Sistema FE1 Validação de usuário e senha O SISTEMA deverá apresentar uma mensagem informando ao usuário que os dados inseridos estão inválidos. Com a seguinte mensagem: Dados inválidos. FE2 Falha na Indisponível Conexão / Rede O SISTEMA deverá apresentar uma mensagem informando que não foi possível validar os dados devido à falha na conexão com o banco de dados ou indisponibilidade possível validar novamente. da os rede:Não dados, foi tente 106 Figura VII - Diagrama de caso de uso Acessar Sistema 107 Figura VIII – Protótipo Acessar Sistema TabelaXXII - Mapa de testes Acessar Sistema Ação Resultado esperado Ao entrar na telaMenu Principal Carregar os botões Minhas rotas, consultar rotas similares e mensagens. Carregar o ApplicationBar com os botões Ajuda e configuração. Minhas Rotas Redirecionar para a tela de Minhas rotas. Consultar Rotas similares Redirecionar para a tela Rotas 108 Similares. Mensagens Redirecionar para a tela de mensagens. Configuração Redirecionar para a tela de Configuração. Ajuda Abrir modal. TabelaXXIII - Campos do formulário Acessar Sistema Label Campo Obrigatório Descrição Minhas Rotas btnMinhasRe Não Botão de redirecionamento de spostas Consultar Rotas btnConsultar Similares Rotas Mensagens btnMensagen tela. Não tela. Não s Configuração btnConfiguraç btnAjuda Botão de redirecionamento de tela. Não ão Ajuda Botão de redirecionamento de Botão de redirecionamento de tela. Não Botão de visualização de Ajuda, em formato modal. 109 9.7.4 Configurar Conta Identificação do UC004 Caso de Uso: Nome do Configurar Conta Caso de Uso: Descrição: Este caso de uso descreve o funcionamento da configuração de conta do usuário no aplicativo. Dados de Identificação do requisito Caso de uso: Identificação Configurar Conta do Nome do Requisito: requisito: RS001 Acesso à tela de configuração de conta O sistema deve apresentar ao usuário a opção de configuração da conta conforme o UC003_Menu principal. O usuário deverá alterar/complementar suas informações de perfil. Esses dados serão gravados no banco de dados externo do aplicativo. RS002 Autenticação do sistema (A.D.) O sistema deve resgatar os dados do usuário em sua base de dados. O usuário ao preencher os dados necessários para a alteração das informações deve acionar a opção “Salvar meus dados”. O sistema deve salvar os dados atualizados do cadastro. RS003 Campos Obrigatórios O sistema deve considerar obrigatórios os campos: 110 - Login, - Senha, - Repita a senha, - Pergunta Secreta, - Resposta, - E-mail. RS004 Fechar o aplicativo antes do fim da validação Se o usuário fechar o aplicativo antes de finalizar a validação, o sistema deve começar novamente o processo de validação no próximo acesso e o campo com os dados preenchidos anteriormente será perdido. RS005 Redirecionar para outra tela Ao finalizar a validação dos dados fornecidos o sistema deve apresentar a seguinte mensagem de confirmação: “Seus dados foram alterados com sucesso!”, o sistema deve apresentar um botão de Ok, que ao ser acionado deve redirecionar o usuário a tela de menu principal. RS006 Carregar os dados O sistema deve realizar uma busca no banco de dados externo e trazer todos os campos já preenchidos com as informações do usuário. RS007 Ajuda Ao clicar no botão de ajuda o sistema deverá abrir uma modal explicando o funcionamento da tela de 111 Configurações da conta de forma simplificada. Fluxo principal O caso de uso inicia quando o ator acessa o aplicativo. Nro Ação do Ator Resposta do Sistema Fluxo Fluxo de Alternativo Exceção 1 O ATOR acessa a O SISTEMA valida as FA2 “home” do aplicativo, e informações e apresenta a insere seu login FE1, FE5 e tela do menu principal. senha. 2 3 O ATOR aciona a O SISTEMA redireciona - opção para a tela “Configurações”. Configurações.[RS001] - de O ATOR preenche os O SISTEMA busca na base FA1, FA2 FE2, campos obrigatórios e de informações os dados FE3, aciona FE4, a opção inseridos, e atualiza as “Salvar meus dados”. informações. [RS002] FE6 [RS004][RS005] [RS003][RS006] 4 - O SISTEMA deverá - apresentar uma mensagem informando ao usuário que sua resposta está correta. Com a mensagem: foram seguinte Seus dados validados com sucesso, uma nova senha foi encaminhada para o seu - 112 e-mail. 5 - O SISTEMA apresenta a FA2 - tela do menu principal. 6 - Fim do caso de uso. - - Fluxo Alternativo FA1 – Fechar o aplicativo antes do fim do cadastro Nro Ação do Ator 1 O ATOR Resposta do Sistema fecha o O SISTEMA fecha Fluxo Fluxo de Alternativo Exceção o - - Fim do caso de uso. - - Resposta do Sistema Fluxo Fluxo de Alternativo Exceção aplicativo antes do fim aplicativo. [RS006] do cadastro. 2 - FA2 – Tela de Ajuda Nro Ação do Ator 1 O ATOR opção aciona a O SISTEMA Apresenta - - a O SISTEMA retorna para - - “Ajuda”. uma modal. [RS008] 2 O ATOR aciona opção “Fechar”. 3 a tela anterior. Fim do caso de uso. - - 113 Fluxo de Exceção Nro Ação do Ator Resposta do Sistema FE1 Validação de usuário e senha O SISTEMA deverá apresentar uma mensagem informando ao usuário que os dados inseridos estão inválidos. Com a seguinte mensagem: Dados inválidos. FE2 Campo obrigatório O SISTEMA deverá apresentar uma mensagem informando a obrigatoriedade do preenchimento dos campos. Com a seguinte mensagem: Campo obrigatório não preenchido. FE3 Validação de respostaincorreta O SISTEMA deverá apresentar uma mensagem informando ao usuário que sua resposta está incorreta. Com a seguinte mensagem: Resposta incorreta,tente novamente. FE4 Validação Email O SISTEMA deverá apresentar uma mensagem informando que o campo email está preenchido incorretamente: Email inválido. FE5 Falha na Indisponível Conexão / Rede O SISTEMA deverá apresentar uma mensagem informando que não foi possível validar os dados devido à falha na conexão com o banco de dados ou indisponibilidade da rede:Não foi 114 possível validar os dados, tente novamente. FE6 Falha na Indisponível Conexão / Rede O SISTEMA deverá apresentar uma mensagem informando que os dados não foram salvos corretamente devido à falha na conexão com o banco de dados ou indisponibilidade da rede: Os dados não foram salvos, tente novamente. Figura IX – Diagrama caso de uso Configurar Conta 115 Figura X – Protótipo Configurar Conta TabelaXXIV - Mapa de testes Configurar Conta Ação Resultado esperado Entrar na tela de Configuração Carregar os campos já preenchidos com as informações do usuário. AlterarNome Passar ao campo “Login”. CampoNome em branco Mensagem de erro. 116 AlterarLogin Passar ao campo “Senha”. Campo Login em branco Mensagem de erro. Validar campo Login O sistema deve aceitar mínimo de 6 e máximo de 20 caracteres. Alterar Senha Passar ao campo “Confirmar senha”. Campo Senha em branco Mensagem de erro. Validar campo Senha O sistema deve aceitar mínimo de 6 e máximo de 15 caracteres. AlterarRepita aSenha Passar ao campo “Pergunta secreta” CampoRepita a Senha em branco Mensagem de erro. Validar campo Repita a Senha O sistema deve validar se o campo “Repita a Senha” tem os mesmos caracteres que o campo “Senha”. Caso contrário, enviar mensagem de erro. Alterar Pergunta Secreta Passar ao campo “Resposta”. Campo Pergunta Secreta em branco Mensagem de erro. Alterar Resposta Habilitar o botão “E-mail”. Campo Resposta Secreta em branco Mensagem de erro. Clicar no botão Cadastrar sem aceitar o Mensagem de erro. termo de uso do Aplicativo Digitar e-mail Validar e-mail. 117 Não digitar e-mail Mensagem de erro. Botão Cadastrar habilitado Habilitar botão após preenchimento dos campos obrigatórios. Clicar no botão Salvar meus dados com Efetuar os campos obrigatórios preenchidos a Redirecionar alteração para a do tela cadastro. de Menu principal. Ajuda Fechar Abrir modal. aplicativo antes do fim alteração do cadastro da Verificar se o sistema cancela o cadastro. Não salvando os dados. TabelaXXV- Campos do formulário Configurar Conta Label Campo Obrigatório Descrição Nome txtNome Sim Campo String, com tamanho padrão simples Login de 20 caracteres. txtLogin Sim Campo String, com tamanho padrão de 20 caracteres. Senha txtSenha Sim Campo String, com tamanho padrão de 15 caracteres. Campo inativo para alteração. Confirmar txtConfirmar Senha Senha Sim Campo String, com tamanho padrão de 50 caracteres. Campo inativo para alteração. Pergunta txtPergunta Sim Campo String, com tamanho padrão de 150 caracteres. 118 Resposta txtRespostaS secreta ecreta E-mail txtEmail Sim Campo String, com tamanho padrão de 150 caracteres. Sim Campo String, com tamanho padrão de 50 caracteres. Ajuda btnAjuda Não Botão de visualização de Ajuda, em formato modal. 119 9.7.5 Gerenciar Rotas Identificação do UC005 Caso de Uso: Nome do Gerenciar Rotas Caso de Uso: Descrição: Este caso de uso descreve o gerenciamento das rotas do usuário. Dados de Identificação do requisito Caso de uso: Identificação Gerenciar Rotas do Nome do Requisito: requisito: RS001 Acesso a tela de Rotas O sistema deve apresentar uma lista de rotas já cadastradas do usuário caso o mesmo já tenha sido realizado anteriormente. Caso contrário, deve apresentar um botão para cadastro de rota. RS002 Navegação da tela de Rotas O aplicativo deve disponibilizar uma forma fácil e intuitiva de navegação, apresentando os seguintes botões: - Novo - Visualização do ponto no mapa (caso exista uma rota já cadastrada). Também deve apresentar no applicationBar o seguinte botão: 120 - Ajuda RS003 Criar nova rota Ao acionar a opção “Novo”, o aplicativo deve disponibilizar uma forma fácil e intuitiva de navegação, apresentando os seguintes campos Obrigatórios: - Ponto A, - Ponto B, Botão para visualização do ponto no mapa. RS004 Selecionando uma rota cadastrada O Usuário poderá selecionar uma rota já cadastrada. Ao clicar na rota o sistema deverá apresentar apenas as informações selecionadas e no applicationBar as seguintes opções: - Alterar - Excluir RS005 Fechar o aplicativo antes do fim da validação Se o usuário fechar o aplicativo antes de finalizar a alteração de uma rota, o sistema deve começar novamente o processo de validação no próximo acesso e o campo com os dados deverão vir conforme o que estiver cadastrado no banco. RS006 Alterar Rota Ao selecionar a opção Alterar o sistema deve carregar as informações nos devidos campos e apresentar no 121 applicationBar a seguinte opção: - Salvar Ao finalizar uma alteração de uma rota, o sistema deve apresentar a seguinte mensagem de confirmação: “Sua rota foi alterada com sucesso!”, o sistema deve apresentar uma opção de “Ok” na modal, que ao ser acionada deve redirecionar para a tela principal de rotas. RS007 Excluir Rota Ao selecionar a opção excluir o sistema deve carregar as informações nos devidos campos. Ao excluir uma rota, o sistema deve apresentar a seguinte mensagem: “Tem certeza que deseja excluir esta rota?”, o sistema deve apresentar um botão de Sim e outro de Cancelar. Caso o usuário acione a opção de “Sim” na modal, o sistema deverá excluir da lista e do banco de dados externos a rota selecionada pelo usuário. RS008 Validação de Rota O sistema deve disponibilizar ao usuário nos campos de cadastro de rota um sistema de auto completar, buscando validar os possíveis nomes de rua cadastrados. RS009 Salvar Rota Ao selecionar a opção Salvar, o sistema deve registrar a rota cadastrada em um banco de dados externo. RS010 Ajuda 122 Ao clicar no botão de ajuda o sistema deverá abrir uma modal explicando o funcionamento da tela de rotas de forma simplificada. Fluxo principal O caso de uso inicia quando o ator acessa a opção Minhas Rotas. Nro Ação do Ator Resposta do Sistema Fluxo Fluxo de Alternativo Exceção 1 O ATOR acessa a O SISTEMA valida as FA4 FE1, “home” do aplicativo, e informações e apresenta a FE2, insere FE4 seu login e tela do menu principal. senha. 2 O ATOR “Minhas 3 acessa O SISTEMA apresenta a FA1, FA2, - rotas” do tela de Rotas. [RS001] FA3, FA4 aplicativo. [RS002] - Fim do caso de uso. - - 123 Fluxo Alternativo FA1 – Adicionar rota Nro Ação do Ator 1 O ATOR Resposta do Sistema aciona opção“Cadastrar a O SISTEMA carregar a Fluxo Fluxo de Alternativo Exceção deve FA4 tela - de Rota”. [RS001][RS003] cadastro de novas rotas. 2 O ATOR deve O adicionar SISTEMA deverá - FE1, uma FE2, nos mensagem informando ao FE5 as apresentar informações campos obrigatórios e usuário que a rota foi aciona a “Salvar”. opção salva. Com a seguinte [RS005] mensagem:Sua rota foi [RS008][RS009] salva com sucesso! O SISTEMA deve salvar as informações no banco de dados externo. 3 - Fim do caso de uso. - - Fluxo Fluxo de FA2 – Alterar rota Nro Ação do Ator Resposta do Sistema Alternativo Exceção 1 O ATOR seleciona uma O SISTEMA rota já cadastrada, na carregar lista de a tela rotas. alteração de rota. deve FA4 de - 124 [RS001][RS004][RS006] 2 O ATOR deve alterar O deverá - FE1, uma FE2, necessários nos campos mensagem informando FE5 suas rotas SISTEMA conforme apresentar obrigatórios e acionar a ao usuário quando o opção “salvar”. mesmo uma [RS005][RS006][RS008] [RS009] tentar rota. alterar Com a seguinte mensagem:Sua rota foi alterada com sucesso! O SISTEMA devesalvar as informações banco de no dados externo. 3 - Fim do caso de uso. - - Resposta do Sistema Fluxo Fluxo de FA3 – Excluir rota Nro Ação do Ator Alternativo Exceção 1 O ATOR seleciona uma O SISTEMA rota já cadastrada, na carregar lista de a deve FA4 tela - de rotas. exclusão de rota. [RS001][RS004][RS007] 2 O ATOR deve acionar a O opção SISTEMA “Excluir”. apresentar deverá - FE1, uma FE2 [RS005][RS007][RS008] mensagem informando [RS009] ao usuário quando o mesmo tentar excluir 125 uma rota. Com a seguinte mensagem:Tem certeza que deseja excluir esta rota? 3 O ATOR deve acionar a O SISTEMA valida a - FE3, opção “SIM”. FE5 ação e salva as informações no banco de dados externo. 4 - Fim do caso de uso. - - Fluxo Fluxo de Alternativo Exceção FA4 – Tela de Ajuda Nro Ação do Ator 2 O ATOR Resposta do Sistema aciona opção a O sistema Apresenta uma - - “Ajuda”. modal. [RS010] 3 O ATOR aciona opção “Fechar”. 4 a O sistema retorna para a - - tela anterior. Fim do caso de uso. - - Fluxode Exceção Nro Ação do Ator FE1 Validação de usuário e senha Resposta do Sistema O SISTEMA deverá apresentar uma mensagem informando ao usuário que os dados inseridos estão inválidos. Com 126 a seguinte mensagem: Dados inválidos. FE2 Campo obrigatório O SISTEMA deverá apresentar uma mensagem informando a obrigatoriedade do preenchimento dos campos. Com a seguinte mensagem: Campo obrigatório não preenchido. FE3 Validação de Rota Excluir O SISTEMA deverá retornar a tela de rotas caso o usuário selecione a opção “não”. FE4 Falha na Conexão / Indisponível Rede O SISTEMA deverá apresentar uma mensagem informando que não foi possível validar os dados devido à falha na conexão com o banco de dados ou indisponibilidade possível validar da rede:Não os dados, foi tente novamente. FE5 Falha na Indisponível Conexão / Rede O SISTEMAdeverá apresentar uma mensagem informando que os dados não foram salvos corretamente devido à falha na conexão com o banco de dados ou indisponibilidade da rede:Os dados não foram salvos, tente novamente. 127 Figura XI – Diagrama de caso de uso Gerenciar Rotas 128 Figura XII – Protótipo Gerenciar Rotas TabelaXXVI - Mapa de testes Gerenciar Rotas Ação Resultado esperado Ao entrar na tela de Gerenciar Rotas pela Carregar os campos em branco. primeira vez Ao entrar na tela Gerenciar Rotas com Carregar a lista de rotas com as rotas rotas já cadastradas cadastradas. Cadastrar Ponto A Validar endereço. Cadastrar Ponto B Validar endereço. 129 Campo “Ponto A”em branco Mensagem de erro. Campo “Ponto B”em branco Mensagem de erro. Ajuda Abrir modal. Fechar aplicativo antes do fim do Verificar se o sistema cancela o cadastro. cadastro da rota Não salvando os dados. Clicar no botão Novo Salvar a Rota e apresentar na lista. Selecionar Rota Verificar se ao selecionar a rota o sistema permite excluir a rota ou alterar. Excluir Rota Ao excluir rota verificar se a rota não é mais apresentada na lista Alterar Rota Verificar se ao alterar uma rota o sistema altera na lista a rota TabelaXXVII - Campos do formulário Gerenciar Rotas Label Campo Obrigatório Descrição Ponto A txtPontoA Sim Campo String, com tamanho padrão de 50 caracteres. Ponto B txtPontoB Sim Campo String, com tamanho padrão de 50 caracteres. Novo btnNovo Não Botão para salvar os registros do contrato. Ajuda btnAjuda Não Botão de visualização de Ajuda, em formato modal. 130 Lista lstListadeRota Não Lista de visualização de rotas 131 9.7.6 Consultar Rotas Identificação do UC006 Caso de Uso: Nome do Consultar Rotas Caso de Uso: Descrição: Este caso de uso descreve o funcionamento da consulta de rotas semelhantes às do usuário. Dados de Identificação do requisito Caso de uso: Identificação Consultar Rotas do Nome do Requisito: requisito: RS001 Acesso à tela de consulta de rotas O sistema deve apresentar ao usuário uma lista com o login e as rotas de usuários que possuem rotas semelhantes. Além das seguintes opções: - Visualizar Mapa - Enviar Mensagem RS002 Visualização de Rota O sistema deve possibilitar a visualizar no mapa do trajeto realizado pela pessoa selecionada na lista. RS003 Mensagem O sistema deve possibilitar uma forma prática de trocas de mensagem com um usuário selecionado Conforme UC007_Gerenciar Mensagens. na lista. 132 RS004 Ajuda Ao clicar no botão de ajuda o sistema deverá abrir uma modal explicando o funcionamento da tela de consultar rotas de forma simplificada. Fluxo principal O caso de uso inicia quando o ator acessa o aplicativo. Nro Ação do Ator Resposta do Sistema Fluxo Fluxo de Alternativo Exceção 1 O ATOR acessa a O SISTEMA valida as FA2 “home” do aplicativo, e informações e apresenta a insere seu login FE1, FE3 e tela do menu principal. senha. 2 O ATOR acessa a O SISTEMA apresenta a FA2 FE2 opção “Consultar rotas tela de Consulta de rotas. similares” do aplicativo. [RS001] 3 O ATOR aciona um O usuário na [RS002][RS003] SISTEMA busca na FA1, FA2 FE4 lista. base de dados os dados do usuário selecionado e gera a rota realizada pelo mesmo apresentando no mapa. 3 - Fim do caso de uso. - - 133 Fluxo Alternativo FA1 – Enviar Mensagem Nro Ação do Ator 1 Resposta do Sistema Fluxo Fluxo de Alternativo Exceção O ATOR seleciona o O SISTEMA abre a tela FA2 usuário que - deseja de envio de mensagem. enviar a mensagem na lista. [RS002][RS003] 2 - Caso de uso “gerenciar - - mensagens” 3 - Fim do caso de uso. - - Fluxo Fluxo de Alternativo Exceção FA2 – Tela de Ajuda Nro Ação do Ator 1 O ATOR opção Resposta do Sistema aciona a O SISTEMA Apresenta - - a O SISTEMA retorna para - - “Ajuda”. uma modal. [RS004] 2 O ATOR aciona opção “Fechar”. 3 a tela anterior. Fim do caso de uso. - - 134 Fluxo de Exceção Nro Ação do Ator Resposta do Sistema FE1 Validação de usuário e senha O SISTEMA deverá apresentar uma mensagem informando ao usuário que os dados inseridos estão inválidos. Com a seguinte mensagem: Dados inválidos. FE2 Nenhuma Rota O SISTEMA deverá apresentar uma mensagem informando ao usuário que não existe nenhum rota parecida com a dele. Com a seguinte mensagem: Até o momento não foiencontrada nenhuma rota parecida, tente mais tarde. FE3 Falha na Conexão / Indisponível Rede O SISTEMA deverá apresentar uma mensagem informando que não foi possível validar os dados devido à falha na conexão com o banco de dados ou indisponibilidade possível validar da os rede:Não dados, foi tente novamente. FE4 Falha na Indisponível Conexão / Rede O SISTEMA deverá apresentar uma mensagem informando que não foi possível carregar as rotas devido à falha na conexão com o banco de dados ou indisponibilidade da rede:Não foi possível carregar as rotas, tente novamente. 135 Figura XIII – Diagrama de caso de uso Consultar Rotas 136 Figura XIV - Protótipo Consultar Rotas TabelaXXVIII - Mapa de testes Consultar Rotas Ação Resultado esperado Entrar na tela de Consultar Rota Carregar lista de rotas similares. Entrar na tela de Consultar Rota sem Mensagem de informação. rotas similares Selecionar uma rota Apresentar botão “Visualizar no mapa”. Ajuda Abrir modal. 137 Clicar no botão Visualizar no mapa Redirecionar para a tela de mapa, apresentar a rota selecionada. TabelaXXIX - Campos do formulário Consultar Rotas Label Campo Obrigatório Descrição Ajuda btnAjuda Não Botão de visualização de Ajuda, em formato modal. Lista lstListadeRota Não Lista de visualização de rotas 138 9.7.7 Gerenciar Mensagens Identificação do UC007 Caso de Uso: Nome do Gerenciar Mensagens Caso de Uso: Descrição: Este caso de uso descreve o funcionamento da troca de mensagens entre usuários. Dados de Identificação do requisito Caso de uso: Identificação Gerenciar Mensagens do Nome do Requisito: requisito: RS001 Acesso à tela de mensagens O sistema deve apresentar ao usuário uma tela em formato panorâmico. As ações e configurações da mensagem devem vir conforme padrão Windows Phone, não sendo personalizado. RS002 Panorama da tela de mensagens O sistema deve trazer no panorama inicial a Caixa de entrada e em seguida a Caixa de Saída no formato de lista. RS003 Comunicação das mensagens O sistema deve utilizar a API de envio de mensagem SMS para realizar a comunicação. RS004 Ajuda 139 Ao clicar no botão de ajuda o sistema deverá abrir uma modal explicando o funcionamento da tela de mensagens de forma simplificada. RS005 Opções de configuração O sistema deve disponibilizar em applicationBar a possibilidade de excluir uma mensagem que esteja na Caixa de entrada e de Caixa de saída. Fluxo principal O caso de uso inicia quando o ator acessa o aplicativo. Nro Ação do Ator Resposta do Sistema Fluxo Fluxo de Alternativo Exceção 1 O ATOR acessa a O SISTEMA valida as FA3 “home” do aplicativo, e informações e apresenta a insere seu login FE1, FE5 e tela do menu principal. senha. 2 O ATOR acessa a O SISTEMA apresenta a FA1, FA2, FE2 opção “Mensagens” do tela aplicativo. de Mensagens. FA3,FA4, [RS001] [RS002] [RS003] FA5 [RS004][RS005] 3 - Fim do caso de uso. - - 140 Fluxo Alternativo FA1 – Caixa de entrada Nro Ação do Ator 1 Resposta do Sistema Fluxo de Alternativo Exceção O ATOR acessa a tela O SISTEMA apresenta as FA2, FA3, de Caixa de entrada. mensagens recebidas do [RS005] 2 Fluxo O ATOR FE2 FA4 usuário. seleciona O SISTEMA apresenta as uma das mensagens. opções de excluir - - - - - FE, FE6 e responder. 3 O ATOR aciona opção “Responder”. a O SISTEMA apresenta a caixa de mensagem padrão com o campo Para: já carregado com o nome do usuário a ser respondido. e com o campo texto. 4 O ATOR aciona opção “Enviar”. a O SISTEMA deverá enviar a mensagem e apresentar uma mensagem informando que a ao mensagem enviada Com usuário foi corretamente. a seguinte mensagem: a mensagem foi enviada com sucesso. E salvar o histórico da conversa na caixa de 141 saída. 5 - Fim do caso de uso. - - FA2 – Caixa de saída Nro Ação do Ator 1 Resposta do Sistema O ATOR acessa a O tela de Caixa saída. SISTEMA salva Fluxo Fluxo de Alternativo Exceção FA3, FA5 FE2, a de mensagem no banco de FE6 Dados e gera uma cópia da mensagem na caixa de saída do aplicativo. 2 - Fim do caso de uso. - - FA3 – Tela de Ajuda Nro Ação do Ator 1 O ATOR opção Resposta do Sistema aciona a O SISTEMA Fluxo Fluxo de Alternativo Exceção Apresenta - - a O SISTEMA retorna para - - “Ajuda”. uma modal. [RS004] 2 O ATOR aciona opção “Fechar”. 3 a tela anterior. Fim do caso de uso. - - 142 FA4 - Excluir mensagem caixa de entrada Nro Ação do Ator 1 Resposta do Sistema Fluxo Fluxo de Alternativo Exceção O ATOR acessa a tela O SISTEMA apresenta as FA2, FA3, FE2 de Caixa de entrada. mensagens recebidas do FA5 [RS005] 2 O ATOR usuário. seleciona O SISTEMA apresenta as - uma das mensagens. opções de excluir - e responder. 3 O ATOR seleciona a O SISTEMA apresenta a opção Excluir. mensagem FE4 de confirmação de exclusão. 4 O ATOR seleciona a O opção “SIM” SISTEMA exclui a - FE6 mensagem. 5 Fim do caso de uso. - - Fluxo Fluxo de Alternativo Exceção FA5 – Excluir mensagem caixa de entrada Nro Ação do Ator 1 Resposta do Sistema O ATOR acessa a tela O SISTEMA apresenta as FA2, FA3, FE2 de Caixa de entrada. mensagens recebidas do FA4 [RS005] 2 O ATOR usuário. seleciona O SISTEMA apresenta as - uma das mensagens. opções de excluir. - 143 3 O ATOR seleciona a O SISTEMA apresenta a opção Excluir. mensagem FE4 de confirmação de exclusão. 4 O ATOR seleciona a O opção “SIM” 5 SISTEMA exclui a - FE6 mensagem. Fim do caso de uso. - - Fluxo de Exceção nro Ação do Ator FE1 Validação de usuário e senha Resposta do Sistema O SISTEMA deverá apresentar uma mensagem informando ao usuário que os dados inseridos estão inválidos. com a seguinte mensagem: Dados inválidos. FE2 NenhumaMensagem O SISTEMA deverá apresentar uma mensagem informando ao usuário que não existe nenhuma mensagem. Com a seguinte mensagem:Nenhuma conversa até o momento. FE3 Mensagem não enviada O SISTEMA deverá apresentar uma mensagem informando ao usuário ocorreu um problema no envio da mensagem. Com a seguinte mensagem: A mensagem não pode ser enviada. Excluir Mensagem O SISTEMA deverá apresentar uma mensagem informando ao usuário que FE4 se ele tem certeza que deseja excluir a 144 mensagem seleciona. Com a seguinte mensagem: Tem certeza que deseja excluir esta mensagem? “Sim” “Não” FE5 Falha na Conexão / Indisponível Rede O sistema deverá apresentar uma mensagem informando que não foi possível validar os dados devido à falha na conexão com o banco de dados ou indisponibilidade possível da validar rede: os Não dados, foi tente novamente. FE6 Falha na Indisponível Conexão / Rede O SISTEMA deverá apresentar uma mensagem informando que ocorreram problemas no processamento da mensagem devido à falha na conexão com o banco de dados ou indisponibilidade da rede: Ocorreram problemas no processamento mensagem, tente novamente. Figura XV – Diagrama de caso de uso Gerenciar Mensagem da 145 Figura XVI - Protótipo Gerenciar Mensagem caixa de entrada 146 Figura XVII - Protótipo Gerenciar Mensagem caixa de entrada Tabela XXX - Mapa de testes Gerenciar Mensagem Ação Resultado esperado Entrar na tela de Gerenciar Mensagens Apresentar a tela de caixa de entrada. Visualizar caixa de entrada Apresentar mensagens. Selecionar Mensagem Apresentar opções excluir e responder. Selecionar opção Excluir na caixa de Apresentar mensagem de exclusão. entrada 147 Selecionar opção “Sim” para excluir Verificar se a mensagem é excluída do mensagem (Caixa de entrada) aplicativo. Selecionar opção Responder na caixa de Apresentar o campo Para: preenchido com entrada o nome do usuário selecionado. Apresentar o campo texto e o botão “Enviar”. Enviar mensagem Verificar se a mensagem é enviada ao destinatário e salva na caixa de saída do remetente com histórico da conversa. Selecionar opção Excluir na caixa de Apresentar mensagem de exclusão. saída Selecionar opção “Sim” para excluir Verificar se a mensagem é excluída do mensagem (Caixa de saída) aplicativo. Ajuda Abrir modal. Clicar no botão Visualizar no mapa Redirecionar para a tela de mapa, apresentar a rota selecionada. Tabela XXXI - Campos do formulário Gerenciar Mensagem Label Campo Obrigatório Descrição Ajuda btnAjuda Não Botão de visualização de Ajuda, em formato modal. Lista lstListadeRota Não Lista de visualização de rotas Responder btnResponder Não Botão de redirecionamento para modal de resposta. 148 Excluir btnExcluir Não Botão responsável mensagens. 9.8 Apêndice H – Modelo Físico de Dados Figura XVIII - Visão do modelo Físico de dados por excluir 149 9.9 Apêndice I – Documento de Diagrama de classe Figura XIX - Visão do Diagrama de Classe 150 9.10 Apêndice J – Documento de Arquitetura 9.10.1 Objetivo O objetivo deste documento consiste em descrever a arquitetura do aplicativo Garupando. Ele apresenta informações estruturais da aplicação, necessárias ao bom entendimento da disposição organizacional do mesmo, e detalhes sobre a visão lógica do sistema. 9.10.2 Escopo Visão geral de arquitetura do aplicativo Garupando, o qual está sendo desenvolvido em plataforma Microsoft para possibilitar o compartilhamento de caronas via Smartphones (Windows Phone) interagindo com um banco de dados externo através de um Web Server. 9.10.3 Representação da Arquitetura A arquitetura do aplicativo possui duas visões dispostas em camadas independentes, uma para o Smartphone e outra para o Web Server/Banco de dados, as quais estão descritas nas Figuras XX e XXI. Figura XX Arquitetura do Aplicativo na visão do Smartphone 151 Figura XXI - Arquitetura do Aplicativo na visão do Web Server/Banco de Dados A camada de Interface Gráfica (GUI) é a camada responsável pela comunicação com o usuário, composta pelas telas do aplicativo. A camada de Comunicação implementa os mecanismos de comunicação entre a GUI e a camada de negócio. A camada de Negócio é responsável pela lógica dos serviços e das regras de negócio. Já a camada de Dados é responsável pelo armazenamento e recuperação dos dados do sistema. 9.10.4 Princípios e Restrições da Arquitetura A arquitetura adotada atende às seguintes características: - Manutenibilidade: A manutenção do sistema deve ser fácil e rápida. - Extensibilidade: A arquitetura adotada possibilita a adição de novas funcionalidades ao sistema, visto que possivelmente será necessário atualizar o software. - Modularidade: Faz com que o sistema possua partes não acopladas, facilitando a possível substituição de componentes do mesmo. - Restrições de Memória: Por se tratar de um sistema para Smartphones, há uma restrição de memória de execução, estando contemplada na arquitetura. 9.10.5 Visão Lógica A figura a seguir oferece uma visão geral da arquitetura do aplicativo Garupando. 152 Figura XXII - Visão Lógica do Aplicativo 9.10.6 Visão Física A figura a seguir oferece uma visão física da arquitetura do aplicativo Garupando. Figura XXIII - Visão Física do Aplicativo 153 9.10.7 Mecanismos arquiteturais Os mecanismos arquiteturais inerentes ao sistema são o Servidor Web integrado ao Banco de Dados. 9.10.8 Tecnologias utilizadas O aplicativo será desenvolvido utilizando a Linguagem de Programação C#, com a implementação do Windows Phone Software Development Kit (SDK) 7.1., a qual fornece os recursos necessários para criação de aplicativos para smartphones. Os requisitos de sistema necessários para executar essa SDK são: Windows Vista (x86 e x64) com SP2 – todas as edições exceto Starter; Windows 7 (x86 e x64) – todas as edições exceto Starter; 4 GB de espaço livre em disco; 3 GB de memória RAM; e Windows Phone Emulator requer placa de vídeo compatível com DirectX 10 ou superior com driver WDDM 1.1. A arquitetura do sistema utiliza a tecnologia SilverLight para trazer o estilo de Rich Internet Applications (RIA), incluindo meios de comunicação e Internet. A linguagem ExtensibleApplicationMarkupLanguage (XAML) foi utilizada para definir uma layout da interface do usuário controles e painéis. A estrutura final do sistema consistirá em um Software empacotado no formato XAP com todas as imagens, arquivos, texto, bibliotecas, utilizadas para desenvolver o sistema através das ferramentas Microsoft Visual Studio e Microsoft Expression Blend. O sistema de banco de dados que armazena as informações dos usuários é o Microsoft SQL Server 2008 R2 e a interação com os mapas é realizada através da SDK MapsInteractive do Bing. 9.10.9 Elementos do Sistema Os elementos do aplicativo Garupando são implementados em classes C#, as quais representam as entidades funcionais do sistema. Elas são distribuídas em pacotes, de acordo com sua função no sistema. Além das 154 classes o sistema também apresenta arquivos XAML que compõem a camada de interface gráfica do sistema. 9.10.10 Performance Ao tratar de performance, dividimos o entendimento em três partes: capacidade de processamento do aparelho mobile, conexão com a Internet e capacidade de processamento e resposta do banco de dados. Como não há um controle sobre todos os modelos mobiles que podem utilizar o aplicativo, nem mesmo uma aferição de desempenho entre as diversas tecnologias de conexão com a internet (Wi-Fi, 3G, 4G), entendemos que o fator primordial é o tratamento do banco de dados. Deste modo, foram realizados testes de desempenho de armazenamento e recuperação de dados numa versão ainda não aprimorada, com uma conexão a um banco de dados local. O resultado alcançado na recuperação dos dados de uma tabela com aproximadamente 5 mil registros foi de 2 a 3 segundos. O tempo máximo estimado para uma transferência da mesma quantidade de informações através de uma conexão de Internet é de no máximo 5 segundos, conforme estudos realizados e disponibilizados na comunidade de produtos da Microsoft. 155 9.11 Apêndice K – Questionário Carona Solidaria Carona Solidária O objetivo dessa pesquisa consiste em verificar a aceitação das pessoas com relação à prática de carona solidária. *Obrigatório 1. Sexo* Feminino Masculino 2. Idade* 3. Estado Civil* SOLTEIRO (A) CASADO (A) VIÚVO (A) SEPARAÇÃO LEGAL (JUDICIAL OU DIVÓRCIO) Outro: 4. Escolaridade* ENSINO FUNDAMENTAL (1º GRAU) INCOMPLETO ENSINO FUNDAMENTAL (1º GRAU) COMPLETO ENSINO MÉDIO (2º GRAU) INCOMPLETO ENSINO MÉDIO (2º GRAU) COMPLETO SUPERIOR INCOMPLETO SUPERIOR COMPLETO MESTRADO DOUTORADO Outro: 5. Possui carro?* Sim Não 6. Você já ouviu falar em “Carona Solidária”?* Sim Não 156 7. Você acharia interessante ter um aplicativo que mostre pessoas que tem rotas similares à sua?* Sim Não 8. Você utilizaria um aplicativo de caronas?* Sim Não 9. Você buscaria por caronas em um aplicativo de caronas?* Sim Não 10. Você daria carona para uma pessoa que conheceu através de um aplicativo?* Sim Não Se você respondeu não para a pergunta acima, explique o motivo? Avalie abaixo quais informações você considera importante que estejam presentes em uma busca rápida por caronas:*Avalie conforme o grau de importância 1 - Muito Importante (Essencial) Estado Civil Idade Fumante / Não Fumante Uso de bebidas alcoólicas Marca do Veículo Quantidade de vagas disponíveis no veículo Tempo de carteira Documentação do veículo em dia Disponibilidade de dias 2 - Interessante 3 - Indiferente 157 1 - Muito Importante (Essencial) Horários disponíveis Já compartilha carona com outras pessoas, se sim quantas Enviar 2 - Interessante 3 - Indiferente