Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Orientador
Asterio Kiyoshi Tanaka
Aprovada por:
__________________________________________________
Asterio Kiyoshi Tanaka, Ph.D. (UNIRIO)
__________________________________________________
Luiz Carlos Montez Monte, D.C. (UNIRIO)
__________________________________________________
Geiza Maria Hamazaki da Silva, D.C. (UNIRIO)
AGRADECIMENTOS
RESUMO
ABSTRACT
Keywords: Agile Development, Scrum, Ruby on Rails, Real Estate Rental System.
NDICE
1 INTRODUO ................................................................................................................... 1
1.1 Motivao ..................................................................................................................... 1
1.2 Justificativa ................................................................................................................... 1
1.3 Objetivo do projeto ....................................................................................................... 2
1.4 Organizao do trabalho .............................................................................................. 2
2 ANLISE DE MERCADO ................................................................................................... 4
2.1 ndice FIPE-ZAP........................................................................................................... 4
2.2 Levantamento da situao atual ................................................................................... 5
2.3 Sobre a Lei do Inquilinato ............................................................................................. 5
2.4 Soluo esperada ........................................................................................................ 5
2.5 Possibilidades de arrecadao financeira..................................................................... 6
3 LEVANTAMENTO DE REQUISITOS E MODELAGEM DO SISTEMA ............................... 7
3.1 Levantamento de requisitos.......................................................................................... 7
3.1.1 Requisitos Funcionais ............................................................................................ 7
3.1.2 Requisitos no funcionais ...................................................................................... 8
3.2 Diagrama de Casos de Uso.......................................................................................... 8
3.3 Casos de Uso ............................................................................................................... 9
3.3.1 Cadastrar ............................................................................................................... 9
3.3.2 Preencher ............................................................................................................ 11
3.3.3 Buscar ................................................................................................................. 13
3.4 Diagrama de Classes ................................................................................................. 15
4 METODOLOGIA E DESENVOLVIMENTO GIL.............................................................. 18
4.1 Antecedentes ............................................................................................................. 18
4.2 O Manifesto gil ......................................................................................................... 18
4.3 Desenvolvimento gil com Ruby on Rails ................................................................... 20
4.3.1 Scrum .................................................................................................................. 20
4.3.2 Sprints ................................................................................................................. 21
4.3.3 Scrum points ........................................................................................................ 22
4.3.4 Product Backlog ................................................................................................... 22
4.3.5 Sprints ................................................................................................................. 24
4.4 Comparao entre Scrum points e Function points .................................................... 26
5 IMPLEMENTAO USANDO RUBY ON RAILS ............................................................. 27
LISTA DE FIGURAS
Figura 1 - ndice FIPE-ZAP .................................................................................................... 4
Figura 2 - Caso de uso Cadastrar ....................................................................................... 8
Figura 3 - Caso de uso Preencher e Buscar ....................................................................... 9
Figura 4 - Diagrama de Classe ............................................................................................ 15
Figura 5 - Tabelas no PostgreSQL....................................................................................... 17
Figura 6 - Ciclo de desenvolvimento Scrum ......................................................................... 21
Figura 7 - Tela Principal ....................................................................................................... 46
Figura 8 - Cadastro de Quartos ........................................................................................... 46
Figura 9 - Formulrio de Reserva ........................................................................................ 47
LISTA DE TABELAS
Tabela 1 - Product Backlog .................................................................................................. 24
1 INTRODUO
1.1 Motivao
Com o grande aquecimento do mercado imobilirio no Estado do Rio de
Janeiro e com a realizao de um grande evento internacional
(Olimpadas de
1.2 Justificativa
O sistema proposto neste trabalho oferece uma soluo com software livre e
de fcil utilizao para os usurios, ajudando-os a buscar e anunciar vagas em
imveis disponveis no Estado do Rio de Janeiro.
O sistema Imobiliria Web deve possuir uma interface intuitiva e de fcil
acesso dando ao usurio opo de buscar vagas em imveis a partir de suas datas
de disponibilidade, preenchendo um formulrio de interesse, que ser enviado por email ao locador, com todos os dados do interessado. O usurio poder visualizar as
fotos dos cmodos do imvel e ter acesso a um FAQ onde ele poder obter ajuda
sobre a lei vigente do inquilinato, dicas de cuidados a serem tomados, como se
estabelecer um contrato de aluguel e dicas para se estabelecer um ambiente
saudvel.
Como a ferramenta utilizada para desenvolver o sistema se enquadra
perfeitamente em diversos mtodos de desenvolvimento gil, possvel acrescentar
funcionalidades ou refatorar o sistema de acordo com novas demandas e/ou
observaes dos locadores, podendo, no futuro, inclusive, oferecer outras
funcionalidades de controle e uso do sistema.
Financeiramente, a sua rentabilidade pode vir de publicidade, da anlise e
venda de dados em caso de grande procura de locatrios, ou at mesmo do sistema
ser personalizado para alguma empresa imobiliria.
1
2 ANLISE DE MERCADO
Este captulo relata uma breve anlise informal de mercado que, atravs de
consultas a pginas especializadas e buscas na Internet, justifica a relevncia do
sistema desenvolvido junto ao mercado imobilirio.
Por parte de um possvel locatrio, basta que procure uma vaga de seu
agrado, preencha um formulrio de reserva e aguarde o contato do locador, j que
um e-mail com o formulrio ser enviado ao administrador do sistema e este fara o
contato notificando o interesse da vaga. Caso no encontre o que procura, pode
preencher um formulrio com as informaes da vaga que procura e o administrador
ao receber a notificao ir avisar a todos os locadores que tenham o perfil da vaga
desejada. O locatrio aps ser notificado pode entrar em contato com o interessado,
para verificar se ainda a interesse e estabelecer o contrato de aluguel.
Em caso de vaga preenchida por um locatrio, basta o locador alterar a data
de disponibilidade desta, para que outros potenciais locatrios no preencham os
formulrios de vagas ocupadas. Toda a parte jurdica e financeira deve ser feita fora
do sistema de aluguis de vagas.
3.3.1 Cadastrar
3.3.1.1 Cadastrar-se no sistema
Descrio sucinta:
O sistema ir permitir que um usurio locador se cadastre no sistema de forma
gratuita e rpida.
Atores:
Locador.
Requisitos:
RF01
Pr-condies:
Usurio ter um email.
Ps-condies:
Um email de confirmao emitido para o usurio locador para verificao de conta.
9
Campos:
e-mail, senha
Fluxo principal:
A. O usurio ir clicar em cadastrar conta e preencher os campos solicitados.
Fluxo alternativo:
N/A.
Fluxo de exceo:
E1 - O sistema ir emitir uma mensagem de erro caso um email invlido seja
cadastrado.
E2 - O sistema ir emitir uma mensagem de erro caso usurio digite uma
confirmao de senha invlida e direcionado de volta ao campo senha.
preencher
os
dados do formulrio.
Fluxo alternativo:
N/A
Fluxo de exceo:
10
E1 - O sistema ir emitir erro caso o usurio coloque algum dado no formulrio que
no esteja de acordo com as regras definidas de cada campo.
cadastrar quarto.
3.3.2 Preencher
3.3.2.1 Preencher formulrio reserva
Descrio sucinta:
11
O usurio cliente poder preencher um formulrio onde ele demonstra interesse por
uma vaga, solicitando reserva por um perodo determinado de tempo.
Atores:
Cliente.
Requisitos:
RF05.
Pr-condies:
N/A
Ps-condies:
Um email ir ser enviado ao locatrio com os dados do interessado pela vaga.
Campos:
Nome completo, e-mail, telefone, data de nascimento, check-in, check-out e cpf.
Fluxo principal:
A. O usurio ao fazer a busca de quartos disponveis
B. Clicar no quarto desejado
C. Selecionar data de check-in e check-out
D. Clicar em Reserve agora.
Fluxo alternativo:
N/A.
Fluxo de exceo:
E1 - O sistema ir emitir uma mensagem de erro caso algum campo tenha sido
deixado em branco ou preenchido com algum caractere no permitido.
O usurio cliente ser avisado por email quando a vaga desejada estiver disponvel
no sistema.
Campos:
Nome completo, e-mail, telefone, data de nascimento, check-in, check-out, cpf, em
que cidade gostaria de ficar, valor mnimo e valor mximo.
Fluxo principal:
A. O usurio deve clicar no menu no consegue encontrar um quarto.
B. O usurio deve preencher os campos do formulrio.
Fluxo alternativo:
N/A.
Fluxo de exceo:
E1 - O sistema ir emitir uma mensagem de erro caso algum campo tenha sido
deixado em branco ou preenchido com algum caractere no permitido.
3.3.3 Buscar
3.3.3.1 Buscar vagas de quartos em imveis.
Descrio sucinta:
O usurio cliente poder realizar busca de vagas disponveis nos imveis
cadastrados no sistema.
Atores:
Cliente.
Requisitos:
RF04.
Pr-condies:
N/A
Ps-condies:
O usurio cliente ir visualizar todas as vagas disponveis no sistema referente aos
critrios de busca selecionados.
Campos:
Ms, ano, estado e Bairro
Fluxo principal:
A. O usurio deve selecionar os critrios de busca que ele deseja para a busca
de vaga.
B. O usurio deve clicar no boto busca.
13
Fluxo alternativo:
N/A.
Fluxo de exceo:
E1 - O sistema ir emitir uma mensagem de erro caso algum dos campos no forem
preenchidos.
E2 O sistema ir emitir uma mensagem de erro caso nenhuma vaga seja
encontrada com os critrios definidos pelo usurio.
14
15
16
17
4.1 Antecedentes
A expresso Metodologias geis revelou-se mundialmente em 2001, por
meio de uma reunio entre 17 especialistas em processos de desenvolvimento de
software, onde foi criada a Aliana gil e, em consequncia, surgiu o to conhecido
Manifesto gil [Kent, 2001].
So estes os signatrios do Manifesto gil: Kent Beck, Mike Beedle, Arie van
Bennekum, Alistair Cockburn, Ward Cunningham, Martin Fowler, James Grenning,
Jim Highsmith, Andrew Hunt, Ron Jeffries, Jon Kern, Brian Marick, Robert C. Martin,
Steve Mellor, Ken Schwaber, Jeff Sutherland e Dave Thomas.
O Manifesto para o Desenvolvimento gil de Software, como foi definido,
estabelece alguns princpios e conceitos, como:
Pessoas e interaes, ao contrrio de processos e ferramentas.
Software executvel, ao contrrio de documentao extensa e confusa.
Colaborao do cliente, ao contrrio de constantes negociaes de contratos.
Respostas rpidas para as mudanas, ao contrrio de seguir planos
previamente definidos.
18
Nele
consta
tambm
ideia
de
entrega
contnua,
pois
entregar
19
4.3.1 Scrum
Segundo definio de seus idealizadores [Schwaber, 2013], Scrum um
framework para desenvolvimento e manuteno de produtos complexos. Os
projetos so divididos em ciclos (tipicamente mensais) chamados de Sprints. O
Sprint representa um Time Box dentro do qual um conjunto de atividades deve ser
executado. Metodologias geis de desenvolvimento de software so iterativas e
incrementais, ou seja, o trabalho dividido em iteraes incrementais, que so
chamadas de Sprints no caso do Scrum. A imagem abaixo exemplifica o ciclo de
desenvolvimento do Scrum.
20
4.3.2 Sprints
No Scrum, o trabalho realizado em iteraes ou ciclos de at um ms. O
trabalho realizado em cada sprint deve criar algo de valor tangvel para o cliente ou
usurio. Sprints so timeboxed (isto , possuem durao fixa) para que tenham
sempre um incio e fim (datas fixas), e, idealmente, todos eles devem estar com a
mesma durao.
O Sprint Backlog uma lista de tarefas que o Scrum Team se compromete a
fazer em um Sprint como um potencial incremento de produto entregvel. Os itens
do Sprint Backlog so extrados do Product Backlog pela equipe, com base nas
prioridades definidas pelo Product Owner e a percepo da equipe sobre o tempo
que ser necessrio para completar as vrias funcionalidades; tal noo de tempo
est explicitada a seguir. A quantidade de itens do Product Backlog que sero
trazidos para o Sprint Backlog definida pelo Scrum Team que se compromete a
implement-los durante o Sprint. Os itens do Product Backlog so extrados a partir
de User Stories, que so quebradas e divididas em tarefas at que qualquer membro
da equipe de desenvolvimento seja capaz de entend-las e implement-las, desta
forma estando prontas para entrar em um Sprint Backlog.
21
User Story
Tarefas
um
todas
disponveis
Pontos
3
apartamento
as
vagas
CRUD de Quartos.
dentro
22
encontrar
que Funcionalidade
que
altera
a 1
seu
preenchendo
com
um
todos
formulrio
os
dados
relevantes.
as
vagas
sistema,
preencher
assim
um
index
da
pgina 5
mais principal.
como
formulrio
Disponibilizar
quartos
livres
mais 3
de
aviso
de
interesse 1
lhe interessa.
Desenvolver menu.
23
ter
opo
melhor
adequar
de 1
de administrador.
permisso
os
Renderizar
os
alertas
nas
views 1
corretas.
CRUD de alertas.
banco
de
dados 1
PostgreSQL.
Fazer
design
das
pginas
do 8
sistema.
Total de pontos: 61
Tabela 1 - Product Backlog
4.3.5 Sprints
Abaixo segue a diviso de Sprints adotada no desenvolvimento do sistema:
Sprint 1 (12 pontos) - Janeiro: Desenvolver a Index (5), Configurar o banco
de dados PostgreSQL (1), Fazer o deploy do sistema no Heroku (3), Desenvolver a
classe de Usurios (3).
Motivao: A equipe achou interessante desenvolver primeiro a interface do
sistema, assim como preparar boa parte da sua infraestrutura. Ao criar o projeto, o
banco de dados automaticamente fica pronto, facilitando assim a criao da classe e
tabela de Usurios. Feito isto, foi hospedado o projeto no Heroku, deixando pronto
assim o deploy.
Sprint 2 (13 pontos) - Fevereiro: Fazer o design das pginas do sistema (8),
Incorporar as bibliotecas do Twitter Bootstrap (5).
24
Motivao: Como a index tem um layout nico, pouca coisa dela pode ser
aproveitada para as demais pginas. Foi priorizado o design de todas as pginas
pensadas do sistema, assim como a incorporao das bibliotecas do Twitter
Bootstrap, que facilita a implementao deste design.
Sprint 3 (12 pontos) - Maro: CRUD de Apartamentos (3), CRUD de Quartos
(3), CRUD de Mveis (3), CRUD de Alertas (3).
Motivao: Com toda a parte visual pronta e com a infraestrutura
praticamente terminada, chega a hora da equipe dar ateno nica e exclusivamente
ao desenvolvimento. Os CRUDs de Apartamentos, Quartos, Mveis e Alertas para j
podermos mockar boa parte do sistema.
Sprint 4 (12 pontos) - Abril: Filtro de quartos por cidade, ms e ano (5),
Formulrio de declarao de interesse em um quarto especfico (1), Funcionalidade
que altera a data do quarto uma vez que ele ocupado (1), Formulrio de
declarao de interesse por quarto enviado por e-mail ao locador (1), Funcionalidade
de envio de e-mail (3), Desenvolver permisses de usurios (1).
Motivao: Com quase tudo desenvolvido para os locadores, o sprint de Abril focou
nos Locatrios. Foram escolhidos os filtros, os formulrios, os envios de e-mail e as
permisses de usurio, permitindo assim que os locadores s consigam ver seus
prprios apartamentos e quartos.
Sprint 5 (12 pontos) - Maio: Permitir o sign up de qualquer locador (1),
Implementar permisso de administrador (1), Renderizar os alertas nas views
corretas (1), Lei do Inquilinato disponvel em uma aba do sistema (1), Desenvolver
menu (1), Conexo com o S3 da Amazon para armazenar fotos de Quartos (3),
Formulrio de aviso de interesse quando no encontra um quarto que lhe interessa
(1), Disponibilizar quartos livres mais recentes na pgina principal (3).
Motivao: Toques finais. O sign up gratuito e simples para qualquer locador,
a Lei do Inquilinato disponibilizada em uma aba do sistema, os alertas sendo
renderizados de maneira correta em todo o sistema, o menu tanto para locatrios
quanto para locadores, a conexo com o S3 da Amazon para permitir upload de
fotos e o ltimo formulrio do sistema.
25
26
5.1.1 Ruby
Ruby uma linguagem de programao dinmica, reflexiva e orientada a
objetos. Foi criada por Yukihiro Matz Matsumoto, no Japo [Matsumoto, 2002].
Ruby foi influenciada pelas linguagens Perl, Smalltalk, Eiffel, Ada e Lisp. Suporta
mltiplos paradigmas da computao, incluindo os funcionais, orientados a objetos e
imperativos, e tem um sistema de tipagem dinmica e gerenciamento de memria
automtico.
5.1.2 Rails
Rails um framework model-view-controller (MVC) que prov estruturas
padro para banco de dados, servios web e pginas web. Ele encoraja e facilita o
uso dos padres da web, como XML ou jSON para transferncia de dados, e HTML,
CSS e JavaScript para exibio e interface de usurio. Alm do MVC, Rails enfatiza
o uso de alguns padres de engenharia de software, como Convention over
Configuration (CoC), Dont Repeat Yourself (DRY) e o Active Record.
informao da maneira que o usurio as percebe. Estas camadas so: View (as
telas, ou seja, o que de fato o usurio v do sistema), Controller (os controladores da
informao, ou seja, quem responsvel por fornecer as informaes relevantes
para cada view) e Model (onde fica toda a lgica do negcio da aplicao, e que
acessado pelos controllers).
Uma vez feito isso, toda a estrutura padro de uma aplicao Ruby on Rails
ser criada. O arquivo Gemfile lista todas as gems do projeto, inclusive a gem Rails,
enquanto o arquivo Gemfile.lock armazena as verses de cada uma destas gems. A
estrutura de pastas segue como descrito a seguir:
App: onde so armazenados os models, views, controllers, assets (onde ficam
armazenados os arquivos CSS e JavaScript), helpers (arquivos Ruby com
mtodos pblicos
para
utilizao
em
views)
mailers
(arquivos
initializers
(onde
esto
armazenados
28
Rails,
ou
dados
do
de
29
configurar
banco
de
dados,
basta
entrar
no
arquivo
a senha deste usurio e escolher o adaptar a ser utilizado (por padro o sqlite3),
como segue:
development:
adapter: postgresql
encoding: unicode
database: meu-projeto-development
username: root
password: senha_root
test:
adapter: postgresql
encoding: unicode
database: meu-projeto-test
username: root
password: senha_root
production:
adapter: postgresql
encoding: unicode
database: meu-projeto-production
pool: 5
username: root
password: senha_root
Ou seja, estamos criando a classe User, sendo que o Rails entende que o
nome das tabelas deve ser sempre no plural, criando assim uma migrao para a
tabela Users; o email:string representa o nome_do_campo:tipo_de_dado esperado.
Poderamos criar diversos campos nesta parte, todos separados por espao, mas no
momento foi decidido que criaramos apenas isso, pois no futuro utilizaremos a gem
Devise para tratar da autenticao de um usurio, e ela traz migraes prestabelecidas para a classe User.
A migrao foi feita, mas precisa ser executada. Para tal, basta executar no
terminal:
$ rake db:migrate
criao
da
index
do
sistema,
foi
criado
arquivo
que se utilize cdigo do Ruby on Rails em uma pgina HTML. Este arquivo no o
nico
responsvel
pela
index,
entretanto,
pois
existe
arquivo
A tag <%= yield %> a responsvel por trazer o contedo da pgina sendo
de fato acessada. importante ressaltar que poderamos ter dado qualquer nome
pasta app/views/pages. Apesar de ela ter sido criada, ainda no existe uma rota
para deix-la acessvel. Como toda rota aponta para uma ao dentro de um
controller, precisaramos criar um controller para exibir a nossa homepage.
Entretanto, no incio do projeto foi definida a adoo da gem HightVoltage uma
biblioteca de gerao de pginas estticas [Thoughtbot,
da
gem,
criamos
arquivo
32
Com isso, o sistema est hospedado no Heroku e pronto para ser acessado.
Lembrando que, toda vez que uma nova verso for enviada ao Heroku, ser
necessrio rodar
$ heroku run rake db:migrate
33
rails
model
Apartament
neighborhood:string
street:string
service_areas_quantity:integer
user:references
Nada novo por aqui, com exceo do ltimo atributo. O parmetro references
serve para informar que o modelo gerado ter uma associao belongs_to com o
atributo informado, ou seja, gerar um user_id e o modelo ser criado com a
seguinte linha de cdigo j implementada:
$ belongs_to user
34
:street,
:number,
:service_areas_quantity,
def full_address
if number.present? && apartment.present?
neighborhood + ", " + street + " " + number + ", Apt " +
apartment
else
public_address
end
end
def public_address
neighborhood + ", " + street
end
def default_code
number + apartment
end
end
35
Isto feito, temos nosso modelo pronto, com alguns mtodos que julgamos
interessantes para exibir os endereos completos e pblicos, alm de um cdigo que
adotamos como padro para todo apartamento do sistema. Percebe-se que pode
somar strings em Ruby, como fica evidenciado na implementao destes mtodos.
Agora, para podermos criar, editar, remover ou visualizar um apartamento,
precisaremos de um controller com todas estas aes implementadas. Para cri-lo,
basta executar o seguinte comando:
$ rails g controller apartaments
A varivel apartments est precedida por um @ para que ela possa ser
acessada dentro da View correspondente desta ao. O mtodo current_user ser
explicado posteriormente, quando a gem devise for explicada. Toda coleo e todo
array tem o mtodo order implementado, onde se passa como parmetro o campo
pelo qual a coleo ser ordenada.
def show
@apartment = Apartment.find(params[:id])
end
36
else
render :edit
end
end
As
views
ficaro
em
38
interpreta cdigo do Ruby on Ruby. As views precisam ter o mesmo nome das
aes, ou seja, index.html.erb, news.html.erb e edit.html.erb. Para executar o cdigo
exibindo o resultado, basta colocar o cdigo dentro de uma tag <%= %>; para
executar mas sem exibir o resultado, <% %>.
Para habilitar as rotas, basta ir at o arquivo routes.rb e adicionar a seguinte
linha de cdigo:
$ resources :apartaments
39
Esta linha significa que, por padro, em todos os e-mails aparecer que o
remetente o e-mail usuario@dominio.com.
def registry(formulario)
@formulario = formulario
mail(to: "outro.usuario@dominio.com", subject: 'Registry Form')
end
40
41
Assim, quase todo trabalho est feito. Agora basta rodar uma migrao para o
modelo que ter uma foto, desta maneira:
rails g migration add_avatar_to_rooms photo:string
42
A gem CanCan uma biblioteca de autorizao para Ruby on Rails, que restringe os
recursos e permisses que um determinado usurio possui [Ryan, 2010]
extremamente til e fcil de ser manipulada, reunindo todas as permisses de
usurio em um nico arquivo. Para ger-lo, basta executar o seguinte comando:
$ rails g cancan:ability
possvel criar diversos perfis de usurio, mas como nosso projeto no necessita de
tanto,
abaixo
est
demonstrado
como
ficou
arquivo
gerado
em
app>models>ability.rb:
class Ability
include CanCan::Ability
def initialize(user)
user ||= User.new # guest user (not logged in)
if user.admin?
can :manage, :all
end
end
end
Isto significa que, se o usurio admin, ele tem permisso completa sobre os
seus apartamentos e quartos; nenhum usurio poder visualizar, editar ou excluir
apartamentos e quartos que no sejam seus, ou seja, que no estejam com seu
user_id.
Alm disso, para esconder um boto ou parte do sistema de acordo com a
permisso, basta adicionar o seguinte bloco de cdigo dentro de uma view:
<% if can? :update, @aparment %>
<%= link_to "Edit", edit_apartment_path(@apartment) %>
<% end %>
43
Desta forma, o CanCan estar habilitado para cada controller que possuir
este cdigo. Como nem todas as pginas do sistema precisam necessitam de
autorizao, este cdigo foi adicionado apenas nos lugares relevantes.
A gem Devise uma soluo de autenticao flexvel para Rails [Neighman,
2009] extremamente verstil, mas apenas uma pequena parcela de seu potencial
foi utilizado no projeto, dado sua baixa complexidade. Depois de adicionada ao
Gemfile e instalada, o primeiro passo executar o seguinte comando:
$ rails generate devise:install
44
devise
:database_authenticatable,
:recoverable,
:rememberable,
45
46
uma
linguagem
de
cdigo
aberto
possibilitando
que
um
Possui
forte
adeso
da
comunidade
com
usurios
ativos
participativos.
47
48
6 CONCLUSO
Neste projeto, possvel observar todos os passos necessrios para a
construo de um sistema de informao que utiliza tcnicas mais recentes do
mercado de trabalho, tais como o uso de metodologias geis e linguagem de
programao utilizando o framework Ruby on Rails. No desenvolvimento do projeto,
foi possvel observar inmeras vantagens para a implementao em curtos perodos
de tempo e poucos recursos humanos.
O desenvolvimento do sistema envolveu desde o levantamento de requisitos
e modelagem de casos de uso e de classes at a implementao usando o
framework Ruby on Rails. A conjugao do uso deste framework com as prticas do
Scrum resultou em um desenvolvimento rpido e eficaz do sistema, que pode ser
replicado em outras aplicaes.
Este trabalho poder servir de guia para aqueles que desejam conhecer uma
pouco do framework Ruby on Rails e aprender o uso das principais gems, o uso do
sistema Heroku para deploy de sistemas de maneira prtica, a customizao do
front-end com auxlio do Twitter Bootstrap e o uso do Devise, uma ferramenta
verstil para autenticao.
No futuro, o projeto Imobiliria Web ir buscar uma popularizao em seu uso
no intuito de obter investimentos em patrocnios ou de venda de informaes para
grandes empresas imobilirias que buscam aprimorar sua base de inteligncia sobre
o perfil de usurios que estejam apenas querendo alugar um quarto em imvel.
O sistema Imobiliria Web estar no ar at o final de 2015, aproveitando a
realizao das Olimpadas do Rio de Janeiro. Uma possvel continuao deste
projeto seria a implementao de todos os testes unitrios e os testes de integrao,
que no foram previstos no escopo do sistema.
49
BIBLIOGRAFIA
Beck, Kent (2001) Manifesto gil, http://www.manifestoagil.com.br/, Janeiro
2015.
Globo (2015) FIPE-ZAP:NDICE http://www.zap.com.br/imoveis/fipe-zap-b,
Maio 2015.
Hansson, H. David (2003),Ruby on Rails, http://rubyonrails.org, Fevereiro
2015.
Henry, Orion. (2007),Heroko, https://www.heroku.com , Junho 2015.
Matsumoto, Yukihiro . (2002). Ruby In A Nutshell, Edition: 1st.
Neighman,
Daniel
(2009)
Gem
Divise,
50