Agradecimentos Ao professor António Pinto pela orientação e constante disponibilidade ao longo deste projeto. À minha família, particularmente a minha mãe, pelo apoio ao longo do percurso que culminou na realização deste relatório. A todos aqueles que, de alguma forma, contribuíram para a realização do curso, bem como o do presente documento I Resumo A realização de tarefas com auxilio de um computador veio facilitar o trabalho de muitas pessoas, um caso em particular, é a gestão de imóveis arrendados. Todos os senhorios têm de executar um conjunto de tarefas semelhantes, tratar da informação relativa aos inquilinos, manter um registo de todas despesas e receitas dos imóveis, notificar os inquilinos das mensalidades em falta, manter o registos de todos os pagamentos feitos. Este projeto visa o desenvolvimento de uma aplicação, multi-plataforma, capaz de fazer a gestão de imóveis arrendados. Aplicação resultante deste projeto, de nome GIA, permite que os seus utilizadores façam uma gestão mais cuidada e organizada dos seus imóveis. Em particular é possível emitir-se recibos de renda mensais, avisos de débito, permite o envio de emails, e gerir as despesas que o senhorio tenha com o imóvel (despesas de manutenção/reparação, impostos), entre outros. Esta aplicação permite ainda gerir conjuntos de imóveis. Os objetivos do projeto foram alcançados com sucesso, estando a aplicação desenvolvida e passível de ser utilizada. II Índice 1 Introdução............................................................................................................................................1 2 Ferramentas utilizadas.........................................................................................................................2 3 GIA......................................................................................................................................................6 3.1 Caso de Estudo.................................................................................................................................6 3.2 Metodologia......................................................................................................................................6 3.3 Modelo proposto...............................................................................................................................7 3.4 Levantamento requisitos...................................................................................................................9 3.5 Requisitos funcionais......................................................................................................................10 3.6 Descrição de Casos de Uso.............................................................................................................11 3.7 Requisitos não funcionais...............................................................................................................13 3.8 Modelação de processos de negócio...............................................................................................13 3.9 Base Dados.....................................................................................................................................15 4 Avaliação do trabalho........................................................................................................................17 4.1 Multi-plataforma.............................................................................................................................17 4.2 Algoritmos......................................................................................................................................19 5 Conclusões........................................................................................................................................24 6 Anexo A.............................................................................................................................................26 7 Anexo B.............................................................................................................................................27 8 Anexo C- Documento de Especificação de Requisitos......................................................................28 III Índice de tabelas Sketch vs Prototype................................................................................................................................3 Pacotes..................................................................................................................................................10 Registar Aluguer...................................................................................................................................11 Gerar Recibo........................................................................................................................................12 Gerar Aviso de Débito..........................................................................................................................12 Registar Inquilino.................................................................................................................................12 Registar imóvel.....................................................................................................................................13 Requisitos Não Funcionais...................................................................................................................13 Descrição da Base Dados......................................................................................................................16 Pacotes..................................................................................................................................................35 Ver Dados Pessoais...............................................................................................................................40 Editar Dados Pessoais...........................................................................................................................41 Selecionar Base Dados.........................................................................................................................42 Efetuar Backup.....................................................................................................................................43 Enviar Email.........................................................................................................................................44 Upload Ficheiro....................................................................................................................................45 Registar Inquilino.................................................................................................................................47 Ver Lista Inquilinos..............................................................................................................................48 Atualizar Inquilino................................................................................................................................49 Remover Inquilino................................................................................................................................50 Pesquisar Inquilinos..............................................................................................................................51 Registar Imóvel....................................................................................................................................52 Ver Lista de Imóveis.............................................................................................................................53 Atualizar imóvel...................................................................................................................................54 Remover Imóvel...................................................................................................................................55 Pesquisar Imóveis.................................................................................................................................56 Registar Aluguer...................................................................................................................................57 Ver Lista de Alugueres..........................................................................................................................58 Renovar Aluguer...................................................................................................................................59 Atualizar Aluguer.................................................................................................................................60 Remover Aluguer..................................................................................................................................61 Pesquisar Aluguer.................................................................................................................................62 Ver Lista de Avisos de Débito...............................................................................................................63 IV Gerar Avisos de Débito.........................................................................................................................64 Emitir Aviso de Débito.........................................................................................................................65 Ver Detalhes Aviso de Débito...............................................................................................................66 Pesquisar Avisos de Débito...................................................................................................................67 Ver Lista de Mensalidades....................................................................................................................68 Atualizar Mensalidade..........................................................................................................................69 Ver Detalhes da Mensalidade................................................................................................................70 Gerar Recibo........................................................................................................................................71 Ver Lista de Recibos.............................................................................................................................73 Emitir Recibo.......................................................................................................................................74 Ver Detalhes do Recibo........................................................................................................................75 Pesquisar Recibos.................................................................................................................................76 Registar Despesa..................................................................................................................................77 Ver Lista de Despesas...........................................................................................................................78 Atualizar Despesa.................................................................................................................................79 Remover Despesa.................................................................................................................................80 Emitir Relatório de Despesas................................................................................................................81 Emitir Relatório de Conta Corrente......................................................................................................82 Requisitos não funcionais.....................................................................................................................84 V Índice de ilustrações Figura 1: Estrutura de um relatório Jasper..............................................................................................4 Figura 2: Jasper API...............................................................................................................................5 Figura 3: Scrum......................................................................................................................................7 Figura 4: Arquitetura MVC....................................................................................................................8 Figura 5: Diagrama de Pacotes.............................................................................................................11 Figura 6: Modelo de processo de negócio-registar aluguer...................................................................14 Figura 7: Modelo de processo de negócio-gerir aluguer.......................................................................14 Figura 8: Diagrama da base dados........................................................................................................15 Figura 9: Windows 7............................................................................................................................17 Figura 10: Windows 8...........................................................................................................................18 Figura 11: Ubuntu 12.04.......................................................................................................................18 Figura 12: Cenário Registar Aluguer- Aluguer.....................................................................................19 Figura 13: Cenário Registar Aluguer- Caução......................................................................................20 Figura 14: Cenário Registar Aluguer- Rendas Antecipadas..................................................................21 Figura 15: Cenário Registar Aluguer- Aluguer Final............................................................................21 Figura 16: Cenário Registar Aluguer-Lista de Mensalidades................................................................22 Figura 17: Cenário Gerar Aviso de Débito- Gerar Aviso de Débito......................................................23 Figura 18: Cenário Gerar Aviso de Débito- Lista de Avisos de Débito.................................................23 Figura 19: Trecho gerar mensalidades..................................................................................................26 Figura 20: Trecho gerar avisos de débito..............................................................................................27 Figura 21: Registar Aluguer..................................................................................................................32 Figura 22: Gerar Recibo.......................................................................................................................33 Figura 23: Enviar email........................................................................................................................34 Figura 24: Diagrama de Pacotes...........................................................................................................36 Figura 25: Diagrama Casos de Uso-Inquilinos.....................................................................................36 Figura 26: Diagrama de caso de uso-Imóveis.......................................................................................37 Figura 27: Diagrama de caso de uso-Alugueres....................................................................................37 Figura 28: Diagrama de caso de uso-Mensalidade,Aviso,Recibo.........................................................38 Figura 29: Diagrama caso de uso- Despesas,Relatórios........................................................................39 Figura 30: Diagrama de caso de uso-Outros.........................................................................................39 Figura 31: Diagrama de sequencia- Ver dados pessoais........................................................................40 Figura 32: Diagrama de sequencia-editar dados pessoais.....................................................................41 Figura 33: Diagrama de sequencia- selecionar a base dados.................................................................42 VI Figura 34: Diagrama de sequencia-backup...........................................................................................43 Figura 35: Diagrama de sequência-Enviar email..................................................................................44 Figura 36: Diagrama de sequência-upload ficheiro..............................................................................46 Figura 37: Diagrama de sequência-registar inquilino...........................................................................47 Figura 38: Diagrama de sequência-ver lista inquilinos.........................................................................48 Figura 39: Diagrama de sequência-atualizar inquilino..........................................................................49 Figura 40: Diagrama de sequência-remover inquilino..........................................................................50 Figura 41: Diagrama de sequência-pesquisar inquilinos.......................................................................51 Figura 42: Diagrama de sequência-registar imóvel...............................................................................52 Figura 43: Diagrama de sequência- ver lista de imóveis.......................................................................53 Figura 44: Diagrama de sequência-atualizar imóvel.............................................................................54 Figura 45: Diagrama de sequência-remover imóvel.............................................................................55 Figura 46: Diagrama de sequência-pesquisar imóveis..........................................................................56 Figura 47: Diagrama de sequência-registar aluguer..............................................................................57 Figura 48: Diagrama de sequência-ver lista de alugueres.....................................................................58 Figura 49: Diagrama de sequência-renovar aluguer..............................................................................59 Figura 50: Diagrama de sequência-atualizar aluguer............................................................................60 Figura 51: Diagrama de sequência-remover aluguer............................................................................61 Figura 52: Diagrama de sequência-pesquisar alugueres.......................................................................62 Figura 53: Diagrama de sequência-lista de avisos de débito.................................................................63 Figura 54: Diagrama de sequência-gerar avisos de débito....................................................................64 Figura 55: Diagrama de sequência-emitir aviso de débito....................................................................65 Figura 56: Diagrama de sequência-ver detalhes de um aviso de débito................................................66 Figura 57: Diagrama de sequência-pesquisar avisos de débito.............................................................67 Figura 58: Diagrama de sequência-ver lista de mensalidades...............................................................68 Figura 59: Diagrama de sequência-atualizar mensalidade....................................................................69 Figura 60: Diagrama de sequência-detalhes da mensalidade................................................................70 Figura 61: Diagrama de sequência-gerar recibo...................................................................................72 Figura 62: Diagrama de sequência-ver lista de recibos.........................................................................73 Figura 63: Diagrama de sequência-emitir recibo..................................................................................74 Figura 64: Diagrama de sequência-ver detalhes do recibo....................................................................75 Figura 65: Diagrama de sequência-pesquisar recibos...........................................................................76 Figura 66: Diagrama de sequência-registar despesa.............................................................................77 Figura 67: Diagrama de sequência-ver lista de despesas......................................................................78 Figura 68: Diagrama de sequência-atualizar despesa............................................................................79 VII Figura 69: Diagrama de sequência-remover despesas...........................................................................80 Figura 70: Diagrama de sequência-emitir relatório de despesas...........................................................81 Figura 71: Diagrama de sequência-relatório conta corrente..................................................................82 Figura 72: Diagrama de Classes...........................................................................................................83 VIII Lista de Abreviaturas API- Aplication programming interface BPM-Buisness Process Modeling ESTGF- Escola Superior Tecnologias e Gestão de Felgueiras GIA- Gestão de Imóveis Arrendados MVC- Model-View-Controller UML- Unified Modelling Language IX 1 Introdução Atualmente, as tecnologias de informação afetam o modo como as organizações evoluem e os seus negócios se desenvolvem. A evolução das tecnologias veio permitir informatizar toda a informação [1]. Um possível cenário é o do arrendamento de imóveis. Este projeto tem como objetivo o desenvolvimento de uma aplicação multi-plataforma que permita fazer a gestão de imóveis arrendados. Este projeto visa auxiliar os proprietários de imóveis arrendados pois permitirá fazer uma gestão organizada dos mesmos. Para atingir o objetivo supracitado, entrevistou-se o Docente António Pinto para perceber em concreto o que era necessário fazer, levando ao modelo proposto. O objetivo deste projeto é o de desenvolver uma aplicação que permita aos seus utilizadores fazer uma gestão mais cuidada e organizada dos seus imóveis. A aplicação deverá poder ser usada por qualquer senhorio para fazer a gestão dos seus imóveis arrendados, permitindo gerir conjuntos de imóveis. Em particular deve ser possível emitirem-se recibos de renda mensais, avisos de débito, o envio de emails, e a gestão das despesas que o senhorio tenha com o imóvel (despesas de manutenção/reparação, impostos). Este relatório encontra-se dividido em cinco capítulos, e três anexo. No Capitulo 2 apresentam se as ferramentas utilizadas no desenvolvimento deste projeto. No Capitulo 3 faz-se a descrição de todo o trabalho efetuado e dos resultados obtidos neste projeto, mais detalhadamente descreve-se como se procedeu ao levantamento de requisitos, relata-se o caso estudo,apresenta-se a metodologia utilizada no desenvolvimento deste projeto. No Capitulo 4 é efetuada uma breve descrição de alguns dos algoritmos implementados neste trabalho bem como exemplos da sua execução e demonstrar-se a portabilidade da aplicação. No Capítulo 5 são apresentadas as conclusões deste projeto e o que irá ser possível fazer no futuro. O Anexo A apresenta o código que permite gerar mensalidades e, finalmente, o Anexo B apresenta o código que permite gerar avisos de débito. O Anexo C contém o documento de especificação de requisitos, por uma questão de espaço na descrição dos uses cases apenas foram apresentados os casos de sucesso. 1 2 Ferramentas utilizadas O Visual Paradigm foi utilizado para elaborar os diagramas de casos de uso, classe, sequência e processos de negócio. O Visual Paradigm (http://www.visual-paradigm.com/) agrupa 3 ferramentas numa só, Visual Paradigm for UML, Logian e Agilian. Esta ferramenta está divida em edições com diferentes funcionalidades, sendo todas elas pagas, mas com um período de 30 dias nos quais é possível utilizar esta ferramenta sem quaisquer custos. Possui uma interface simples e permite aos utilizadores escolher diferentes tipos de diagramas como por exemplo: diagrama classes, atividades, sequência, uses cases entre outros. É ainda possível gerar código a partir de diagramas UML para várias linguagens de programação algumas delas são Java,C++ . Outras funcionalidades são a importação/exportação de diagramas para diferentes formatos, XML ,XLS ou outros formatos, além disto os diagramas podem ser guardados como simples imagens, permite ainda a interligação com alguns IDE entre eles o Netbeans. Esta ferramenta permite partilhar diagramas com os clientes, para tal é necessário enviar um convite para o cliente, em seguida esse convite é enviado para o email depois do cliente aceitar o convite pode começar a ver os diagramas online, caso o cliente pretenda fazer algum comentário pode fazê-lo, por uma questão de privacidade os clientes apenas podem ver os comentários criados por eles e as repostas aos mesmos Depois desta análise podemos verificar que o Visual Paradigm é uma ferramenta completa e que vem facilitar/auxiliar o desenvolvimento de software. Balsamiq foi a ferramenta escolhida para o desenvolvimento das mockups deste projeto. Baslamiq (http://www.visual-paradigm.com/) é uma ferramenta desenvolvida em action script, e que permite o desenvolvimento de mockups para as aplicações web, desktop ou móveis. Esta ferramenta encontra-se disponível para desktop, para o browser Google Chrome, entre outros. Para o funcionamento desta ferramenta no Google Chrome é necessário proceder a instalação de um plugin, sendo que após a instalação permite o desenho de mockups e o upload das mesmas para o Google Drive. A ferramenta possui uma interface simples, com uma grande diversidade de componentes para além dos componentes que, por defeito, vem com a ferramenta, ainda é possível fazer o download de novos componentes. Balsamiq apresenta dois estilos de interface o wireframe vem ajudar a tornar as mockups mais apresentáveis, profissionais no entanto pode provocar um certa dependência de um determinado estilo de layout pois parece “acabado” muito cedo. O sketch têm um aspeto menos profissional mas possibilita experimentar ideias diferentes com a finalidade de melhorar o design. Bill Buxton em [2] distingue sketch de prototype da seguinte forma; esta mesma distinção pode ser aplicada ao sketch e wireframe respetivamente 2 Sketch Prototype Evocative Didactic Suggest Describe Explore Refine Question Anwser Provoke Resolve Tentative Specific Noncomminttal Depiction Tabela 1: Sketch vs Prototype Ainda existe a possibilidade de “ligar” os diferentes mockups, por exemplo, imaginemos uma aplicação real. Temos uma interface com alguns componentes e um desses quando pressionado redireciona o utilizador para outra interface, com esta ferramenta conseguimos simular esse comportamento, basta clicar no componente pretendido selecionar link e escolher da lista o mockup que pretendemos. É aconselhado aquando o uso desta funcionalidade que os ficheiros BMML estejam todos na mesma pasta, também é possível “ligar” os mockups a urls No final desta análise pode-se constatar que a Balsamiq Mockups é uma ferramenta útil no que diz respeito ao desenho de mockups, fornecendo uma variedade de funcionalidades. Para a codificação do software foi utilizado o Netbeans IDE que é gratuito e open-source. O Netbeans(netbeans.org) permite escrever, compilar, analisar e instalar programas. O IDE é todo escrito em Java mas pode suportar qualquer linguagem de programação pois é possível adicionar suporte para outras linguagens. O NetBeans indenta o código, associa palavras, realça sintaxe do código-fonte ,fornece exemplos de projetos. Este oferece uma visão simples de grandes projetos, com várias pastas e muitas linhas de código, permite a interligação com ferramentas de controlo de versão por exemplo o Git. Permite criar aplicações gráficas para Java SE,HTML5,Java EE,PHP,C/C++ e Java ME de forma simples e rápida usando drag and drop e se pretender também é possível editar o código no local. Este IDE disponibiliza uma ferramenta de debug que permite uma análise simples e rápida do código, permite inserir breaking points, watches, avançar pelo código linha a linha, executar métodos e ver em tempo real os resultados dos mesmos. O SQL DataBase Browser (http://sqlitebrowser.org/)é um sistema gestão de base dados compatível com o SQLite é open-source , gratuito, foi desenvolvido recorrendo à linguagem de programação C, e não é requer instalação. Disponibiliza aos utilizadores uma interface simples e clara, permite a estes criar/gerir base dados, exportar e importar registos para diferentes formatos, disponibiliza um registo 3 de todas as queries realizadas via aplicação,possibilita aos utilizadores criarem tabelas a partir de queries ou a partir de interfaces gráficas O SQLiteStudio (http://sqlitestudio.pl/) é um sistema de gestão de base dados para base dados compatíveis com SQLite, é open-source, gratuito e não é requer instalação. Permite criar tabelas, vistas a partir de interfaces gráficas ou através de queries; é possível exportar e importar base dados. O iReport foi o programa utilizado para desenhar os diversos relatórios, pelo facto de ser grátis, open-source e ser possível integrar com aplicação desenvolvida. Um relatório está divido em secções, title, page header, column header, detail, column footer, page footer, last page footer, summary e background . Figura 1: Estrutura de um relatório Jasper Title é a primeira parte do relatório, é apenas gerado uma vez no processo de preenchimento do relatório page header, é o cabeçalho da pagina, column header aparece no topo de cada coluna,detail esta secção é onde irá ficar o corpo do relatório column footer esta secção aparece na parte inferior de cada coluna, é usado para o rodapé da tabela, page footer esta secção é o rodapé, last page footer se esta secção estiver presente substitui na ultima página o rodapé em vigor, caso essa mesma pagina não possua sumário pois se existir é criado uma nova pagina para esta secção, summary aparece no final do relatório antes das secções rodapé da coluna e/ou rodapé da pagina e por ultimo background esta 4 secção é processada em todas as páginas e o seu conteúdo segue-se depois de todas as outras secções. Todas as secções são opcionais mas é necessário existir pelo menos uma secção, para a construção de um relatório. iReports permite-nos construir relatórios estáticos, ou seja, o conteúdo é definido no inicio, ou relatórios dinâmicos em que o conteúdo é preenchido automaticamente por uma base dados. Um relatório têm no mínimo um data set, este pode ser carregado com dados através de queries sql no próprio programa e/ou através de um método em Java que retorne um objeto do tipo ResultSet, sendo este objeto passado ao Jasper “on-fly”. Para a construção do relatório o iReports disponibiliza vários componentes desde labels, caixas de texto, tabelas entre outros. Fields representam a única forma de mapear os dados, da base de dados para o relatório, isto é estes campos vão representar os valores das colunas da base dados. Por exemplo: partindo do principio que o data set está carregado com a seguinte querie SELECT * FROM Pessoa, todos os campos da tabela pessoa ficam disponíveis em fields. Parameters são dados passados no momento da compilação, para carregar o data set. Por exemplo partindo do principio que o data set está carregado com a seguinte querie SELECT * FROM Pessoa WHERE bi=$P{bi} no momento que este relatório for compilado é passado ao mesmo um parâmetro com o valor do bi pretendido, e ele substitui esse valor na querie. Variables são utilizadas para armazenar resultados temporários, como por exemplo totais, contagens, entre outros. Expressions são utilizadas para especificar o conteúdo de campos de texto. As informações relativas ao relatório são guardado num ficheiro XML que depois irá ser compilado e preenchido dando origem ao relatório como se pode verificar na Figura 21.[3] Figura 2: Jasper API Para a elaboração deste mesmo relatório foi utilizado o LibreOffice Writer pois é grátis, open-source e multi-plataforma o que permitiu a este aluno e ao seu orientador comunicarem sem problemas. 1 Fonte: http://www.k19.com.br/artigos/wp-content/uploads/2010/11/diagrama.png 5 3 GIA Segundo Laudon e Laudon um sistema de informação é um “Conjunto de componentes interrelacionados que colecionam (ou acedem), processam, armazenam e distribuem informação para suportar a tomada de decisão e controlo numa organização”[4]. A tomada de decisão tem um papel fundamental no sucesso da organização sendo por isso importante descrever com rigor o modo como a mesma funciona, para que os sistemas de informação possam satisfazer as necessidades reais da organização [5]. Partindo destes pressupostos, neste capitulo irá ser descrito o caso de estudo deste trabalho, o modelo proposto para o presente caso de estudo assim como arquitetura utilizada, as técnicas utilizadas para efetuar o levantamento de requisitos, assim como uma descrição dos uses cases, metodologia usada neste projeto. 3.1 Caso de Estudo Todos os proprietários de imóveis arrendados têm de executar um conjunto de tarefas semelhantes, tratar da informação relativa aos inquilinos, manter um registo de todas despesas e receitas dos imóveis, notificar os inquilinos das mensalidades em falta, manter o registos de todos os pagamentos feitos. Efetuar todas estas tarefas com o auxilio de um programa pode tornar-se mais simples. 3.2 Metodologia Como se pode verificar em [6] as metodologias ágeis tem como principal prioridade satisfazer o cliente através de entregas de software funcional rapidamente , permite que o cliente tenha um papel ativo no diz que diz respeito a ordem pela qual as funcionalidades são entregues, os processos ágeis aproveitam a mudança para vantagem competitiva do cliente, a informação é obtida através da conversação cara-a-cara, o progresso do projeto é medido principalmente pela a entrega de software funcional A Scrum é uma metodologia ágil e divide-se em três fases, a PreGame, Game e PostGame. Na PreGame define-se a equipa, recursos é criada a Product Backlog contendo todos os requisitos que são conhecidos atualmente, estes são priorizados para além disso é efetuada uma estimativa do esforço necessária para a sua implementação, a lista pode sofrer alterações constantes em todas as iterações, o produto é atualizado e revisto pela a equipa Scrum., ocorre ainda o planeamento da arquitetura com base na Product Backlog, são analisadas e feitas decisões sobre as propostas para implementação. 6 Na Game são desenvolvidos os Sprints este pode durar entre uma semana a um mês cada um é constituído por análise,requisitos,projeto, evolução e entrega esta fase é a parte ágil da abordagem Scrum. Na PostGame ocorre o encerramento das entregas, documentação, integração e testes. Figura 3: Scrum A metodologia utilizada no desenvolvimento deste projeto foi baseada em Scrum, muito embora com a alteração do número de elementos envolvidos. Neste projeto alguns dos papeis foram atribuídos à mesma pessoa. Esta metodologia permite o rápido desenvolvimento de software e envolve o cliente no desenvolvimento do mesmo minimizando a rejeição/resistência na entrega. 3.3 Modelo proposto Face ao caso estudo descrito acima existe uma necessidade clara de uma aplicação que permita fazer a gestão de imóveis arrendados, foi essa necessidade que presidiu ao desenvolvimento deste projeto. Para garantir que os senhorios tenham acesso a informação em tempo útil e de forma organizada. A proposta de desenvolver um modelo que permita efetuar a gestão de imóveis arrendados com recurso a linguagem Java, e em que a informação é guardada numa base dados desenvolvida em SQLite, é um projeto arrojado mas útil e eficaz para o publico em causa. O desenvolvimento desta aplicação recorrendo a uma base dados SQLite traz algumas vantagens, não existe necessidade de instalar programas para este correr no computador, é multiplataforma e fica tudo num ficheiro. Uma particularidade interessante desta aplicação é que existe a possibilidade de escolher a base dados na 7 qual o utilizador quer trabalhar, caso o utilizador tenha instalado no seu computador a dropbox ; este poderá trabalhar diretamente com a base dados no dropbox, sincronizando automaticamente todas alterações em todos os seus computadores que tenham a dropbox instalada, mantendo assim a informação atualizada A interface com o utilizador foi desenvolvida recorrendo a Swing. É uma API que permite construir interfaces gráficas, correr as aplicações em todas as plataformas sem grandes alterações nas interfaces com o utilizador. Esta fornece uma variedade de componentes, contentores para a construção das interfaces gráficas. Um componente é algo simples como um botão, uma caixa de texto, um contentor é um objeto que agrupa outros componentes e é responsável pela gestão dos mesmos. Look and Feel pode ser visto como a “cara” da aplicação (aspeto,cores) por norma o Java vem com um look-and-feel próprio que tem a mesma “cara” em todas as plataformas suportadas [7] Esta escolha deve-se a que este aluno já tinha algum conhecimento com este tipo de API. A arquitetura escolhida para esta aplicação foi a MVC. MVC é uma arquitetura de software formada por três componentes. O Model é utilizado para representar a lógica do negocio, View é a interface da aplicação, aquilo que o utilizador realmente vê, e por Controller este é responsável pelo controlar o fluxo de informação Este tipo de arquitetura permite uma maior reutilização do código e é mais fácil fazer a sua manutenção. A Figura 42 ilustra o funcionamento básico do MVC. Figura 4: Arquitetura MVC 2 Fonte: http://cupsofcocoa.files.wordpress.com/2011/08/mvc-diagram1.png 8 3.4 Levantamento requisitos O processo de levantamento de requisitos é um processo demorado e complicado, pois é necessário recolher todos os requisitos do sistema, mas nem sempre o cliente e o perito se conseguem entender, resultando numa recolha de requisitos inválidos ou apenas a uma parte dos mesmos. Existe uma necessidade de assegurar que os requisitos vão de encontro ás necessidades dos stakeholders; para além de recolher os requisitos , é necessário proceder à sua validação Para o levantamento de requisitos foram utilizadas entrevistas, realizadas nas reuniões semanais que decorreram na ESTGF. No decorrer dessas reuniões, foi fornecido um ficheiro em .xls pelo cliente; este ficheiro era utilizado pelo mesmo para fazer a gestão dos imóveis arrendados. O estudo deste ficheiro ajudou a compreender e a recolher os requisitos necessários para a aplicação. Um requisito é uma funcionalidade ou caraterística considerada relevante na ótica do utilizador. Os requisitos podem ser distinguidos em funcionais - estes descrevem o que o sistema faz ou é esperado fazer, descrevem o que na realidade o sistema irá permitir aos utilizadores fazer por exemplo sistema deve permitir enviar emails, gerar recibos - e em requisitos não funcionais que estão relacionados com aspetos gerais do sistema, apesar destes requisitos não fazerem parte diretamente do sistema não devem ser negligenciados, por exemplo a interface com o utilizador deve ser feita através browser, a usabilidade [8] De acordo Nunes e O'Neil em [1] UML “é uma linguagem que utiliza notação padrão para especificar, construir, visualizar e documentar sistemas de informação orientados por objetos”. Os diagramas de caso de uso constituem a técnica em UML que permitem representar os requisitos de um sistema. Estes são compostos por atores, segundo Nunes e O'Neil em [1] um ator representa uma entidade externa que interage com o sistema,podendo este ser uma pessoa, sistemas físicos ou lógicos, e os caso de uso estes são utilizados para apresentar os requisitos e para garantir que tanto o cliente como o perito de uma dada área possuem um entendimento comum dos requisitos funcionais, o seu objetivo é demonstrar as funcionalidades que o sistema irá ter. Esta aplicação tem apenas um ator, sendo que esse ator é o senhorio, este é responsável por gerir os arrendamentos. 9 3.5 Requisitos funcionais Os requisitos apresentados na Tabela 2 foram agrupados por pacotes, para uma melhor compreensão Pacote Outros RF001 Ver os Dados pessoais,RF002-Editar Dados pessoais, RF003 Selecionar base dados, RF004 Efetuar Backup, RF005- Pacote Inquilinos Enviar email, RF006-Upload ficheiro RF007-Registar Inquilino, RF008Inquilinos,RF009-Atualizar Registar Imóveis Lista de RF010-Remover Inquilinos,RF11-Pesquisar Inquilinos RF012-Registar Imóvel,RF013-Ver Lista de Imóveis,RF014Atualizar Pacote Aluguer Inquilinos, Ver imóvel,RF015-Remover imóvel,RF016-Pesquisar imóveis RF017-Registar Aluguer,RF018-Ver Lista de Alugueres,RF019Renovar Aluguer,RF020-Atualizar Aluguer,RF021-Remover Pacote Aluguer,RF022-Pesquisar Alugueres RF023-Ver Lista de Avisos de Débito,RF024-Gerar Avisos de Mensalidades,Avisos, Débito,RF025-Emitir Avisos de Débito,RF026-Ver Detalhes do Recibos Aviso de Débito,RF027-Pesquisar Avisos de Débito,RF028-Ver lista de Mensalidades,RF029.Atualizar Mensalidade,RF030-Ver Detalhes de Mensalidade,RF031-Gerar Recibo,RF032-Ver Lista de Recibos,RF033-Emitir Recibos,RF034-Ver Detalhes do Pacote Relatórios Despesas, Recibo,RF035-Pesquisar Recibos, RF036-Registar Despesa RF037-Ver Lista de Despesas RF038Atualizar Despesa RF039-Remover Despesa RF040-Emitir Relatório de Despesas RF041-Emitir Relatório de Conta Corrente Tabela 2: Pacotes A Figura 5 é um diagrama de pacotes, que vem complementar informação apresentada na Tabela 2 10 Figura 5: Diagrama de Pacotes 3.6 Descrição de Casos de Uso De seguida serão descritos algumas das principais funcionalidades desta aplicação, entre elas o registar aluguer,gerar recibo,gerar avisos de débito,registar inquilino e o registar imóvel. Para efetuar um registo de um aluguer é necessário um inquilino e um imóvel livre no final do registo o sistema informa o senhorio se a operação foi bem sucedida. Registar Aluguer Pré Condição Existir pelo menos um inquilino e um imóvel livre Descrição Permite a um senhorio efetuar o registo de um aluguer Pós-Condição O Sistema informa o senhorio se a operação foi bem sucedida Tabela 3: Registar Aluguer Para gerar um recibo é necessário existir um aluguer ativo e mensalidades por pagar, um recibo é a prova como o inquilino efetuou um pagamento no final de gerar o recibo sistema informa o senhorio se a operação foi bem sucedida. 11 Gerar Recibo Pré Condição Existir um aluguer ativo e mensalidades por pagar Descrição Permite ao senhorio gerar um recibo relativo a um pagamento efetuado por um inquilino é a prova de como o inquilino efetuou o pagamento Pós-Condição O Sistema informa o senhorio se a operação foi bem sucedida Tabela 4: Gerar Recibo Um aviso de débito é constituído por todas as mensalidades em falta até ao momento do pedido para gerar um aviso é necessário um aluguer ativo, no final o sistema informa o senhorio se a operação foi bem sucedida Gerar Aviso de Débito Pré Condição Existir um aluguer ativo Descrição Permite ao senhorio gerar um aviso de débito, este é constituído por todas as mensalidades em falta até ao momento do pedido Pós-Condição O Sistema informa o senhorio se a operação foi bem sucedida Tabela 5: Gerar Aviso de Débito O inquilino é a pessoa que vai alugar o imóvel , no registo do inquilino são armazenados dados referentes ao próprio. No final do registo o sistema informa o senhorio se a operação foi bem sucedida Registar Inquilino Pré Condição Não existe Descrição Permite registar um inquilino Pós-Condição O Sistema informa o senhorio se a operação foi bem sucedida Tabela 6: Registar Inquilino O imóvel representa a propriedade sujeita ao aluguer, no registo do imóvel são armazenados dados referentes ao próprio. No final registo o sistema informa o senhorio se a operação foi bem sucedida 12 Registar Imóvel Pré Condição Não existe Descrição Permite registar um imóvel Pós-Condição O Sistema informa o senhorio se a operação foi bem sucedida Tabela 7: Registar imóvel Uma descrição mais detalhada dos requisitos está disponível em anexo, no documento de especificação de requisitos. 3.7 Requisitos não funcionais A aplicação deverá possuir uma interface simples, que permita uma rápida aprendizagem por parte dos utilizadores, ser o mais eficiente possível e ser suportada por a maioria dos sistemas operativos na Tabela 8 é apresentado um pequeno resumo dos requisitos não funcionais. Requisitos não Identificador Prioridade Descrição funcionais Simples/Intuitivo RNF001 Alta A aplicação deverá possuir uma interface simples e que permita uma rápida aprendizagem por parte dos utilizadores Eficiente RNF002 Média A aplicação deverá ser o mais eficiente possível Multi-plataforma RNF003 Alta Esta aplicação deverá ser suportada por a maioria dos sistemas operativos Tabela 8: Requisitos Não Funcionais 3.8 Modelação de processos de negócio De acordo com [9] BPM é a forma de representar os processos de uma empresa, organização, ou associação de modo a que os processos existentes possam ser analisados e melhorados, obtendo melhorias e uma maior eficácia nos processos existentes aumentando assim a sua qualidade . 13 Nesta secção serão apresentados dois processos de negocio, o primeiro processo a ser apresenta é o de registar um aluguer Figura 6: Modelo de processo de negócio-registar aluguer Este processo inicia-se por verificar se o inquilino se encontra registado no sistema, caso não esteja procede-se ao registo do mesmo, de seguida verifica-se se o imóvel pretendido já se encontra registado caso não esteja procede-se ao registo do mesmo, como por defeito todos os imóveis registados se encontram livres não existe necessidade de verificar se o mesmo se encontra livre, posteriormente procedesse ao preenchimento do formulário registo de aluguer. O segundo processo a ser apresentado é gerir um aluguer este processo repete-se n vezes dependendo do número de mensalidades associadas ao aluguer. Figura 7: Modelo de processo de negócio-gerir aluguer O processo inicia-se, se o senhorio assim o entender por gerar um aviso de débito caso não o pretenda fica aguardar pagamento, por outro lado se pretender gerar um aviso de débito, gera aviso de débito caso existam avisos de débito, emiti-se e envia-se o mesmo por email, de seguida aguarda-se pelo pagamento quando o pagamento for efetuado é gerado o respetivo recibo emiti-se o mesmo e envia-se ao inquilino. 14 3.9 Base Dados Na Figura 8 é apresentado o modelo de dados usado neste projeto, na Tabela Tabela 9 é efetuada uma descrição de cada uma das tabelas da base dados. Figura 8: Diagrama da base dados 15 Tabela Descrição Pessoa Representa uma pessoa registada na base dados TipoInteressado Representa o tipo de pessoa{Senhorio,Empresa,Particular} Despesa Representa a despesa de um dado imóvel Imovel Representa um imóvel Aluguer Representa um aluguer Classificacao Representa a classificação que um dado imóvel pode ter{Com Classificação A ou A++,Sem Classificação A ou A++} TipoPagamento Representa o tipo de pagamento {Renda,Renda Antecipada,Caução} Pagamento Representa um pagamento Mensalidade Representa a mensalidade de um dado aluguer Recibo Representa a prova de como um dado inquilino efetuou o pagamento de uma mensalidade Recibo_Mensalidade Representa as linhas do recibo Notificação Representa o aviso de débito de um dado aluguer Notificação_Mensalidade Representa as linhas de um aviso de débito Tabela 9: Descrição da Base Dados 16 4 Avaliação do trabalho Este projeto tinha como objetivo o desenvolvimento de um aplicação capaz de fazer a gestão de imóveis de arrendados e que seja multi-plataforma. Neste capitulo serão apresentados alguns cenários que serviram para validar se os objetivos foram atingidos. 4.1 Multi-plataforma De seguida serão apresentados diferentes screen shots da aplicação a correr em diferentes sistemas operativos, entre eles o Windows 7,Windows 8 e Ubuntu 12.04 estas foram as plataformas escolhidas para testar a portabilidade da aplicação. Figura 9: Windows 7 A Figura 9 trata-se de um screen shot da aplicação a correr em Windows 7 a funcionalidade em questão é ver lista de inquilinos. 17 Figura 10: Windows 8 A Figura 10 trata-se de um screen shot da aplicação a correr em Windows 8 a funcionalidade em questão é ver lista de inquilino. Figura 11: Ubuntu 12.04 18 A Figura 11 trata-se de um screen shot da aplicação a correr em Ubuntu 12.04 a funcionalidade em questão é ver lista de inquilino. Como se verificar a aplicação corre em diferentes sistemas operativos sem grandes diferenças no aspeto gráfico. Com base nos resultados acima apresentados o pode-se concluir que o objetivo da portabilidade foi atingido. 4.2 Algoritmos Agora irão ser apresentados alguns dos algoritmos implementados nesta aplicação. O primeiro a ser apresentado é o algoritmo que permite gerar as mensalidades para um aluguer. O código deste algoritmo pode ser visto no Anexo A Este algoritmo permite efetuar o registo de um aluguer e registar as respetivas mensalidades. No Registo de um Aluguer temos de escolher o imóvel, o inquilino estes previamente registados no software, defini-mos uma data de inicio e fim de aluguer, a diferença entre estas datas tem de ser no mínimo de um mês, caso contrário é lançada uma exceção. Ainda é necessário definir o valor da renda. Assim como o dia limite de pagamento, caso o dia limite de pagamento seja inferior ao dia do inicio do aluguer, a primeira mensalidade fica com o dia do inicio do aluguer, sendo que as outras ficam o dia escolhido pelo senhorio. Ainda no registo do aluguer, é possível definir uma caução é um valor que o inquilino tem de pagar no inicio do aluguer se o senhorio assim o entender. Esta é devolvida caso o imóvel não sofra danos, é possível ainda pedir rendas antecipadas estas e a caução podem ser atenuadas noutras mensalidades. Cenário Registar um Aluguer Figura 12: Cenário Registar Aluguer- Aluguer 19 Como se pode verificar na Figura 12 o inquilino António Moreira alugou o imóvel na Avenida de França 1-A Porto por um ano, a renda foi definida em 300 € e o dia limite para este efetuar o pagamento das mensalidades é dia 8 de cada mês. Figura 13: Cenário Registar Aluguer- Caução Como se pode verificar na Figura 13 a caução foi definida em 200€ e distribuída por duas mensalidades, ou seja, em vez do inquilino pagar a totalidade da caução de uma só vez, efetua o pagamento da mesma em duas mensalidades. 20 Figura 14: Cenário Registar Aluguer- Rendas Antecipadas Como se pode verificar na Figura 14 foi pedido o adiantamento de uma renda e distribuída por quatro mensalidades, ou seja, em vez do inquilino pagar a totalidade da renda antecipada de uma só vez, efetua o pagamento da mesma em quatro mensalidades mensalidades. Figura 15: Cenário Registar Aluguer- Aluguer Final 21 Tendo em conta este cenário, o resultado do mesmo seria um aluguer com duração de 12 meses e constituído por 11 mensalidades (duração 12 meses menos um mês da renda antecipada). As primeiras duas mensalidades são compostas por 300 € valor da renda, 100 € valor da caução que foi dividia em dois, 75 € que corresponde as rendas antecipadas, valor que foi dividido por quatro mensalidades, perfazendo um total de 475 €. As duas próximas mensalidades são compostas por 300 € valor da renda, e por 75 valor da renda antecipada que perfaz um total de 375 €, as restantes mensalidades serão compostas apenas pela renda. Figura 16: Cenário Registar Aluguer-Lista de Mensalidades Como se pode verificar na Figura 16 o algoritmo fez o esperado. De seguida, irá ser apresentado o algoritmo criado para gerar avisos de débito para um aluguer, o código deste algoritmo pode ser consultado no anexo B. Este algoritmo permite-nos gerar avisos de débito para um dado aluguer,caso já exista um aviso para o mês em questão nada acontecerá, caso contrário um aviso irá ser criado. Esse aviso será constituído por todas as mensalidades que não foram pagas até ao momento geração do aviso. De forma mais detalhada, quando é pedido para gerar novos avisos de débito, este algoritmo vai buscar todas as mensalidades associadas a um aluguer cuja o seu estado seja Não ou Parcial, e que o mês seja igual ou anterior ao mês do pedido. Depois percorre essa mesma lista e vai verificar se já existe um aviso para essa mensalidade no presente mês, caso não exista é criado um aviso. 22 Cenário Gerar Aviso Débito Figura 17: Cenário Gerar Aviso de Débito- Gerar Aviso de Débito O resultado será um aviso de débito com todas as mensalidades em falta até ao mês de junho, este aviso é constituído por uma mensalidade no valor de 475,0€. Figura 18: Cenário Gerar Aviso de Débito- Lista de Avisos de Débito Como pode ser visto na Figura 18 o algoritmo fez o esperado. No final deste capitulo pode-se concluir que todos os objetivos definidos no inicio do trabalho foram atingidos. 23 5 Conclusões O objetivo deste projeto foi o de desenvolver uma aplicação funcional que permita gerir arrendamentos e que a mesma seja multi-plataforma. Do trabalho produzido, conclui-se que a aplicação para a gestão de arrendamentos foi concebida e está pronta para ser utilizada, logo os objetivos definidos para este trabalho foram atingidos. Esta aplicação focou o aluguer na totalidade do imóvel ou seja, não é possível efetuar a gestão de aluguer de quartos de um dado imóvel, uma alteração futura poderá consistir em permitir fazer o aluguer de quartos, outra alteração poderá passar por efetuar backups periódicos. 24 Referencias [1]: Nunes, Mauro-O'Neil, Henrique, Fundamental de UML, 2004 [2]: Buxton,Bill, Sketching User Experiences: Getting the Design Right and the Right Design, 2007 [3]: Jaspersoft Corporation, JasperSoft Ultimate Guide, 2011, [4]: Laudon,K-Laundon,J, Management Information Systems, 2011 [5]: Damas,Luís, SQL, 2005 [6]: Pereira,Carla;Sousa,Cristóvão, Metodologias de Desenvolvimento de SW Metodologias “Ágeis”, 2014, [7]: Aguiar,Ademar, Programação em Java:linguagem, APIs, boas práticas e Eclipse, 2005, [8]: Perreira,Carla, UML-Diagramas de Casos de Utilização, 2014, [9]: Rouse,Margaret, business process management (BPM), 2001, 25 6 Anexo A-Trecho do algoritmo gerar mensalidades Figura 19: Trecho gerar mensalidades 26 7 Anexo B- Trecho do algoritmo gerar avisos de débito Figura 20: Trecho gerar avisos de débito 27 8 Anexo C- Documento de Especificação de Requisitos 28 Documento de Especificação de Requisitos 29 1 Introdução 1.1 Objetivo O software que será explicado neste documento tem como objetivos tornar mais fácil e eficiente, a gestão de bens imóveis arrendados,auxiliando os utilizadores nas tarefas mais comuns. Este Documento pretende demonstrar as funcionalidades que irão ser implementadas no sistema através de diagramas e interfaces, assim com as restrições impostas ao desenvolvimento do software Este documento destina-se ao aluno responsável pelo desenvolvimento do mesmo e ao Docente António Pinto 1.2 Âmbito do Sistema O software apresentado neste documento denomina-se de GAI, este vai permitir aos utilizadores fazer uma gestão mais cuidada e organizada dos seus imóveis. O GAI poderá ser aplicado por qualquer senhorio, para fazer a gestão dos seus imóveis. Esta aplicação permite a um senhorio gerir o arrendamentos de um conjunto de imóveis. Em particular é possível emitir-se recibos de renda mensais, avisos de débito, permite o envio de emails, e gerir as despesas que o senhorio tenha com o imóvel (despesas de manutenção/reparação, impostos), entre outros. 1.3 Definições, acrónimos e abreviaturas GIA:Gestão de Imóveis arrendados 1.4 Referencias http://www.agilemodeling.com/artifacts/useCaseDiagram.html http://www.visual-paradigm.com/VPGallery/diagrams/Sequence.html http://probyte2u.hubpages.com/hub/Software-Requirements-Specification-Example-ABC-OnlineMovie-Booking-System-Part-1 1.5 Visão Geral A primeira secção contem, basicamente os objetivos do documento e congregações adotadas. A segunda secção descreve a funcionalidades do software, bem como as características dos seus utilizadores, restrições. A terceira secção apresenta a arquitetura do sistema, isto é as suas interfaces, requisitos funcionais, através de diagramas de casos de utilização, entre outros. Ao longo do documento vão ser apresentadas imagens de diagramas, e interfaces da aplicação. 30 2 Descrição Geral 2.1 Contexto do Problema A aplicação será desenvolvido em Java e utilizará uma base de dados desenvolvida em sqlite. A escolha deste motor de base dados e linguagem de programação, tem como finalidade garantir a sua portabilidade e minimizar a quantidade de programas necessários para o correto funcionamento desta aplicação. 2.2 Funções do Produto Este produto vai permitir aos utilizadores fazer a gestão dos imóveis, inquilinos, alugueres, despesas,recibos, suportará o envio de emails e permitirá emitir diversos relatórios. 2.3 Características dos utilizadores Esta aplicação não requer um grande conhecimento informático por parte dos utilizadores, poderá ser utilizada por qualquer pessoa, que possua imóveis arrendados. 2.4 Restrições Esta aplicação tem com principal restrição a sua portabilidade, devendo todas as opções tomadas durante o seu desenvolvimento garantirem esta mesma restrição. 2.5 Pressupostos e dependências O ambiente do sistema tem de ser de fácil perceção, pois será um programa para efeitos de trabalho; para trabalhar com o mesmo não é necessário existir uma ligação a internet, a não ser quando o utilizador pretender enviar emails. O sucesso do projeto irá depender principalmente da aceitabilidade do utilizadores com isto também se pressupõe que os utilizadores tenha os requisitos mínimos a nível informático 31 3 Requisitos específicos 3.1 Requisitos de interfaces externas 3.1.1 Interfaces com o Utilizador Em seguida irão ser apresentadas algumas imagens que representam esboços das interfaces da aplicação. As interfaces a seguir apresentadas foram desenvolvidas recorrendo à ferramenta Balsamiq Mockups. Figura 21: Registar Aluguer Aplicação permite ao utilizador registar um aluguer sendo esta a interface apresentada, a duração do aluguer é no mínimo de um mês, ao mesmo ainda pode estar associado uma caução sendo que esta é devolvida no final caso o imóvel não seja danificado. Ainda é possível solicitar o adiantamento das rendas, caso o valor da caução e das rendas antecipadas sejam elevados para uma só mensalidade estas podem ser atenuadas nas mensalidades dos meses seguintes. 32 Figura 22: Gerar Recibo Quando um inquilino efetua o pagamento de uma mensalidade, este tem que ter um comprovativo que tal operação foi efetuada, para isso a aplicação disponibiliza ao senhorio a funcionalidade de gerar recibos. 33 Figura 23: Enviar email Se o senhorio pretender enviar um aviso de débito, informar um determinado inquilino de algum assunto, pode fazê-lo recorrendo à funcionalidade envio de emails. 34 3.2 Requisitos Funcionais Visão Geral Nesta secção irão ser descritos todos os uses cases do sistema. Devido à existência de muitos uses cases, estes foram divididos por pacotes para uma melhor compreensão. O sistema permitirá ao senhorio Pacote Outros RF001 Ver os Dados pessoais,RF002-Editar Dados pessoais, RF003 Selecionar base dados, RF004 Efetuar Backup, RF005-Enviar email, RF006-Upload ficheiro Pacote Inquilinos RF007-Registar Inquilino, Inquilinos,RF009-Atualizar RF008Inquilinos, Ver Lista de RF010-Remover Inquilinos,RF11-Pesquisar Inquilinos Registar Imóveis RF012-Registar Imóvel,RF013-Ver Lista de Imóveis,RF014Atualizar imóvel,RF015-Remover imóvel,RF016-Pesquisar imóveis Pacote Aluguer RF017-Registar Aluguer,RF018-Ver Lista de Alugueres,RF019-Renovar Aluguer,RF020-Atualizar Aluguer,RF021-Remover Aluguer,RF022-Pesquisar Alugueres Pacote RF023-Ver Lista de Avisos de Débito,RF024-Gerar Avisos de Mensalidades,Avisos,Reci Débito,RF025-Emitir Avisos de Débito,RF026-Ver Detalhes bos do Aviso de Débito,RF027-Pesquisar Avisos de Débito,RF028-Ver lista de Mensalidades,RF029.Atualizar Mensalidade,RF030-Ver Detalhes de Mensalidade,RF031Gerar Recibo,RF032-Ver Lista de Recibos,RF033-Emitir Recibos,RF034-Ver Detalhes do Recibo,RF035-Pesquisar Recibos, Pacote Despesas RF036-Registar Despesa RF037-Ver Lista de Despesas RF038-Atualizar Despesa RF039-Remover Despesa RF040Emitir Relatório de Despesas RF041-Emitir Relatório de Conta Corrente Tabela 10: Pacotes 35 Figura 24: Diagrama de Pacotes O primeiro pacote a ser abordado é o de Inquilinos este pacote contém todas as funcionalidades responsáveis pela gestão dos inquilinos. Figura 25: Diagrama Casos de Uso-Inquilinos O pacote Imóveis contém todas as operações responsáveis pela gestão de imóveis. 36 Figura 26: Diagrama de caso de uso-Imóveis O pacote de Aluguer contém todas as operações responsáveis pela gestão de alugueres Figura 27: Diagrama de caso de uso-Alugueres O pacote de Mensalidades, Avisos e Recibos contem todas as operações responsáveis pela gestão dos mesmos 37 Figura 28: Diagrama de caso de uso-Mensalidade,Aviso,Recibo O pacote de Despesas, Relatórios contem todas as operações responsáveis pela gestão das despesas dos imóveis e pela emissão de relatórios 38 Figura 29: Diagrama caso de uso- Despesas,Relatórios O pacote outros contem funcionalidades, como ver/editar os dados pessoais, abrir e efetuar backup da base dados assim como o envio de emails. Figura 30: Diagrama de caso de uso-Outros 39 Atores Senhorio Casos de Utilização Com base nas descrições que se seguem foram identificados os seguintes objetos: Senhorio, é o ator responsável por despoletar o use case;Sistema, representa a interface com o ator. Nota: Optou-se por não detalhar em demasia os diagramas de sequencia. Identificação RF001 Nome Ver dados pessoais Descrição Sumária Pré-condição Não existe Descrição Permite ao Senhorio consultar os seus dados pessoais Tabela 11: Ver Dados Pessoais Ator Senhorio Prioridade Baixa Fluxo de eventos 1. Selecionar Menu Principal 2. Selecionar o item Dados Pessoais Figura 31: Diagrama de sequencia- Ver dados pessoais 40 Identificação RF002 Nome Editar dados pessoais Descrição Sumária Pré-condição Não existe Descrição Permite ao Senhorio editar os seus dados pessoais Pós- condição Sistema informa se a operação foi bem sucedida Tabela 12: Editar Dados Pessoais Ator Senhorio Prioridade Baixa Fluxo de eventos 1. Selecionar Menu Principal 2. Selecionar o item Dados Pessoais 3. Editar os dados pretendidos 4. Clicar no botão alterar Figura 32: Diagrama de sequencia-editar dados pessoais 41 Identificação RF003 Nome Selecionar base dados Descrição Sumária Pré-condição Não existe Descrição Permite ao senhorio selecionar a base dados que pretende utilizar Pós- condição Sistema informa se a operação foi bem sucedida Tabela 13: Selecionar Base Dados Ator Senhorio Prioridade Baixa Fluxo de eventos 1. Selecionar Menu Principal 2. Selecionar o item abrir base dados 3. Selecionar a base dados pretendida Figura 33: Diagrama de sequencia- selecionar a base dados 42 Identificação RF004 Nome Efetuar backup Descrição Sumária Pré-condição Não existe Descrição Permite efetuar um backup da base dados Pós- condição Sistema informa se a operação foi bem sucedida Tabela 14: Efetuar Backup Ator Senhorio Prioridade Baixa Fluxo de eventos 1. Selecionar Menu Principal 2. Selecionar o item backup 3. Escolher a localização onde pretende gravar a base dados Figura 34: Diagrama de sequencia-backup 43 Identificação RF005 Nome Enviar email Descrição Sumária Pré-condição Não existe Descrição Permite ao senhorio enviar um email Pós- condição Sistema informa se a operação foi bem sucedida Tabela 15: Enviar Email Ator Senhorio Prioridade Baixa Fluxo de eventos 1. Selecionar Menu Principal 2. Selecionar o item enviar email 3. Preencher o assunto 4. Preencher a mensagem 5. Clicar no botão enviar Figura 35: Diagrama de sequência-Enviar email 44 Identificação RF006 Nome Upload ficheiro Descrição Sumária Pré-condição Não existe Descrição Permite ao senhorio enviar um email com anexo Pós- condição Sistema informa se a operação foi bem sucedida Tabela 16: Upload Ficheiro Ator Senhorio Prioridade Baixa Fluxo de eventos 1. Selecionar Menu Principal 2. Selecionar o item enviar email 3. Preencher o assunto 4. Preencher a mensagem 5. Clicar em Adicionar anexo 6. Selecionar o ficheiro pretendido 7. Clicar no botão enviar 45 Figura 36: Diagrama de sequência-upload ficheiro 46 Identificação RF007 Nome Registar Inquilino Descrição Sumária Pré-condição Não existe Descrição Permite registar os dados associados a um inquilino. Pós- condição Sistema informa se a operação foi bem sucedida Tabela 17: Registar Inquilino Ator Senhorio Prioridade Média Fluxo de eventos 1. Selecionar o Menu Inquilinos 2. Selecionar o item abrir Registar Inquilino 3. Preencher os dados 4. Clicar no botão Registar Figura 37: Diagrama de sequência-registar inquilino 47 Identificação RF008 Nome Ver Lista de Inquilinos Descrição Sumária Pré-condição Não existe Descrição Permite ver a lista dos inquilinos Tabela 18: Ver Lista Inquilinos Ator Senhorio Prioridade Média Fluxo de eventos 1. Selecionar o Menu Inquilinos 2. Selecionar o item Lista de Inquilinos Figura 38: Diagrama de sequência-ver lista inquilinos 48 Identificação RF009 Nome Atualizar Inquilino Descrição Sumária Pré-condição Existir pelo menos um inquilino Descrição Permite atualizar dados dos inquilinos Pós- condição Sistema informa se a operação foi bem sucedida Tabela 19: Atualizar Inquilino Ator Senhorio Prioridade Média Fluxo de eventos 1. Selecionar o Menu Inquilinos 2. Selecionar o item Lista de Inquilinos 3. Selecionar o inquilino pretendido 4. Editar os dados 5. Clicar no botão atualizar Figura 39: Diagrama de sequência-atualizar inquilino 49 Identificação RF010 Nome Remover Inquilino Descrição Sumária Pré-condição Existir pelo menos um inquilino Descrição Permite remover um inquilino Pós- condição Sistema informa se a operação foi bem sucedida Tabela 20: Remover Inquilino Ator Senhorio Prioridade Média Fluxo de eventos 1. Selecionar o Menu Inquilinos 2. Selecionar o item Lista de Inquilinos 3. Selecionar o inquilino pretendido 4. Clicar no botão remover Figura 40: Diagrama de sequência-remover inquilino 50 Identificação RF011 Nome Pesquisar Inquilinos Descrição Sumária Pré-condição Não existe Descrição Permite pesquisar inquilinos pelo o seu nome Tabela 21: Pesquisar Inquilinos Ator Senhorio Prioridade Baixa Fluxo de eventos 1. Selecionar o Menu Inquilinos 2. Selecionar o item Lista de Inquilinos 3. Escrever o nome do inquilino na caixa de pesquisa 4. Clicar no botão pesquisar Figura 41: Diagrama de sequência-pesquisar inquilinos 51 Identificação RF012 Nome Registar Imóvel Descrição Sumária Pré-condição Não existe Descrição Permite registar um imóvel Pós- condição Sistema informa se a operação foi bem sucedida Tabela 22: Registar Imóvel Ator Senhorio Prioridade Média Fluxo de eventos 1. Selecionar o Menu Imóveis 2. Selecionar o item Registar Imóvel 3. Preencher os dados 4. Clicar no botão registar Figura 42: Diagrama de sequência-registar imóvel 52 Identificação RF0013 Nome Ver Lista de Imóveis Descrição Sumária Pré-condição Não existe Descrição Permite ver Lista de Imóveis Tabela 23: Ver Lista de Imóveis Ator Senhorio Prioridade Média Fluxo de eventos 1. Selecionar o Menu Imóveis 2. Selecionar o item Lista de Imóveis Figura 43: Diagrama de sequência- ver lista de imóveis 53 Identificação RF014 Nome Atualizar Imóvel Descrição Sumária Pré-condição Existir pelo menos um imóvel Descrição Permite atualizar um imóvel Pós- condição Sistema informa se a operação foi bem sucedida Tabela 24: Atualizar imóvel Ator Senhorio Prioridade Média Fluxo de eventos 1. Selecionar o Menu Imóveis 2. Selecionar o item Lista de Imóveis 3. Selecionar o imóvel pretendido 4. Editar os dados 5. Clicar no botão atualizar Figura 44: Diagrama de sequência-atualizar imóvel 54 Identificação RF015 Nome Remover Imóvel Descrição Sumária Pré-condição Existir pelo menos um imóvel Descrição Permite remover Imóvel Pós- condição Sistema informa se a operação foi bem sucedida Tabela 25: Remover Imóvel Ator Senhorio Prioridade Média Fluxo de eventos 1. Selecionar o Menu Imóveis 2. Selecionar o item Lista de Imóveis 3. Selecionar o imóvel pretendido 4. Clicar no botão remover Figura 45: Diagrama de sequência-remover imóvel 55 Identificação RF016 Nome Pesquisar Imóveis Descrição Sumária Pré-condição Não existe Descrição Permite pesquisar imóveis pelo o seu estado e localidade Tabela 26: Pesquisar Imóveis Ator Senhorio Prioridade Baixa Fluxo de eventos 1. Selecionar o Menu Imóveis 2. Selecionar o item Lista de Imóveis 3. Selecionar o critério de pesquisa 4. Escrever na caixa de pesquisa o que pretende pesquisar 5. Clicar no botão pesquisar Figura 46: Diagrama de sequência-pesquisar imóveis 56 Identificação RF017 Nome Registar Aluguer Descrição Sumária Pré-condição Existir pelo menos um inquilino e um imóvel livre Descrição Registar Aluguer Pós- condição Sistema informa se a operação foi bem sucedida Tabela 27: Registar Aluguer Ator Senhorio Prioridade Média Fluxo de eventos 1. Selecionar o Menu Alugueres 2. Selecionar o item Registar Aluguer 3. Preencher os dados 4. Clicar no botão registar Figura 47: Diagrama de sequência-registar aluguer 57 Identificação RF018 Nome Ver Lista de Alugueres Descrição Sumária Pré-condição Não existe Descrição Permite ver a lista de alugueres Tabela 28: Ver Lista de Alugueres Ator Senhorio Prioridade Média Fluxo de eventos 1. Selecionar o Menu Alugueres 2. Selecionar o item Lista de Alugueres 3. Selecionar o inquilino pretendido Figura 48: Diagrama de sequência-ver lista de alugueres 58 Identificação RF019 Nome Renovar Aluguer Descrição Sumária Pré-condição Aluguer não pode estar ativo Descrição Permite renovar Aluguer Pós- condição Sistema informa se a operação foi bem sucedida Tabela 29: Renovar Aluguer Ator Senhorio Prioridade Média Fluxo de eventos 1. Selecionar o Menu Alugueres 2. Selecionar o item Lista de Alugueres 3. Selecionar o aluguer pretendido 4. Clicar no botão renovar Figura 49: Diagrama de sequência-renovar aluguer 59 Identificação RF020 Nome Atualizar Aluguer Descrição Sumária Pré-condição Existir pelo menos um aluguer Descrição Permite atualizar um aluguer Pós- condição Sistema informa se a operação foi bem sucedida Tabela 30: Atualizar Aluguer Ator Senhorio Prioridade Média Fluxo de eventos 1. Selecionar o Menu Inquilinos 2. Selecionar o item Lista de Alugueres 3. Selecionar o aluguer pretendido 4. Editar os dados 5. Clicar no botão atualizar Figura 50: Diagrama de sequência-atualizar aluguer 60 Identificação RF021 Nome Remover Aluguer Descrição Sumária Pré-condição Existir pelo menos um aluguer Descrição Permite remover um aluguer Pós- condição Sistema informa se a operação foi bem sucedida Tabela 31: Remover Aluguer Ator Senhorio Prioridade Média Fluxo de eventos 1. Selecionar o Menu Alugueres 2. Selecionar o item Lista de Alugueres 3. Selecionar o aluguer pretendido 4. Clicar no botão remover Figura 51: Diagrama de sequência-remover aluguer 61 Identificação RF022 Nome Pesquisar Alugueres Descrição Sumária Pré-condição Não existe Descrição Permite pesquisar alugueres por estado Tabela 32: Pesquisar Aluguer Ator Senhorio Prioridade Média Fluxo de eventos 1. Selecionar o Menu Alugueres 2. Selecionar o item Lista de Alugueres 3. Selecionar o critério pretendido 4. Clicar no botão pesquisar Figura 52: Diagrama de sequência-pesquisar alugueres 62 Identificação RF023 Nome Ver Lista de Avisos de Débito Descrição Sumária Pré-condição Existir pelo menos um aluguer Descrição Permite ver a lista de avisos de débito Tabela 33: Ver Lista de Avisos de Débito Ator Senhorio Prioridade Média Fluxo de eventos 1. Selecionar o Menu Avisos de Débito 2. Selecionar o item Lista de Avisos de Débito 3. Selecionar o aluguer pretendido Figura 53: Diagrama de sequência-lista de avisos de débito 63 Identificação RF024 Nome Gerar Avisos de Débito Descrição Sumária Pré-condição Existir um aluguer ativo e mensalidades por pagar Permite ao senhorio gerar um aviso de débito, Descrição este é constituído por todas as mensalidades em falta até ao momento do pedido Pós- condição Sistema informa se a operação foi bem sucedida Tabela 34: Gerar Avisos de Débito Ator Senhorio Prioridade Média Fluxo de eventos 1. Selecionar o Menu Avisos 2. Selecionar o item Lista de Avisos 3. Selecionar o aluguer pretendido 4. Clicar no botão Gerar Avisos Figura 54: Diagrama de sequência-gerar avisos de débito 64 Identificação RF025 Nome Emitir Avisos de Débito Descrição Sumária Pré-condição Existir um aviso de débito Descrição Permite emitir avisos de débito Pós- condição Sistema informa se a operação foi bem sucedida Tabela 35: Emitir Aviso de Débito Ator Senhorio Prioridade Média Fluxo de eventos 1. Selecionar o Menu Avisos de Débito 2. Selecionar o item Lista de Avisos de Débito 3. Selecionar o aluguer pretendido 4. Selecionar o aviso pretendido 5. Clicar no botão emitir aviso Figura 55: Diagrama de sequência-emitir aviso de débito 65 Identificação RF026 Nome Ver Detalhes Avisos de Débito Descrição Sumária Pré-condição Existir um aviso de débito Descrição Permite ver os detalhes avisos de débito Tabela 36: Ver Detalhes Aviso de Débito Ator Senhorio Prioridade Média Fluxo de eventos 1. Selecionar o Menu Avisos de Débito 2. Selecionar o item Lista de Avisos de Débito 3. Selecionar o aluguer pretendido 4. Selecionar o aviso pretendido 5. Clicar no botão ver detalhes Figura 56: Diagrama de sequência-ver detalhes de um aviso de débito 66 Identificação RF027 Nome Pesquisar Avisos de Débito Descrição Sumária Pré-condição Não existe Descrição Permite pesquisar avisos de débito pelo o seu estado Tabela 37: Pesquisar Avisos de Débito Ator Senhorio Prioridade Média Fluxo de eventos 1. Selecionar o Menu Avisos de Débito 2. Selecionar o item Avisos de Débito 3. Selecionar o critério pretendido 4. Clicar no botão pesquisar Figura 57: Diagrama de sequência-pesquisar avisos de débito 67 Identificação RF028 Nome Ver Lista de Mensalidades Descrição Sumária Pré-condição Existir pelo menos um aluguer Descrição Permite ver a lista de mensalidades dos alugueres Tabela 38: Ver Lista de Mensalidades Ator Senhorio Prioridade Média Fluxo de eventos 1. Selecionar o Menu Mensalidades 2. Selecionar o item Lista de Mensalidades 3. Selecionar o aluguer pretendido Figura 58: Diagrama de sequência-ver lista de mensalidades 68 Identificação RF029 Nome Atualizar Mensalidade Descrição Sumária Pré-condição Existir pelo menos um a mensalidade Descrição Permite atualizar uma mensalidade de um aluguer Pós- condição Sistema informa se a operação foi bem sucedida Tabela 39: Atualizar Mensalidade Ator Senhorio Prioridade Média Fluxo de eventos 1. Selecionar o Menu Mensalidades 2. Selecionar o item Lista de Mensalidades 3. Selecionar o aluguer pretendido 4. Selecionar a mensalidade pretendida 5. Editar os dados 6. Clicar no botão atualizar Figura 59: Diagrama de sequência-atualizar mensalidade 69 Identificação RF030 Nome Ver Detalhes da Mensalidade Descrição Sumária Pré-condição Existir uma mensalidade Descrição Permite ver os detalhes da mensalidade Tabela 40: Ver Detalhes da Mensalidade Ator Senhorio Prioridade Média Fluxo de eventos 1. Selecionar o Menu Mensalidades 2. Selecionar o item Lista de Mensalidades 3. Selecionar o aluguer pretendido 4. Selecionar a mensalidade pretendida 5. Clicar no botão ver detalhes Figura 60: Diagrama de sequência-detalhes da mensalidade 70 Identificação RF031 Nome Gerar Recibo Descrição Sumária Pré-condição Existir pelo menos um aluguer ativo Descrição Permite ao senhorio gerar um recibo relativo a um pagamento efetuado por um inquilino é a prova de como o inquilino efetuou o pagamento Pós- condição Sistema informa se a operação foi bem sucedida Tabela 41: Gerar Recibo Ator Senhorio Prioridade Média Fluxo de eventos 1. Selecionar o Menu Recibos 2. Selecionar o item Gerar Recibo 3. Selecionar o aluguer pretendido 4. Selecionar a mensalidade pretendida 5. Escrever o valor recebido dessa mensalidade 6. Clicar no botão adicionar 7. Clicar no botão Gerar Recibo 71 Figura 61: Diagrama de sequência-gerar recibo 72 Identificação RF032 Nome Ver Lista de Recibos Descrição Sumária Pré-condição Não existe Descrição Permite ver a lista de recibos Tabela 42: Ver Lista de Recibos Ator Senhorio Prioridade Média Fluxo de eventos 1. Selecionar o Menu Recibos 2. Selecionar o item Lista de Recibos 3. Selecionar o aluguer pretendido Figura 62: Diagrama de sequência-ver lista de recibos 73 Identificação RF033 Nome Emitir Recibo Descrição Sumária Pré-condição Existir um recibo Descrição Permite emitir recibos Pós- condição Sistema informa se a operação foi bem sucedida Tabela 43: Emitir Recibo Ator Senhorio Prioridade Média Fluxo de eventos 1. Selecionar o Menu Recibos 2. Selecionar o item Lista de Recibos 3. Selecionar o aluguer pretendido 4. Selecionar o recibo pretendido 5. Clicar no botão emitir recibo Figura 63: Diagrama de sequência-emitir recibo 74 Identificação RF034 Nome Ver Detalhes do Recibo Descrição Sumária Pré-condição Existir pelo menos um recibo Descrição Permite ver os detalhes do recibo Tabela 44: Ver Detalhes do Recibo Ator Senhorio Prioridade Média Fluxo de eventos 1. Selecionar o Menu Recibos 2. Selecionar o item Lista de Recibos 3. Selecionar o aluguer pretendido 4. Selecionar o recibo pretendido 5. Clicar no botão detalhes Figura 64: Diagrama de sequência-ver detalhes do recibo 75 Identificação RF035 Nome Pesquisar Recibos Descrição Sumária Pré-condição Não existe Descrição Permite pesquisar recibos pelo seu estado Tabela 45: Pesquisar Recibos Ator Senhorio Prioridade Média Fluxo de eventos 1. Selecionar o Menu Recibos 2. Selecionar o item Lista de Recibos 3. Selecionar o aluguer pretendido 4. Selecionar o critério pretendido 5. Clicar no botão pesquisar Figura 65: Diagrama de sequência-pesquisar recibos 76 Identificação RF036 Nome Registar Despesa Descrição Sumária Pré-condição Existir pelo menos um imóvel Descrição Permite registar despesa de um imóvel Pós- condição Sistema informa se a operação foi bem sucedida Tabela 46: Registar Despesa Ator Senhorio Prioridade Média Fluxo de eventos 1. Selecionar o Menu Despesa 2. Selecionar o item Registar Despesa 3. Preencher os dados 4. Clicar no botão Registar Figura 66: Diagrama de sequência-registar despesa 77 Identificação RF037 Nome Ver Lista de Despesas Descrição Sumária Pré-condição Existir pelo menos um aluguer Descrição Permite ver a lista de despesas dos imóveis Tabela 47: Ver Lista de Despesas Ator Senhorio Prioridade Média Fluxo de eventos 1. Selecionar o Menu Despesas 2. Selecionar o item Lista de Despesas 3. Selecionar o imóvel pretendido Figura 67: Diagrama de sequência-ver lista de despesas 78 Identificação RF038 Nome Atualizar Despesa Descrição Sumária Pré-condição Existir pelo menos uma despesa Descrição Permite atualizar as despesas dos imóveis Pós- condição Sistema informa se a operação foi bem sucedida Tabela 48: Atualizar Despesa Ator Senhorio Prioridade Média Fluxo de eventos 1. Selecionar o Menu Despesas 2. Selecionar o item Lista de Despesas 3. Selecionar o imóvel pretendido 4. Selecionar a despesa pretendida 5. Editar os dados 6. Clicar no botão atualizar Figura 68: Diagrama de sequência-atualizar despesa 79 Identificação RF039 Nome Remover Despesa Descrição Sumária Pré-condição Existir pelo menos um imóvel com uma despesa Descrição Permite remover despesas dos imóveis Pós- condição Sistema informa se a operação foi bem sucedida Tabela 49: Remover Despesa Ator Senhorio Prioridade Média Fluxo de eventos 1. Selecionar o Menu Despesas 2. Selecionar o item Lista de Despesas 3. Selecionar o imóvel pretendido 4. Selecionar a despesa pretendida 5. Clicar no botão remover Figura 69: Diagrama de sequência-remover despesas 80 Identificação RF040 Nome Emitir Relatório de Despesas Descrição Sumária Pré-condição Existir pelo menos um imóvel com uma despesa Descrição Permite emitir o relatório de despesas Pós- condição Sistema informa se a operação foi bem sucedida Tabela 50: Emitir Relatório de Despesas Ator Senhorio Prioridade Média Fluxo de eventos 1. Selecionar o Menu Relatórios 2. Selecionar o item Emitir Relatórios 3. Selecionar o imóvel pretendido 4. Selecionar o Relatório de Despesas 5. Selecionar o ano pretendido 6. Clicar no botão emitir relatório Figura 70: Diagrama de sequência-emitir relatório de despesas 81 Identificação RF041 Nome Emitir Relatório de Conta Corrente Descrição Sumária Pré-condição Existir pelo menos um imóvel com uma despesa e uma mensalidade paga Descrição Emitir Relatório de Conta Corrente Pós- condição Sistema informa se a operação foi bem sucedida Tabela 51: Emitir Relatório de Conta Corrente Ator Senhorio Prioridade Média Fluxo de eventos 1. Selecionar o Menu Relatórios 2. Selecionar o item Emitir Relatórios 3. Selecionar o imóvel pretendido 4. Selecionar o Relatório Conta Corrente 5. Selecionar o ano pretendido 6. Clicar no botão emitir relatório Figura 71: Diagrama de sequência-relatório conta corrente 82 3.3 Requisitos de Informação Uma pessoa pode ser um senhorio, um inquilino particular ou um inquilino empresa, sendo que no negocio vão ver funções diferentes. Um senhorio é aquele que vai fazer efetivamente a gestão dos arrendamentos, faz-se a diferenciação entre inquilinos particulares e empresa pois caso o inquino seja uma empresa e o valor do aluguer do imóvel a que este está associado for de igual ou superior a 10.000 euros este está sujeito a uma taxa de retenção. Um imóvel tem um tipo de classificação e este pode estar associado a um ou mais alugueres sendo que não pode estar associado a mais do que um aluguer no mesmo instante. Um Aluguer tem um inicio e um fim sendo que quando acaba existe a possibilidade de renovação. Ainda o aluguer é constituído por uma ou mais mensalidade dependendo da sua duração, uma mensalidade pode ser constituída por mais do que um pagamento, isto é para além da renda mensal poderá ainda existir outros pagamentos como por exemplo caução e rendas antecipadas. Uma notificação/aviso permite ao senhorio saber que mensalidades é que um determinado inquilino deve num determinado momento, o recibo é a prova de como um inquilino efetuou um pagamento. Ao longo do ciclo de vida de um imóvel este pode ter associado um conjunto de despesas como por exemplo reparações, impostos entre outros Este diagrama de classes representa a estrutura que irá dar suporte ás informações de negócio. Figura 72: Diagrama de Classes 83 3.4 Requisitos suplementares A aplicação deverá possuir uma interface simples, que permita uma rápida aprendizagem por parte dos utilizadores, ser o mais eficiente possível e ser suportada por a maioria dos sistemas operativos na Tabela 52é apresentado um pequeno resumo dos requisitos não funcionais. Requisitos não funcionais Identificador Prioridade Descrição Simples/Intuitivo RNF001 Alta A aplicação deverá possuir uma interface simples e que permita uma rápida aprendizagem por parte dos utilizadores Eficiente RNF002 Média A aplicação deverá ser o mais eficiente possível Multi-plataforma RNF003 Alta Esta aplicação deverá ser suportada por a maioria dos sistemas operativos Tabela 52: Requisitos não funcionais 84 Indicie 1 Introdução..........................................................................................................................................30 1.1 Objetivo..........................................................................................................................................30 1.2 Âmbito do Sistema.........................................................................................................................30 1.3 Definições, acrónimos e abreviaturas.............................................................................................30 1.4 Referencias.....................................................................................................................................30 1.5 Visão Geral.....................................................................................................................................30 2 Descrição Geral.................................................................................................................................31 2.1 Contexto do Problema....................................................................................................................31 2.2 Funções do Produto........................................................................................................................31 2.3 Características dos utilizadores.......................................................................................................31 2.4 Restrições.......................................................................................................................................31 2.5 Pressupostos e dependências...........................................................................................................31 3 Requisitos específicos........................................................................................................................32 3.1 Requisitos de interfaces externas....................................................................................................32 3.1.1 Interfaces com o Utilizador..........................................................................................................32 3.2 Requisitos Funcionais.....................................................................................................................35 3.3 Requisitos de Informação...............................................................................................................83 3.4 Requisitos suplementares................................................................................................................84 85