UNISALESIANO Centro Universitário Católico Salesiano Auxilium Curso de Tecnologia em Sistemas para Internet Maria Eliza dos Santos Almeida Pedro Henrique da Silva Brumati SISTEMA IMOBILIÁRIO ON-LINE UTILIZANDO LINGUAGEM JAVA LINS – SP 2010 MARIA ELIZA DOS SANTOS ALMEIDA PEDRO HENRIQUE DA SILVA BRUMATI SISTEMA IMOBILÍARIO ON-LINE UTILIZANDO LINGUAGEM JAVA Trabalho de Conclusão de Curso apresentado à Banca Examinadora do Centro Universitário Católico Salesiano Auxilium, curso de Tecnologia em Sistemas para Internet, sob a orientação da Profª M.Sc Cibele Aparecida Rodrigues Barbosa LINS – SP 2010 Almeida, Maria Eliza dos Santos; Brumati, Pedro Henrique da Silva; Sistema imobiliário on-line utilizando linguagem Java / Maria A449s Eliza dos Santos Almeida; Pedro Henrique da Silva Brumati -- Lins, 2010. 83p. il. 31cm. Monografia apresentada ao Centro Universitário Católico Salesiano Auxilium – UNISALESIANO, Lins – SP, para graduação em Tecnologia em Sistemas para Internet, 2010 Orientadora: Cibele Aparecida Rodrigues Barbosa 1. J2EE. 2. Gerenciamento Imobiliário. 3. Aplicações Web. I Título. CDU 004 MARIA ELIZA DOS SANTOS ALMEIDA PEDRO HENRIQUE DA SILVA BRUMATI SISTEMA IMOBILIÁRIO ON-LINE UTILIZANDO LINGUAGEM JAVA Monografia apresentada ao Centro Universitário Católico Salesiano Auxilium, para obtenção do título de Tecnólogo em Sistemas para Internet. Aprovada em: _____/______/_____ Banca Examinadora: Profª Orientadora: M. Sc. Cibele Aparecida Rodrigues Barbosa Titulação: Mestre em Engenharia de Produção pela Universidade de São Paulo (USP). Assinatura: _________________________________ 1º Profº: M. Sc. Alexandre Ponce de Oliveira Titulação: Mestre em Ciência da Computação pelo Centro Universitário Eurípedes de Marília (Univem). Assinatura: _________________________________ 2º Profº: M. Sc. João João Artur Izzo Titulação: Mestre em Comunicação pela Universidade Paulista (UNIP). Assinatura: _________________________________ DEDICATÓRIA A Isabel, por acreditar na minha capacidade, não medindo esforços para que eu realizasse meus sonhos. Agradeço pela dedicação, carinho, amor, pelo exemplo de coragem, determinação e bondade, ao qual eu tenho orgulho de poder chamá-la de Mãe. Maria Eliza Dedico esta monografia aos meus familiares, especialmente para minha mãe Marli e minha avó Vicentina, que em nenhum momento mediram esforços para a realização dos meus sonhos, que sempre me mostraram os caminhos corretos e me ajudaram a fazer as melhores escolhas. Também dedico a minha companheira de monografia, Maria Eliza, que sempre esteve me apoiando, motivando e ensinando-me a ser uma pessoa melhor. A vocês devo essa pessoa que me tornei, e tenho muito honra em tê-los ao meu lado. Pedro Henrique AGRADECIMENTOS Agradeço em primeiro lugar a Deus, que iluminou os meus passos durante essa caminhada. A minha mãe, Isabel, que sempre esteve ao meu lado me apoiando e incentivando em todos os momentos. Ao meu grande amigo e parceiro de monografia Pedro Henrique, pela amizade, incentivo e pelo aprendizado. A orientadora, Cibele, pela dedicação, confiança e auxílio na realização desta monografia; Ao professor João Artur, pelas conversas, conselhos e carinho dedicado a nós. Obrigada pela amizade. Ao professor Anderson Pazin, pela ajuda, confiança e dedicação ao qual foi de extrema importância no desenvolvimento deste trabalho. Ao Coordenador Eduardo Bergamo, pela atenção, respeito e confiança que sempre teve em nós. Aos meus amigos em especial Bruno Regattieri, Débora Sallino, Juliane, Leandro Pavoni e Murillo, pelos momentos de descontração e incentivo. Aos professores que sempre se dedicaram e nunca mediram esforços para que pudéssemos aprender. A todos muito obrigada! Maria Eliza AGRADECIMENTOS A Deus, o que seria de mim sem a fé que tenho nele. Deus é minha razão de ser e de viver. Aos meus pais, minha irmã, meus avós e a toda minha família que com muito carinho e apoio, não mediram esforços para que eu chegasse até esta etapa de minha vida. À professora Cibele pela paciência na orientação e incentivo, na realização da conclusão desta monografia. Aos professores Anderson Pazin e João Artur Izzo pelo apoio e inspiração no amadurecimento dos meus conhecimentos e conceitos que me levaram a execução e conclusão desta monografia. Ao professor e coordenador Eduardo Bergamo, pelo convívio, pelo apoio, pela compreensão e pela amizade. A todos os professores que foram tão importantes na minha vida acadêmica e a todos que colaboraram no desenvolvimento desta monografia. Aos amigos e colegas, em especial: Leandro Pavoni e Bruno Regattieri, pelo incentivo e pelo apoio constante durante todo o curso. Pedro Henrique RESUMO Este trabalho tem como objetivo mostrar o uso da plataforma Java 2 Enterprise Edition (J2EE), que possui inúmeros recursos para o desenvolvimento de aplicações web. Seguindo a forte tendência de mercado em se desenvolver aplicações baseadas em plataformas web, foi desenvolvido para demonstração da plataforma, um software para gerenciamento imobiliário on-line para pequenas e médias empresas, que visa atender as necessidades básicas de uma imobiliária. Para o desenvolvimento desta ferramenta foram integradas outras tecnologias que, em conjunto com a plataforma J2EE, pode trazer maior flexibilidade e integração do sistema. Entre as demais tecnologias usadas para o desenvolvimento desse sistema estão: Ajax, Cascading Style Sheets (CSS) e Java Server Pages (JSP) que tornam a aplicação mais dinâmica e interativa com o usuário, podendo ser personalizado de acordo com as necessidades dele. Para o armazenamento de dados da imobiliária foi utilizado o sistema gerenciador de banco de dados Oracle Express Edition. Palavras-chave: J2EE. Gerenciamento Imobiliário. Aplicações Web. ABSTRACT This work aims to show the use of Java 2 Enterprise Edition (J2EE), that has numerous features for developing web applications. Following the strong market trend to develop applications based on web platforms, was developed to demonstrate the platform, an on-line real estate management software for small and medium enterprises, which aims to meet the basic needs of an real estate. To develop this tool other technologies that were integrated in conjunction with the J2EE platform can bring greater flexibility and system integration, among the other technologies used to develop this system are: Ajax, Cascading Style Sheets (CSS) and Java Server Pages (JSP) that make the application more dynamic and interactive user, can be customized according to user needs. For data storage system was used, real estate manager of Oracle Database Express Edition. Keywords: J2EE. Real Estate Management. Web Applications. LISTA DE FIGURAS Figura 1. Diagrama de Classe ........................................................................ 19 Figura 2. Diagrama de use-case..................................................................... 20 Figura 3. Diagrama de Sequência .................................................................. 20 Figura 4. Diagrama de Colaboração ............................................................... 21 Figura 5. Diagrama de Componentes ............................................................. 21 Figura 6. Comparação do modelo tradicional e Ajax ...................................... 26 Figura 7. Cadastro de cliente .......................................................................... 31 Figura 8. Cadastro de Imóvel.......................................................................... 31 Figura 9. Corretores........................................................................................ 32 Figura 10. Cadastro de Contrato .................................................................... 32 Figura 11. Cadastro de Recibo ....................................................................... 33 Figura 12. Agenda .......................................................................................... 33 Figura 13. Divulgar Lista ................................................................................. 34 Figura 14. Configurações ............................................................................... 34 Figura 15. Dados da imobiliária ...................................................................... 35 Figura 16. Backup........................................................................................... 35 Figura 17. Cadastro de Imóvel (dados pessoais) ........................................... 36 Figura 18. Cadastro de Imóveis (Dados do Imóvel)........................................ 37 Figura 19. Pesquisa de imóveis ...................................................................... 38 Figura 20. Use Case: Cadastrar funcionário ................................................... 45 Figura 21. Use Case: Cadastrar imóvel .......................................................... 46 Figura 22. Use Case: Cadastrar Proprietário .................................................. 47 Figura 23. Use Case: Cadastrar Inquilino ....................................................... 48 Figura 24. Use Case: Cadastrar fiador ........................................................... 49 Figura 25. Use Case: Efetuar pagamento de aluguel. .................................... 50 Figura 26. Use Case: Cadastrar locação ........................................................ 51 Figura 27. Use Case: Cadastrar venda .......................................................... 52 Figura 28. Use Case: Cadastrar comprador ................................................... 53 Figura 29. Use Case: Gerar relatório de funcionário ...................................... 54 Figura 30. Use Case: Gerar relatório de proprietário ...................................... 54 Figura 31. Use Case: Gerar relatório de imóvel.............................................. 54 Figura 32. Use Case: Gerar relatório de inquilino. .......................................... 55 Figura 33. Use Case: Gerar relatório de fiador. .............................................. 55 Figura 34. Use Case: Cadastrar tipo de imóvel. ............................................. 56 Figura 35. Diagrama de Classe ...................................................................... 57 Figura 36. Diagrama de Sequência 01: Funcionário solicita cadastro ............ 64 Figura 37. Diagrama de Sequência 02: Cadastro de Imóvel .......................... 64 Figura 38. Diagrama de Sequência 03: Cadastro de Proprietário .................. 65 Figura 39. Diagrama de Sequência 04: Cadastro de inquilino ........................ 65 Figura 40. Diagrama de Sequência 05: Cadastro de fiador ............................ 66 Figura 41. Diagrama de Sequência 06: Pagamento de aluguel ..................... 66 Figura 42. Diagrama de Sequência 08: funcionário efetua locação................ 67 Figura 43. Diagrama de Sequência 08: Funcionário efetua venda ................. 67 Figura 44. Diagrama de Sequência 06: Comprador solicita cadastro ............. 68 Figura 45. Diagrama de Sequência 08: Relatório de funcionário ................... 68 Figura 46. Diagrama de Sequência 09: Relatório de proprietário ................... 68 Figura 47. Diagrama de Sequência 10: Relatório de imóvel ........................... 69 Figura 48. Diagrama de Sequência 12: Relatório de inquilino ........................ 69 Figura 49. Diagrama de Sequência 13: Relatório de fiador ............................ 69 Figura 50. Diagrama de Sequência 13: Cadastro de tipo de imóvel ............... 70 Figura 51. Tela inicial do sistema ................................................................... 71 Figura 52. Tela inicial do sistema ................................................................... 72 Figura 53. Cadastro de pessoa física ............................................................. 72 Figura 54. Cadastro de pessoa jurídica .......................................................... 73 Figura 55. Cadastro de imóvel ........................................................................ 74 Figura 56. Cadastro de locação ...................................................................... 75 Figura 57. Efetuar venda ................................................................................ 76 Figura 58. Pagamento de aluguel ................................................................... 77 Figura 59. Relatório de pessoa ....................................................................... 77 Figura 60. Relatório de imóvel ........................................................................ 78 Figura 61. Cadastro de tipo de imóvel ............................................................ 78 LISTA DE QUADROS Quadro 1. Lista de Use-Case ......................................................................... 44 Quadro 2. Estrutura da tabela imóvel ............................................................. 59 Quadro 3. Estrutura da tabela pessoa ............................................................ 59 Quadro 4. Estrutura da tabela fisica ............................................................... 60 Quadro 5. Estrutura da tabela juridica ............................................................ 60 Quadro 6. Estrutura da tabela funcionario ...................................................... 61 Quadro 7. Estrutura da tabela inquilinoFiador ................................................ 61 Quadro 8. Estrutura da tabela aluguel ............................................................ 62 Quadro 9. Estrutura da tabela locacao ........................................................... 62 Quadro 10. Estrutura da tabela venda ............................................................ 63 Quadro 11. Estrutura da tabela tipoImovel ..................................................... 63 LISTA DE SIGLAS E ABREVIATURAS AJAX: Asynchronous JavaScript And XML APIs: Application Programming Interfaces CEP: Código de Endereçamento Postal CGI :Common Gateway Interfaces CNPJ: Cadastro Nacional de Pessoa Jurídica CPF: Cadastro Nacional de Pessoa Física CRECI: Conselho Regional de Corretores de Imóveis DOM: Document Object Mode EE: Enterprise Edition HTML: HyperText Markup Language HTTP: Hyper Text Transfer Protocol IDE: Integrated Development Environment IPTU: Imposto sobre a propriedade predial e territorial urbana J2EE :Java 2 Enterprise Edition J2ME :Java 2 Micro Edition J2SE: Java 2 Standard Edition JDBC : Java Database Connectivity JSP: Java Server Pages JVM: Java Virtual Machine PL/SLQ :Procedural Language/Structured Query Language SE: Standard Edition SGBD: Sistema Gerenciador de Banco de Dados SO: Sistema Operacional SQL : Structured Query Language UF: Unidade da federação UML:Unified Modeling Language XE: Express Edition XHTML: Extensible Hypertext Markup Language XML: Extensible Markup Language XSLT: Extensible Stylesheet Language Transformations SUMÁRIO INTRODUÇÃO .................................................................................................. 14 1. FUNDAMENTOS CONCEITUAIS .............................................................. 17 1.1 UML – UNIFIED MODELING LANGUAGE...........................................................17 1.2 DIAGRAMAS UML .........................................................................................18 1.3 PLATAFORMAS TECNOLÓGICAS......................................................................22 1.3.1 JAVA .........................................................................................................22 1.3.2 J2EE - JAVA 2 ENTERPRISE EDITION ..........................................................23 1.3.3 JDBC - JAVA DATABASE CONNECTIVITY ......................................................24 1.3.4 SERVLETS .................................................................................................24 1.3.5 JSP – JAVASERVER PAGES .......................................................................25 1.3.6 AJAX ........................................................................................................26 1.3.7 CSS - CASCADING STYLE SHEETS ..............................................................27 1.4 SGBD - SISTEMA GERENCIADOR DE BANCO DE DADOS ..................................27 1.4.1 ORACLE.....................................................................................................27 1.4.2 ORACLE XE ...............................................................................................29 2 LEVANTAMENTO DE REQUISITOS .......................................................... 30 2.1 ANÁLISE DE MERCADO ..................................................................................30 2.2 DOCUMENTOS DE REQUISITOS.......................................................................40 2.2.1 VISÃO GERAL DO SISTEMA ...........................................................................40 2.2.2 REQUISITOS FUNCIONAIS ............................................................................40 2.2.3 IMPRESSÃO DE RELATÓRIOS........................................................................42 2.2.4 PROCESSAMENTOS ....................................................................................43 3 ANÁLISE ORIENTADA A OBJETOS ......................................................... 44 3.1 LISTA DE CASOS DE USO...............................................................................44 3.2 DIAGRAMA DE CASOS DE USO .......................................................................45 4 PROJETO DE BANCO DE DADOS ............................................................ 58 4.1 TABELAS ......................................................................................................58 5 PROJETO ORIENTADO A OBJETOS ....................................................... 64 5.1 DIAGRAMAS DE SEQUÊNCIA ...........................................................................64 5.1.1 - FUNCIONÁRIO SOLICITA CADASTRO ............................................................64 5.1.2 - FUNCIONÁRIO SOLICITA CADASTRO DE IMÓVEL............................................64 5.1.3 - PROPRIETÁRIO SOLICITA CADASTRO ..........................................................65 5.1.4 - INQUILINO SOLICITA CADASTRO..................................................................65 5.1.5 - FIADOR SOLICITA CADASTRO .....................................................................66 5.1.6 - FUNCIONÁRIO EFETUA PAGAMENTO DE ALUGUEL.........................................66 5.1.7 - FUNCIONÁRIO EFETUA LOCAÇÃO................................................................67 5.1.8 - FUNCIONÁRIO EFETUA VENDA ....................................................................67 5.1.9 - COMPRADOR SOLICITA CADASTRO .............................................................68 5.1.10 - FUNCIONÁRIO SOLICITA RELATÓRIO DE FUNCIONÁRIO .................................68 5.1.11 FUNCIONÁRIO SOLICITA RELATÓRIO DE PROPRIETÁRIO ..................................68 5.1.12 - FUNCIONÁRIO SOLICITA RELATÓRIO DE IMÓVEL ...........................................69 5.1.13 - FUNCIONÁRIO SOLICITA RELATÓRIO DE INQUILINO .......................................69 5.1.14 - FUNCIONÁRIO SOLICITA RELATÓRIO DE FIADOR ...........................................69 5.1.15 - FUNCIONÁRIO CADASTRA TIPO DE IMÓVEL.................................................. 70 6 IMPLEMENTAÇÃO ORIENTADA A OBJETOS ......................................... 71 6.1 LAYOUT DE TELAS........................................................................................ 71 CONCLUSÃO ................................................................................................... 80 REFERÊNCIAS ................................................................................................ 81 GLOSSÁRIO .................................................................................................... 83 14 INTRODUÇÃO Com o passar dos anos, as empresas tendem a se informatizar e a buscar soluções mais adequadas para gerenciar seus produtos e serviços. Os sistemas on-line baseados nos conceitos de cloud computing (computação em nuvem) tem sido uma das soluções mais procuradas por pequenas e médias empresas pela facilidade de uso, flexibilidade e portabilidade, podendo ser acessado de qualquer lugar que tenha conexão com a internet. Esse tipo de sistema precisa apenas de browser para ser executado, não requer instalação ou atualização de software, podendo rodar em qualquer plataforma. A menor necessidade de processamento do sistema não exige que o cliente troque a sua máquina para executar o sistema, facilitando e diminuindo os gastos com hardware e software. A flexibilidade traz ao usuário uma interação maior com o sistema, podendo adaptá-lo conforme sua necessidade. O suporte torna-se mais fácil, pois não há necessidade de deslocar um técnico ao local. Dalfovo e Amorim (2000) explicam que é de extrema necessidade para as organizações a missão de administrar as informações, pois existe uma crescente demanda e sofisticação na tecnologia da informação de software e hardware, e este recurso será de vital importância para a sobrevivência das empresas. Devido aos fatos já descritos, surgiu a idéia de desenvolver um sistema que dará suporte para gerenciar e administrar os negócios de imobiliárias, cuidando principalmente das locações e vendas dos imóveis, usando os recursos on-line. O sistema de gestão imobiliária on-line traz como proposta às empresas a praticidade de terem seus cadastros sempre atualizados e acesso 24 horas, sem a preocupação de realizar backups ou de perderem seus dados por falha de equipamentos. Seus principais recursos são a avançada tecnologia e a operação simplificada. A partir do acesso de plataformas que possibilitam a integração de base de dados na web, permite uma gestão completa na área imobiliária, inteiramente aos negócios do cliente, armazenam dados que agilizam o 15 gerenciamento de informações da imobiliária, como gerenciamento de imóveis, clientes, proprietários, descrição de imóveis, entre outras funcionalidades. O principal objetivo é desenvolver um sistema web para imobiliárias, que gerencie cadastros e consulta de dados de forma ágil, utilizando uma interface intuitiva e usual de fácil manuseio, possibilitando assim que o usuário sinta-se seguro em utilizar o sistema. Automatizar a geração relatórios e impressão de contratos e recibos de forma rápida, sem que haja necessidade de altos investimentos na empresa em compra de sistemas ou máquinas de alto processamento. Sobre a segurança das informações, o sistema tem um nível muito alto a respeito da integridade dos dados, fazendo com que elas sejam atualizadas e consistentes. Os objetivos do sistema são: a) automatizar as operações decorrentes da rotina imobiliária, como cadastros, consultas, geração de relatórios, entre outros; b) permitir a visualização de disponibilidades de imóveis; c) disponibilizar controle de aluguéis; d) organizar as informações registradas e e) emitir relatórios com informações de imóveis e a consulta de imóveis. O tema torna-se atual e necessário devido à propagação da internet que possibilita a criação de um novo campo de desenvolvimento de sistemas, ao qual é de grande importância desenvolver para a web, já que o mercado necessita de novas ferramentas que sejam voltadas a web usando tecnologias atuais como Java. A tecnologia J2EE(Java 2 Enterprise Edition) traz a possibilidade de se desenvolver sistemas de grande porte para empresas, voltados para internet. O presente trabalho encontra-se dividido em seis capítulos além da Introdução e Conclusão. O primeiro capítulo - Fundamentos Conceituais, apresenta os conceitos sobre as tecnologias utilizadas no desenvolvimento do sistema imobiliário. O segundo capítulo - Levantamentos de Requisitos, apresenta-se uma análise de mercado focando as ferramentas já existentes que desenvolvem as mesmas tarefas do sistema imobiliário proposto. Além disso, mostra as informações do sistema imobiliário com suas características e funcionalidades. 16 O terceiro capítulo - Análise Orientada a Objetos, descreve a análise realizada para desenvolvimento desse sistema mostrando a lista de Caso de Uso, os diagramas de Caso de Uso e Classe. O quarto capítulo - Projeto de Banco de Dados, mostra o desenvolvimento do banco de dados utilizado com tabelas criadas para o sistema. O quinto capítulo - Projeto Orientado a Objeto, mostra o projeto do sistema através dos diagramas de sequência. O sexto capítulo - Implementação Orientada a Objetos, faz a demonstração dos layouts das telas criadas para o sistema. 17 1. FUNDAMENTOS CONCEITUAIS 1.1 UML – Unified Modeling Language De acordo com Silva (2001), UML é uma linguagem para especificar documentação, visualização e desenvolver sistemas orientados a objetos. Une os principais métodos existentes, sendo considerada uma das linguagens mais expressivas para modelar sistemas orientados a objetos. “UML é uma linguagem visual, constituída de elementos gráficos que permite representar os conceitos de paradigmas para modelar sistemas orientados a objetos (BEZERRA, 2006)”. Nogueira (2005), explica que “a UML pode ser utilizada para representar fases dos sistemas, desde os primeiros contatos até a programação, aplicada em qualquer tipo de sistemas em termos de diagramas de orientação a objeto”. Uma modelagem UML possibilita uma visão dos sistemas, que é extremamente necessária para a compreensão, documentação e organização dos sistemas. Por meio de diagramas, é possível representar graficamente os sistemas de diversas formas de visualização, que facilita o entendimento do sistema que está sendo desenvolvido. Basicamente a UML é composta de cinco fases no desenvolvimento de software: análise de requisitos, análise, design (projeto), programação e testes (SILVA, 2009). Análise de requisitos: deve ser a primeira fase a ser realizada no desenvolvimento de software, pois visa buscar as funcionalidades do sistema e a necessidade do usuário, que são expressas através das funções de “UseCase” (SILVA, 2009). Análise: esta fase faz as abstrações de classes e objetos e outros mecanismos que possam estar presentes. As classes são modeladas e ligadas através de relacionamentos com outras classes e descritas no diagrama de classe. Classes que gerenciam o banco de dados, interface, concorrência e outros não estarão presentes neste diagrama (SILVA, 2009). 18 Design (projeto): Nesta fase novas classes são criadas para representar uma infraestrutura interface do usuário e de periféricos, gerenciamento de banco de dados, comunicação com outros sistemas, dentre outros (SILVA, 2009). Programação: Nesta fase as classes criadas na fase do design são convertidas para a linguagem de programação orientada a objeto. Testes: Esta fase realiza testes de unidades que são para classes individuais ou grupo de classes, integração que são aplicados usando as classes e componentes integrados para verificar se as mesmas estão cooperando umas com as outras como especificado no modelo e aceitação que verifica se o sistema está funcionando como especificados nos diagramas de “Use-Case” (SILVA, 2009). 1.2 Diagramas UML Os diagramas são representações gráficas do modelo que simplificam e melhoram o entendimento do sistema a ser desenvolvido. Os relacionamentos são representados por meio de associações, herança, generalização ou refinamento. Dentre os vários tipos de diagramas da UML, podem-se destacar cinco deles: classes, use-case, sequência, colaboração e componentes. Diagramas de Classes: usado para representar a estrutura estática de uma classe de um sistema; as classes podem ser relacionadas com outras de várias maneiras, como associação, especialização, dependências e em pacotes. Os relacionamentos são mostrados no diagrama de classes juntamente com as suas estruturas internas, que são os atributos e operações (FLOWER, 2005). A figura 1 exemplifica um modelo de diagrama de classe que gerencia pedidos de clientes. 19 Fonte: FOWLER, 2005, p. 53 Figura 1. Diagrama de Classe Diagrama de Use-Case: corresponde a uma visão externa do sistema e representa graficamente os atores do sistema e relacionamento entre esses elementos. O diagrama de use-case tem como objetivo ilustrar em um nível alto de abstração quais elementos e funcionalidades do sistema (BEZERRA, 2006). A figura 2 mostra um diagrama de Use-Case de compra de produto. 20 Fonte: FOWLER, 2005, p. 107 Figura 2. Diagrama de use-case Diagrama de sequência: representa uma sequência de processos do sistema, descreve a maneira como os grupos de objetos colaboram em algum comportamento ao longo do tempo. Ele registra o comportamento de um único caso de uso e exibe os objetos e as mensagens passadas entre esses objetos no caso de uso (FOWLER, 2009). A figura de 3 mostra um diagrama de sequência de cálculo do valor de pedido pelo cliente Fonte: FOWLER, 2005, p. 69 Figura 3. Diagrama de Sequência 21 Diagrama de colaboração: semelhante ao diagrama de sequência mostra a interação de objetos e seus relacionamentos e mensagens trocadas entre eles (FOWLER, 2005). A figura 4 demonstra um Diagrama de Colaboração que mostra a interação da classe vendedor com as classes de compradores. Fonte: Scott, 2002, p. 60 Figura 4. Diagrama de Colaboração Diagrama de componente: mostra como as classes deverão se organizar através da noção de componentes de trabalho. É utilizado quando se tem a necessidade de dividir o sistema em componentes ou mostrar seus relacionamentos por meio de interface (FOWLER, 2005). A figura 5 mostra um modelo de Diagrama de Componentes, demonstrando a interação de um caixa com o sistema de vendas. Fonte:FOWLER, 2005, p. 135 Figura 5. Diagrama de Componentes 22 1.3 Plataformas Tecnológicas 1.3.1 Java Java é uma linguagem de programação de alto nível, muito similar a linguagem C++, mas com características herdadas de outras linguagens. Desenvolvida pela Sun Microsystem em 1991, tem como principais características a programação orientada a objeto, a portabilidade por ser a única linguagem multi-plataforma. Em maio de 1995, a plataforma Java foi adotada mais rapidamente do que qualquer outra linguagem de programação na história da computação (MORAES, 2009). Em 2004, a linguagem Java já tinha atingido a marca de três milhões de desenvolvedores em todo o mundo. Java continua crescendo e hoje é, com certeza, um padrão para o mercado oferecendo qualidade, performance e segurança ainda sem nenhum competidor a altura (MORAES, 2009). Java tornou-se popular pelo uso na Internet e hoje possui seu ambiente de execução presente em web browsers, mainframes, Sistemas Operacionais, celulares, palmtops e cartões inteligentes (JAVA, 2009). Deitel (2005) diz que “Java se tornou a linguagem preferida para implementar aplicativos baseados na Intranet, Internet e software para dispositivos que se comunicam através de uma rede”. A linguagem Java difere das outras linguagens, pois é compilada para bytecodes, ao invés de linguagem de máquina como as outras linguagens estáticas. Os bytecodes são interpretados pela Java Virtual Machine (JVM) instalada na máquina do usuário, que os converte em códigos executáveis. A JVM é responsável pelo gerenciamento dos aplicativos, à medida que são executados (JAVA, 2009). Pode ser encontrada em três plataformas principais de desenvolvimento: J2SE (Java 2 Standard Edition) que é o ambiente de desenvolvimento mais utilizado. Isso porque seu uso é voltado a computadores pessoais e servidores, onde há bem mais necessidade de aplicações; J2EE (Java 2 Enterprise Edition) utilizada no desenvolvimento de grandes aplicações voltadas ou não a 23 internet; J2ME (Java 2 Micro Edition) utilizada no desenvolvimento de aplicativos para dispositivos móveis, como celulares (JAVA, 2009) 1.3.2 J2EE - Java 2 Enterprise Edition J2EE consiste em um conjunto de serviços, APIs (Interfaces de Programação de Aplicação) e protocolos, que oferecem a funcionalidade para o desenvolvimento de aplicações de multicamadas, baseadas na web (OLIVEIRA, 2004). O J2EE tem como objetivo fornecer uma plataforma independente, portável, multiusuário, segura e padronizada de classe corporativa para instalações do lado do servidor escrita na linguagem Java (ROMAN, AMBLER E JEWELL, 2004). Esta plataforma tem como objetivo facilitar o desenvolvimento de software exatamente para o ambiente corporativo que tenha interfaces com a internet. Formado por um conjunto de componentes de software padronizados que fornecem os principais serviços necessários para desenvolver um sistema multicamada de qualidade, o J2EE contém praticamente todas as APIs Java que trabalham no lado do servidor (GOMES, 2000). Sampaio (2005) afirma que o modelo de programação J2EE é baseado em containers que fornecem todos os serviços necessários para a aplicação corporativa. Isto faz com que os desenvolvedores escrevam menos códigos, diminuindo o tempo de desenvolvimento e riscos dos projetos, e os problemas de manutenção. J2EE possui uma arquitetura dividida em três camadas lógicas as quais separam os componentes da aplicação de modo a atribuir papéis e responsabilidade para cada parte. A primeira camada é a de aplicação; composta pelos componentes web, esta camada é responsável pela interação com o cliente. A segunda camada é a de aplicação, que tem como função armazenar toda a lógica de processamento; os componentes desta camada recuperam os dados que estejam no banco de dados ou do sistema de informação. A terceira camada é a de interação, faz a função de comunicar-se 24 com os sistemas de retaguarda, como banco de dados ou aplicações que rodam em mainframes (ABINADER e LINS, 2006). A plataforma possui diversas especificações, com funcionalidades diferentes, entre elas estão: Java Database Connectivity (JDBC), Servlets, Java Server Page (JSP). 1.3.3 JDBC - Java Database Connectivity Os JDBC são conectores do pacote Java fornecido pelos fabricantes de banco de dados ou terceiros, responsáveis por fazer a conexão com o banco de dados (SANTOS, 2007). JDBC oferece uma biblioteca padrão para acessar bancos de dados relacionais. Usando a API JDBC, pode-se acessar uma variedade de diferentes bases de dados SQL com exatamente a mesma sintaxe Java (HALL, 2001). As APIs JDBC são implementadas via um gerenciador de driver que pode suportar conexões a diferentes bancos de dados. O driver JDBC pode ser escrito completamente em Java de forma que possa ser baixado como parte de um applet, ou pode ser implementado usando métodos nativos que criariam uma espécie de ponte para as bibliotecas existentes de acesso a banco de dados (UMEDA, 2009). 1.3.4 Servlets Servlets são classes Java que rodam em um servidor web, agindo como um meio de camadas entre pedidos vindo de um navegador web, ou cliente HTTP e outras bases de dados ou aplicações HTTP (HALL, 2001). Como servlets são escritos em Java, eles criam extensões sofisticadas em um servidor, independentemente do sistema operacional. Os servlets podem ler dados enviados pelo usuário por meio de um formulário de uma página web, podendo gerar conteúdos dinâmicos como uma página personalizada, enviar uma mensagem de volta ao cliente com informações em 25 formatos HTML ou mesmo em outros formatos. De acordo com Ambler (2006), os servlets recebem dados (uma solicitação), realizando alguma lógica e gravando os dados (uma resposta). Os servlets podem ser reutilizados, pois guardam os dados na memória podendo ser usado repetidamente para atender a muitas solicitações, sem precisar reiniciar o processo toda vez que for requisitado pela rede, diferente do CGI (Common Gateway Interfaces) que precisa ser carregado toda vez que é requisitado. A utilização do servlet padroniza e torna portável a distribuição ou implementação da aplicação. Cria uma solução de cliente/servidor, sendo assim uma das melhores alternativas para criação de aplicação web. 1.3.5 JSP – JavaServer Pages De acordo com Temple (2004), as páginas JSP foram criadas para contornar algumas das limitações no desenvolvimento com Servlets: se em um Servlet a formatação da página HTML resultante do processamento de uma requisição mistura-se com a lógica da aplicação em si, dificultando a alteração dessa formatação, em uma página JSP essa formatação encontra-se separada da programação, podendo ser modificada sem afetar o restante da aplicação. Por ser uma tecnologia baseada em Java, ela aproveita todos os recursos e vantagens da linguagem. O JSP pode conter HTML ou XML e tags JSP específicos, que podem ou não conter código Java, para a geração dinâmica de uma página. O JSP permite separar a programação lógica da programação visual, isto facilita o desenvolvimento de aplicações maiores, onde programador e designer podem trabalhar no mesmo projeto, mas de forma independente (GEHL e BUENO, 2009). 26 1.3.6 AJAX Moroni (2007) diz AJAX é a abreviação de Asynchronous Javascript and XML. Não é uma tecnologia, mas sim uma metodologia, que utiliza tecnologias como JavaScript, DOM e XML. Com a utilização do AJAX, evita-se que a cada solicitação do servidor a página seja recarregada completamente. Para Sampaio (2007), AJAX é uma releitura de técnicas de script dinâmico com o uso do objeto XmlHttpRequest, que é capaz de enviar requisições HTTP de dentro do scripts Javascript. AJAX incorpora em suas aplicações: a) apresentação baseada em padrões, com a utilização de XHTML e CSS; b) exposição e interação dinâmica usando o DOM; c) intercâmbio e manipulação de dados usando XML e XSLT; d) recuperação assíncrona de dados usando XMLHttpRequest; e) JavaScript unindo todas elas em conjunto. Fonte: GARRETT, 2005 Figura 6. Comparação do modelo tradicional e Ajax o objeto 27 Desenvolver aplicações utilizando AJAX traz uma interatividade maior para o usuário, pois uma vez carregada a página, ela não necessita fazer a requisição com o servidor a cada interação, como foi mostrado na figura 6. A maior vantagem das aplicações AJAX é que elas rodam no próprio browser desde que tenham sido lançados após 2001, são eles: Mozilla Firefox, Internet Explorer 5 ou superior, Opera, Konqueror e Safari, os quais são os mais utilizados. 1.3.7 CSS - Cascading Style Sheets CSS ou folha de estilos de acordo com Flanagan(2004), é um padrão para especificar a apresentação visual de documentos HTML(ou XML). Ao invés de formatar a aparência do documento na marcação HTML, cria-se uma folha de estilos para definir o aspecto visual do documento. Com o uso do CSS, o código fonte do documento HTML fica com um melhor entendimento, tornando mais fácil na hora de fazer alterações tanto no documento quanto em seu visual. 1.4 SGBD - Sistema Gerenciador de Banco de Dados Um SGBD é uma coleção de programas que permitem ao usuário definir, construir e manipular Bases de Dados para as mais diversas finalidades. (BERGAMO, 2008). O SGBD armazena completamente toda a descrição dos dados armazenados, e seus relacionamentos e a forma como esses dados são acessados. (BERGAMO, 2008). 1.4.1 Oracle O Sistema Gerenciador de Banco de Dados (SGBD) Oracle surgiu no final da década de 70, quando Larry Ellison vislumbrou uma oportunidade que 28 outras companhias não haviam percebido. Ao encontrar a descrição de um protótipo funcional de um banco de dados relacional, descobriu que nenhuma empresa tinha se empenhado em comercializar essa tecnologia (ORACLE, 2009). De acordo com Ramalho (1999), o Oracle é um sistema de gerenciamento de banco de dados relacional que, além do banco de dados, possui uma instância de servidor Oracle. O Oracle possui duas estruturas, a física e a lógica. Elas são separadas, podendo-se gerenciar o armazenamento físico sem afetar o acesso lógico de armazenamento. O SGBD Oracle utiliza a linguagem PL/SLQ (Procedural Language/Structured Query Language), para tratar e gerenciar a base de dados. Os SGBD Oracle estão divididos em seis grandes versões, segundo Oracle (2009): a) Standard Edition (SE) Possui funções básica de banco de dados. Desenvolvido para pequenas e médias empresas; b) Enterprise Edition (EE) Possui mais funcionalidades que a Standard Edition, especialmente nas áreas de performance e segurança.; c) Standard Edition One, introduzido com o Oracle 10g, possui algumas restrições de funcionalidades adicionais. Desenvolvido para pequenas empresas com capital restrito; d) Express Edition (XE) versão básica simplificada do banco de dados, baseada no código do Oracle 10g Release 2 para desenvolvimento, implementação e distribuição gratuitas; e) Oracle Personal Edition: versão com as características e funcionalidades da versão Enterprise Edition, mas voltada para desenvolvedores e usuários; f) Oracle Database Lite: versão de tamanho compacto desenvolvida para rodar em dispositivos móveis. 29 1.4.2 Oracle XE O Oracle XE é uma versão gratuita de SGDB da Oracle, que pode ser desenvolvido e implementado em aplicativos de várias plataformas, trazendo suporte para vários ambientes de desenvolvimento como Java, Net e Web em geral. Pode ser instalado em uma máquina local de baixa configuração. O XE armazena até 4GB de dados do usuário, sendo disponível para Windows de 32 bits e também para uma grande variedade de SO. 30 2 LEVANTAMENTO DE REQUISITOS 2.1 Análise de Mercado Após realizar uma pesquisa de software no ramo imobiliário, foram encontradas várias ferramentas que proporcionam o gerenciamento imobiliário. No entanto, elas não dispõem de alguns recursos como a personalização do sistema e portabilidade. Encontram-se disponíveis no mercado várias ferramentas para gerenciamento de ambiente para locação de imóveis, todas com suas características e particularidades. Assim serão descritas com mais detalhes as ferramentas Ageo Profissional e Super Imobiliária on-line que, pelas suas características e qualidades, são as mais requisitadas pelo mercado e também por estarem mais próximas do Sistema Imobiliário proposto no presente trabalho. O Ageo Profissional é software local para gerenciamento imobiliário que possui disponível os seguintes recursos: a) cadastro de clientes; b) cadastro de imóveis; c) contrato simplificado; d) recibo; e) agenda; f) divulgação dos imóveis cadastrados; g) configurações; h) cadastro de corretores; i) dados da Imobiliária; j) backup. Na tela de Cadastro de Clientes (Figura 7), é possível realizar essa ação diferenciando o cliente em pessoa física ou jurídica, com os seguintes atributos: Nome, endereço, CEP, bairro, estado, cidade, se for pessoa física CPF, ou se for jurídica CNPJ, RG, telefone, data de nascimento, fax, celular, e e-mail. 31 Também oferece a visualização dos imóveis do cliente. Com as opções na parte superior da tela: novo, salvar, cancelar, imprimir, excluir, atualizar, pesquisar e sair. Fonte: Ageo Profissional Figura 7. Cadastro de cliente Fonte: Ageo Profissional Figura 8. Cadastro de Imóvel Cadastro de Imóveis (Figura 8): neste cadastro é obrigatório selecionar o cliente dono no imóvel (proprietário) e possui os seguintes atributos: endereço, 32 bairro, CEP, cidade, estado, telefone, celular, tipo, categoria, modalidade, status, quantidade de chaves, corretor, valor, hora visita, descrição, e inclusão de fotos do imóvel. Com as opções na parte superior da tela: novo, salvar, cancelar, imprimir, excluir, atualizar, pesquisar e sair. Corretores (Figura 9) nesta tela deverão ser fornecidos os dados do corretor, o nome e telefone. Com as opções na parte superior da tela: novo, salvar, cancelar, excluir, atualizar, pesquisar e sair Fonte: Ageo Profissional Figura 9. Corretores Contrato simplificado (Figura 10): São solicitados os seguintes atributos: nome, endereço, bairro, CEP, cidade, estado, CPF, RG, órgão empresarial, telefone, data, cláusulas e a opção obrigatória de buscas um cliente para finalizar o contrato. Com as opções na parte superior da tela: novo, salvar, cancelar, imprimir, excluir, atualizar, pesquisar e sair. Fonte: Ageo Profissional Figura 10. Cadastro de Contrato 33 Recibo (Figura 11): nessa tela, é solicitado nome, valor, referente, cidade, data e campo para buscar o cliente para concretizar o recibo. Com as opções na parte superior da tela: novo, salvar, cancelar, imprimir, excluir, atualizar, pesquisar e sair. Fonte: Ageo Profissional Figura 11. Cadastro de Recibo Agenda (Figura 12): é solicitado nome, endereço, bairro, cidade, telefone, celular, fax, e-mail, site e um campo de observações. Com as opções na parte superior da tela: novo, salvar, cancelar, imprimir, excluir, atualizar, pesquisar e sair. Fonte: Ageo Profissional Figura 12. Agenda 34 A Figura 13 mostra a tela de divulgação dos imóveis cadastrados onde são solicitados os seguintes atributos para a geração de uma lista de imóveis, clientes, categoria, modalidade, tipo, status, valor mínimo e máximo. Depois de fornecer os dados, é gerada a lista e também disponível a opção imprimir. Com a opção na parte superior da tela: sair. Fonte: Ageo Profissional Figura 13. Divulgar Lista Fonte: Ageo Profissional Figura 14. Configurações 35 Já a Figura 13 foca a tela de configurações que faz as alterações do status do imóvel. Com as opções na parte superior da tela: atualizar e sair. Dados da imobiliária representados pela Figura 14 deverão ser informados os dados da imobiliária, com os seguintes atributos: nome, endereço, bairro, CEP, cidade, telefone, fax, e-mail, site, CNPJ, IE, CRECI, e logotipo. Com as opções na parte superior da tela: salvar, cancelar e sair Fonte: Ageo Profissional Figura 15. Dados da imobiliária Fonte: Ageo Profissional Figura 16. Backup 36 A tela para backup, representada pela Figura 16, é onde o sistema tem a opção de backup dos dados, que podem ser armazenados em disco. Com as opções na parte superior da tela: atualizar e sair. Este software é gratuito para testar, é preciso comprar a licença para utilizar todos os seus recursos. Ele roda em sistema operacional Windows 98/Me/XP/2000. Outra opção de ferramenta para gerenciamento de imobiliária é a Super Imobiliária on-line, que trabalha com várias imobiliárias, porém com apenas uma por região. As características do software são: a) ofertas selecionadas b) cadastro de imóvel c) corretor virtual d) central do cliente e) imobiliárias f) torne-se parceiro g) mapa do site Fonte: Super imobiliária Figura 17. Cadastro de Imóvel (dados pessoais) 37 Telas do site: Cadastro de imóvel (Figura17): são solicitados os dados do proprietário com os seguintes atributos: nome do proprietário, e-mail, telefone residencial, comercial e celular, endereço, complemento, bairro, cidade, estado e CEP. Na mesma tela, é necessário informar os dados do imóvel com os seguintes atributos: tipo de transação (venda ou locação), finalidade (residencial ou comercial) e tipo de imóvel. Fonte: Super imobiliária Figura 18. Cadastro de Imóveis (Dados do Imóvel) Como mostra a figura 18, são solicitados os demais dados do imóvel com os seguintes atributos: endereço, complemento, bairro, cidade, estado, CEP, ocupação, área útil, área total, chaves, valor do IPTU, agenda de visita com opção sim ou não, campos para informações, observações e descrição interna do imóvel, posição do imóvel, quantidade de quartos e suítes, valor do condomínio e vagas na garagem. 38 Fonte: Super imobiliária Figura 19. Pesquisa de imóveis Na tela de pesquisa de imóveis (Figura 19), realiza a pesquisa de imóveis cadastrados no sistema, a busca pode ser feita por: tipo de transação (compra, locação vazio e locação mobiliado), finalidade (residencial ou comercial), tipo de imóvel, localização (estado e bairro), valor do imóvel (valor 39 mínimo, valor máximo), números de quartos e vagas na garagem. 40 2.2 Documentos de Requisitos 2.2.1 Visão geral do sistema O sistema para imobiliária on-line trata do gerenciamento de imóveis a serem locados e vendidos. Também poderá realizar cadastros de funcionários, imóveis, inquilinos, proprietários e fiadores. O sistema deverá vincular proprietário por imóvel, vincular inquilino por fiador, inquilino por imóvel. O sistema poderá gerar diversos relatórios como aluguel, proprietário, inquilino, fiador, imóvel locado, imóvel disponível para venda ou locação, gerar comprovante de pagamento de aluguel e impressão de contrato, controlar o recebimento de aluguel. Ao realizar uma locação ou venda, o sistema deverá atualizar automaticamente o status do imóvel e as informações pertinentes a ele. O imóvel deverá pertencer apenas a um proprietário devidamente cadastrado no sistema; a locação só poderá ser gerada caso o fiador e inquilino estejam cadastrados no sistema; o contrato deverá ser gerado após a confirmação da locação. A venda só poderá ser efetuada caso o imóvel esteja disponível no sistema e o comprador devidamente cadastrado. 2.2.2 Requisitos funcionais O sistema deve permitir a inclusão, remoção e alteração de: a) funcionários, com os seguintes atributos: código do funcionário, nome, endereço, bairro, cidade, UF, CEP, CPF, telefone, celular, e-mail, login e senha; b) imóvel: código do imóvel, identificação do proprietário, endereço, bairro, cidade, UF, CEP, referência, número da escritura, largura do terreno, 41 comprimento do terreno, quantidade de quartos, quantidade de salas, quantidade de vagas na garagem, quantidade de banheiros, tipo de imóvel (casa, apartamento, terreno, chácara, rancho, sitio, fazenda), transação (aluguel ou venda), situação (disponível, alugado, vendido), finalidade (comercial ou residencial), imagens do imóvel, valor de venda do imóvel, valor do aluguel, valor do IPTU, observações; c) proprietário: código do proprietário, nome, endereço, bairro, cidade, UF, CEP, telefone, celular, e-mail, data de nascimento, sexo, RG, CPF, CNPJ, IE, razão social; d) inquilino: código do inquilino, identificação do fiador, nome, endereço, bairro, cidade, UF, CEP, telefone, celular, e-mail, data de nascimento, sexo, RG, CPF, CNPJ, IE, razão social, renda mensal; e) fiador: código do fiador, nome, endereço, bairro, cidade, UF, CEP, telefone, celular e-mail, data de nascimento, sexo, RG, CPF, CNPJ, IE, razão social, renda mensal; f) locação: código da locação, identificação do inquilino, identificação do fiador, identificação do imóvel, número do contrato, data da locação, duração do contrato, dia do vencimento, valor do aluguel e observação; g) venda: código da venda, identificação do imóvel, identificação do comprador, valor do imóvel, financiadora, juros, multa e observação; h) comprador: código do comprador, nome, endereço, bairro, cidade, UF, CEP, telefone, celular e-mail, data de nascimento, sexo, RG, CPF, CNPJ, IE e razão social; i) tipo de imóvel: código do tipo e descrição; 42 2.2.3 Impressão de relatórios O sistema permitirá a impressão dos seguintes relatórios: a) Imóveis disponíveis para a locação ordenados por cidades, contendo a descrição do imóvel, proprietário, endereço, valor do aluguel; b) Imóveis disponíveis para a venda ordenados por cidades, contendo a descrição do imóvel, proprietário, endereço, valor do imóvel; c) Imóveis locados ordenados por cidades, contendo a descrição do imóvel, proprietário, endereço, valor do aluguel, identificação do inquilino; d) Proprietários ordenados por nome, contendo a os dados do proprietário e quantidade de imóveis; e) Inquilino ordenados por nome, contendo os dados do inquilino, e quantidade de imóveis locados; f) Fiador ordenados por nome, contendo a os dados do fiador e os inquilinos ligados a ele; g) Comprador ordenados por nome, contendo a os dados do comprador; h) Funcionário ordenados por nome, contendo a os dados do funcionário; i) Imóveis por transação: i. Livre para locação ordenados por cidade, contendo a descrição do imóvel e dados da locação; ii. Livre para venda ordenados por cidade, contendo a descrição do imóvel e dados da venda; e 43 iii. Locados ordenados por cidade, contendo a descrição do imóvel e dados da venda; 2.2.4 Processamentos a) Comprovante de pagamento de aluguel, com os seguintes atributos: código do aluguel, número contrato, data de pagamento, multa, juros, valor, valor total, forma de pagamento, vencimento e observação; b) O sistema deve permitir o processamento de contrato de venda, com seguintes atributos: data de venda, identificação do imóvel (previamente cadastrado), identificação do comprador (previamente cadastrado), valor da venda; c) O sistema deve permitir o processamento de contrato de locação, com seguintes atributos: data de locação, número do contrato, duração do contrato, identificação do imóvel (previamente cadastrado), identificação do inquilino (previamente cadastrado), identificação do proprietário (previamente cadastrado), valor do aluguel, data vencimento; e d) Prever situação de baixa de aluguel: Ao gerar uma locação automaticamente o sistema deverá gerar um aluguel mensal para o inquilino com os seguintes atributos: código aluguel, identificação da locação, identificação do inquilino (previamente cadastrado), valor da locação, dia de vencimento, dia do pagamento, multa, juros, valor total, situação (pago ou aberto). Quando o inquilino efetuar o pagamento do aluguel, o sistema automaticamente atualizará a situação do aluguel. 44 3 ANÁLISE ORIENTADA A OBJETOS 3.1 Lista de Casos de Uso Nº Descrição Evento Use case Resposta 01 Funcionário solicita cadastro Dados_funcionário Cadastrar funcionário Msg01 02 Funcionário cadastra imóvel Dados_imóvel Cadastrar imóvel Msg02 03 Proprietário solicita cadastro Dados_proprietário Cadastrar proprietário Msg03 04 Inquilino solicita cadastro Dados_inquilino Cadastrar inquilino Msg04 05 Fiador solicita cadastro Dados_fiador Cadastrar fiador Msg05 06 Funcionário efetua pagamento de aluguel Dados_aluguel Efetuar pagamento de aluguel Msg06 07 Funcionário efetua locação Dados_locação Efetuar locação Msg07 08 Funcionário registra venda Dados_venda Efetua Venda Msg08 09 Comprador solicita cadastro Dados_comprador Cadastrar comprador Msg09 10 Funcionário solicita relatório de funcionário Dados_Rel_funcionario Gerar relatório de funcionário Rel01 11 Funcionário solicita relatório de proprietário Dados_Rel_proprietário Gerar relatório de proprietário Rel02 12 Funcionário solicita relatório de imóvel Dados_Rel_imovel Gerar relatório de imóvel Rel03 13 Funcionário solicita relatório de inquilino Dados_Rel_inquilino Gerar relatório de inquilino Rel04 14 Funcionário solicita relatório de fiador Gerar relatório de fiador Rel05 15 Funcionário cadastra tipo de imóvel Cadastrar tipo de imóvel Msg10 Dados_Rel_fiador Dados_tipo_imovel Fonte: Elaborada pelos autores, 2009 Quadro 1. Lista de Use-Case 45 3.2 Diagrama de Casos de Uso Número: 01 - Use Case: Cadastrar Funcionário: Fonte: Elaborada pelos autores, 2009 Figura 20. Use Case: Cadastrar funcionário Curso Normal 1- o funcionário deseja se cadastrar e informa seu cpf; 2- o sistema verifica se não existe funcionário associado ao cpf; 3- o funcionário informa seus demais dados e confirma cadastro; 4- o sistema cria instância na tabela pessoa; 4.1- o sistema cria instância na tabela física; 4.2- o sistema cria instância de funcionário; e 5- o sistema emite Msg01 informando "Funcionário cadastrado com sucesso". Curso Alternativo Alternativa 2 - Caso exista o funcionário associado ao cpf 2.1- o sistema exibe os dados do funcionário e uma mensagem com a opção para Alterar ou Excluir; 2.2- o funcionário escolhe a opção Excluir; 2.3- o sistema exclui o funcionário associado ao cpf; e 2.4- o sistema emite a Msg01 "Funcionário excluído com sucesso". Alternativa 2.2 - O funcionário escolhe a opção Alterar 2.2.1- o funcionário altera seus dados; 2.2.2- o sistema atualiza os dados do funcionário associado ao cpf; e 2.2.3- o sistema emite a Msg01 "Dados do funcionário alterados com sucesso". 46 Número: 02 - Use Case: Cadastrar Imóvel: Fonte: Elaborada pelos autores, 2009 Figura 21. Use Case: Cadastrar imóvel Curso Normal: 1- o funcionário deseja cadastrar imóvel e informa o número da escritura do imóvel; 2- o sistema verifica se não existe imóvel associado ao número da escritura; 3- o funcionário informa os demais dados e confirma cadastro; 4- o sistema cria instância de imóvel; e 5- o sistema emite Msg02 informando "Imóvel cadastrado com sucesso". Curso Alternativo: Alternativa 2 - Caso exista o imóvel associado ao número da escritura: 2.1- o sistema exibe os dados do imóvel e uma mensagem com a opção para Alterar ou Excluir; 2.2- o funcionário escolhe a opção Excluir; 2.3- o sistema exclui o imóvel associado a número da escritura; e 2.4- o sistema emite a Msg02 "Imóvel excluído com sucesso". Alternativa 2.2 - O funcionário escolhe a opção Alterar 2.2.1- o funcionário altera seus dados; 2.2.2- o sistema atualiza os dados do imovel associado a número da escritura; e 2.2.3- o sistema emite a Msg02 "Dados do imóvel alterados com sucesso". 47 Número: 03 - Use Case: Cadastrar Proprietário: Fonte: Elaborada pelos autores, 2009 Figura 22. Use Case: Cadastrar Proprietário Curso Normal: 1- o proprietário deseja se cadastrar e informa seu CPF ou CNPJ; 2- o sistema verifica se não existe proprietário associado ao CPF ou CNPJ; 3- o proprietário informa seus demais dados e confirma cadastro; 4- o sistema cria instância na tabela pessoa; 4.1- se for pessoa física o sistema cria instância na tabela física; 4.2- se for pessoa jurídica o sistema cria instância tabela jurídica; e 5- o sistema emite Msg03 informando "Proprietário cadastrado com sucesso". Curso Alternativo Alternativa 2 - Caso exista o proprietário associado ao CPF ou CNPJ: 2.1- o sistema exibe os dados do proprietário e uma mensagem com a opção para Alterar ou Excluir; 2.2- o proprietário escolhe a opção Excluir; 2.3- o sistema exclui o proprietário associado ao CPF ou CNPJ; e 2.4- o sistema emite a Msg03 "Proprietário excluído com sucesso". Alternativa 2.2 - O proprietário escolhe a opção Alterar: 2.2.1- o proprietário altera seus dados; 2.2.2- o sistema atualiza os dados do proprietário associado ao CPF ou CNPJ; e 2.2.3- o sistema emite a Msg03 "Dados do proprietário alterados com sucesso". 48 Número: 04 - Use Case: Cadastrar Inquilino: Fonte: Elaborada pelos autores, 2009 Figura 23. Use Case: Cadastrar Inquilino Curso Normal 1- o inquilino deseja se cadastrar e informa o CPF ou CNPJ; 2- o sistema verifica se não existe inquilino associado ao CPF ou CNPJ; 3- o Inquilino informa seus demais dados e confirma cadastro; 4- o sistema cria instância na tabela pessoa; 4.1- se for pessoa física o sistema cria instância na tabela física; 4.2- se for pessoa jurídica o sistema cria instância tabela jurídica; e 5- o sistema emite Msg04 informando "Inquilino cadastrado com sucesso". Curso Alternativo Alternativa 2 - Caso exista o inquilino associado ao CPF ou CNPJ 2.1- o sistema exibe os dados do inquilino e uma mensagem com a opção para Alterar ou Excluir; 2.2- o inquilino escolhe a opção Excluir; 2.3- o sistema exclui o inquilino associado ao CPF ou CNPJ; e 2.4- o sistema emite a Msg04 "Inquilino excluído com sucesso". Alternativa 2.2 - O inquilino escolhe a opção Alterar 2.2.1- o inquilino altera seus dados; 2.2.2- o sistema atualiza os dados do inquilino associado ao CPF ou CNPJ; e 2.2.3- o sistema emite a Msg04 "Dados do inquilino alterados com sucesso". 49 Número: 05 - Use Case: Cadastrar Fiador: Fonte: Elaborada pelos autores, 2009 Figura 24. Use Case: Cadastrar fiador Curso Normal: 1- o fiador deseja se cadastrar e informa seu CPF ou CNPJ; 2- o sistema verifica se não existe fiador associado ao CPF ou CNPJ; 3- o fiador informa seus demais dados e confirma cadastro; 4- o sistema cria instância na tabela pessoa; 4.1- se for pessoa física o sistema cria instância na tabela física; 4.2- se for pessoa jurídica o sistema cria instância tabela jurídica; e 5- o sistema emite Msg05 informando "Fiador cadastrado". Curso Alternativo: Alternativa 2 - Caso exista o fiador associado ao CPF ou CNPJ 2.1- o sistema exibe os dados do fiador e uma mensagem com a opção para Alterar ou Excluir; 2.2- o fiador escolhe a opção Excluir; 2.3- o sistema exclui o fiador associado ao CPF ou CNPJ; e 2.4- o sistema emite a Msg05 "Fiador excluído com sucesso". Alternativa 2.2 - O fiador escolhe a opção Alterar 2.2.1- o fiador altera seus dados; 2.2.2- o sistema atualiza os dados do fiador associado ao CPF ou CNPJ; e 2.2.3- o sistema emite a Msg05 "Dados do fiador alterados com sucesso". 50 Número: 06 - Use Case: Efetuar pagamento de aluguel: Fonte: Elaborada pelos autores, 2009 Figura 25. Use Case: Efetuar pagamento de aluguel. Curso Normal: 1- o funcionário deseja efetuar de pagamento de aluguel e seleciona o inquilino; 2- o sistema verifica se existe aluguel associado ao inquilino; 3- o funcionário informa os demais dados do aluguel e confirma; 4- o sistema altera o status do aluguel; e 5- o sistema emite Msg06 informando "Pagamento efetuado!" . Curso Alternativo: Alternativa 2 - Caso o pagamento já tenha sido efetuado; 2.1- o sistema exibe os dados da e uma mensagem com a opção para Alterar ou Excluir; 2.2- o funcionário escolhe a opção Excluir; 2.3- o sistema exclui o aluguel associado ao código; e 2.4- o sistema emite a Msg06 "Aluguel excluído com sucesso". Alternativa 2.2 - O funcionário escolhe a opção Alterar 2.2.1- o funcionário altera os dados do aluguel; 2.2.2- o sistema atualiza os dados do aluguel associado ao inquilino; e 2.3- o sistema emite a Msg06 "Aluguel alterado com sucesso". 51 Número: 07 - Use Case: Cadastrar Locação: Fonte: Elaborada pelos autores, 2009 Figura 26. Use Case: Cadastrar locação Curso Normal: 1- o funcionário deseja efetuar locação e seleciona o imóvel em uma lista de imóveis disponíveis para locação; 2- seleciona o inquilino em uma lista de inquilino já cadastrados; 3- seleciona o fiador em uma lista de fiadores já cadastrados; 4- o funcionário informa os demais dados da locação e confirma efetuação de locação; 5- o sistema cria instância de locação; e 6- o sistema emite Msg07 informando "Locação efetuada!" e mostra tela de contrato. Curso Alternativo Alternativa 2 - Caso exista o locação associada ao imóvel; 2.1- o sistema exibe os dados da locação e uma mensagem com a opção para Alterar ou Excluir; 2.2- o funcionário escolhe a opção Excluir; 2.3- o sistema exclui a locação associada ao código; 2.4- o sistema emite a Msg07 "Locação excluída com sucesso". Alternativa 2.2 - O funcionário escolhe a opção Alterar 2.2.1- o funcionário altera os dados da locação; 2.2.2- o sistema atualiza os dados da locação associado ao código; e 2.2.3- o sistema emite a Msg07 "Dados da locação alterados com sucesso". 52 Número: 08 - Use Case: Cadastrar venda: Fonte: Elaborada pelos autores, 2009 Figura 27. Use Case: Cadastrar venda Curso Normal: 1- o funcionário deseja cadastrar venda e seleciona o imóvel em uma lista de imóveis disponíveis para venda; 2- seleciona o comprador em uma lista de compradores já cadastrados; 2- o sistema verifica se não existe venda associado ao imóvel; 4- o funcionário informa os demais dados do imóvel e confirma cadastro de venda; 5- o sistema cria instância de venda; e 6- o sistema emite Msg08 informando "Venda realizada". Curso Alternativo Alternativa 2 - Caso exista venda associada ao código 2.1- o sistema exibe os dados da venda e uma mensagem com a opção para Alterar ou Excluir; 2.2- o funcionário escolhe a opção Excluir; 2.3- o sistema exclui a venda associado ao código; e 2.4- o sistema emite a Msg08 "Venda excluída com sucesso". Alternativa 2.2 - O funcionário escolhe a opção Alterar 2.2.1- o funcionário altera os dados da venda; 2.2.2- o sistema atualiza os dados da venda associado ao código; e 2.2.3- o sistema emite a Msg07 "Dados da venda alterados com sucesso" 53 Número: 09 - Use Case: Cadastrar comprador: Fonte: Elaborada pelos autores, 2009 Figura 28. Use Case: Cadastrar comprador Curso Normal: 1- o comprador deseja se cadastrar e informa seu CPF ou CNPJ; 2- o sistema verifica se não existe comprador associado ao CPF ou CNPJ; 3- o comprador informa seus demais dados e confirma cadastro; 4- o sistema cria instância na tabela pessoa; 4.1- se for pessoa física o sistema cria instância na tabela física; 4.2- se for pessoa jurídica o sistema cria instância tabela jurídica; e 5- o sistema emite Msg09 informando "Comprador cadastrado com sucesso". Curso Alternativo Alternativa 2 - Caso exista o comprador associado ao CPF ou CNPJ: 2.1- o sistema exibe os dados do comprador e uma mensagem com a opção para Alterar ou Excluir; 2.2- o comprador escolhe a opção Excluir; 2.3- o sistema exclui o comprador associado ao CPF ou CNPJ; e 2.4- o sistema emite a Msg03 "Comprador excluído com sucesso". Alternativa 2.2 - O comprador escolhe a opção Alterar 2.2.1- o comprador altera seus dados; 2.2.2- o sistema atualiza os dados do comprador associado ao CPF ou CNPJ; e 2.2.3- o sistema emite a Msg03 "Dados do comprador alterados com sucesso". 54 Número: 10 - Use Case: Gerar relatório de funcionário Fonte: Elaborada pelos autores, 2010. Figura 29. Use Case: Gerar relatório de funcionário Curso Normal: 1 - funcionário solicita relatório de funcionários; 2 - sistema mostra relatório Rel01 na tela. Número: 11- Use Case: Gerar relatório de proprietário Fonte: Elaborada pelos autores, 2010. Figura 30. Use Case: Gerar relatório de proprietário Curso Normal: 1 - funcionário solicita relatório de proprietários. 2 -sistema mostra relatório Rel02 na tela. Número: 12 - Use Case: Gerar relatório de imóvel: Fonte: Elaborada pelos autores, 2010. Figura 31. Use Case: Gerar relatório de imóvel 55 Curso Normal: 1 - funcionário solicita relatório de imóvel; 2 - sistema mostra relatório Rel03 na tela. Número: 13 - Use Case: Gerar relatório de inquilino: Fonte: Elaborada pelos autores, 2010. Figura 32. Use Case: Gerar relatório de inquilino. Curso Normal: 1 - funcionário solicita relatório de inquilino; 2 - sistema mostra relatório Rel04 na tela. Número: 14 - Use Case: Gerar relatório de fiador: Fonte: Elaborada pelos autores, 2010. Figura 33. Use Case: Gerar relatório de fiador. Curso Normal: 1 - funcionário solicita relatório de fiador; 2 - sistema mostra relatório Rel05 na tela. 56 Número: 15 - Use Case: Cadastrar tipo de imóvel: Fonte: Elaborada pelos autores, 2010. Figura 34. Use Case: Cadastrar tipo de imóvel. Curso Normal: 1- o funcionário deseja cadastrar um novo tipo de imóvel e informa o código; 2- o sistema verifica se não existe tipo de imóvel associado ao código 4- o funcionário informa os demais dados do tipo de imóvel e confirma o cadastro; 5- o sistema cria instância de tipo de imóvel; e 6- o sistema emite Msg10 informando "Tipo de imóvel cadastrado com sucesso!". Curso Alternativo Alternativa 2 - Caso exista um tipo de imóvel associado ai código: 2.1- o sistema exibe os dados do tipo de imóvel e uma mensagem com a opção para Alterar ou Excluir; 2.2- o funcionário escolhe a opção Excluir; 2.3- o sistema exclui o tipo de imóvel associado ao código; e 2.4- o sistema emite a Msg03 "Tipo de imóvel excluído com sucesso". Alternativa 2.2 - o funcionário escolhe a opção Alterar 2.2.1- o funcionário altera seus dados; 2.2.2- o sistema atualiza os dados do tipo de imóvel associado ao código; e 2.2.3- o sistema emite a Msg03 "Dados do tipo de imóvel alterados com sucesso". 57 Diagrama de Classes Fonte: Elaborada pelos autores, 2010; Figura 35. Diagrama de Classes 58 4 PROJETO DE BANCO DE DADOS 4.1 Tabelas Tabela: imóvel Chave Primária(PK): codigoImovel Chave Estrangeira (FK): codigoPessoa(pessoa.codigoPessoa), tipoImovel (tipoImovel.codigoTipo) (continua) Nome do campo Tipo de dado Tamanho Permite Nulo? codigoImovel Número 10 Não endereco Texto 100 Não bairro Texto 50 Não cidade Texto 50 Não uf Texto 2 Não cep Texto 10 Não referencia Texto 100 Sim numeroEscritura Texto 14 Não largura Numero 5,2 Não comprimento Numero 5,2 Não quantidadeQuartos Número 2 Sim quantidadeSalas Número 2 Sim quantidadeBanheiros Número 2 Sim codigoTipo Numero 10 Não vagasGaragem Número 2 Sim finalidade Texto 20 Não 59 (conclusão) situação Texto 20 Não transação Texto 20 Não observação Texto 500 Sim valorImovel Número 10,2 Sim valorAluguel Número 6,2 Sim valorIptu Número 6,2 Não codigoPessoa Número 10 Não Fonte: Elaborada pelos autores, 2010; Quadro 2. Estrutura da tabela imóvel Tabela: pessoa Chave Primária(PK): codigoPessoa Nome do campo Tipo de dado Tamanho Permite Nulo? codigoPessoa Número 10 Não nome Texto 150 Não endereco Texto 100 Não bairro Texto 50 Não cidade Texto 50 Não uf Texto 50 Não cep Texto 10 Não telefone Texto 14 Sim celular Texto 14 Sim email Texto 100 Sim Fonte: Elaborada pelos autores, 2010; Quadro 3. Estrutura da tabela pessoa 60 Tabela: fisica Chave Primária(PK): codigoPessoa, Chave Estrangeira(FK): codigoPessoa(pessoa.codigoPessoa) Nome do campo Tipo de dado Tamanho Permite Nulo? rg Texto 13 Não cpf Texto 14 Não dataNascimento Data 10 Não sexo Texto 10 Não codigoPessoa Numero 10 Não Fonte: Elaborada pelos autores, 2010; Quadro 4. Estrutura da tabela fisica Tabela: juridica Chave Primaria (PK): codigoPessoa Chave Estrangeira(FK): codigoPessoa(pessoa.codigoPessoa) Nome do campo Tipo de dado Tamanho razaoSocial Texto 100 Não cnpj Texto 18 Não inscricaoEstadual Texto 12 Não codigoPessoa Numero 10 Não Fonte: Elaborada pelos autores, 2010; Quadro 5. Estrutura da tabela juridica Tabela: funcionario Chave Primaria (PK): codigoPessoa Permite Nulo? 61 Chave Estrangeira(FK): codigoPessoa(pessoa.codigoPessoa) Nome do campo Tipo de dado Tamanho Permite Nulo? login Texto 30 Não senha Texto 30 Não codigoPessoa Numero 10 Não Fonte: Elaborada pelos autores, 2010; Quadro 6. Estrutura da tabela funcionario Tabela: inquilinoFiador Chave Primaria (PK): codigoPessoa Chave Estrangeira(FK): codigoPessoa(pessoa.codigoPessoa) Nome do campo Tipo de dado Tamanho Permite Nulo? codigoPessoa Numero 10 Não renda Numero 10,2 Não Fonte: Elaborada pelos autores, 2010; Quadro 7. Estrutura da tabela inquilinoFiador Tabela: aluguel Chave Primaria (PK): codigoAluguel Chave Estrangeira (FK): codigoLocacao(locacao.codigoLocacao) (continua) Nome do campo Tipo de dado Tamanho Permite Nulo? codigoAluguel Numero 10 Não dataVencimento Data 10 Não dataPagamento Data 10 Não 62 (conclusão) situacao Texto 20 Não multa Numero 10,2 Não juros Numero 10,2 Não valor Numero 8 Não observacao Texto 500 Sim codigoLocacao Numero 10 Não Fonte: Elaborada pelos autores, 2010; Quadro 8. Estrutura da tabela aluguel Tabela: locacao Chave Primaria (PK): codigoLocacao Chave Estrangeira(FK): codigoInquilino(Pessoa.codigoPessoa), codigoFiador(Pessoa.codigoPessoa), codigoImovel(Imovel.codigoImovel). Nome do campo Tipo de dado Tamanho Permite Nulo? codigoLocacao Numero 10 Não numeroContrato Numero 10 Não dataLocacao Data 10 Não valorAluguel Numero 10,2 Não diaVencimento Numero 2 Não duracao Numero 2 Não observacao Texto 500 Sim codigoImovel Numero 10 Não codigoInquilino Numero 10 Não codigoFiador Numero 10 Não Fonte: Elaborada pelos autores, 2010; Quadro 9. Estrutura da tabela locacao 63 Tabela:venda Chave Primaria (PK): codigoVenda Chave Estrangeira(FK): codigoComprador(Pessoa.codigoPessoa), codigoImovel(Imovel.codigoImovel). Nome do campo Tipo de dado Tamanho Permite Nulo? codigoVenda Numero 10 Não valorImovel Numero 8,2 Não dataVenda Data 10 Não financiadora Texto 50 Sim quantidadeMeses Numero 2 Sim juros Numero 4,2 Não multa Numero 4,2 Não observacao Texto 500 Sim codigoImovel Numero 10 Não codigoComprador Numero 10 Não Tipo de dado Tamanho Permite Nulo? codigoTipo Numero 10 Não descricao Numero 10,2 Não Fonte: Elaborada pelos autores, 2010; Quadro 10. Estrutura da tabela venda Tabela: tipoImovel Chave Primaria (PK): codigoTipo Nome do campo Fonte: Elaborada pelos autores, 2010; Quadro 11. Estrutura da tabela tipoImovel 64 5 PROJETO ORIENTADO A OBJETOS 5.1 Diagramas de Sequência 5.1.1 - Funcionário solicita cadastro Fonte: Elaborada pelos autores, 2010 Figura 36. Diagrama de Sequência 01: Funcionário solicita cadastro 5.1.2 - Funcionário solicita cadastro de Imóvel Fonte: Elaborada pelos autores, 2010 Figura 37. Diagrama de Sequência 02: Cadastro de Imóvel 65 5.1.3 - Proprietário solicita cadastro Fonte: Elaborada pelos autores, 2010 Figura 38. Diagrama de Sequência 03: Cadastro de Proprietário 5.1.4 - Inquilino solicita cadastro Fonte: Elaborada pelos autores, 2010 Figura 39. Diagrama de Sequência 04: Cadastro de inquilino 66 5.1.5 - Fiador solicita cadastro Fonte: Elaborada pelos autores, 2010 Figura 40. Diagrama de Sequência 05: Cadastro de fiador 5.1.6 - Funcionário efetua pagamento de aluguel Fonte: Elaborada pelos autores, 2010 Figura 41. Diagrama de Sequência 06: Pagamento de aluguel 67 5.1.7 - Funcionário efetua locação Fonte: Elaborada pelos autores, 2010 Figura 42. Diagrama de Sequência 08: funcionário efetua locação 5.1.8 - Funcionário efetua venda Fonte: Elaborada pelos autores, 2010 Figura 43. Diagrama de Sequência 08: Funcionário efetua venda 68 5.1.9 - Comprador solicita cadastro Fonte: Elaborada pelos autores, 2010 Figura 44. Diagrama de Sequência 06: Comprador solicita cadastro 5.1.10 - Funcionário solicita relatório de Funcionário Fonte: Elaborada pelos autores, 2010 Figura 45. 5.1.11 Diagrama de Sequência 08: Relatório de funcionário Funcionário solicita relatório de proprietário Fonte: Elaborada pelos autores, 2010 Figura 46. Diagrama de Sequência 09: Relatório de proprietário 69 5.1.12 - Funcionário solicita relatório de Imóvel Fonte: Elaborada pelos autores, 2010 Figura 47. Diagrama de Sequência 10: Relatório de imóvel 5.1.13 - Funcionário solicita relatório de inquilino Fonte: Elaborada pelos autores, 2010 Figura 48. Diagrama de Sequência 12: Relatório de inquilino 5.1.14 - Funcionário solicita relatório de fiador Fonte: Elaborada pelos autores, 2010 Figura 49. Diagrama de Sequência 13: Relatório de fiador 70 5.1.15 - Funcionário cadastra tipo de imóvel Fonte: Elaborada pelos autores, 2010 Figura 50. Diagrama de Sequência 13: Cadastro de tipo de imóvel 71 6 IMPLEMENTAÇÃO ORIENTADA A OBJETOS 6.1 Layout de Telas Neste capítulo são apresentados os layouts das telas que compõe o sistema e uma explicação sobre a funcionalidade de cada tela. Fonte: Elaborada pelos autores, 2010 Figura 51. Tela inicial do sistema A tela inicial do sistema possui uma busca de imóveis onde qualquer pessoa que acessar poderá realizar uma busca simples de imóvel por cidade, transação (aluguel ou venda), finalidade (comercial ou residencial) e o tipo de imóvel desejado, ao clicar em buscar o sistema mostra todos os imóveis com as características disponíveis para o usuário. Ao clicar em mais detalhes, o sistema abre uma tela informando todas as características do imóvel selecionado.Na parte superior da tela, há um campo de login restrito aos funcionários cadastrados no sistema ao qual dá acesso a parte de gerenciamento da imobiliária. 72 Caso um usuário não cadastrado tentar acessar o sistema, uma mensagem será exibida na tela “Acesso restrito a funcionários, digite o login e senha”. Fonte: Elaborada pelos autores, 2010 Figura 52. Tela inicial do sistema Após o funcionário efetuar o login o sistema abrirá a página de gerenciamento da imobiliária (Figura 52), onde o mesmo poderá escolher o que deseja fazer, como cadastrar pessoas, imóveis, efetuar locação, venda, emitir diversos relatórios e efetuar pagamentos. Fonte: Elaborada pelos autores, 2010 Figura 53. Cadastro de pessoa física 73 A figura 53 representa o cadastro de pessoa física, onde são inseridos os dados da pessoa, o usuário escolhe o tipo de pessoa ao qual deseja cadastrar, após o usuário digitar os dados como nome, endereço, bairro e cidade, o sistema automaticamente transforma as letras em maiúscula para que os dados sempre sejam salvos com o mesmo padrão.No campo CPF o sistema faz a validação do mesmo e verifica se está incorreto, caso esteja o sistema emite uma mensagem para o usuário “CPF inválido”. Se a pessoa a ser cadastrada for um novo funcionário, o sistema mostrará um campo de login e senha de acesso, para assegurar que o novo funcionário digitou a senha desejada ele deverá confirmar a senha no campo ”confirmar senha”, caso ele digite uma senha diferente, o sistema mostrará uma mensagem “Os campos senha e confirma senha devem ser iguais”. Ao clicar no botão limpar, o sistema limpa todos os dados da tela, para que possam ser inseridos novos dados. Ao clicar em cadastrar o sistema verifica se existe algum campo sem ser preenchido caso exista o sistema mostra uma mensagem ”Preencha os campos”, caso os campos estejam todos preenchidos o sistema envia os dados ao servidor, para que possam ser salvos no banco de dados. Fonte: Elaborada pelos autores, 2010 Figura 54. Cadastro de pessoa jurídica No cadastro de pessoa jurídica (Figura 54), assim como o cadastro de 74 pessoa física o sistema faz a padronização dos dados inseridos. A tela também contém os demais campos para pessoa jurídica, como CNPJ, razão social e inscrição estadual. No caso de uma pessoa já cadastrada deixar de ser inquilino, fiador ou funcionário para se tornar apenas comprador ou proprietário um novo cadastro deverá ser realizado para essa pessoa. Fonte: Elaborada pelos autores, 2010 Figura 55. Cadastro de imóvel Na tela de cadastro de imóvel (Figura 55), o usuário informa todos os dados pertencentes ao imóvel o sistema automaticamente padroniza os dados inseridos. O usuário seleciona o proprietário do imóvel em uma lista de proprietários já cadastrados no sistema, no campo observações pode ser descrita uma breve descrição do imóvel. Ao clicar em limpar, o sistema limpa todos os dados da tela, para que possam ser inseridos novos dados. Ao clicar em cadastrar o sistema verifica se existe algum campo sem ser 75 preenchido caso exista o sistema mostra uma mensagem ”Preencha os campos em destaque”, caso os campos estejam todos preenchidos o sistema envia os dados ao servidor, para que possam ser salvos no banco de dados. Fonte: Elaborada pelos autores, 2010 Figura 56. Cadastro de locação No cadastro de locação (Figura 56), o usuário informa o número do contrato, escolhe em uma lista o imóvel disponível para locação já cadastrado pelo endereço, seleciona o inquilino e fiador já cadastrados no sistema. Após escolhido o imóvel o sistema preenche automaticamente o campo valor referente o valor do aluguel. No campo data de locação o sistema preenche automaticamente o campo com a data atual do sistema. Ao clicar em locar o sistema verifica se existe algum campo sem ser preenchido caso exista o sistema mostra uma mensagem ao usuário ”Preencha os campos em destaque”. Caso os campos estejam todos preenchidos o sistema efetua a locação e verifica a duração de meses e o dia do vencimento e cria os aluguéis mensais do inquilino. Após efetuada a locação o sistema mostra uma tela de contrato de locação para impressão, já preenchido com os dados da locação, do inquilino e 76 fiador e envia os dados ao servidor, para que possam ser salvos no banco de dados. Fonte: Elaborada pelos autores, 2010 Figura 57. Efetuar venda Na tela de venda (Figura 57), usuário escolhe em uma lista o imóvel disponível para venda já cadastrado pelo endereço e seleciona o comprador cadastrado no sistema. Após escolhido o imóvel o sistema preenche automaticamente o campo valor do imóvel. No campo data da venda o sistema preenche automaticamente o campo com a data atual do sistema. Caso o imóvel seja financiado, o usuário poderá informar os dados do financiamento, como órgão financiador, quantidade de meses, multa e juros Ao clicar em vender o sistema verifica se existe algum campo sem ser preenchido caso exista o sistema mostra uma mensagem ao usuário ”Preencha os campos em destaque”. Caso os campos estejam todos preenchidos o sistema efetua a venda e mostra uma tela de contrato de venda para impressão, já preenchido com os dados da venda e do comprador e envia os dados ao servidor, para que possam ser salvos no banco de dados. 77 Fonte: Elaborada pelos autores, 2010 Figura 58. Pagamento de aluguel Na tela de pagamento de aluguel (Figura 58) o usuário seleciona o inquilino desejado. Ao clicar em buscar o sistema mostra as locações pertencentes ao inquilino selecionado. Ao clicar na locação desejada o sistema busca os dados do aluguel do mesmo. Após digitar os dados do aluguel e clicar em ok, o sistema atualiza os status e salva os dados do pagamento do aluguel do inquilino. Fonte: Elaborada pelos autores, 2010 Figura 59. Relatório de pessoa 78 Na tela de relatório de pessoa (Figura 59), o usuário pode escolher qual relatório ele deseja inquilino, fiador, proprietário, comprador ou funcionário. Ao clicar em buscar o sistema verifica a escolha do usuário e busca os dados do tipo de pessoa escolhida, com o nome, cidade e estado. Ao clicar em mais detalhes o sistema busca mais informações sobre a pessoa escolhida. Fonte: Elaborada pelos autores, 2010 Figura 60. Relatório de imóvel No relatório de imóvel o usuário escolhe o tipo de relatório desejado, livre para locação, livre para venda ou locados. Ao clicar em buscar o sistema verifica a escolha do usuário e busca os dados do tipo de pessoa escolhida, com o nome, proprietário, valor da locação e valor da venda. Ao clicar em mais detalhes o sistema busca mais informações sobre o imóvel escolhido. Fonte: Elaborada pelos autores, 2010 Figura 61. Cadastro de tipo de imóvel 79 No cadastro de tipo de imóvel o funcionário informa o código e o nome do novo tipo de imóvel. Ao clicar em cadastrar o sistema verifica se existe algum campo sem ser preenchido caso exista o sistema mostra uma mensagem ”Preencha os campos em destaque”, caso os campos estejam todos preenchidos o sistema envia os dados ao servidor, para que possam ser salvos no banco de dados. 80 CONCLUSÃO Segundo a proposta apresentada nesta monografia, procurou-se desenvolver um sistema cujo objetivo é gerenciar uma imobiliária e manter seus dados atualizados e disponíveis on-line. Para o desenvolvimento desta aplicação foram realizados diversos estudos sobre a plataforma de desenvolvimento J2EE em conjunto com outras tecnologias, o que permitiu a criação de uma aplicação dinâmica e eficiente o que foi de grande importância para o aprendizado. O uso da IDE (Integrated Development Environment) Eclipse, SGBD Oracle XE e a linguagem UML, contribuíram de forma significativa para o desenvolvimento desta aplicação, pois tornou o ambiente de desenvolvimento mais produtivos, oferecendo diversos recursos para facilitar a criação desta aplicação. Com a conclusão desta monografia, entende-se que há algumas limitações da aplicação, devido ao tempo limitado e a complexidade em se desenvolver uma aplicação deste tipo. Serão sugeridos para trabalhos futuros: a) implementação do cadastro de corretores; b) comissões para corretores; c) inserção fotos de imóveis; d) chat de atendimento on-line; e) contador de acesso ao site; e f) demonstrativo de faturamento da imobiliária. Contudo, pode-se dizer que os objetivos propostos nesta monografia foram alcançados. O sistema realiza as principais funções de gerenciamento imobiliário, e permite o controle de venda e locação pertinente aos imóveis. Além disso, a pesquisa foi de extrema importância para o aprendizado e conhecimento da tecnologia J2EE e no desenvolvimento de sistemas Este estudo buscou-se enfatizar a importância em se utilizar um sistema web para gerenciamentos de dados e automatizando operações rotineiras da empresa. 81 REFERÊNCIAS ABINADER, J. A.; LINS, R. D. Web Service em Java. 1ª edição, Rio de Janeiro, BrasPort, 2006. ALVAREZ, M. A. O que é Java. 2004 www.criarweb.com/artigos/196.php. Acesso em 19/09/2009. Disponível em: BERGAMO, L.E.C. Aula 1 - Introdução à BD I. 2008. Apostila da disciplina de Banco de Dados I. Curso de Tecnologia em Desenvolvimento de Sistemas para Internet, Centro Universitário Católico Salesiano Auxilium – Lins. BEZERRA, E. Princípios de análises e projetos de sistemas com UML. 2ª edição. Rio de Janeiro, Campus, 2006. DALFOVO, O; AMORIN, S. N. Quem tem informação é mais competitivo: o uso da informação pelos administradores e empregados que obtêm vantagem competitiva. Blumenau, Acadêmica, 2000. DEITEL, H. M. Java como programar. 6ª edição. São Paulo, Prentice-Hall, 2005. FLANAGAN, D. JavaScript: O guia definitivo. 4ª Edição. Porto Alegre, Bookman, 2004. FOWLER, M.; KOBRYN, C.; BOOCH, G. UML Essencial .3ª edição. Porto Alegre, Bookman, 2005. GARRETT, J. J. Ajax: A new approach to web applications. Disponível em: www.adaptivepath.com/publications/essays/archives/000385.php. Acesso em 19/03/2010. GEHL, R. E. ; BUENO, M. Java Server Pages. Disponível em: www.inf.unisinos.br/~barbosa/paradigmas/consipa2/artigos/a7.pdf - Acesso em 25/10/2009. GOMES, H. F. A plataforma J2EE. 2000. Disponível em: www.webinsider.uol.com.br/index.php/2000/12/05/a-plataforma-j2ee. Acesso em 20/09/2009. HALL, M.; BROWN, L. Core Servlets e Java Server Pages. 1ª Edição, Rio de Janeiro. Ciência Moderna, 2005 JAVA, (linguagem de programação). Wikipédia. 2009. Disponível em: www.pt.wikipedia.org/wiki/Java_(linguagem_de_programação). Acesso em 19/09/2009. 82 MELO JUNIOR, C. S. Web 2.0 e Mashups: reinventando a internet. Rio de Janeiro. BrasPort, 2007. MORAES, M. História do Surgimento da Linguagem Java. Disponível em: www.marcelomoraes.com.br/conteudo/marcelo/java/historia_java.pdf. Acesso em 19/09/2009. MORONI, H. Criação de Sites em Ajax. São Paulo. Digerati Editorial, 2007. NOGUEIRA, A. Histórico da UML. Disponível www.imasters.uol.com.br/artigo/2994/uml/historico_da_uml - Acesso 25/10/2009. em: em OLIVEIRA, E C. M. Conhecendo a plataforma J2EE - um breve overview . 2004. Disponível em: www.linhadecodigo.com.br/Artigo.aspx?id=333. Acesso em 20/09/2009. ORACLE, 2009. Banco de Dados Oracle. Disponível www.oracle.com/global/br/database/index.html. Acesso em 21/10/2009. em: ORACLE. Wikipédia. 2009. Disponível em: www.pt.wikipedia.org/wiki/Oracle. Acesso em 29/09/2009. RAMALHO, J. A. Oracle 8i. 4ª Edição. São Paulo, Berkeley Brasil. 2000. ROMAN, E; AMBLER, S. W.; JEWELL, T. Dominando Enterprise JavaBeans. 2ª Edição, Porto Alegre. Bookman. 2004. SAMPAIO, C. Guia do Java: Enterprise Edition 5: Desenvolvendo aplicações corporativas. 1ª edição, Rio de Janeiro. BrasPort, 2007. SANTOS, A. L. Integração de Sistemas com Java. 1ª Edição, Rio de Janeiro. Brasport, 2007. SCOTT, K. Processo unificado exemplificado. 1ª Edição, Porto Alegre. Bookman , 2002. SILVA, D. M. UML Guia de consulta rápida. 1ª Edição, São Paulo: Novatec, 2001. SILVA, P.C.B; Introdução a linguagem de modelagem unificada(UML). Revista SQL Magazine. 61ª Edição, Ano 5, 2009. TEMPLE, A.; MELLO, R. F.; CALEGARI, D. T.; SCHIEZA, M. Jsp, Servlets e J2EE. 2004. UMEDA, N. N. Java - Integrando Banco de Dados Via JDBC. Disponível em: www.batebyte.pr.gov.br/modules/conteudo/conteudo.php?conteudo=148. Acesso em 22/09/2009. 83 GLOSSÁRIO Termo Descrição Aplicação Web: Sistemas de informática projetados para utilização através de um navegador, na internet ou em redes privadas. Backup: Cópia de segurança de dados. Browser: Navegador de internet. Login: Identificação sistema. Servidor: Sistema de computação que fornece serviços a uma rede de computadores. SQL: Linguagem utilizada em bancos de dados relacionais. Usuário: Pessoa que irá operar o sistema. XMLHttpRequest: Objeto javascript que torna possível a comunicação assíncrona com o servidor. Web: Sistema de documentos em hipermídia que são interligados e executados na Internet. do usuário em um