curso de anÁlise e desenvolvimento de sistemas...

72
CURSO DE ANÁLISE E DESENVOLVIMENTO DE SISTEMAS AMANDA LONGO PIRES STHÉPHANE MACIEL RANGEL MEIRELES TATIANA FREITAS DE SOUZA INTEGRANDO ANDROID COM FRAMEWORK RUBY ON RAILS ESTUDO DE CASO: APLICATIVO DE NOTAS E FALTAS Campos dos Goytacazes/RJ 2013

Upload: lamkhue

Post on 31-Dec-2018

216 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: CURSO DE ANÁLISE E DESENVOLVIMENTO DE SISTEMAS …bd.centro.iff.edu.br/bitstream/123456789/965/3/Documento.pdf · ... APLICATIVO DE NOTAS E FALTAS Monografia de Conclusão de

CURSO DE ANÁLISE E DESENVOLVIMENTO DE SISTEMAS

AMANDA LONGO PIRES

STHÉPHANE MACIEL RANGEL MEIRELES

TATIANA FREITAS DE SOUZA

INTEGRANDO ANDROID COM FRAMEWORK RUBY ON RAILS

ESTUDO DE CASO: APLICATIVO DE NOTAS E FALTAS

Campos dos Goytacazes/RJ

2013

Page 2: CURSO DE ANÁLISE E DESENVOLVIMENTO DE SISTEMAS …bd.centro.iff.edu.br/bitstream/123456789/965/3/Documento.pdf · ... APLICATIVO DE NOTAS E FALTAS Monografia de Conclusão de

II

AMANDA LONGO PIRES

STHÉPHANE MACIEL RANGEL MEIRELES

TATIANA FREITAS DE SOUZA

INTEGRANDO ANDROID COM FRAMEWORK RUBY ON RAILS

ESTUDO DE CASO: APLICATIVO DE NOTAS E FALTAS

Monografia de Conclusão de Curso Análise e

Desenvolvimento de Sistemas apresentada no

Instituto Federal de Educação, Ciências e

Tecnologia.

Orientador: Prof. Luiz Gustavo Lourenço Moura, DSC.

Campos dos Goytacazes/RJ

2013

Page 3: CURSO DE ANÁLISE E DESENVOLVIMENTO DE SISTEMAS …bd.centro.iff.edu.br/bitstream/123456789/965/3/Documento.pdf · ... APLICATIVO DE NOTAS E FALTAS Monografia de Conclusão de

III

AMANDA LONGO PIRES

STHÉPHANE MACIEL RANGEL MEIRELES

TATIANA FREITAS DE SOUZA

INTEGRANDO ANDROID COM FRAMEWORK RUBY ON RAILS

ESTUDO DE CASO: APLICATIVO DE NOTAS E FALTAS

Aprovada em 03 de outubro de 2013

Banca Avaliadora:

.............................................................................................................................................

Prof. Dr. Luiz Gustavo Lourenço Moura (orientador) Doutor em Engenharia de Sistemas e Computação/Coppe /UFRJ

Instituto Federal de Educação, Ciência e Tecnologia Fluminense / Campus

Campos Centro

.............................................................................................................................................

Prof. Dr. Breno Fabricio Terra Azevedo Doutor em Informática na Educação / UFRGS

Instituto Federal de Educação, Ciência e Tecnologia Fluminense / Campus

Campos Centro

{{

.............................................................................................................................................

Prof. Dr. Maurício José Viana Amorim Doutor em Informática na Educação /UFRGS

Instituto Federal de Educação, Ciência e Tecnologia Fluminense / Campus

Campos Centro

Monografia apresentada ao Instituto Federal

de Educação, Ciência e Tecnologia

Fluminense de Campos como requisito

parcial para conclusão do Tecnólogo em

Análise e Desenvolvimento de Sistemas.

Page 4: CURSO DE ANÁLISE E DESENVOLVIMENTO DE SISTEMAS …bd.centro.iff.edu.br/bitstream/123456789/965/3/Documento.pdf · ... APLICATIVO DE NOTAS E FALTAS Monografia de Conclusão de

IV

AGRADECIMENTOS

Agradeço ao nosso professor orientador que teve paciência e que nos ajudou bastante a

concluir este trabalho. Agradecemos também a Deus, pois sem ele não teríamos forças para

essa longa jornada.

Page 5: CURSO DE ANÁLISE E DESENVOLVIMENTO DE SISTEMAS …bd.centro.iff.edu.br/bitstream/123456789/965/3/Documento.pdf · ... APLICATIVO DE NOTAS E FALTAS Monografia de Conclusão de

V

"Há homens que lutam um dia e são bons.

Há outros que lutam um ano e são

melhores.

Há os que lutam muitos anos e são muito

bons.

Porém, há os que lutam toda a vida.

Esses são os imprescindíveis."

Page 6: CURSO DE ANÁLISE E DESENVOLVIMENTO DE SISTEMAS …bd.centro.iff.edu.br/bitstream/123456789/965/3/Documento.pdf · ... APLICATIVO DE NOTAS E FALTAS Monografia de Conclusão de

VI

Dedico essa monografia primeiramente a

Deus que me deu força para persistir no

término desse trabalho e meus pais que

sempre me ensinaram a nunca desistir de

alcançar os meus objetivos.

Page 7: CURSO DE ANÁLISE E DESENVOLVIMENTO DE SISTEMAS …bd.centro.iff.edu.br/bitstream/123456789/965/3/Documento.pdf · ... APLICATIVO DE NOTAS E FALTAS Monografia de Conclusão de

VII

RESUMO

Aplicativos mobile são softwares usados para funções específicas em dispositivos móveis

como smartphones e tablets. Eles estão disponíveis através de plataformas de distribuição de

aplicações que são normalmente operadas pelo proprietário do sistema operacional móvel,

como App Store, Android Market, BlackBerry App World, Ovi Store, entre outros. Alguns

aplicativos são gratuitos, e outros têm um preço. Normalmente eles são baixados da

plataforma para um dispositivo de destino, como um iPhone, BlackBerry, Android ou

telefone, mas às vezes eles podem ser baixados para computadores menos móveis, tais como

laptops ou desktops. A tecnologia móvel deixou de ser uma invenção para se tornar uma

revolução, pois foi capaz de atingir o quotidiano das pessoas e fazer parte da vida delas,

modificando suas rotinas e formas de tomar decisões. Este tipo de tecnologia permite o acesso

a dados e informações em qualquer momento e em qualquer lugar. Os aplicativos são

destinados à facilitar o desempenho de atividades práticas do usuário assim como para puro

divertimento.O presente estudo pretende facilitar o cotidiano dos professores do IFF , em

relação a nova forma de inserir notas e faltas dos alunos no Sistema Acadêmico pelo celular.

Esse aplicativo tem como objetivo, comodidade e rápido acesso em qualquer lugar durante o

fechamento de cada período.

Palavras chave: Android, Aplicativo, Plataforma e Tecnologia.

Page 8: CURSO DE ANÁLISE E DESENVOLVIMENTO DE SISTEMAS …bd.centro.iff.edu.br/bitstream/123456789/965/3/Documento.pdf · ... APLICATIVO DE NOTAS E FALTAS Monografia de Conclusão de

VIII

ABSTRACT

Mobile software applications are used for specific functions in mobile devices as smart

phones and tablets. They are available through distribution platforms for applications that are

typically operated by the owner of the mobile operating system, as the App Store, Android

Market, BlackBerry App World, Ovi Store. Some apps are free and others have a price.

Usually they are downloaded from the platform to a target device, like iPhone, BlackBerry or

Android phone, but sometimes they can be downloaded for computer less mobile, as laptops

or desktops. Mobile technology has ceased to be an invention to become a revolution, because

it was able to reach people's daily lives and be part of their lives, changing their routines and

ways of making decisions. This type of technology allows access to data and information

anytime and anywhere. The applications are designed to facilitate the performance of practical

activities of the user as well as for pure fun. The present study intends to facilitate the daily

lives of IFF teachers, regarding the new form of insert grades and absences of students in the

Academic System by phone. This application aims convenience and quick access anywhere

during the closing of each period.

Key words: Android, Application, Platform e Technology.

Page 9: CURSO DE ANÁLISE E DESENVOLVIMENTO DE SISTEMAS …bd.centro.iff.edu.br/bitstream/123456789/965/3/Documento.pdf · ... APLICATIVO DE NOTAS E FALTAS Monografia de Conclusão de

IX

LISTA DE CÓDIGOS

Código 1: Classe ConsultaAlunoTask....................................................................................................49

Código 2: Classe HTTPUtils....................................................................................................................50

Page 10: CURSO DE ANÁLISE E DESENVOLVIMENTO DE SISTEMAS …bd.centro.iff.edu.br/bitstream/123456789/965/3/Documento.pdf · ... APLICATIVO DE NOTAS E FALTAS Monografia de Conclusão de

X

LISTA DE FIGURAS

Figura 1: Logotipo do Android ................................................................................................... 9

Figura 2: Smartphone HTC-Mobile G1..................................................................................... 9

Figura 3: Arquitetura do Android ............................................................................................ 10

Figura 4: Ciclo de Vida BDD ................................................................................................... 21

Figura 5: Ciclo de Vida TDD ................................................................................................... 24

Figura 6: Esquema das camadas do padrão MVC .................................................................... 31

Figura 7: Caso de Uso .............................................................................................................. 34

Figura 8: Diagrma de Classe ................................................................................................... 35

Figura 9: Login e Senha .......................................................................................................... 40

Figura 10: Consultar Aluno ...................................................................................................... 40

Figura 11: Consultar Notas e Faltas ......................................................................................... 41

Figura 12: Cadastrar Notas e Faltas ........................................................................................ 41

Figura 13: Entidade-Relacionamento ...................................................................................... 42

Figura 14: Conexão Android e Servidor ................................................................................. 43

Figura 15: A Tela Inicial do Terminal Mobile IFF e o Menu Principal do Aplicativo........... 44

Figura 16: Telas para Gerência de Consulta de Alunos........................................................... 45

Figura 17: Tela de Consulta de Notas e Faltas......................................................................... 45

Figura 18: Menus que aparecem ao Clicar no Spinner de Curso e Disciplina .........................46

Figura 19: Tela para Edição de Notas e Frequências .............................................................. 47

Page 11: CURSO DE ANÁLISE E DESENVOLVIMENTO DE SISTEMAS …bd.centro.iff.edu.br/bitstream/123456789/965/3/Documento.pdf · ... APLICATIVO DE NOTAS E FALTAS Monografia de Conclusão de

XI

LISTA DE TABELAS

Tabela 1: Comparativo entre os processos da XP e do modelo em cascata ............................ 19

Tabela 2: Descrição da classe Curso ........................................................................................ 36

Tabela 3: Descrição da classe Disciplina ................................................................................ 36

Tabela 4: Descrição da classe CursoDisciplina ........................................................................ 36

Tabela 5: Descrição da classe Professor ................................................................................... 37

Tabela 6: Descrição da classe Turma ....................................................................................... 37

Tabela 7: Descrição da classe Aluno ........................................................................................ 37

Tabela 8: Descrição da classe TurmaAnoletivo ....................................................................... 38

Tabela 9: Descrição da classe Anoletivo .................................................................................. 38

Tabela 10: Descrição da classe CursoDisciplinaProfessor ....................................................... 38

Tabela 11: Descrição da classe AlunoTurmaAnoletivo .......................................................... 39

Tabela 12: Descrição da classe AnoletivoCursoDisciplinaProfessor ...................................... 39

Tabela 13: Descrição da classe NotasFaltas ........................................................................... 39

Page 12: CURSO DE ANÁLISE E DESENVOLVIMENTO DE SISTEMAS …bd.centro.iff.edu.br/bitstream/123456789/965/3/Documento.pdf · ... APLICATIVO DE NOTAS E FALTAS Monografia de Conclusão de

XII

LISTA DE ABREVIATURAS E SIGLAS

SMS – Short Message Service

API – Application programing Interface

BREW – Binary Runtime Environment for Wireless

IFF – Instituto Federal Fluminense

WEB – World Wide Web

AMPS – Advanced Mobile Phone System

TAC – Total Access Communication System

ETACS – Extended Total Access Communication System

SDK – Software development Kit

XML – Extensible Markup language

IDC – International Data Corporation

OHA – Open Handset Alliance

GPS – Global positioning System

AAC – Advenced Audio Coding

AMR – Adaptive Multi-Rate

JPG – Joint Photographic Experts Group

PNG – Portable Network Graphics

OpenGL – Open graphics Library

USB – Universal Serial Bus

NFC – Near Field Communication

ICS – Ice Cream Sandwich

J2ME – Java 2 Micro Edition

PC – Personal Computer

XP – Extreme programming

TDD – Test Driver development

HTML – Hypertext Markup Language

GUI – Graphical user Interface

MUC – Model View Controller

COC – Convention Over Configuration

DRY – Don’t repeat Yourself

SMTP – Simple Mail Transfer Protocol

CRUD – Create, Read, Update, Delete

Page 13: CURSO DE ANÁLISE E DESENVOLVIMENTO DE SISTEMAS …bd.centro.iff.edu.br/bitstream/123456789/965/3/Documento.pdf · ... APLICATIVO DE NOTAS E FALTAS Monografia de Conclusão de

XIII

JSON – Java Script Object Notation

ADP – Android Development Tools

ADT – Android Development Tools

HTTP – Hyper Text Transfer Protocol

URL - Uniform Resource Locator

Page 14: CURSO DE ANÁLISE E DESENVOLVIMENTO DE SISTEMAS …bd.centro.iff.edu.br/bitstream/123456789/965/3/Documento.pdf · ... APLICATIVO DE NOTAS E FALTAS Monografia de Conclusão de

SUMÁRIO

Capítulo I .................................................................................................................................... 3

1. Introdução ............................................................................................................................. 3

1.1 Motivação ......................................................................................................................... 3

1.2 Objetivo ....................................................................................................................... 4

1.3 Estrutura da Monografia ................................................................................................... 4

Capítulo II ................................................................................................................................... 6

2. Tecnologia Móvel . ................................................................................................................. 6

2.1 Plataforma Android .......................................................................................................... 7

2.2 História do Android ......................................................................................................... 8

2.3 Arquitetura do Android ................................................................................................... 9

2.4 Versões da plataforma Android ......................................................................................11

2.5 Android X IOS ...............................................................................................................14

2.6 Outras Plataformas .........................................................................................................15

Capítulo III ............................................................................................................................... 17

3. Metodologia Ágil de Desenvolvimento .............................................................................. 17

3.1 Metodologia Ágil XP (Extreme Programming) .............................................................. 17

3.2 Metodologia Ágil BDD (Behavior Driven Development) …………………………… 19

3.3 Metodologia Ágil Scrum ............................................................................................... 21

3.4 Metodologia Ágil TDD – Test Driver Development ..................................................... 22

3.5 Metodologia Ágil Kanban ............................................................................................. 24

3.6 Principais Diferenças entre Metodologia Tradicional e Ágil ......................................... 26

3.7 A Linguagem Ruby e o Framework Rails ...................................................................... 26

3.8 A Linguagem Ruby ......................................................................................................... 27

3.9 Ruby on Rails ................................................................................................................. 28

3.10 JSON ............................................................................................................................. 32

Page 15: CURSO DE ANÁLISE E DESENVOLVIMENTO DE SISTEMAS …bd.centro.iff.edu.br/bitstream/123456789/965/3/Documento.pdf · ... APLICATIVO DE NOTAS E FALTAS Monografia de Conclusão de

4

Capítulo IV ............................................................................................................................... 33

4. Desenvolvimento do Protótipo . ........................................................................................... 33

4.1 Requisitos de Software ................................................................................................... 33

4.1.1 Diagrama de Casos de Uso ..................................................................................... 34

4.1.2 Diagrama de Classe ................................................................................................. 35

4.1.3 Diagrama de Sequência ........................................................................................... 40

4.1.4 DER ......................................................................................................................... 42

4.2 Estudo de Casos .............................................................................................................. 42

4.2.1 A Aplicação .............................................................................................................. 43

4.2.1.1 Interface Inicial .................................................................................................. 43

4.2.1.2 Gerência de Consulta de Alunos ........................................................................ 44

4.2.1.3 Gerência de Consulta de Notas e Faltas ............................................................. 45

4.2.1.4 Gerência de Lançamento de Notas e Faltas ....................................................... 45

4.2.1.5 Gerência de Consulta de Notas e Faltas ............................................................. 46

4.2.2 O Processo de desenvolvimento ............................................................................... 47

4.2.2.1 A base de dados .................................................................................................. 51

4.2.2.2 Publicação.......................................................................................................... 51

Capítulo V................................................................................................................................ 52

5. Conclusão..............................................................................................................................52

5.1 Trabalhos Futuros...........................................................................................................52

Capítulo VI................................................................................................................................53

6. Bibliografia...........................................................................................................................53

Page 16: CURSO DE ANÁLISE E DESENVOLVIMENTO DE SISTEMAS …bd.centro.iff.edu.br/bitstream/123456789/965/3/Documento.pdf · ... APLICATIVO DE NOTAS E FALTAS Monografia de Conclusão de

3

Capítulo I

1. Introdução

Atualmente, ninguém mais consegue viver sem um aparelho celular. Ele é considerado

mais que essencial para o nosso dia-a-dia, o maior meio de comunicação de todo o tempo.

Mas o aparelho celular já foi grande e até mesmo estranho, sem toda essa tecnologia e

praticidade dos dias de hoje. Veja mais um pouco da evolução do aparelho celular

(FERNANDO, 2011).

Foi criado no ano de 1947 o primeiro celular, pela empresa Motorola. Esse aparelho

tinha o formato de um tijolo, e chegava a pesar em media 1kg e tinha 30 centímetros de altura.

Na época somente pessoas de alto poder aquisitivo tinham esse tipo de aparelho, e suas

funções eram apenas as de realizar e receber chamadas; outros modelos menores de celular

foram surgindo com o passar dos anos (FERNANDO, 2011).

Surgiram novos modelos de celular na década de 1990, e estes tinham um peso e

tamanhos bem menores. Surgiram também a agenda telefônica e as mensagens SMS, o celular

também ganhou um visor mais colorido e com o passar dos anos tivemos mais algumas

mudanças. Dessa época em diante tivemos muitos avanços para chegarmos aos celulares de

hoje em dia (FERNANDO, 2012).

Os atuais celulares, além da sua principal função, possuem câmera filmadora,

reprodutor de música MP3, jogos, câmera fotográfica, televisão, acesso a internet, calendário,

relógio e vários outros aplicativos, e uma grande vantagem é que os celulares ficaram mais

acessíveis e baratos e, hoje em dia, mais de oitenta por cento da população possui um celular

(FERNANDO, 2011).

Segundo os pesquisadores do Instituto de Tecnologia de Massachusetts, em um futuro

bem próximo será possível que um aplicativo de celular – que ainda está em fase de testes –

diagnostique a catarata. Testes também estão sendo feitos no Hospital da Conceição, em Porto

Alegre, onde uma equipe desenvolveu outro aplicativo que mede o grau de hipermetropia,

miopia, presbiopia e astigmatismo. Muitos testes para regulamentação médica precisam ser

feitos, por isso ainda é difícil falar em custo e comercialização desses aplicativos. (ZIEGLER,

2011).

Page 17: CURSO DE ANÁLISE E DESENVOLVIMENTO DE SISTEMAS …bd.centro.iff.edu.br/bitstream/123456789/965/3/Documento.pdf · ... APLICATIVO DE NOTAS E FALTAS Monografia de Conclusão de

4

1.1 Motivação

Todos os professores do IFF utilizam o sistema acadêmico para o lançamento de notas

e faltas dentro de um determinado período de fechamento, ocasionando perda de

produtividade e desgaste físico devido ao congestionamento do sistema.

Durante esse congestionamento muitas notas e faltas acabam se perdendo e o sistema

não grava alguns desses dados, fazendo com que os professores tenham que lançar as mesmas

notas e faltas várias vezes no sistema.

A realidade apresentada motivou a criação deste projeto, que consiste no

desenvolvimento de uma aplicação (protótipo) para o lançamento de notas e faltas de forma

simples e remota utilizando o sistema Android. Para a sua implementação, foi utilizada a

interface de desenvolvimento Eclipse. Também foi necessário o uso de um servidor para o

armazenamento dos dados. Sendo assim, foi utilizado os serviços Rails.

1.2 Objetivo

O objetivo do projeto é desenvolver uma aplicação (protótipo) para celulares Android,

permitindo o acesso ao lançamento de notas e faltas, através do acesso aos serviços Rails.

Os celulares, em sua maioria, proporcionam maior comodidade para realização de

tarefas simples, como citado anteriormente. Além disso, pela popularização dos celulares e

pela viabilidade de implementação nestes dispositivos móveis, a aplicação até então só

acessada e realizada em computadores e notebooks poderá ser feita em celulares e acessados

em qualquer lugar por ser um objeto de fácil manuseio.

1.3 Estrutura da Monografia

Esta monografia apresenta cinco capítulos, incluindo esta introdução:

CAPÍTULO I – INTRODUÇÃO:

A evolução das funções dos celulares e o crescimento e desenvolvimento das

aplicações dos dispositivos móveis, motivando desta forma o desenvolvimento de uma

Page 18: CURSO DE ANÁLISE E DESENVOLVIMENTO DE SISTEMAS …bd.centro.iff.edu.br/bitstream/123456789/965/3/Documento.pdf · ... APLICATIVO DE NOTAS E FALTAS Monografia de Conclusão de

5

aplicação (protótipo) especialmente para profissionais (professores) do IFF, levando em

consideração as necessidades e o objetivo apresentado.

CAPÍTULO II – TECNOLOGIA MÓVEL:

Este capítulo apresenta uma introdução sobre Tecnologia Móvel, aborda, também, um

breve histórico sobre a plataforma Android. Será feito um levantamento das principais versões

existentes e suas funcionalidades. E um comparativo entre IOS e Android; além de outras

plataformas.

CAPÍTULO III – METODOLOGIA ÁGIL DE DESENVOLVIMENTO:

Descreve sobre as Metodologias Ágeis existentes. As principais diferenças entre

Metodologia Tradicional e Ágil. E as principais características da linguagem Ruby e o

Framework Ruby on Rails.

CAPÍTULO IV – DESENVOLVIMENTO DO PROTÓTIPO:

Mostra as fases do projeto com os requisitos de software, o diagrama de casos de uso

detalhado, a estrutura da aplicação, as ferramentas e tecnologias utilizadas no

desenvolvimento, a implementação do banco de dados e a evolução do protótipo. Descrito,

também, o desenvolvimento do protótipo, suas funções e funcionalidades.

CAPÍTULO V – CONCLUSÃO:

Por fim, a conclusão traz as considerações sobre o desenvolvimento, além da proposta

de melhoria do protótipo apresentado.

Page 19: CURSO DE ANÁLISE E DESENVOLVIMENTO DE SISTEMAS …bd.centro.iff.edu.br/bitstream/123456789/965/3/Documento.pdf · ... APLICATIVO DE NOTAS E FALTAS Monografia de Conclusão de

6

Capítulo II

2. Tecnologia Móvel

Toda tecnologia que permite que o usuário se movimente de um lado para o outro

durante o seu uso é considerada uma tecnologia móvel. Esse tipo de tecnologia foi capaz de

fazer parte do dia a dia das pessoas e modificar suas vidas. Muitas pessoas não vivem sem

celular, outras estão 24 horas disponíveis e as encontramos em qualquer lugar. Algumas não

abrem mão de estarem com seu celular ou tablet conectado na Internet e ao mesmo tempo se

movimentando pela casa (WIKIPEDIA, A ENCICLOPÉDIA LIVRE, 2013).

A geração 1G foi a primeira versão da tecnologia móvel, que surgiu em meados de

1976 nos Estados Unidos com o padrão AMPS (Advanced Mobile Phone System). Esse

padrão foi muito usado na Rússia e na Ásia e era um padrão de telefonia analógico, e apesar

do nome em português significar Sistema Avançado de Telefones Móveis, possuía um

sistema fraco de segurança que facilitava a clonagem de linhas telefônicas.

O sistema TAC (Total Access Communication System) surgiu na Europa e era uma versão do

AMPS, e usava uma banda de freqüência de 900Mhz.

O padrão para celular 1G foi essencial para o avanço das tecnologias móveis, mas se

tornaram muito ultrapassadas com o surgimento da segunda tecnologia – denominada 2G

(TECMÓVEL, 2009).

As tecnologias 3G permitem que os usuários recebam serviços mais avançados de suas

operadoras, já que possuem uma capacidade de rede maior devido a uma grandena eficiência

espectral. Entre os serviços, há a transmissão de dados a longas distâncias e a telefonia por

voz, tudo em um ambiente móvel. São fornecidos normalmente serviços com taxas de 5 a 10

megabits por segundo.

As redes 3G permite que a telefonia móvel seja de grande alcance e avançam para

conseguir redes de acesso à Internet e vídeo telefonia de alta velocidade. As redes Wi-Fi são

de pequeno alcance e grande largura de banda e foram desenvolvidas para redes de dados,

além de não ter muita preocupação quanto ao consumo de energia, aspecto fundamental para

aparelhos que possuem pouca autonomia energética.

As redes 3G demoraram a ser mplementadas em alguns países, devido a enormes

custos adicionais para licenciamento do do mesmo. Em muitos países, as redes 3G não usam

as mesmas frequências de rádio que as 2G, fazendo com que as operadoras tenham que

Page 20: CURSO DE ANÁLISE E DESENVOLVIMENTO DE SISTEMAS …bd.centro.iff.edu.br/bitstream/123456789/965/3/Documento.pdf · ... APLICATIVO DE NOTAS E FALTAS Monografia de Conclusão de

7

licenciar novas frequências e construir redes completamente novas; uma exceção são os

Estados Unidos, onde as empresas operam serviços 3G na mesma frequência que outros

serviços. Em alguns países europeus, os custos com licença foram particularmente altos

devido a leilões do governo de um número limitado de licenças e a leilões com propostas

confidenciais, além da excitação inicial sobre o potencial do 3G. Outros atrasos se devem a

despesas com atualização dos equipamentos para os novos sistemas (WIKIPÉDIA, 2013).

A mobilidade começou como uma facilidade, e se tornou nos dias de hoje uma

necessidade. E esta tecnologia evoluiu tão rápido pelo fato de que este tipo de tecnologia

facilita o acesso a informações em qualquer local e a qualquer hora. Isto se torna um atrativo

poderoso.

A mobilidade se tornou popular pelo lançamento e evolução dos telefones celulares de

handhelds (entende-se palm). O produto foi lançado em abril de 1996 e criado por Jeff

Hawkings . Além da Palm Jeff fundou a Handspring, empresa ligada a evolução dos

computadores de mão. (WIKIPÉDIA, 2013).

2.1 Plataforma Android

Android é um sistema operacional móvel que roda sobre o núcleo Linux, embora por

enquanto a sua versão do núcleo Linux divirja da versão oficial.

O android foi desenvolvido primeiramente pela Google e depois pelo Open

Handsetalliance, mas a Google é a responsável pela gerência do produto e engenharia de

processos. O Android concede aos desenvolvedores que escrevam softwares na linguagem de

programação Java, controlando o dispositivo via bibliotecas desenvolvidas pela Google. Em

janeiro de 2012, existiam mais de 400 mil aplicações disponíveis para Android (WIKIPÉDIA,

2013).

A plataforma do Google Android está a cada dia mais ganhando força no mercado de

aplicativos móveis. O SDK tem evoluído bastante, e uma grande quantidade de aparelhos já

está sendo fabricada com o Android como Sistema Operacional (LIMA, 2012).

As vantagens do Android não são apenas aos usuários de aparelhos móveis; ele

também disponibiliza um framework poderoso para o desenvolvedor. Ele traz o melhor do

Java para seu desenvolvimento, que somadas às vantagens do uso do xml para o design, textos

(ideal para questões de internacionalização) e mapeamentos, torna o desenvolvimento de

aplicativos Android uma tarefa mais fácil para o desenvolvedor (LIMA, 2012).

Page 21: CURSO DE ANÁLISE E DESENVOLVIMENTO DE SISTEMAS …bd.centro.iff.edu.br/bitstream/123456789/965/3/Documento.pdf · ... APLICATIVO DE NOTAS E FALTAS Monografia de Conclusão de

8

2.2 História do Android

O universo da telefonia móvel nunca esteve tão aquecido quanto às demandas do

mercado consumidor. De acordo com a consultoria IDC, as fabricantes de smartphone

(telefone celular com funcionalidades avançadas) distribuíram 43,3 milhões de dispositivos

durante o terceiro trimestre de 2009, número 4,2% superior aos 41,5 milhões do mesmo

período de 2008. Já atentas a este mercado em constante crescimento, diversas empresas –

entre elas a Google – se uniram para formar, em novembro de 2007, a OHA (Open Handset

Alliance) e lançar a plataforma Android (MARTINS, 2009).

Andy Rubin foi o idealizador do Android e fundador da Android Inc, que em julho de

2005 foi comprada pela Google com a intenção de trazer para a empresa a idéia e os

engenheiros da Android Inc. Em novembro de 2007, sob a Open Handset Alliance, a Google

lançou a primeira versão do SDK (Software Development Kit) do Android (MARTINS, 2009).

O Android é um conjunto de programas para dispositivos móveis que inclui

importantes aplicativos e um sistema operacional. É uma plataforma de código aberto e foi

feito para aparelhos com especificações diversas. Ele chega a suportar tecnologias presentes

nos smartphones mais modernos atualmente como GPS (Global Positioning System – Sistema

de Posicionamento Global e touchscreen (tela sensível ao toque); permite identificar a posição

em termos de latitude e longitude da Terra). O logotipo do Android é exibido na Figura 1.

Figura 1- Logotipo do Android

Fonte: http://www.icad.puc-rio.br/~projetos/androida/files/monografia (MARTINS, 2012)

O Android tem uma loja virtual, a Play Store, que possibilita ao desenvolvedor

disponibilizar uma aplicação gratuitamente para o usuário ou lucrar com a sua venda, em um

modelo parecido com AppStore, loja virtual de aplicativos para os aparelhos da marca Apple

(MARTINS, 2009) .

Page 22: CURSO DE ANÁLISE E DESENVOLVIMENTO DE SISTEMAS …bd.centro.iff.edu.br/bitstream/123456789/965/3/Documento.pdf · ... APLICATIVO DE NOTAS E FALTAS Monografia de Conclusão de

9

A tecnologia Android tem também outras características, como a facilidade na

integração com serviços oferecidos pelo Google. Além disto, várias ferramentas estão sendo

disponibilizadas gratuitamente para os seus desenvolvedores (MARTINS, 2009).

O primeiro smartphone lançado com o Android, o T-Mobile G1 (veja Figura 2), feito

pela HTC, foi liberado nos Estados Unidos em setembro de 2008 e, seis meses depois do seu

lançamento, já havia vendido 1 milhão de unidades. Outras importantes empresas, entre elas

Motorola e Samsung, já anunciaram dispositivos que contém a plataforma Android. A

tecnologia Android foi anunciada no Brasil em setembro de 2009.

Figura 2: Smartphone HTC T-Mobile G1

Fonte: http://www.icad.puc-rio.br/~projetos/android/files/monografia (MARTINS, 2012)

2.3 Arquitetura do Android

Mué

Figura 3: Arquitetura do Android

Fonte: http://www.vivasemfio.com/blog/arquitetura-do-android/

Aplicações

Page 23: CURSO DE ANÁLISE E DESENVOLVIMENTO DE SISTEMAS …bd.centro.iff.edu.br/bitstream/123456789/965/3/Documento.pdf · ... APLICATIVO DE NOTAS E FALTAS Monografia de Conclusão de

10

O Android tem um conjunto de aplicativos centrais, como um cliente de e-mail,

programa para SMS (Short Message Service), mapas, calendário, navegador e gerenciador de

contatos. Tudo produzido em Java (VIVA SEM FIO, 2008).

Framework de Aplicações

A arquitetura deste framework foi feita para melhorar a reutilização dos componentes.

Desta forma, qualquer desenvolvedor pode desenvolver um aplicativo e disponibilizar suas

“capacidades”, deixando que elas sejam usadas por outros programas. Vale destacar que o

desenvolvedor tem acesso total à mesma estrutura de APIs usada nos aplicativos centrais,

podendo, assim, aproveitá-las conforme achar melhor (VIVA SEM FIO, 2008).

Bibliotecas

O sistema conta com um conjunto de bibliotecas C/C++ utilizadas por diversos

componentes do Android. Essas bibliotecas possibilitam trabalhar com arquivos de mídia

comuns como MPEG4, H.264, MP3, AAC, AMR, JPG e PNG. Componentes como o Surface

Manager facilita a exibição de conteúdo tanto em 2D como em 3D. Há, inclusive, uma

biblioteca 3D cuja implementação foi baseada no famoso OpenGL (Open Graphics Library).

O OpenGL basicamente é um conjunto de várias funções que concedem acesso a todos os

recursos do hardware de vídeo praticamente. Para completar, foi lançado também o SQLite,

um poderoso e leve banco de dados relacional (VIVA SEM FIO, 2008).

Android Runtime

Cada aplicação do Android roda em seu próprio processo e cada processo é uma

instância da máquina virtual Dalvik, feita para que o dispositivo possa rodar múltiplas

máquinas virtuais de forma eficiente. Os arquivos são executados no formato Dalvik

Executable (.dex) e são otimizados para ocupar uma pequena parte de memória. Os arquivos

são criados por um compilador Java, que converte o resultado no formato .dex (VIVA SEM

FIO, 2008).

Kernel do Linux

Para serviços básicos do sistema o Android usa o Linux na versão 2.6, como

segurança, gerenciamento de processos, gerenciamento de memória, drivers e rede. O kernel

Page 24: CURSO DE ANÁLISE E DESENVOLVIMENTO DE SISTEMAS …bd.centro.iff.edu.br/bitstream/123456789/965/3/Documento.pdf · ... APLICATIVO DE NOTAS E FALTAS Monografia de Conclusão de

11

do Linux também trabalha como uma camada de abstração entre o hardware do dispositivo e

o resto do conjunto de softwares que são desenvolvidos em paralelo (VIVASEMFIO, 2008).

2.4 Versões da plataforma Android

A partir do desenvolvimento da terceira versão do sistema operacional, o software

recebe o nome de um doce. A ideia veio em abril de 2009, com o lançamento do Android 1.5,

essa versão do software foi batizada de cupcake (LANDIM, 2011).

A letra “C”, inicial do doce, é também a terceira do alfabeto. Essa ordem foi mantida

e, desde então, todas as versões posteriores do SO ganharam nomes de doces: donut, eclair,

froyo, gingerbread e honeycomb (LANDIM, 2011).

A versão do Android lançada em 2011 ficou conhecida como Ice Cream Sandwich.

Outro fato interessante é que a cada nova versão lançada, a Google encomenda uma estátua,

no formato do doce em questão. As obras de arte podem ser vistas na sede da empresa, em

Mountain View, nos Estados Unidos (LANDIM, 2011).

Versões Beta, 1.0 e 1.1

Essas versões do Android não obtiveram nomes de doces. Os aparelhos que receberam

a versão Beta do Android foram apenas aqueles feitos pelos fabricantes para desenvolver o

Android, não havendo nenhum aparelho com essa versão disponível para o público. O

Android 1.0 foi desenvolvido com o T-Mobile G1, que recebeu as atualizações até o Android

1.6. A versão 1.1 foi liberada somente para o G1, que era o único aparelho que rodava o

Android na época (BRASILDROID, 2011).

Versão 1.5 (Cupcake)

A versão 1.5 foi uma das primeiras a estar em vários aparelhos. Os primeiros

lançamentos foram o Samsung Galaxy e o HTC Magic. Entre as novidades, estão os widgets,

que tem a capacidade de gravar vídeos com a câmera, a habilidade de copiar/colar texto e

animações nas transições de tela (BRASILDROID, 2011).

Versão 1.6 (Donut)

Essa versão foi lançada em setembro de 2009. As principais melhorias foram na

câmera e galeria, pesquisas (incluindo pesquisa por voz), e suporte a telas com resolução de

Page 25: CURSO DE ANÁLISE E DESENVOLVIMENTO DE SISTEMAS …bd.centro.iff.edu.br/bitstream/123456789/965/3/Documento.pdf · ... APLICATIVO DE NOTAS E FALTAS Monografia de Conclusão de

12

até 480×800 pixels. Os principais modelos lançados com o Donut são o HTC Tattoo, Samsung

Galaxy Lite e SonyEricsson XPeria X10 (o primeiro Android “blockbuster”)

(BRASILDROID, 2011).

Versões 2.0/2.1 (Eclair)

Essa versão foi lançada em outubro de 2009, o Android 2.0 foi a primeira atualização

do sistema. Em janeiro de 2010 seria lançada a versão 2.1, que manteria o nome da bomba de

chocolate. Os aparelhos lançados com essa versão foi o Motorola Droid (conhecido aqui

como Milestone) e o Google Nexus One (o primeiro “Googlephone”, aparelho “sem marca”,

com atualizações controladas pela Google, e “experiência Android pura”, sem customizações

de fabricantes). As novidades dessa versão são mudanças na câmera, melhor contraste na tela

(antes, o sistema só suportava até 65 mil cores, mesmo com hardware melhor), mais

resoluções suportadas, suporte a multi-touch e wallpapers animados (BRASILDROID, 2011).

Versão 2.2 (FroYo)

Essa versão chegou em maio de 2010, o FroYo (abreviação de Frozen Yogurt) talvez

possa ser a atualização mais significativa do sistema até agora, com mudanças muito

importantes. As principais são: melhoria no desempenho geral do sistema (até 450% no Nexus

One, de acordo com o pessoal do Android Police), uso da mesma engine de JavaScript do

Google Chrome (v8) no navegador, tethering (por USB ou WiFi), atualizações automáticas de

aplicativos baixados pelo Google play e suporte ao Adobe Flash, algo muito esperado pelos

usuários. Foi adicionada também a capacidade de usar resoluções super altas (320

pixels/polegada, próxima à do iPhone 4 (BRASILDROID, 2011).

Versão 2.3 (Gingerbread)

Essa versão foi oficialmente lançada em dezembro de 2010 juntamente com o Nexus S.

As principais novidades dessa versão Android são o suporte a NFC, sensores como

giroscópio, VOIP, uma interface mais simples e minimalista, capacidade para vídeo chamadas

(em aparelhos com câmera frontal), possibilidade de usar mais de uma câmera (inclusive

câmeras frontais) entre outros. Aparelhos como o XPeria X10, Galaxy S e Nexus One e estão

recebendo a atualização para essa versão. Além do Nexus S, o XPeria Arc e o Galaxy SII são

smartphones já lançados com essa versão (BRASILDROID, 2011).

Page 26: CURSO DE ANÁLISE E DESENVOLVIMENTO DE SISTEMAS …bd.centro.iff.edu.br/bitstream/123456789/965/3/Documento.pdf · ... APLICATIVO DE NOTAS E FALTAS Monografia de Conclusão de

13

Versão 3.0/3.1/3.2 (Honeycomb)

A primeira versão do Android desenvolvida especificamente para tablets, o

Honeycomb chegou em fevereiro do ano de 2011. O Motorola Xoom foi o primeiro aparelho

lançado com esse sistema, posteriormente o Galaxy Tab e o Huawei MediaPad também

receberam essa versão. As maiores novidades dessa versão dizem respeito a funções

otimizadas ou específicas para tablets, como o navegador padrão com suporte a abas, duas

barras (uma “de sistema”, na parte inferior da tela, com relógio e botões de ação virtuais; e

outra “de ações”, no topo da tela, com botões específicos para a o aplicativo aberto no

momento), suporte a processadores com múltiplos núcleos e aceleração de vídeo por

hardware e (essas duas funções devem ser incluídas também em versões futuras do

Gingerbread, devido ao avanço do hardware dos smartphones) (BRASILDROID, 2011).

Versão Ice Cream Sandwich

Essa versão foi lançada em maio de 2011 na conferência Google I/O (onde também foi

anunciado o Music Beta), o Ice Cream Sandwich (ou ICS) será a próxima atualização do

Android. Segundo Mike Claren, um dos engenheiros do projeto, é “o lançamento mais

ambicioso até agora” do Android. A novidade maior, por agora, é a integração de versões para

smartphones e tablets (acabando com a separação criada pelo Honeycomb). Muito pouco é

conhecido sobre essa versão, nem mesmo o número se sabe. Até agora, sabe-se que o Android

3.2 ainda será considerado Honeycomb, mas não se sabe se a versão 2.4 será Gingerbread ou

Ice Cream Sandwich, mas a primeira opção é a mais provável, pois se sabe que o 2.4 não terá

muitas diferenças em relação ao 2.3. O nome é complicado (porque não Ice Cream somente,

em vez de Ice Cream Sandwich?) para diferenciar o “ícone” do FroYo, que, apesar de se tratar

de iogurte congelado, também é um pote de sorvete (BRASILDROID, 2011).

Não se sabe por que os engenheiros da Google usam nomes de doces para as versões

do Android (a suspeita é que se trata de uma piada interna que decidiram tornar pública), mas

sabe-se que seguem a ordem alfabética (como você pode ver acima). A pergunta que fica é:

quais seriam, então, as versões começadas com A e B? Há rumores de que sejam “Apple Pie”

e “Banana Bread”, mas, convenhamos ninguém quer “homenagear” o maior concorrente no

nome de um de seus produtos (BRASILDROID, 2011).

Versão Jelly Bean

Essa versão do Android não teve muitas mudanças ao ser comparado com o Ice

CreamSandwich. Por tanto, algumas melhorias podem ser citadas, como imagens mais

Page 27: CURSO DE ANÁLISE E DESENVOLVIMENTO DE SISTEMAS …bd.centro.iff.edu.br/bitstream/123456789/965/3/Documento.pdf · ... APLICATIVO DE NOTAS E FALTAS Monografia de Conclusão de

14

modernas e uma organização ainda mais intuitiva de ferramentas e ícones. A tela inicial do

Android ganhou a possibilidade de ter ícones e widgets reposicionados e redimensionados de

maneira inteligente, sem que o usuário precise perder tempo com isso. O teclado ganhou um

visual totalmente novo, ficando com um formato mais simples para a digitação e ainda mais

escuro. Além disso, o Jelly Bean conta com uma nova opção chamada Voice Typing, que

permite escrever mensagens usando apenas comandos de voz, sem você nem mesmo tocar no

gadget. Com a proposta de popularizar o Android ainda mais, a Google proporcionou para o

Jelly Bean um monte de recursos específicos para deficientes visuais. Com isso, o sistema

operacional ganhou ferramentas ativadas com gestos e novas maneiras ainda mais intuitivas

de navegar com o aparelho (HECKE, 2012).

Versão 5.0 Kitkat

Essa versão é o sucessor do Android 4.3 Jelly Bean. Após recente acordo com a

Nestlé, o novo sistema Android levará o nome de um dos doces mais famosos da marca. Esse

acordo prevê ainda campanhas de marketing em conjunto, com vale-brindes de aparelhos

Nexus 7 e de conteúdo na Play Store.

2.5 Android X IOS

Sistema Operacional

Lançado depois do iOS a plataforma Android hoje, tem muito mais mercado e

praticamente não existem limitações. É muito citada a capacidade “multitarefa” do sistema

iOS, mas sabe-se que isso é algo totalmente falso neste sistema, pois o mesmo não existe

realmente. Enquanto na plataforma Android as aplicações podem ficar rodando em

background sem problemas, tanto com os apps de terceiros quanto com os apps do próprio

SO. Não é necessário entrar no contexto de personalização, afinal de contas, iOS não tem

widgets, nem diferentes versões de home ou até mesmo versões do sistema operacional

(ZARATIN, 2011).

Disponibilidade de aplicativos

Em relação aos apps, tem-se uma proporção de 1.000 uteis para 1 milhão de Apps

inúteis e repetidos. Garantia mesmo só de que os principais apps estão disponíveis em ambas

Page 28: CURSO DE ANÁLISE E DESENVOLVIMENTO DE SISTEMAS …bd.centro.iff.edu.br/bitstream/123456789/965/3/Documento.pdf · ... APLICATIVO DE NOTAS E FALTAS Monografia de Conclusão de

15

as plataformas. Um ponto positivo da plataforma Android é o Google Play onde pode-se

instalar apps no aparelho com apenas 1 clique na página web, além de poder obter jogos

mesmo estando no Brasil sem violação de contrato de serviço ou cometer nenhum crime de

falsidade ideológica (ZARATIN, 2011).

Transferência de Arquivos

É impossível comparar iOS com Android nesse ponto. No Android basta um cabo

para transferência de arquivo já no iOS precisa de cabo proprietário mais um software para

tal. No Android é possível também pegar um SD Card ou um pendrive e utilizar no aparelho

(ZARATIN, 2011).

2.6 Outras Plataformas

Superwaba

Essa plataforma é uma linguagem de programação usada para desenvolvimento de

aplicações para aparelhos móveis como telefones celulares e aparelhos que comportam

sistemas como PalmOS, Windows, Windows Mobile, WindowsCE e SymbianOS. O

SuperWaba se baseia e estende o Waba. A linguagem de programação do SuperWaba é uma

versão reduzida da definida em Java. Existem algumas semelhanças com o Java, também é

usada uma máquina virtual cuja implementação é específica de cada aparelho onde é

instalada. Diferentemente do Java, SuperWaba não suporta o modelo de sincronização e,

como tal, não pode ser considerada verdadeiramente tecnologia Java. SuperWaba cumpre um

papel semelhante à tecnologia J2ME. A diferença fundamental é sua maior integração com os

aparelhos móveis e um modelo de API mais pragmático que a API J2ME (WIKIPÉDIA,

2013).

Brew

Esssa é uma plataforma aberta gerada pela empresa Qualcomm para criação e

distribuição de aplicações para telefones celulares (WIKIPÉDIA, 2013).

A distribuição das aplicações é realizada através de um aplicativo da Qualcomm

chamado BREW Shop. Este aplicativo vem pré-instalado em todos os aparelhos que suportam

Page 29: CURSO DE ANÁLISE E DESENVOLVIMENTO DE SISTEMAS …bd.centro.iff.edu.br/bitstream/123456789/965/3/Documento.pdf · ... APLICATIVO DE NOTAS E FALTAS Monografia de Conclusão de

16

esta tecnologia, e facilita a compra e download das aplicações aprovadas pela operadora para

uso de seus clientes (WIKIPÉDIA, 2013).

É utilizada a linguagem de programação C++ para o desenvolvimento de aplicações e

um framework disponibilizado pela Qualcomm, que facilita o acesso às principais funções de

um aparelho celular. Para rodar suas aplicações nos celulares o desenvolvedor tem que se

cadastrar no site da Qualcomm, esse cadastro custa 400 dólares e dá direito a 100 builds de

programa (WIKIPÉDIA, 2013).

O BREW é uma plataforma extremamente pequena e roda tanto em aplicativos que

possuem algum sistema operacional quanto em aplicativos que não possuem recursos

suficientes para isso, pois uma de suas metas é dar suporte ao maior número de dispositivos

possíveis. Os dispositivos usados para executar nossos aplicativos possuem recursos bastante

limitados e precisam ser tratados de maneira diferenciada em relação à maneira que são

tratados os PCs, laptops, etc (FRANCO, 2012).

Page 30: CURSO DE ANÁLISE E DESENVOLVIMENTO DE SISTEMAS …bd.centro.iff.edu.br/bitstream/123456789/965/3/Documento.pdf · ... APLICATIVO DE NOTAS E FALTAS Monografia de Conclusão de

17

Capítulo III

3. Metodologia Ágil de Desenvolvimento

As mudanças nas descrições dos projetos de software têm proporcionado maior espaço

na utilização de metodologias ágeis. Já as abordagens tradicionais são pouco favoráveis às

mudanças para atender as necessidades do projeto. No entanto, a realidade atual é constituída

por requisitos em constante evolução e por alterações a todo o momento (MÁRCIA

SAVOINE, 2009).

O “Manifesto Ágil” trata de um documento que foi criado por vários desenvolvedores,

tendo como idealizadores Kent Beck, Ken Schwaber, Martin Fowler e Jim Highsmith,

abrangendo um conjunto de princípios, que definem critérios para o processo de

desenvolvimento de software ágil. Defendendo desta forma a valorização do que é necessária

ao se desenvolver um software, nas respostas rápidas a mudanças e alterações, na

funcionalidade do código fonte, na cooperação com o cliente, na comunicação entre

indivíduos. Deixando em segundo plano a documentação, a negociação de contratos e o

planejamento.

Esses conceitos aproximam-se melhor com a forma que pequenas companhias de

Tecnologia da Informação trabalham e respondem a mudanças (BORBOREMA, 2007).

Para ser realmente considerada ágil a metodologia deve aceitar a mudança ao invés de

tentar prever o futuro. O problema não é a mudança em si, mesmo porque ela ocorrerá de

qualquer forma. O problema é como receber, avaliar e responder às mudanças.

Enquanto as metodologias ágeis variam em termos de práticas e ênfases, elas

compartilham algumas características, como desenvolvimento iterativo e incremental,

comunicação e redução de produtos intermediários, como documentação extensiva. Desta

forma existem maiores possibilidades de atender aos requisitos do cliente, que muitas vezes

são modificados (LIBARDI, 2010).

3.1 Metodologia Ágil XP (Extreme Programming)

É um modelo de desenvolvimento de software e foi criado em 1996 no Departamento

de Computação da montadora de carros Daimler Crysler nos Estados Unidos, por Kent Bech,

Page 31: CURSO DE ANÁLISE E DESENVOLVIMENTO DE SISTEMAS …bd.centro.iff.edu.br/bitstream/123456789/965/3/Documento.pdf · ... APLICATIVO DE NOTAS E FALTAS Monografia de Conclusão de

18

e por ajudar a criar sistemas de melhor qualidade em um curto tempo e de forma mais

econômica vem fazendo bastante sucesso em diversos países (SOUZA, 2007).

A metodologia é indicada para equipes de desenvolvimento pequenas e médias, às

quais tem que lidar com requisitos vagos ou em constante mudança com a proposta de

aumentar o foco nas pessoas e não nos processos de desenvolvimento. Além disso, existe a

preocupação de se gastar menos tempo com a documentação e mais com a resolução do

problema, gerando produtos com melhor aceitação e qualidade (REIS, 2008).

A metodologia Extreme Programming (XP) é um conjunto bem definido de regras que

enfatiza o desenvolvimento rápido do projeto e visa garantir a satisfação do cliente, além de

favorecer o cumprimento das estimativas.

O grupo de desenvolvedores utilizando a metodologia XP deve estar por dentro de

todas as fases do desenvolvimento do projeto, ser bastante interessada, ter pro atividade,

melhorando a comunicação para assegurar a alta produtividade, constituindo desta forma uma

equipe de 2 a 10 integrantes. Sendo necessária a realização de vários testes, às vezes,

alterando o projeto em decorrência destes. Sendo necessário que o cliente esteja sempre

disponível para tirar dúvidas, rever requisitos, atribuir prioridades, utilizando-se de sistemas

de nomes, em vez de termos técnicos para facilitar a comunicação e tomar decisões em

relação ao projeto (SOUZA, 2007).

O XP poderá trazer inúmeros benefícios, de forma que o processo de desenvolvimento

se torne mais ágil e flexível. Um desses benefícios é a agilidade no Planejamento (Planning

Games) de não definir uma especificação completa e formal dos requisitos, ao contrário das

metodologias tradicionais. Outro é a produção de sistemas simples que atendam aos atuais

requisitos, não tentando antecipar o futuro e permitindo atualizações freqüentes em ciclos

bastante curtos (TELES, 2005).

Outra característica importante do XP é que o código é sempre escrito em duplas,

visando a melhorar a qualidade do código por um custo muito baixo, às vezes menor do que o

desenvolvimento individual. O código deve estar padronizado, para que todos na equipe

possam entender o que está sendo escrito e possa ser validado durante todo o

desenvolvimento, tanto pelos desenvolvedores quanto pelos clientes, a fim de se saber se os

requisitos estão ou não sendo atendidos (TELES, 2005).

Contudo, além de os métodos tradicionais de desenvolvimento de software ter o foco

voltado para a documentação, necessitam de requerimentos completos e fixos, o que os torna

uma metodologia pesada e não flexível. Foi contrapondo a este cenário que, surgiu o Extreme

Programming – uma metodologia ágil, que visa um rápido desenvolvimento, atende às reais

Page 32: CURSO DE ANÁLISE E DESENVOLVIMENTO DE SISTEMAS …bd.centro.iff.edu.br/bitstream/123456789/965/3/Documento.pdf · ... APLICATIVO DE NOTAS E FALTAS Monografia de Conclusão de

19

necessidades do cliente e, ainda, permite modificações, à medida que novas necessidades

apareçam (MÁRCIA SAVOINE, 2012).

Ciclo de vida do

Software

Desenvolvimento ágil

XP (Extreme Programming)

Desenvolvimento

Tradicional

Modelo em cascata

Definição dos requisitos

Obrigatório. Os requisitos são

atualizados ao longo do

desenvolvimento.

Obrigatório. É gerada uma

versão que servirá de base

para todos os itens a seguir.

Projeto de software

Opcional. Surge informalmente

durante o desenvolvimento do

software.

Obrigatório. E só se dá início

ao término da definição dos

requisitos.

Desenvolvimento

Implementa os incrementos

(user stories) levantados junto

ao cliente.

Implementa sequencialmente

cada funcionalidade que o

projetista especificou no

projeto.

Teste de sistema

É feito um plano de teste antes

da implementação que vão

sendo executados

freqüentemente.

O teste é feito apenas pela

equipe de desenvolvimento no

final do projeto.

Implantação

Parte do software vai sendo

implantada até concluir todos

os requisitos.

O software só é entregue ao

usuário quando estiver

totalmente pronto.

Tabela 1 – Comparativo entre os processos da XP e do modelo em cascata

Fonte: (GONÇALVES, 2011)

3.2 Metodologia Ágil BDD (Behavior Driven Development)

Foi originalmente concebido em 2003, por Dan North. É uma evolução de outra

técnica ágil chamada TDD - Test Driven Development, e tem se expandido bastante nos

últimos anos.

A metodologia foi criada com o objetivo de facilitar o entendimento de TDD para

aqueles que estão começando a lidar com o desenvolvimento dirigido por testes.

O BDD é uma técnica cujo foco não está apenas em gerar testes, mais, também, em

avaliar o comportamento do sistema. Esta nova visão faz com que os testes sejam apenas uma

conseqüência necessária para garantir que o sistema esteja de acordo com as user stories

(DANNORTH, 2009).

Nessa linguagem são usados termos que fazem parte das conversas diárias entre

especialistas de negócio e desenvolvedores. Todos devem usar os mesmos termos tanto na

Page 33: CURSO DE ANÁLISE E DESENVOLVIMENTO DE SISTEMAS …bd.centro.iff.edu.br/bitstream/123456789/965/3/Documento.pdf · ... APLICATIVO DE NOTAS E FALTAS Monografia de Conclusão de

20

linguagem falada quanto no código que poderá ser compreendida por todos os envolvidos no

projeto. (DANNORTH, 2009).

O foco desta metodologia está em testar o que realmente importa para o usuário e

verificar se de fato o que ele espera do sistema esta acontecendo, desta forma será mais fácil

convencé-lo de que o tempo utilizado na criação de testes não é tempo perdido. Não será mais

necessário buscar o que deve ser testado, as user stories e os critérios de avaliação dirão isso

para os desenvolvedores (DANNORTH, 2009).

De modo geral, o BDD apresenta um framework baseado em três princípios: 1. A área

de negócios e a de tecnologia precisa se referir a mesma parte do sistema da mesma forma; 2.

Toda parte do sistema precisa ter um valor identificável e verificável para o negócio; 3.

Analisar, projetar e planejar tudo de cima a baixo tem retorno decrescente (DANNORTH,

2009).

As atividades necessárias ao desenvolvimento de uma funcionalidade são realizadas

segundo um ciclo denominado outside-in. O ciclo recebe este nome devido à sequência que

deve ser percorrida, que se inicia dos requisitos e da visão do cliente (outside) até as entranhas

dos artefatos de software (in) (5CQUALIBR, 2012).

BDD é guiado pelos valores de negócios; que é o benefício trazido para o negócio no

qual a aplicação está sendo produzida. A única maneira na qual o benefício pode ser

percebido é através de interfaces de usuário para a aplicação, comumente (mas nem sempre) a

interface gráfica de usuário (5CQUALIBR, 2012).

Figura 4 – Ciclo de Vida BDD

Fonte: (NASCIMENTO, 2011).

Page 34: CURSO DE ANÁLISE E DESENVOLVIMENTO DE SISTEMAS …bd.centro.iff.edu.br/bitstream/123456789/965/3/Documento.pdf · ... APLICATIVO DE NOTAS E FALTAS Monografia de Conclusão de

21

3.3 Metodologia Ágil Scrum

A popularização da metodologia Scrum ocorreu em 1995, após a realização de sua

definição, feita por Ken Schwaber, sendo criado para gerenciamento de projetos de fabricação

de automóveis e produtos de consumo (NETO, 2008).

Trata-se de uma metodologia prática, adaptativa, inovadora, usada no

desenvolvimento de sistemas de modo iterativo e incremental, onde os requisitos podem

sofrer mudanças durante o processo de fabricação do produto (DOS SANTOS e BOEIRA,

2008).

É uma metodologia com o foco na coordenação da equipe, preocupada na organização

dos processos, no modo como as atividades devem ser executadas, deixando que os

participantes do projeto escolham a melhor maneira de concluir com sucesso essas etapas.

A Scrum aplica-se a projetos tanto pequenos como grandes. O seu principal objetivo é

conseguir uma avaliação correta do ambiente em evolução, adaptando-se constantemente aos

interesses e as necessidades, indicadas e utilizadas para o desenvolvimento de softwares em

ambientes complexos, onde os requisitos mudam com certa freqüência, sendo o caminho

utilizado para aumentar a produtividade nesses tipos de sistemas (DOS SANTOS e BOEIRA,

2008).

Os requisitos do software são levantados e organizados em uma lista de

funcionalidades, chamada product backlog, que contém todo o escopo do projeto definido

juntamente com o cliente, e suas respectivas prioridades de desenvolvimento, sendo que o

product backlog deve ser constantemente revisado, validado e atualizado (SILVA e S. C. P.

HOENTSCH, 2009)

O scrum por trabalhar com desenvolvimento incremental, onde o desenvolvimento é

dividido em iterações, chamado de sprints, de duração entre duas a quatro semanas. Cada

sprint é composta de uma lista de tarefas, funcionalidades com prioridades retiradas do

product backlog, chamada de sprint backlog (lista de tarefas dos sprint) garantindo que os

requisitos mais importantes sejam implementados primeiro e que a equipe mantenha o foco

durante o sprint. O sprint possui um objetivo claro e definido, conhecido de toda a equipe

(SILVA e DOS SANTOS, 2011).

É comum que os requisitos do final do product backlog, com o tempo, percam sua

importância e acabem removidos da lista.

Definidas as atividades a serem realizadas em cada sprint, a equipe foca o

desenvolvimento de mais um ciclo que se repete ao longo do projeto. Após o encerramento

Page 35: CURSO DE ANÁLISE E DESENVOLVIMENTO DE SISTEMAS …bd.centro.iff.edu.br/bitstream/123456789/965/3/Documento.pdf · ... APLICATIVO DE NOTAS E FALTAS Monografia de Conclusão de

22

das sprints é realizada a sprint retrospective, uma das mais importantes práticas dentro da

Scrum, que são discutidos os pontos positivos e os negativos.

Na Scrum, durante a fase das sprints, ocorrem reuniões de acompanhamento diárias.

Nessas reuniões, que são preferencialmente de curta duração (aproximadamente quinze

minutos), feita com todos os integrantes da equipe, são discutidos pontos como o que foi feito

desde a última reunião e o que precisa ser feito até a próxima, essas reuniões diárias são

chamadas daily scrum meetings. As dificuldades encontradas e os fatores de impedimento

(bottlenecks) são identificados e resolvidos (SOARES, 2004).

3.4 Metodologia Ágil TDD - Test-Driven Development

Foi introduzida por Kent Beck para produzir o que se chama de “código limpo que

funciona”.

Consiste em uma metodologia ágil de desenvolvimento de software, onde primeiro,

são criados os testes, e somente depois é escrito o código de produção, é realizada a

compilação e verificada as falhas necessárias para passar por eles.

Apesar de ser um processo simples, alguns desenvolvedores têm dificuldades de

aplicar essa técnica no dia-a-dia e não conseguem guiar um projeto orientado a objetos a partir

de testes. (LAPOLL, MOTTA, et al., 2010).

TDD é uma forma de programação que incentiva a um bom design e é um processo

disciplinado o que ajuda a evitar erros de programação, promovendo a qualidade desde o

início do desenvolvimento.

O método ágil TDD oferece diversos benefícios, como a compreensão do programa,

incentivando programadores a explicar o seu código usando casos de teste; eficiência; falhas

são identificadas, de forma mais rápida, antes do novo código ser adicionado ao sistema;

testabilidade, escrever código automaticamente testável (PRANGE, 2012).

O ciclo básico do TDD é formado por cinco etapas fundamentais:

Adicionar um teste rapidamente: Cada nova funcionalidade inicia com a

criação de um teste. Este teste precisa, inevitavelmente falhar porque ele é escrito antes da

funcionalidade a ser implementada. Para escrever um teste, o desenvolvedor deve primeiro

entender as especificações e requisitos da funcionalidade, ou seja, o que deve ser produzido e

como ele vai chegar a esse resultado. O desenvolvedor pode fazer isso através de casos de uso

ou user stories que cubram os requisitos e exceções condicionais. Esta é a diferenciação entre

Page 36: CURSO DE ANÁLISE E DESENVOLVIMENTO DE SISTEMAS …bd.centro.iff.edu.br/bitstream/123456789/965/3/Documento.pdf · ... APLICATIVO DE NOTAS E FALTAS Monografia de Conclusão de

23

desenvolvimento dirigido a testes entre escrever testes de unidade depois do código

desenvolvido. Ele torna o desenvolvedor focado nos requisitos antes do código.

Executar todos os testes e verificar se algum deles falha: O caso de teste

deve ser executado assim que for definido, mesmo que não exista implementação para que

este passe. Esse passo valida se todos os testes estão funcionando corretamente, e se o novo

teste não traz nenhum equívoco, sem requerer nenhum código novo. Pode-se considerar que

este passo então testa o próprio teste: ele regula a possibilidade de novo teste passar. O novo

teste deve então falhar pela razão esperada: a funcionalidade não foi desenvolvida. Isto

aumenta a confiança (por outro lado, não exatamente a garante) que se está testando a coisa

certa, e que o teste somente irá passar nos casos intencionados.

Escrever código: O próximo passo é escrever código que irá ocasionar ao teste

passar. O novo código escrito até esse ponto poderá não ser perfeito e pode, por exemplo,

passar no teste de uma forma não elegante. Isso é aceitável porque posteriormente ele será

melhorado. O importante é que o código escrito deve ser construído somente para passar no

teste; nenhuma funcionalidade (muito menos não testada) deve ser predita ou permitida em

qualquer ponto.

Executar os testes automatizados e verificar se são executados com

sucesso: Após verificar que existe um teste que falha, é necessário escrever o código para que

este passe. Neste ponto, deve ser escrito o mínimo de código para o teste ser executado com

sucesso. Esta característica do TDD faz com que o desenvolvimento seja feito através de

pequenos incrementos, formados por poucos métodos e pouca lógica. Ao final, esses

incrementos juntos produzem uma solução completa.

O próximo passo é executar os casos de teste automatizados e observar se eles passam

ou não. Em caso de sucesso, o programador terá certeza de que o código implementado por

ele atende aos requisitos testados. Caso contrário, o código ainda precisa ser modificado.

Refatorar código: Nesse ponto o código pode ser limpo como necessário. Ao

re-executar os testes, o último passo é a refatoração que é a remoção de duplicação de código,

considerando um importante aspecto ao design de software. Nesta etapa nenhuma

modificação relacionada à lógica do sistema deve ser feita.

Apenas modificações estruturais são permitidas. Nesse caso, entretanto, isso aplica

remover qualquer duplicação entre código de teste e código de produção — por exemplo,

magic numbers or strings.

Page 37: CURSO DE ANÁLISE E DESENVOLVIMENTO DE SISTEMAS …bd.centro.iff.edu.br/bitstream/123456789/965/3/Documento.pdf · ... APLICATIVO DE NOTAS E FALTAS Monografia de Conclusão de

24

Depois disso, os casos de teste devem ser executados mais uma vez para garantir que a

refatoração não danificou alguma parte do sistema que já estava funcionando anteriormente

(LAPOLL, MOTTA, et al., 2010).

Estes são os passos do ciclo de desenvolvimento dirigido por testes. Quando se inicia

o uso desta abordagem fica evidente a necessidade de muita disciplina. Distrair-se e escrever

código funcional sem ter escrito um novo teste antes é muito fácil (PRANGE, 2012).

A grande vantagem dessa prática não está nos testes gerados, mas sim no fato de se

pensar no design antes de escrever a primeira linha de código, no momento em que se

descreve o comportamento do sistema (LAPOLL, MOTTA, et al., 2010).

Figura 5 - Ciclo de vida TDD

Fonte: (COELHO, 2012)

3.5 Metodogia Ágil Kanban

Kanban é uma metodologia de produção que utiliza controles visuais (cartões) como

status de uma determinada etapa do processo. O Kanban é a mais adaptativa das

metodologias, extremamente simples e incrivelmente eficiente (MARIOTT, 2012).

Page 38: CURSO DE ANÁLISE E DESENVOLVIMENTO DE SISTEMAS …bd.centro.iff.edu.br/bitstream/123456789/965/3/Documento.pdf · ... APLICATIVO DE NOTAS E FALTAS Monografia de Conclusão de

25

O Kanban é baseado na idéia onde atividades em andamento devem ser limitadas. Um

novo item só pode ser iniciado quando o item em andamento é finalizado ou quando uma

função automática inicia o mesmo instantaneamente.

O sistema Kanban fornece um método simples, barato e fácil de implementar, e

rapidamente começa a apresentar resultados permitindo gerenciar o limite de atividades em

andamento e garantindo o bom desempenho da equipe (MARIOTT, 2012).

O Kanban, basicamente, tem como principal objetivo transformar o trabalho em

andamento visível para toda equipe, criando um sinal visual que indica que o novo trabalho

pode ou não ser iniciado e se o limite acordado para cada fase está sendo respeitado.

Portanto, o Kanban não é um processo e nem descreve papeis e faces para serem

seguidos. Podemos dizer que o Kanban é uma abordagem para mudança gerencial do projeto,

um conceito para introduzir alterações em um ciclo de desenvolvimento de software ou

gerenciamento de projetos (LEMOS, 2012)

O Kanban dá transparência ao processo e seu fluxo, expondo gargalos, filas,

variabilidade e desperdícios. Portanto, tudo que impacta no desempenho da equipe de

produção e para entrega de valor, fica explícito no modelo Kanban (MARIOTT, 2012).

O Kanban, com seu mecanismo de sinalização, tem como objetivo apresentar uma

atividade de trabalho em processo, ou seja, o número de atividades ou cartões em circulação é

equivalente à capacidade do sistema. Outra característica importante do modelo Kanban é o

conceito de “puxar tarefa” quando há capacidade de processá-la.

Portanto, ao invés dos membros que produzem o produto receberem atividades

conforme suas demandas, os requisitos são adicionados à lista de backlog e “puxados” pelos

membros que liberam suas atividades correntes e se tornam disponíveis para iniciar uma nova

tarefa (MARIOTT, 2012).

3.6 Principais Diferenças entre Metodologia Tradicional e Ágil

As duas principais diferenças entre as metodologias ágeis e as tradicionais são:

As metodologias tradicionais são pesadas ou orientadas a planejamentos onde os

requisitos do sistema são estáveis, e requisitos futuros são previsíveis, elas planejam uma

grande parte do software em muitos detalhes com bastante antecedência. Por isto elas são

resistentes à mudança. Já nas metodologias ágeis, as mudanças de requisitos são bem aceitas

durante o desenvolvimento. Elas tendem a ajustar o desenvolvimento do software às

mudanças de requisitos, tornando-se mais flexíveis (SOARES, 2004).

Page 39: CURSO DE ANÁLISE E DESENVOLVIMENTO DE SISTEMAS …bd.centro.iff.edu.br/bitstream/123456789/965/3/Documento.pdf · ... APLICATIVO DE NOTAS E FALTAS Monografia de Conclusão de

26

O Objetivo das metodologias ágeis de desenvolvimento é desenvolver um

processo que vai funcionar da mesma maneira, independente de quem o esteja usando, ou

seja, elas são orientadas às pessoas, não aos processos. Tendem a se ajustar equipes de

desenvolvimento, levando em conta, desta forma, a habilidade do grupo (FOWLER, 2010).

Em métodos tradicionais, o projeto só é bem realizado no final, em sua

totalidade mesmo que existam alterações no escopo (devidamente documentadas e

aprovadas). Em métodos ágeis, é considerado de grande valor para o cliente um conjunto

mínimo de funcionalidade, mesmo que o projeto seja descontinuado depois de um tempo, o

cliente já recebeu um valor efetivo. No entanto, não se trata em ter, ou não, entregas

intermediárias, mas sim, se trata de um sucesso progressivo no desenvolvimento ou só no

final (RUOSO, 2009).

Em métodos ágeis, à medida que é realizada a entrega das funcionalidades do

software; quem faz os orçamentos é o desenvolvedor e o gerente negocia com o cliente quais

serão as próximas atividades desenvolvidas, mas a eficiência da equipe não é propriamente

um centro da discussão. Isso ocorre porque o cliente não tem uma visão completa de quanto

vai custar o produto final. Enquanto em métodos tradicionais a medida das entregas está

100% sobre o escopo especificado, e, em geral, o valor total do investimento também é

conhecido a princípio, de forma que o papel do cliente é validar o escopo, e quanto à

eficiência da equipe é um problema única e exclusivamente do próprio laboratório (RUOSO,

2009).

3.7 A Linguagem Ruby e o Framework Rails

O Ruby on Rails surgiu da integração de duas ferramentas: o Ruby, que é uma

linguagem de programação orientada a objetos, onde todos os valores são objetos inclusive a

própria definição de uma classe que também é um objeto, utilizada para a manipulação de

dados dentro da aplicação web, e o Rails, que é uma ferramenta para o desenvolvimento de

aplicações-web orientadas a banco de dados, baseado na junção de quatro frameworks (Active

Record, Action Pack, Action Mailer e Active Support) (LOVATTO, 2007) .

Tecnicamente falando, Rails é um framework criado na linguagem de programação

Ruby (daí o nome Ruby on Rails).

Page 40: CURSO DE ANÁLISE E DESENVOLVIMENTO DE SISTEMAS …bd.centro.iff.edu.br/bitstream/123456789/965/3/Documento.pdf · ... APLICATIVO DE NOTAS E FALTAS Monografia de Conclusão de

27

3.8 A linguagem Ruby

A linguagem Ruby foi originalmente planejada e desenvolvida no Japão em 1995, por

Yukihiro Matsumoto, para ser usada como linguagem de script. Matsumoto queria uma

linguagem de script que fosse mais poderosa do que Perl, e mais orientada a objetos do que

Python. Ruby suporta programação funcional, orientada a objetos, imperativa e reflexiva. Foi

inspirada principalmente por Python (Python é uma linguagem de programação de alto nível,

interpretada, imperativa, orientada a objetos, de tipagem dinâmica e forte. A linguagem foi

projetada com a filosofia de enfatizar a importância do esforço do programador sobre o

esforço computacional. Prioriza a legibilidade do código sobre a velocidade ou

expressividade. Combina uma sintaxe concisa e clara com os recursos poderosos de sua

biblioteca padrão e por módulos e frameworks desenvolvidos por terceiros) (MENEGOTTO e

MIERLO, 2002).

O Ruby é uma linguagem bastante simples e flexível integra o processamento de dados

ao código HTML, permitindo que o acesso a partes dos modelos que acessam o banco de

dados, que geram a visualização da interface com o usuário, ou que façam o processamento

dos dados e comandos recebidos sejam separados de forma lógica e funcional dentro da

codificação (REHM, 2009).

As principais características da linguagem Ruby são:

Ruby é orientada a objetos não existindo nenhum tipo primitivo. Em Ruby,

mesmo os números, assim como Inteiros, Strings, Estrutura de Decisão, blocos de controle,

loops e o próprio valor nulo, tudo é feito através de mensagens entre objetos, assim como na

linguagem Smalltalk nulo são objetos;

A sintaxe do Ruby é fortemente influenciada pela sintaxe da linguagem Eiffel.

Assim como em outras linguagens, tem blocos em sua sintaxe (código delimitado por ‘{‘...‘}’

ou ‘do’...’end’), porém com a vantagem que eles podem ser passados para métodos, ou, até

mesmo, convertidos em closures. Do ponto de vista do aprendizado, isto facilita muito a vida

do programador, pois como a sintaxe é muito simples você escreve programas mais legíveis

de uma forma mais elegante e fica fácil de outro programador fazer manutenção de código

posteriormente (LOVATTO, 2007).

É uma linguagem Interpretada, o que permite rápido desenvolvimento pelo fato

de não ser necessário recompilar os programas para executá-los novamente, basta executá-lo

através do interpretador. Isto pode ser bom do ponto de vista da facilidade do programador na

Page 41: CURSO DE ANÁLISE E DESENVOLVIMENTO DE SISTEMAS …bd.centro.iff.edu.br/bitstream/123456789/965/3/Documento.pdf · ... APLICATIVO DE NOTAS E FALTAS Monografia de Conclusão de

28

hora da implementação e fase de testes, mas diminui o desempenho de um programa

complexo, devido à interpretação do código fonte cada vez que alguma instrução é chamada.

Ruby é altamente portável, isto significa que um programa Ruby executa sem

nenhuma mudança em qualquer plataforma. É claro que isto somente é verdade se você não

estiver utilizando módulos específicos de uma plataforma, como algumas GUIs para UNIX ou

WinGKR (Win32 GUI Kit for Ruby). Isto traz como vantagens um menor custo, porque

apenas um programa deve ser gerenciado e uma maior distribuição do programa, além dele

poder ser executado em várias plataformas.

Sua tipagem é dinâmica e forte, isso significa que todas as variáveis devem ter

um tipo (fazer parte de uma classe) não necessariamente precisam ser declaradas e a classe

pode ser alterada dinamicamente e expressiva que incorpora conceitos interessantes como

(REHM, 2009):

Duck-typing : os métodos não levam em consideração o tipo do objeto que é passado

como parâmetro, desde que o objeto tenha o comportamento esperado.

Módulos e mixins: semelhante a uma classe, um módulo é um grupo de métodos,

constantes e variáveis de classe, podendo ser utilizado como namespaces ou mixins. Se um

módulo define métodos de instância, esses métodos podem sem acrescentados a outras

classes, simulando uma espécie de herança múltipla.

Meta-programação: em Ruby está diretamente ligada a criação de Linguagens

Específicas de Domínio.

Classes abertas: permite redefinir uma classe previamente carregada (REHM, 2009).

3.9 Ruby on Rails

O Rails ou Ruby on Rails é um framework de código aberto, escrito na linguagem de

programação Ruby, para desenvolvimento de aplicações web. Ele foi criado por David

Heinemeier Hansson, na Dinamarca, e foi publicado em julho de 2004. Este framework foi

idealizado tendo em vista os seguintes objetivos:

Fornece todas as ferramentas necessárias para a criação de aplicações web,

incluindo persistência, lógica e apresentação. Tratando-se de uma solução de

desenvolvimento completa;

De forma mais transparente, permite a comunicação entre suas camadas;

Escrito por inteiro em apenas uma única linguagem;

Page 42: CURSO DE ANÁLISE E DESENVOLVIMENTO DE SISTEMAS …bd.centro.iff.edu.br/bitstream/123456789/965/3/Documento.pdf · ... APLICATIVO DE NOTAS E FALTAS Monografia de Conclusão de

29

Seguir o padrão de arquitetura MVC (ModelViewController - é um modelo de

desenvolvimento de Software, considerado um Design Pattern (padrão de projeto) utilizado

na Engenharia de Software. O modelo isola a "lógica" (A lógica da aplicação) da interface do

usuário (Inserir e exibir dados), permitindo desenvolver, editar e testar separadamente cada

parte.)) para organizar a estrutura das aplicações;

Dois princípios são seguidos pelo framework, com o objetivo de aumentar a

produtividade do desenvolvedor: O Ruby on Rails usa os principios CoC (Convention over

Configuration) e o Dry (Don't repeat yourself) para acelerar o desenvolvimento de aplicações.

DRY: é o conceito por trás da técnica de definir nomes, propriedades e códigos

em somente um lugar, reaproveitando esta informação em outros lugares que seja necessário.

Por exemplo, ao invés de ser mantida uma tabela “papers” e uma classe “Paper”, com uma

propriedade, um getter e um setter para cada campo na tabela, esta informação é mantida

apenas em banco de dados. Todas as propriedades e métodos necessários são “injetados” na

classe através de funcionalidades do framework. Isso gera uma grande economia de tempo e

aumenta a manutenibilidade das aplicações desenvolvidas – alterando apenas o banco de

dados, tudo o que se baseia nestas informações é atualizado automaticamente.

Convention over Configuration: Significa que o desenvolvedor só precisa

especificar aspectos não convencionais da aplicação. É dada a liberdade ao desenvolvedor de

fazer alterações conforme sua vontade, de forma que não siga a convenção, mas, se seguir a

convenção, geralmente nenhuma configuração será necessária, e o tempo de desenvolvimento

será reduzido. Por exemplo, os dados da classe “Paper” devem ficar na tabela “papers”; caso

isto seja feito, não será necessária nenhuma configuração. Porém, se o desenvolvedor quiser,

pode colocá-los em outra tabela, mas deverá configurar a aplicação para indicar essa

informação (AKITA, 2006).

Ruby on Rails é formado por um conjunto de cinco (5) outros frameworks, a saber:

Action Mailer, Action Pack, Action Web Service, Active Record e Active Support. A seguir,

uma breve descrição de suas funções:

1. Action Mailer é um framework responsável pelo desenvolvimento de camadas que

contenham serviços de email, pois consegue enviar emails via serviços SMTP ou responder

ao recebimento de e-mails. É relativamente pequeno e simples, porém poderoso e capaz de

realizar diversas operações apenas com chamadas de entrega de correspondência. Estas

camadas são utilizadas para criar código para enviar senhas perdidas, mensagens de boas

vindas durante a assinatura de determinado site ou serviço, e quaisquer outros casos de uso

que requeiram uma notificação escrita a uma pessoa ou sistema. Além disso, uma classe

Page 43: CURSO DE ANÁLISE E DESENVOLVIMENTO DE SISTEMAS …bd.centro.iff.edu.br/bitstream/123456789/965/3/Documento.pdf · ... APLICATIVO DE NOTAS E FALTAS Monografia de Conclusão de

30

Action Mailer pode ser utilizada para processar mensagens de email recebidas, como, por

exemplo, permitir que um weblog receba postagens diretamente do email.

2. Action Pack é responsável por fazer a separação da resposta de uma requisição web

em uma parte de controle (que faz a lógica) e outra de visão (processando um template). Esta

abordagem é realizada em dois passos, para normalmente criar (create), ler (read), atualizar

(update) ou deletar (delete) (CRUD – create, read, update, delete) a parte do modelo, que

geralmente tem um banco de dados por trás, antes de escolher entre renderizar um template ou

redirecionar para outra action. Neste framework são implementados o Action Controller e a

Action View.

3. Action WebService este pacote fornece ao aplicativo funcionalidades para que

possa publicar APIs (exposta via WSDL com mensagens transportadas via SOAP) a outros

sistemas e aplicativos ao invés de ser apenas uma interface gráfica via HTML.

4. Active Record é responsável por fazer o mapeamento entre os objetos da aplicação

e as tabelas da base de dados para criar um modelo de persistência do domínio onde a lógica e

os dados são apresentados e tratados de uma única forma. É uma implementação do padrão

(design pattern) Active Record. É graças a este pacote que funções antes tediosas e repetitivas

são dramaticamente simplificadas.

5. Active Support é uma coleção de várias classes utilitárias e extensões de

bibliotecas padrão que dão forma e coerência ao framework Rails. É responsábel por tomar

conta da carga de outras bibliotecas, dependências, recursos avançados como breakpoint em

tempo de execução, cachê, logs, plugins e muito mais (AKITA, 2006).

O framework Ruby on Rails, além de ter sido desenvolvido com o objetivo de

aumentar a produtividade e manter baixa a curva de aprendizagem, também foi pensado como

um framework que incentiva as boas práticas de codificação e organização das aplicações.

Neste âmbito, deve ser destacada a arquitetura das aplicações desenvolvidas sobre

Rails, que seguem o Padrão de Projeto (design pattern) MVC: ModelViewController ou

Modelo-Visão-Controlador (JUNQUEIRA e FORTES, 2012).

MVC é um padrão de projeto no qual as aplicações são desenvolvidas em camadas.

Neste caso, existem as camadas de modelo, visão e controle. Em cada uma dessas camadas,

deve ser alocar diferentes partes da aplicação em desenvolvimento, conforme o seguinte

critério: separar a lógica da aplicação (Model) da interface do usuário (View) e do fluxo da

aplicação (Controller) permitindo o desenvolvimento, teste e manutenção isolado de ambos.

Isso facilita bastante a manutenção do código e deixa a estrutura da aplicação bem organizada.

Page 44: CURSO DE ANÁLISE E DESENVOLVIMENTO DE SISTEMAS …bd.centro.iff.edu.br/bitstream/123456789/965/3/Documento.pdf · ... APLICATIVO DE NOTAS E FALTAS Monografia de Conclusão de

31

Modelo: Implementa o modelo representando a estrutura de baixo nível do

projeto, podendo ser o modelo objeto-relacional que implementa a camada de dados, e ou

num caso de MVC de Interface poderia guardar informações de estado dos controles;

Por exemplo, author, title e abstract fazem parte do domínio de um sistema para

revisão sistemática. Esta camada opera com os dados crus, e não possui a lógica necessária

para o tratamento dos dados. Em Ruby on Rails, esta camada é manipulada pelo Active

Record, que é uma implementação do design pattern Active Record.

Visão: camada responsável por exibir os dados (modelo) em uma forma

específica para a interação – no caso do Ruby on Rails, páginas web disponibilizadas no

navegador. Rails fornece o framework Action View para compor a camada de visão.

Controle: Implementa a camada respónsavel pelo gerenciamentos de eventos

no projeto, tais como cliques do usuario, chamando a camada Model para processar os

eventos, também pode manter informações de estado do usuario na aplicação;

Em Ruby on Rails, o Action Controller possui as funcionalidades para esta camada.

Figura 6 - Esquema das camadas do padrão MVC

Fonte: (DANIEL CÁRNIO JUNQUEIRA, 2012)

O fluxo de eventos que ocorrem entre as camadas do MVC é o seguinte:

1. O usuário interage com a interface (botões, links);

2. O Controller manipula o evento da interface, através de uma rotina prescrita,

também conhecida como action;

3. O Controller acessa o Model, atualizando-o caso seja necessário;

Page 45: CURSO DE ANÁLISE E DESENVOLVIMENTO DE SISTEMAS …bd.centro.iff.edu.br/bitstream/123456789/965/3/Documento.pdf · ... APLICATIVO DE NOTAS E FALTAS Monografia de Conclusão de

32

4. A View utiliza o Model para gerar uma interface apropriada, recuperando os dados

atualizados;

5. A interface do usuário espera por próximas interações, que iniciarão o ciclo

novamente (o protocolo HTTP não permite que uma comunicação seja iniciada no servidor)

(JUNQUEIRA e FORTES, 2012).

Dentre os benefícios na utilização do framework expostos pelo criador David

Heinemeier Hansson podemos citar:

Agilidade para o desenvolvimento de aplicações web.

Foco na criação da aplicação ao invés de configuração do framework.

Testes são incorporados diretamente no framework e são de fácil utilização,

por isso são utilizados.

Feedback instantâneo já que não é necessário recompilar a aplicação após uma

alteração.

Os geradores de código existentes facilitam o início do desenvolvimento de

uma nova Funcionalidade (REHM, 2009)

3.10 JSON

JSON (JavaScript Object Notation) é uma estrutura de dados em javascript.

Apesar de falarem muito disso recentemente, JSON não é uma tecnologia nova, faz parte do

javascript puro e não precisa de nenhum script pra trabalhar.

O JSON pode substituir o XML, e faz isso muito bem na hora de trabalhar com

respostas em AJAX.

A estrutura de dados fica mais simples de trabalhar e o tempo de execução de um

script lendo dados em JSON é dezenas de vezes mais rápido do que ler um conteúdo XML.

As principais linguagens de programação server side tem suporte pra escrever dados

em JSON (MARTINS, 2009).

Page 46: CURSO DE ANÁLISE E DESENVOLVIMENTO DE SISTEMAS …bd.centro.iff.edu.br/bitstream/123456789/965/3/Documento.pdf · ... APLICATIVO DE NOTAS E FALTAS Monografia de Conclusão de

33

CAPÍTULO IV

4. Desenvolvimento do Protótipo

4.1 Requisitos de Software

Para desenvolvedores, o Android SDK fornece um conjunto rico de ferramentas,

incluindo depurador, bibliotecas, emulador de telefone portátil, documentação, código de

amostra e tutoriais.

Aplicativos Android podem ser facilmente desenvolvidos usando Eclipse (a

plataforma oficial de desenvolvimento do Android) com a ajuda de um plug-in chamado

Android Development Tools (ADT). Isto ajuda no aproveitamento dos recursos ricos do

Eclipse, como assistente de conteúdo, recursos abertos, integração com JUnit e diferentes

visualizações e perspectivas para desenvolver um aplicativo Android.

Uma ampla variedade de widgets, que são similares a widgets do Java swing, facilita a

criação de uma UI rica para os aplicativos. Um Javadoc detalhado torna o processo de

desenvolvimento bem fácil.

Antes de começar a desenvolver o Android, assegure-se de ter instalado:

Eclipse SDK: V3.5 é a versão sugerida para uso com o SDK mais recente do

Android. O download pode ser feito na página de download do Galileo.

Android SDK: Para fazer o download, vá até developer.android.com/sdk e

selecione a versão correta para seu sistema operacional. Após completado o download,

execute o instalador. Para que seja possível a instalação, você precisará ter o java SDK

previamente instalado (http://www.felipesilveira.c om.br/minicurso-android).

Android Development Tools (ADT): Este é um plug-in do Eclipse. Ele é

equivalente ao JDT (Java Development Tools) para Android Development. Siga as instruções

detalhadas para a instalação do plug-in ADT e para a configuração da localização do SKD do

Android no Eclipse (http://imasters.com.br/artigo/19953/mobile/desenvolvimento-para-

android-usando-widgets-eclipse-e-android-parte-01).

Page 47: CURSO DE ANÁLISE E DESENVOLVIMENTO DE SISTEMAS …bd.centro.iff.edu.br/bitstream/123456789/965/3/Documento.pdf · ... APLICATIVO DE NOTAS E FALTAS Monografia de Conclusão de

34

4.1.1 Diagrama de Casos de Uso

Figura 7 – Caso de Uso

Descrição do caso de uso

Consultar Aluno:

Ator do caso de uso: Professor

Pré-condições: O aparelho deve estar conectado com uma rede do banco de

dados.

Fluxo Principal:

1 – O usuário acessa a opção consultar aluno no menu do aparelho.

2 – O usuário visualiza todos os cursos pelo protótipo.

3 – O usuário fecha a tela de visualização

Consultar Notas e Faltas:

Ator do caso de uso: Professor

Pré-condições: O aparelho deve estar conectado com uma rede do banco de

dados.

Fluxo Principal:

1 – O usuário acessa a opção consultar notas e faltas no menu do aparelho.

2 – O usuário visualiza todas as notas e faltas pelo protótipo.

3 – O usuário fecha a tela de visualização

Page 48: CURSO DE ANÁLISE E DESENVOLVIMENTO DE SISTEMAS …bd.centro.iff.edu.br/bitstream/123456789/965/3/Documento.pdf · ... APLICATIVO DE NOTAS E FALTAS Monografia de Conclusão de

35

Cadastrar Notas e Faltas:

Ator do caso de uso: Professor

Pré-condições: O aparelho deve estar conectado com uma rede do banco de

dados.

Fluxo Principal:

1 – O usuário acessa a opção cadastrar notas e faltas no menu do aparelho.

2 – O usuário cadastra notas e faltas pelo protótipo.

3 – O usuário salva as notas e faltas ou cancela a operação.

4 – O usuário fecha a tela de cadastro.

4.1.2 Digrama de Classe

Figura 8 – Diagrama de Classe

Page 49: CURSO DE ANÁLISE E DESENVOLVIMENTO DE SISTEMAS …bd.centro.iff.edu.br/bitstream/123456789/965/3/Documento.pdf · ... APLICATIVO DE NOTAS E FALTAS Monografia de Conclusão de

36

Tabela 2 - Descrição da classe Curso

Classe: Curso

Atributo Descrição

Codcurso Código atribuído a todos os cursos criados no

sistema (gerado pelo sistema)

Descricao Descreve o nome para cada curso (ex:

Informática, Design Gráfico, etc.)

Turno Período do dia que o curso será oferecido

(ex: manhã, tarde, etc.)

Tabela 3 - Descrição da classe Disciplina

Classe: Disciplina

Atributo Descrição

Coddisciplina Código atribuído a todos as disciplinas

criados no sistema (gerado pelo sistema)

Nome Descreve o nome para cada disciplina (ex:

Português, Matemática, etc.)

Tabela 4 - Descrição da classe CursoDisciplina

Classe: CursoDisciplina

Atributo Descrição

Codcursodisciplina Código que herda os atributos das classes

Curso e Disciplina

Codcurso Código atribuído a todos os cursos criados no

sistema (gerado pelo sistema)

Coddisciplina Código atribuído a todos as disciplinas

criados no sistema (gerado pelo sistema)

Page 50: CURSO DE ANÁLISE E DESENVOLVIMENTO DE SISTEMAS …bd.centro.iff.edu.br/bitstream/123456789/965/3/Documento.pdf · ... APLICATIVO DE NOTAS E FALTAS Monografia de Conclusão de

37

Tabela 5 - Descrição da classe Professor

Classe: Professor

Atributo Descrição

Codprofessor Código atribuído a todos os professores

cadastrados no sistema

Nome Descreve o nome de cada professor. (ex:

João, Pedro, etc.)

Telefone Número de telefone referente a cada

professor associado

Endereço Descreve o endereço de cada professor

Email Email de cada professor

Tabela 6 - Descrição da classe Turma

Classe: Turma

Atributo

Descrição

Codturma Código atribuído a todas as turmas

cadastradas no sistema

Descrição Descreve o nome de cada turma.

(ex:Arquitetura01, Arquitetura02, etc.)

Tabela 7 - Descrição da classe Aluno

Classe:Aluno

Atributo Descrição

Codaluno Código atribuído a todos os alunos

cadastrados no sistema

Matricula Descreve o número que é associado ao aluno

assim que é efetuada a matrícula do aluno.

(ex: 20013110010, 200132101019, etc.)

Nome Nome de cada aluno cadastrado no sistema

Page 51: CURSO DE ANÁLISE E DESENVOLVIMENTO DE SISTEMAS …bd.centro.iff.edu.br/bitstream/123456789/965/3/Documento.pdf · ... APLICATIVO DE NOTAS E FALTAS Monografia de Conclusão de

38

Tabela 8 - Descrição da classe TurmaAnoletivo

Tabela 9 - Descrição da classe Anoletivo

Classe: Anoletivo

Atributo Descrição

Codanoletivo Código atribuído a cada ano letivo criado no

sistema

Anoletivo Descreve o ano letivo a qual o período

pertence (ex: 2013, 2012, etc.)

PeriodoLetivo Descreve o período pertencente a cada ano

letivo (ex: 1, 2)

Tabela 10 - Descrição da classe CursoDisciplinaProfessor

Classe: CursoDisciplinaProfessor

Atributo Descrição

Codcursodisciplinaprofessor Código que herda os atributos das classes

Curso, Disciplina e Professor

Codcursodisciplina Código que herda os atributos das classes

Curso e Disciplina

Codprofessor Código atribuído a todos os professores

cadastrados no sistema

Classe: TurmaAnoletivo

Atributo Descrição

Codturmaanoletivo Código que herda os atributos das classes

Turma e AnoLetivo

Codturma Código atribuído a todas as turmas

cadastradas no sistema

Codanoletivo Código atribuído a cada ano letivo criado no

sistema

Page 52: CURSO DE ANÁLISE E DESENVOLVIMENTO DE SISTEMAS …bd.centro.iff.edu.br/bitstream/123456789/965/3/Documento.pdf · ... APLICATIVO DE NOTAS E FALTAS Monografia de Conclusão de

39

Tabela 11 - Descrição da classe AlunoTurmaAnoletivo

Classe: AlunoTurmaAnoletivo

Atributo Descrição

Codalunoturmaanoletivo Código que herda os atributos das classes

Curso, Turma e Anoletivo

Codturmaanoletivo Código que herda os atributos das classes

Turma e AnoLetivo

Codaluno Código atribuído a todos os alunos

cadastrados no sistema

Tabela 12 - Descrição da classe AnoletivoCursoDisciplinaProfessor

Classe: AnoletivoCursoDisciplinaProfessor

Atributo Descrição

Codanoletivocursodisciplinaprofessor Código que herda os atributos das classes

Anoletivo, Curso, Disciplina e Professor

Codanoletivo Código atribuído a cada ano letivo criado no

sistema

Codcursodisciplinaprofessor Código que herda os atributos das classes

Curso, Disciplina e Professor

Tabela 13 - Descrição da classe NotasFaltas

Classe: NotasFaltas

Atributo Descrição

Codnotasfaltas Código que herda os atributos das classes

Aluno, Turma, Anoletivo, Curso, Disciplina

e Professor

Codalunoturmaanoletivo Código que herda os atributos das classes

Curso, Turma e Anoletivo

Codanoletivocursodisciplinaprofessor Código que herda os atributos das classes

Anoletivo, Curso, Disciplina e Professor

Notas Notas que serão lançadas referentes a cada

aluno associado às respectivas disciplinas de

cada período cursado

Page 53: CURSO DE ANÁLISE E DESENVOLVIMENTO DE SISTEMAS …bd.centro.iff.edu.br/bitstream/123456789/965/3/Documento.pdf · ... APLICATIVO DE NOTAS E FALTAS Monografia de Conclusão de

40

Faltas Faltas lançadas referente a cada disciplina

cursada correspondente ao período letivo de

cada curso

4.1.3 Diagrama de Seqüência

Figura 9 – Login e Senha

Figura 10 – Consultar Aluno

Page 54: CURSO DE ANÁLISE E DESENVOLVIMENTO DE SISTEMAS …bd.centro.iff.edu.br/bitstream/123456789/965/3/Documento.pdf · ... APLICATIVO DE NOTAS E FALTAS Monografia de Conclusão de

41

Figura 11 – Consultar Notas e Faltas

Figura 12 – Cadastrar Notas e Faltas

Page 55: CURSO DE ANÁLISE E DESENVOLVIMENTO DE SISTEMAS …bd.centro.iff.edu.br/bitstream/123456789/965/3/Documento.pdf · ... APLICATIVO DE NOTAS E FALTAS Monografia de Conclusão de

42

4.1.4 Diagrama de Entidade de Relacionamento – DER

A título de protótipo, somente as classes abaixo foram implementadas, sendo, desta

forma, apenas esboçado no diagrama de Entidade, as classes em funcionalidade na aplicação

desenvolvida neste trabalho.

Figura 13 – Entidade-Relacionamento

4.2 Estudo de Caso

Nos capítulos anteriores formam apresentados conceitos sobre a plataforma android e

sobre a linguagem Ruby e o framework Ruby on Rail.

Neste capítulo, será apresentado o estudo de caso com o objetivo de aplicar os

conceitos estudados na criação de um aplicativo que possa trazer benefícios para os usuários,

fazendo com que o Android, Sistema Operacional, seja uma interface na qual os dados serão

inseridos, e o Rail seja um servidor de serviços.

Page 56: CURSO DE ANÁLISE E DESENVOLVIMENTO DE SISTEMAS …bd.centro.iff.edu.br/bitstream/123456789/965/3/Documento.pdf · ... APLICATIVO DE NOTAS E FALTAS Monografia de Conclusão de

43

Figura 12 – Conexão Android e Servidor

Em relação a figura 12, utilizou-se como ferramentas de desenvolvimento do protótipo

a plataforma Android, como sistema operacional, na versão 2.2 (FroYo). Utilizando o Eclipse

como ambiente de desenvolvimento.

E em relação ao Servidor realizou-se consultas aos Serviços Rails, que foi

implementado através do banco de dados SQLite.

4.2.1 A Aplicação

O estudo de caso deste trabalho tem como objetivo à criação de um aplicativo que

proporcionará ao usuário o lançamento de notas e faltas.

O aplicativo possibilitará a consulta e o cadastro de notas e faltas, e também, a

consulta de dados dos alunos.

4.2.1.1 Interface Inicial

O aplicativo Terminal Mobile IFF possui uma tela inicial onde os usuários

(professores) deverão inserir seu número de matrícula e senha e clicar no botão Entrar. Na

próxima tela, Menu Principal, é possível observar o nome do respectivo usuário (professor),

na parte central da interface, e logo abaixo, existem três botões. Destes, dois botões são

responsáveis por abrir uma nova interface para controle de Dados do Aluno e Notas e Faltas,

respectivamente. Ao pressionar o botão Sair o aplicativo fechará.

Page 57: CURSO DE ANÁLISE E DESENVOLVIMENTO DE SISTEMAS …bd.centro.iff.edu.br/bitstream/123456789/965/3/Documento.pdf · ... APLICATIVO DE NOTAS E FALTAS Monografia de Conclusão de

44

Figura 15 – A Tela Inicial do Terminal Mobile IFF e o Menu Principal do aplicativo

4.2.1.2 Gerência de Consulta de Alunos

Ao clicar no botão Consultar Aluno, a interface de consulta será aberta. Nesta é

possível gerenciar a consulta dos dados dos alunos. Ao inserir o número de matrícula do aluno

no campo Matrícula Aluno e pressionar o botão Pesquisar, será listada as informações do

mesmo, tais como: a matrícula, o nome, o curso e o período. Ao pressionar o botão Voltar,

retornará ao Menu Principal.

Page 58: CURSO DE ANÁLISE E DESENVOLVIMENTO DE SISTEMAS …bd.centro.iff.edu.br/bitstream/123456789/965/3/Documento.pdf · ... APLICATIVO DE NOTAS E FALTAS Monografia de Conclusão de

45

Figura 16 – Telas para Gerência de Consulta de Alunos

4.2.1.3 Gerência de Consulta de Notas e Faltas

Ao clicar no botão Notas e Faltas, na Tela Inicial, a interface de Consulta de Notas e

Faltas será aberta. Como mostra na figura 17 é possível gerenciar o cadastro das Notas e

Faltas ao selecionar um dos Cursos e uma das Disciplinas no spinner, presente na parte

superior desta tela onde serão listados os nomes dos alunos cadastrados, suas Notas e Faltas,

respectivamente.

Figura 17 – Tela de Consulta de Notas e Faltas

Page 59: CURSO DE ANÁLISE E DESENVOLVIMENTO DE SISTEMAS …bd.centro.iff.edu.br/bitstream/123456789/965/3/Documento.pdf · ... APLICATIVO DE NOTAS E FALTAS Monografia de Conclusão de

46

Nas duas telas abaixo, conforme mostra as figuras 18, ao clicar nas opções Disciplinas

e Cursos serão listados todas as disciplinas e todos os cursos cadastrados, respectivamente.

Porém, ao selecionar apenas um Curso e apenas uma Disciplina, a lista passará a conter

apenas as informações das opções escolhidas.

Figura 18 – Menus que aparece ao clicar no spinner de Curso e Disciplinas

4.2.1.4 Gerência Lançamento de Notas e Faltas

A interface de controle de Lançamento pode ser acessada ao clicar sobre o nome de

cada aluno listado, após ser escolhido o curso e a disciplina, respectivamente. Nesta é possível

Editar as Notas e as Frequências. No topo da tela existe um campo com a descrição do Curso,

da Disciplina e do Nome do Aluno. Logo abaixo, dois campos para digitação da nota e da

freqüência. E para finalizar a adição destes dados, o usuário deverá clicar no botão Editar.

Este processo deverá se repetir até que todas as notas e faltas dos alunos de suas respectivas

disciplinas e curso sejam adicionados. Ao pressionar o botão Voltar, retornará a tela de

Consulta de Notas e Frequência.

Page 60: CURSO DE ANÁLISE E DESENVOLVIMENTO DE SISTEMAS …bd.centro.iff.edu.br/bitstream/123456789/965/3/Documento.pdf · ... APLICATIVO DE NOTAS E FALTAS Monografia de Conclusão de

47

Figura 19 – Tela para editação de Notas e Freqüências

4.2.2 O Processo de Desenvolvimento

Trata-se de um processo pelo qual o aplicativo passa desde sua criação ate sua

finalização.

Este projeto foi divido em partes de acordo com a função que elas exercem. Em

seguida foi definida a ordem de implementação de cada uma das partes, considerando as

dependências de cada uma delas pelas demais. Foi implementado o aplicativo na seguinte

ordem: gerência de Consulta de Alunos, gerência de Consulta de Notas e Faltas, gerência de

Cadastro de Notas e Faltas.

A criação dessas partes passou pelos seguintes processos: criação da base de dados e

métodos para a gerencia dos mesmos, criação da interface gráfica, implementação das

acticitys e testes.

Em relação ao protótipo desenvolvido, vale ressaltar a integração de aplicações através

de serviços da web. Como mostra o código 1, foi realizada a consulta ao Serviço Rails,

implementada no projeto, a partir de uma requisição em HTTP. Como não é permitido o

acesso a rede a partir da thread principal que roda a activity, pois pode ocasionar o travamento

da aplicação, o Android disponibiliza através da classe AsyncTask uma forma simples de criar

tarefas distintas que executam operações em background, em outra thread, e que publica os

resultados da operação na UI thread (activity).

Page 61: CURSO DE ANÁLISE E DESENVOLVIMENTO DE SISTEMAS …bd.centro.iff.edu.br/bitstream/123456789/965/3/Documento.pdf · ... APLICATIVO DE NOTAS E FALTAS Monografia de Conclusão de

48

public void pesquisarAluno(View v) {

String filtro = this.matricula.getText().toString();

new ConsultaAlunoTask().execute(filtro + ".json");

}

private class ConsultaAlunoTask extends AsyncTask<String, Void, String[]> {

ProgressDialog dialog;

@Override

protected void onPreExecute() {

dialog = new ProgressDialog(ConsultaAlunoActivity.this);

dialog.show();

}

@Override

protected void onPostExecute(String[] result) {

if (result != null) {

txvmatricula.setText(result[0]);

txvnome.setText(result[1]);

txvcurso.setText(result[1].substring(5, result[1].indexOf("

")));

txvperiodo.setText("1o.");

}

dialog.dismiss();

}

@Override

protected String[] doInBackground(String... params) {

// String[] dadosAlunos = new String[100];

try {

String filtro = params[0];

if (TextUtils.isEmpty(filtro)) {

return null;

Page 62: CURSO DE ANÁLISE E DESENVOLVIMENTO DE SISTEMAS …bd.centro.iff.edu.br/bitstream/123456789/965/3/Documento.pdf · ... APLICATIVO DE NOTAS E FALTAS Monografia de Conclusão de

49

}

String modelo = "alunos/" + filtro;

Sring conteudo = HTTPUtils.acessar(modelo);

JSONObject aluno = new JSONObject(conteudo);

String[] dadosAlunos = new String[2];

dadosAlunos[0] = aluno.getString("matricula");

dadosAlunos[1] = aluno.getString("nome");

return dadosAlunos;

} catch (Exception e) {

throw new RuntimeException(e);

}

}

}

Código 1 - Classe ConsultaAlunoTask

A classe AsyncTask, utilizada no desenvolvimento da aplicação, ela executa três

métodos:

onPreExecute: foi o primeiro método a ser implementado antes que a tarefa

fosse executada. Neste, incluiu-se a exibição de um ProgressDialog, que foi inserida na UI

thread, antes da tarefa ser executada, nos permitindo modificar a interface, através de uma

caixa de progresso;

doInBackground: foi o segundo método executado em uma outra thread, onde

a operação foi implementada. Neste método foram recebidos os Params (tratam de um tipo de

parâmetro que são enviados para a execução da tarefa) definidos pela AsyncTask e retornando

os resultados da operação como sendo do tipo Result (é um tipo de retorno da operação

realizada). Neste método pode ser invocado o publishProgess para informar o andamento da

operação;

onPostExecute: por fim, o terceiro método, também inserido na Ui thread. Foi

neste método que recebeu-se o Result como parâmetro e realizou-se as atualizações

necessárias de tela, como fechar o ProgressDialog e atualizar uma ListView com os dados

obtidos do método doInBackground.

Page 63: CURSO DE ANÁLISE E DESENVOLVIMENTO DE SISTEMAS …bd.centro.iff.edu.br/bitstream/123456789/965/3/Documento.pdf · ... APLICATIVO DE NOTAS E FALTAS Monografia de Conclusão de

50

public class HTTPUtils {

public static String acessar(String modelo) {

try {

//String urlIFF = "http://192.168.0.100:3000/";

String urlIFF = "http://10.12.255.18:3000/";

String url1 = Uri.parse(urlIFF + modelo).toString();

URL url = new URL(url1);

URLConnection conn = url.openConnection();

InputStream is = conn.getInputStream();

Scanner scanner = new Scanner(is);

String conteudo = scanner.useDelimiter("\\A").next();

scanner.close();

return conteudo;

} catch (Exception e) {

return null;

}

}

}

Código 2 - Classe HTTPUtils

Para a implementação do método doInBackground, foi necessário a realização de uma

requisição em HTTP para uma determinada URL, que foi montada a partir dos termos de

busca informados como parâmetro e em seguida, processado a resposta obtida que estava em

formato JSON, criando um String [] com os dados do Acadêmico em Rails.

Foi feito uma classe chamada HTTPUtils para fazer a requisição em HTTP e a captura

de respostas para o encerramento desta implementação.

Nesta classe foi inserido um método chamado acessar, que recebeu uma String como

parâmetro e que tratou da URL desejada e retornou uma String que foi o conteúdo obtido

como resposta da solicitação.

Page 64: CURSO DE ANÁLISE E DESENVOLVIMENTO DE SISTEMAS …bd.centro.iff.edu.br/bitstream/123456789/965/3/Documento.pdf · ... APLICATIVO DE NOTAS E FALTAS Monografia de Conclusão de

51

Na implementação foi aberto uma conexão a partir do endereço informado e nas linhas

seguintes foi feita a leitura dos dados recebidos utilizando um Scanner.

4.2.2.1 A Base de Dados

A criação da base de dados utilizada pela aplicação é uma parte importante do

processo de desenvolvimento e merece atenção do desenvolvedor. A forma em que esta base

será estruturada e a forma como seus dados serão manipulados, influenciará diretamente na

essência da aplicação, visto que os recursos dos dispositivos móveis são mais limitados.

Por fim, a base de dados da Aplicação desenvolvida foi criada independente da base

de dados do IFF.

4.2.2.2 Publicação

O aplicativo desenvolvido neste estudo de caso ainda é um protótipo, além disso, este

ainda não possui todos os testes implementados. Por estes motivos, o aplicativo não foi

submetido à publicação.

Porém, os resultados obtidos ao final deste estudo de caso estão disponibilizados no

site de compartilhamento de projetos GitHub (tfsouza, 2013). Neste é possível encontrar uma

cópia deste trabalho e o código fonte do estudo de caso apresentado, além do instalador do

aplicativo gerado (.apk). Para instalar este aplicativo basta o copiar para o dispositivo móvel e

executá-lo.

O código fonte será acompanhado da Licença GNU GPL (Licença Pública Geral) que

possibilitará qualquer usuário copiar, utilizar, alterar e distribuir este aplicativo. Como

qualquer licença de software, esta também exige a execução dos termos dispostos além de

assegurar os direitos do autor ou desenvolvedor e do usuário final.

Page 65: CURSO DE ANÁLISE E DESENVOLVIMENTO DE SISTEMAS …bd.centro.iff.edu.br/bitstream/123456789/965/3/Documento.pdf · ... APLICATIVO DE NOTAS E FALTAS Monografia de Conclusão de

52

Capítulo V

5. Conclusão

Este trabalho descreveu o Sistema Operacional Android, o qual promove o acesso à

consulta de dados de alunos, suas notas e faltas, além do cadastro de notas e faltas pelos

professores.

Neste processo foi descrita a estrutura da plataforma e, também, as ferramentas

utilizadas no desenvolvimento.

Os principais resultados do projeto estão associados ao fato de poder efetuar o acesso

ao protótipo para consulta e inserção de dados, desta forma pudemos perceber que o projeto

foi válido pela facilidade no desenvolvimento e pelo fato de proporcionar ao usuário

comodidade e rápido acesso durante a integração dos dados.

Desta forma, através do desenvolvimento do protótipo, podemos demonstrar que foi

possível acessar através do celular a consulta ao serviço Rails.

A princípio, uma das maiores dificuldades no desenvolvimento da aplicação foi a falta

de conhecimento da linguagem Ruby, sendo necessário um tempo disponível para pesquisas,

análises e testes desta linguagem.

O desenvolvimento deste projeto nos trouxe novos conhecimentos relacionados à

Orientação a Objetos, Tecnologias Móveis, Servidores de Aplicação e a Plataforma Android.

5.1 Trabalhos Futuros

Como trabalhos futuros faz-se necessário aprimorar a interface da aplicação, além de

implementar novos recursos, tornando-a mais completa, e que atenda as necessidades dos

usuários. A partir disso é sugerida a implementação completa para o professor baseado no

sistema Qualidata e a criação de um novo módulo para o acesso dos alunos ao histórico

escolar e o CR e disponibilizando-o na loja Google Play.

Além disso, é sugerido que em Consulta de Dados de Alunos, seja listado, além da

matrícula, nome, curso e período, as notas do aluno selecionado.

E também, inserir a opção de escolher o ano/período letivo para as informações de

consulta e inserção de dados.

Page 66: CURSO DE ANÁLISE E DESENVOLVIMENTO DE SISTEMAS …bd.centro.iff.edu.br/bitstream/123456789/965/3/Documento.pdf · ... APLICATIVO DE NOTAS E FALTAS Monografia de Conclusão de

53

Capítulo VI

6. Bibliografia

5CQUALIBR. Portal do Software Público Brasileiro, 2012. Disponivel em:

<http://www.softwarepublico.gov.br/5cqualibr/xowiki/bdd>. Acesso em: 29 abr. 2012.

AKITA, F. Repensando a Web com Rails. Rio de Janeiro: Brasport, 2006.

ALENCAR, R. L. S. D. Test-Driven Development (TDD). DevMedia, 2012.

Disponivel em:

<http://www.devmedia.com.br/articles/viewcomp_forprint.asp?comp=10025>. Acesso em: 29

abril 2012.

BLOG LOCAWEB. Scrum – Entidades e Sprints. bloglocaweb, 2008. Disponivel em:

<http://blog.locaweb.com.br/metodologias-ageis/scrum-entidades-do-scrum/>. Acesso em: 27

agosto 2012.

BORBOREMA, T. Impacto da aplicação da metodologia XP nas organizações de

desenvolvimento de software, Pouso Alegre, 2007.

BRASILDROID. As versões do Android e suas diferenças. Brasildroid, 2011.

Disponivel em: <http://brasildroid.com.br/discussoes-gerais/535-artigo-as-versoes-do-

android-suas-diferencas.html>. Acesso em: 18 maio 2013.

COELHO, C. D. S. Relato de experiência na implantação de um método ágil em uma

equipe de desenvolvimento de software, Lavras, 2012.

DANNORTH. Behaviour Driven Development, 2009. Disponivel em:

<http://behaviour-driven.org/BehaviourDrivenDevelopment?action=SpellCheck>. Acesso em:

29 abr. 2012.

DOS SANTOS, E. G.; BOEIRA, H. D. R. F. Ferramenta para Gerenciamento de

Requisitos em Metodologias Ágeis. revistaseletronicas.pucrs, 2008. Disponivel em:

<http://revistaseletronicas.pucrs.br/ojs/index.php/hifen/article/viewFile/4593/3480>. Acesso

em: 12 abr. 2012.

Page 67: CURSO DE ANÁLISE E DESENVOLVIMENTO DE SISTEMAS …bd.centro.iff.edu.br/bitstream/123456789/965/3/Documento.pdf · ... APLICATIVO DE NOTAS E FALTAS Monografia de Conclusão de

54

ELIAS, G. D. S. Métricas associadas ao desenvolvimento de software usando métodos

ágeis, Gravataí, abril 2008.

FERNANDO. A evolução da tecnologia dos celulares. Dicas de como fazer, 2011.

Disponivel em: <http://dicasdecomofazer.net/a-evolucao-da-tecnologia-dos-celulares/>.

Acesso em: 12 abr. 2013.

FERNANDO. A evolução da teconolgia dos celulares. A evolução das tecnologias,

2012. Disponivel em: <http://lagjean.blogspot.com.br/2012_04_01_archive.html>. Acesso

em: 14 abr. 2013.

FOWLER, M. XPManager - Metodologias Ágeis. Naphta, 2010. Disponivel em:

<http://www.naphta.com.br/xpmanager/xpmanager_metodologiasageis.html>. Acesso em: 14

fevereiro 2012.

FRANCO, M. Introdução ao Brew. Devmedia, 2012. Disponivel em:

<http://www.devmedia.com.br/introducao-ao-brew/7803>. Acesso em: 11 maio 2012.

GONÇALVES, J., 2011. Disponivel em:

<http://www.hiperbytes.com.br/geral/metodologia-xp-extreme-programming-comparativos-

entre-as-metodologias/>. Acesso em: 27 abr. 2012.

HECKE, C. Android 4.1 Jelly Bean: saiba tudo sobre o novo sistema operacional

móvel. Tecmundo, 2012. Disponivel em: <http://www.tecmundo.com.br/jelly-bean/25784-

android-4-1-jelly-bean-saiba-tudo-sobre-o-novo-sistema-operacional-movel.htm>. Acesso

em: 12 dez. 2012.

HECKE, C. Android 4.1 Jelly Bean: saiba tudo sobre o novo sistema operacional

móvel. Tecmundo, 2012. Disponivel em: <http://www.tecmundo.com.br/jelly-bean/25784-

android-4-1-jelly-bean-saiba-tudo-sobre-o-novo-sistema-operacional-movel.htm>. Acesso

em: 12 dez. 2012.

JUNQUEIRA, D. C.; FORTES, R. P. D. M., 2012. Disponivel em:

<http://www2.icmc.usp.br/~renata/RoR-capitulo_webmedia07.pdf>. Acesso em: 15 março

2012.

Page 68: CURSO DE ANÁLISE E DESENVOLVIMENTO DE SISTEMAS …bd.centro.iff.edu.br/bitstream/123456789/965/3/Documento.pdf · ... APLICATIVO DE NOTAS E FALTAS Monografia de Conclusão de

55

LANDIM, W. Os doces do Android. Tecmundo, 2011. Disponivel em:

<http://www.tecmundo.com.br/infografico/13640-os-doces-do-android-infografico-.htm>.

Acesso em: 17 novembro 2012.

LANDIM, W. Os doces do Android [infográfico]. Tecmundo, 2011. Disponivel em:

<http://www.tecmundo.com.br/infografico/13640-os-doces-do-android-infografico-.htm>.

Acesso em: 10 abr. 2013.

LAPOLL, F. R. et al. Modelo de desenvolvimento de objetos de aprendizagem

baseado em Metodologias Ágeis. Revista Brasileira de Informática na Educação, Rio de

Janeiro, v. 18, n. 2, 2010.

LEMOS, A. C. D. Aplicação de uma metodologia de ajuste do sistema kanban em um

caso real utilizando simulação computacional. ufsc - repositorio de conteúdo digital, 2012.

Disponivel em: <http://repositorio.ufsc.br/handle/123456789/81207>. Acesso em: 2012 dez.

20.

LIMA, E. Introdução ao Android - Parte 1. eddersonlima.net, 2012. Disponivel em:

<http://www.blog.edersonlima.net/?p=68>. Acesso em: 15 maio 2013.

LIMA, E. R. D. edersonlima.net. Introdução ao Android - Parte 1 (Activity, Intent

e Android Manifest), 2012. Disponivel em: <http://www.blog.edersonlima.net/?page_id=2>.

Acesso em: 11 maio 2012.

LOVATTO, C. W. Comparando ambientes de desenvolvimento Java e Ruby on Rail.

Wikipedia, 2007. Disponivel em:

<http://pt.wikipedia.org/wiki/Ruby_%28linguagem_de_programa%C3%A7%C3%A3o%29#c

ite_note-About-2>. Acesso em: 06 fevereiro 2012.

MÁRCIA SAVOINE, L. M. M. R. C. D. S. Utilizando Metodologia Ágil XP e Scrum:

Um Estudo de Caso Prático. XI Encontro de Estudantes de Informática do Tocantins,

Palmas, p. 93-102, 2009.

MARIOTT, F. S. Kanban: o ágil adaptativo. Engenharia de Software Magazine, n.

45, fevereiro 2012.

Page 69: CURSO DE ANÁLISE E DESENVOLVIMENTO DE SISTEMAS …bd.centro.iff.edu.br/bitstream/123456789/965/3/Documento.pdf · ... APLICATIVO DE NOTAS E FALTAS Monografia de Conclusão de

56

MARTINS, D. A. O que é JSON, como e quando utilizar? Tidbits, 2009. Disponivel

em: <http://www.tidbits.com.br/o-que-e-json-como-e-quando-utilizar>. Acesso em: 19 dez.

2012.

MARTINS, M. Utilizando Kanban com a metodologia ágil SCRUM. DevMedia,

2009. Disponivel em: <http://www.devmedia.com.br/-net-magazine-63-utilizando-kanban-

com-a-metodologia-agil-scrum/13537>. Acesso em: 30 abril 2012.

MARTINS, R. J. W. D. A. Desenvolvimento de Aplicativo para Smartphone com a

Plataforma Android. puc-rio, 2009. Disponivel em: <http://www.icad.puc-

rio.br/~projetos/android/files/monografia.pdf>. Acesso em: 20 abr. 2013.

MENEGOTTO, A. B.; MIERLO, F. A linguagem Ruby. dotlib, 2002. Disponivel em:

<http://www.dotlib.com.br/i/4768a22a0d58da3cfa71294e40ed6229.pdf>. Acesso em: 12 out.

2012.

MURIS LAGE JUNIOR, M. G. F. Evolução e avaliação da utilização do sistema

kanban em empresas paulistas. Revista de Administração, São Paulo, v. 44, n. 4, dezembro

2009.

NASCIMENTO, P. BDD – Foco no comportamento do sistema. Blog Scrumhalf,

2011. Disponivel em: <http://blog.myscrumhalf.com/2011/10/bdd-%E2%80%93-foco-no-

comportamento-do-

sistema/?utm_source=facebook&utm_medium=social&utm_campaign=post-2011-10-20>.

Acesso em: 20 nov. 2012.

NETO, E. I. Ferramenta Educacional para Ensino de Práticas do SCRUM, Porto

Alegre, 25 julho 2008.

NETO, E. I. Scrumming Ferramenta Educacional para Ensino de Práticas do Scrum,

Porto Alegre, 25 julho 2008.

PAULA L.O. LIBARDI, V. B. Métodos Ágeis, Limeira, 2010.

PRANGE, H. F. Uma avaliação empírica de um ambiente favorável para o

desenvolvimento dirigido por testesS, Rio de Janeiro, 29 abril 2012.

REHM, F. G. Aplicando Domain-Driven Design Utilizando Ruby e o framework

Rails. Salvador: [s.n.], 2009.

Page 70: CURSO DE ANÁLISE E DESENVOLVIMENTO DE SISTEMAS …bd.centro.iff.edu.br/bitstream/123456789/965/3/Documento.pdf · ... APLICATIVO DE NOTAS E FALTAS Monografia de Conclusão de

57

REIS, D. F. Conceitos básicos sobre Metodologias Ágeis para Desenvolvimento de

Software (Metodologias Clássicas x Extreme Programming). Devmedia, 2008. Disponivel

em: <http://www.devmedia.com.br/conceitos-basicos-sobre-metodologias-ageis-para-

desenvolvimento-de-software-metodologias-classicas-x-extreme-programming/10596>.

Acesso em: 25 abr. 2012.

RUOSO, D. Diferenças entre métodos ágeis e tradicionais. Software Livre Brasil,

2009. Disponivel em: <http://softwarelivre.org/ruoso/blog/diferencas-entre-metodos-ageis-e-

tradicionais>. Acesso em: 30 abril 2012.

SAVOINE, M. et al. Análise de gerenciamento de projeto de software utilizando

metodologia ágil XP e Scrum: um Estudo de caso prático, Araguaína, 27 agosto 2012.

SILVA, F. G.; S. C. P. HOENTSCH, L. S. Uma análise das Metodologias Ágeis FDD

e Scrum sob a Perspectiva do Modelo de Qualidade MPS.BR. Revista Scientia Plena, 2009.

Disponivel em: <http://www.scientiaplena.org.br/ojs/index.php/sp/article/view/678>. Acesso

em: 10 out. 2012.

SILVA, T. M.; DOS SANTOS, H. A. SATI - Sistema de Atendimento Técnico de

Informática, Brasília, 2011.

SILVEIRA, F. Android - Desenvolvimento Android. Minicurso Android, 2012.

Disponivel em: <http://www.felipesilveira.com.br/minicurso-android/#%282%29>. Acesso

em: 16 nov. 2012.

SOARES, M. D. S., 2004. Disponivel em:

<http://revistas.facecla.com.br/index.php/reinfo/article/viewArticle/146>. Acesso em: 16 fev.

2012.

SOUZA, L. M. D. Método Ágil XP (Extreme Programming). Academos - Revista

Eletrônica da FIA, v. III, n. 3, julho - dezembro 2007.

TECMÓVEL. Novas tendência de tecnologia móvel. TecMóvel, 2009. Disponivel em:

<http://www.tecmovel.xpg.com.br/internet_movel_telefonia_geracoes.html>. Acesso em: 10

novembro 2012.

TELES, V. M. Um estudo de caso da adoção das práticas e valores do Extreme

Programming, Rio de Janeiro, 2005.

Page 71: CURSO DE ANÁLISE E DESENVOLVIMENTO DE SISTEMAS …bd.centro.iff.edu.br/bitstream/123456789/965/3/Documento.pdf · ... APLICATIVO DE NOTAS E FALTAS Monografia de Conclusão de

58

VIVA SEM FIO. Arquitetura do Android. Viva sem fio, 2008. Disponivel em:

<http://www.vivasemfio.com/blog/arquitetura-do-android/>. Acesso em: 28 abr. 2013.

VIVASEMFIO. Arquitetura do Android. Vivasemfio, 2008. Disponivel em:

<http://www.vivasemfio.com/blog/arquitetura-do-android/>. Acesso em: 15 novembro 2012.

WIKIPÉDIA. 3G. Wikipédia, 2013. Disponivel em:

<http://pt.wikipedia.org/wiki/3G>. Acesso em: 14 abr. 2013.

WIKIPÉDIA. Anexo:Histórico de versões do Android. Wikipédia, 2013. Disponivel

em:

<http://pt.wikipedia.org/wiki/Anexo:Hist%C3%B3rico_de_vers%C3%B5es_do_Android>.

Acesso em: 02 maio 2013.

WIKIPÉDIA. Brew. Wiipédia, 2013. Disponivel em:

<http://pt.wikipedia.org/wiki/Brew>. Acesso em: 20 abr. 2013.

WIKIPÉDIA. SuperWaba. Wikipédia, 2013. Disponivel em:

<http://pt.wikipedia.org/wiki/SuperWaba>. Acesso em: 20 abr. 2013.

WIKIPÉDIA. Tecnologia móvel. Wikipédia, 2013. Disponivel em:

<http://pt.wikipedia.org/wiki/Tecnologia_m%C3%B3vel>. Acesso em: 10 maio 2013.

WIKIPEDIA, A ENCICLOPÉDIA LIVRE. Tecnologia móvel. Wikipedia, 2013.

Disponivel em: <http://pt.wikipedia.org/wiki/Tecnologia_m%C3%B3vel>. Acesso em: 12

abr. 2013.

WIKIPÉDIA. Android. Wikipédia, 2013. Disponivel em:

<http://pt.wikipedia.org/wiki/Android>. Acesso em: 12 maio 2013.

ZARATIN, R. Android ou iOS? Texto de resposta. Mobilidade.FM, 2011. Disponivel

em: <http://mobilidade.fm/coluna/2011/12/android-ou-ios-texto-de-resposta/>. Acesso em: 29

abr. 2013.

ZARATIN, R. AndroidxiOS. euandroid, 2011. Disponivel em:

<http://www.euandroid.com.br/coluna/2011/12/android-ou-ios-texto-de-resposta/>. Acesso

em: 16 novembro 2012.

Page 72: CURSO DE ANÁLISE E DESENVOLVIMENTO DE SISTEMAS …bd.centro.iff.edu.br/bitstream/123456789/965/3/Documento.pdf · ... APLICATIVO DE NOTAS E FALTAS Monografia de Conclusão de

59

ZIEGLER, M. F. Aplicativo de celular é capaz de diagnosticar catarata. ig, 2011.

Disponivel em:

<http://ultimosegundo.ig.com.br/ciencia/aplicativo+de+celular+e+capaz+de+diagnosticar+cat

arata/n1596984073925.html>. Acesso em: 13 setembro 2012.

Tfsouza – Terminal Mobile IFF. 2013. Disponível em :

<https://github.com/tfsouza/TerMobileAndroidRails>