93

Escola Superior de Tecnologia e Gestãobdigital.ipg.pt/dspace/bitstream/10314/1793/1... · do curso de Engenharia Informática, da Escola Superior de Tecnologia e Gestão, do Instituto

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Escola Superior de Tecnologia e Gestãobdigital.ipg.pt/dspace/bitstream/10314/1793/1... · do curso de Engenharia Informática, da Escola Superior de Tecnologia e Gestão, do Instituto
Page 2: Escola Superior de Tecnologia e Gestãobdigital.ipg.pt/dspace/bitstream/10314/1793/1... · do curso de Engenharia Informática, da Escola Superior de Tecnologia e Gestão, do Instituto

Escola Superior de Tecnologia e Gestão

AMEC

Gestão de Condomínios

Projeto de Informática - Curso de Engenharia

Informática

Emanuel Martins Gonçalves

Nº: 1009437

29 de Novembro de 2013

Page 3: Escola Superior de Tecnologia e Gestãobdigital.ipg.pt/dspace/bitstream/10314/1793/1... · do curso de Engenharia Informática, da Escola Superior de Tecnologia e Gestão, do Instituto

Escola Superior de Tecnologia e Gestão

AMEC

Gestão de Condomínios

Projeto de Informática - Curso de Engenharia

Informática

Emanuel Martins Gonçalves

Nº: 1009437

Professor Orientador:

Engenheiro Noel de Jesus Lopes da Unidade

Técnico-Científica de Informática da ESTG

29 de Novembro de 2013

Page 4: Escola Superior de Tecnologia e Gestãobdigital.ipg.pt/dspace/bitstream/10314/1793/1... · do curso de Engenharia Informática, da Escola Superior de Tecnologia e Gestão, do Instituto

i

Agradecimentos

Agradeço à minha amiga Andreia Sequeira e amigo Marco Gonçalves que estão a

pensar tornarem-se empreendedores criando uma empresa de Gestão de Condomínios, e

assim surgir a ideia de realizar este projeto, fazendo assim que este projeto faça parte

também do deles de forma a desafiar os conhecimentos adquiridos ao longo do meu

curso.

Ao meu irmão André Gonçalves, que me apoiou sempre que foi preciso.

Ao Engenheiro Noel de Jesus Lopes, que me esclareceu sempre que o procurei.

À Professora Doutora Maria Clara Silveira, pela disponibilidade de me indicar a direção

correta para a realização da análise de requisitos do projeto.

À minha mãe e família, pelo apoio de não me deixarem ficar a meio desta etapa

importantíssima para a minha vida.

Aos meus amigos dentro do curso e fora dele, não vou dizer nomes, eles sabem quem

são.

Um muito obrigado a todos.

Page 5: Escola Superior de Tecnologia e Gestãobdigital.ipg.pt/dspace/bitstream/10314/1793/1... · do curso de Engenharia Informática, da Escola Superior de Tecnologia e Gestão, do Instituto

ii

Resumo

Este documento foi realizado no contexto da unidade curricular Projeto de Informática,

do curso de Engenharia Informática, da Escola Superior de Tecnologia e Gestão, do

Instituto Politécnico da Guarda.

Num mundo empresarial cada vez mais competitivo, um jovem empreendedor deste

século precisa de muita coragem, muito trabalho, criatividade constante, bons

conhecimentos a nível pessoal e profissional, bons investidores, mas precisa também

obrigatoriamente de um Software que lhe facilite a gestão da nova empresa.

Este projeto consiste no desenvolvimento de uma solução informática, capaz de dar

respostas aos utilizadores intervenientes no ramo da Gestão de Condomínios.

O objetivo principal centra-se na gestão de Clientes, Serviços, Atas e Despesas de um

Condomínio. Com a informação introduzida, é possível calcular o montante que cada

Cliente vai pagar no final do mês.

Este projeto baseia-se em quatro partes, uma parte para divulgação da empresa e para o

utilizador pedir um orçamento, outra para o utilizador registado (Cliente) ter acesso à

informação pessoal, do condomínio e despesas, entrar em contacto com empresa,

administrador interno ou externo. Outra parte é focada para o funcionário, onde pode

registar Condomínios, Clientes, Atas, Serviços, gerir esses dados, fazer procuras para

consultas. Por fim, e não menos importante, a parte ligada ao gestor, para gerir

funcionários e serviços, fazer pesquisa e consulta de informação.

Para a realização deste projeto foi utilizado o Microsoft Visual Studio, as principais

tecnologias utilizadas foram o ASP.NET, C# e o SQL SERVER.

Palavras-Chave:

Aplicação Web, Gestão de Condomínios, Base de Dados, ASP.NET, C#, Software

Page 6: Escola Superior de Tecnologia e Gestãobdigital.ipg.pt/dspace/bitstream/10314/1793/1... · do curso de Engenharia Informática, da Escola Superior de Tecnologia e Gestão, do Instituto

iii

Abstract

This document was prepared in the context of the discipline Computer Project, in course

of Engineering Informatics, School of Technology and Management, Polytechnic

Institute of Guarda.

In a business world increasingly competitive, a young enterpriser in this century needs a

lot of courage, hard work, constant creativity, good acquirements of the personal and

professional level, good investors, but needs a mandatory software that facilitates the

management of the new company.

This project is a solution to development capable give answers users interested in the

branch of Management Condominium.

The main goal focuses on Customer management, Services, Atas and Expenses of a

condominium. With the information introduced, can calculate the amount each customer

will pay on the end of the month.

This project is based in four parts, one part to divulgation the company and for the user

do budget request, another part for registered user (client) access to personal

information, condominium and expenses, contact the company, and internal or external

administrator. Another part is focused to the employee, where can register a

Condominium, Customers, Atas, Services, can manage these data, do research and

consultations. Finally, and not least, the part linked to the manager, to manage

employees and services, do research and consultations of information.

For this project we used the Microsoft Visual Studio, the main technologies used were

ASP.NET, C # and SQL SERVER.

Key words:

Web Application, Condominium Management, Databases, ASP.NET, C #, Software

Page 7: Escola Superior de Tecnologia e Gestãobdigital.ipg.pt/dspace/bitstream/10314/1793/1... · do curso de Engenharia Informática, da Escola Superior de Tecnologia e Gestão, do Instituto

iv

Índice

Capítulo 1. Introdução ................................................................................................... 1

1.1 Objetivos ............................................................................................................ 2

1.2 Motivação .......................................................................................................... 4

1.3 Contribuição ....................................................................................................... 4

1.4 Estrutura do Documento .................................................................................... 5

Capítulo 2. Estado da Arte ............................................................................................ 6

2.1 Introdução .......................................................................................................... 6

2.2 Aplicação GeCond Online ................................................................................. 7

Capítulo 3. Metodologia e Análise de Requisitos ....................................................... 10

3.1 Problema .......................................................................................................... 10

3.2 Metodologia ..................................................................................................... 12

3.3 Plano de Trabalho ............................................................................................ 13

3.4 Diagrama de Contexto ..................................................................................... 14

3.5 Atores e Casos de Uso ..................................................................................... 15

3.6 Diagrama de Casos de Uso .............................................................................. 17

3.7 Descrição de Casos de Uso .............................................................................. 18

3.7.1 Pedir Orçamento ....................................................................................... 19

3.7.2 Registar Novo Condomínio ...................................................................... 20

3.7.3 Inserir Cliente no Condomínio ................................................................. 21

3.7.4 Inserir Despesa do Condomínio ............................................................... 22

3.7.5 Selecionar Serviços Pedidos do Condomínio ........................................... 23

3.7.6 Procurar Cliente ........................................................................................ 24

3.7.7 Editar Cliente ............................................................................................ 25

3.7.8 Gerir Clientes por Condomínio ................................................................ 26

Page 8: Escola Superior de Tecnologia e Gestãobdigital.ipg.pt/dspace/bitstream/10314/1793/1... · do curso de Engenharia Informática, da Escola Superior de Tecnologia e Gestão, do Instituto

v

3.7.9 Apagar Cliente .......................................................................................... 28

3.7.10 Ver/Editar Atas ......................................................................................... 29

3.7.11 Consultar Info Pessoal .............................................................................. 31

3.7.12 Contactar Empresa .................................................................................... 32

3.7.13 Ver/Editar Funcionário ............................................................................. 33

3.7.14 Confirmar Pagamentos ............................................................................. 34

3.8 Diagramas de Sequência .................................................................................. 35

3.8.1 Procurar Cliente por Condomínio............................................................. 35

3.8.2 Registar Novo Condomínio ...................................................................... 36

3.8.3 Gerir Funcionários .................................................................................... 37

3.8.4 Ver/Editar Atas ......................................................................................... 38

3.8.5 Emitir e Confirmar Pagamento ................................................................. 39

3.9 Diagrama de Classes ........................................................................................ 40

3.10 Semântica de Classes ....................................................................................... 41

3.10.1 Entidade: Atas .......................................................................................... 41

3.10.2 Entidade: Condomínios ............................................................................ 42

3.10.3 Entidade: Clientes ..................................................................................... 44

3.10.4 Entidade: Funcionários ............................................................................. 47

3.10.5 Entidade: Despesas ................................................................................... 48

3.10.6 Entidade: ConfirmarPagamento ............................................................... 48

3.10.7 Entidade: Servicos .................................................................................... 49

3.10.8 Entidade: DespesaCliente ......................................................................... 50

3.11 Diagrama de Atividades ................................................................................... 51

3.12 Diagrama de Estados ....................................................................................... 52

3.13 Diagrama de Instalação .................................................................................... 53

3.14 Arquitetura da Solução .................................................................................... 53

Capítulo 4. Tecnologias e Software Utilizados ........................................................... 54

Page 9: Escola Superior de Tecnologia e Gestãobdigital.ipg.pt/dspace/bitstream/10314/1793/1... · do curso de Engenharia Informática, da Escola Superior de Tecnologia e Gestão, do Instituto

vi

4.1 Tecnologias ...................................................................................................... 54

4.1.1 Microsoft SQL SERVER ......................................................................... 54

4.1.2 ASP.NET .................................................................................................. 54

4.1.3 C# ............................................................................................................. 55

4.1.4 HTML ....................................................................................................... 56

4.1.5 CSS ........................................................................................................... 56

4.1.6 JavaScript ................................................................................................. 57

4.2 Software Utilizado ........................................................................................... 58

4.2.1 Microsoft Visual Studio 2010 .................................................................. 58

4.2.2 Outros ....................................................................................................... 58

Capítulo 5. Implementação da Solução ....................................................................... 59

5.1 Introdução ........................................................................................................ 59

5.2 Modelo Físico da BD ....................................................................................... 59

5.3 Aplicação ......................................................................................................... 61

5.3.1 Navegação da aplicação............................................................................ 61

5.3.2 Criação de uma página mestre .................................................................. 62

5.3.3 Registar um Condomínio .......................................................................... 63

5.3.1 Validar e Enviar Pedido de Orçamento .................................................... 66

5.4 Código .............................................................................................................. 69

5.4.1 Carregar um ficheiro PDF ........................................................................ 69

5.4.2 Calcular Quota Mensal ............................................................................. 69

Capítulo 6. Conclusão e Trabalho Futuro ................................................................... 70

6.1 Conclusão ......................................................................................................... 70

6.2 Resultados Obtidos .......................................................................................... 70

6.3 Trabalho Futuro ............................................................................................... 71

Bibliografia ..................................................................................................................... 72

Page 10: Escola Superior de Tecnologia e Gestãobdigital.ipg.pt/dspace/bitstream/10314/1793/1... · do curso de Engenharia Informática, da Escola Superior de Tecnologia e Gestão, do Instituto

vii

Lista de Figuras

Figura 1: Gráfico Área de Clientes ................................................................................... 7

Figura 2: Exemplo do software Gecond ........................................................................... 8

Figura 3: Citação Pressman metodologia ágil ................................................................ 12

Figura 4: Mapa de Gantt ................................................................................................. 13

Figura 5: Diagrama de Contexto .................................................................................... 14

Figura 6: Diagrama de Casos de Uso ............................................................................. 17

Figura 7: Diagrama de Sequência Procurar Cliente por Condomínio ............................ 35

Figura 8: Diagrama de Sequência Registar Novo Condomínio ..................................... 36

Figura 9: Diagrama de Sequência Novo Funcionário .................................................... 37

Figura 10: Diagrama de Sequência Editar Funcionário.................................................. 37

Figura 11: Ver/Editar Ata ............................................................................................... 38

Figura 12:Diagrama de Sequência Emitir e Confirmar Pagamento ............................... 39

Figura 13: Diagrama de Classes ..................................................................................... 40

Figura 14: Diagrama de atividades Registar novo Condomínio..................................... 51

Figura 15: Diagrama de Estado Confirmar Pagamento .................................................. 52

Figura 16: Diagrama de instalação ................................................................................. 53

Figura 17: Arquitetura da Solução.................................................................................. 53

Figura 18: Ambiente de trabalho do Visual Studio ........................................................ 58

Figura 19: Modelo Físico da BD .................................................................................... 59

Figura 20: Diagrama ER ................................................................................................. 60

Figura 21:Navegação da aplicação ................................................................................. 61

Figura 22:Criar Master Page .......................................................................................... 62

Figura 23: Login ............................................................................................................. 63

Figura 24: Opções depois do Login com sucesso .......................................................... 63

Figura 25: Área de Funcionário ...................................................................................... 64

Figura 26: Formulário Registar Condomínio ................................................................. 64

Figura 27: Exemplo Formulários Desbloqueados .......................................................... 65

Figura 28: Formulário Pedir Orçamento ........................................................................ 66

Figura 29: Exemplo de inserção incorreta ...................................................................... 66

Figura 30: Exemplo da validação do email .................................................................... 67

Figura 31: Exemplo validação do NIF ........................................................................... 67

Figura 32: Exemplo ValidationSummary ....................................................................... 67

Figura 33:Exemplo do botão Confirmar ......................................................................... 67

Figura 34: Exemplo do Código do Botão Confirmar ..................................................... 68

Figura 35: Exemplo de Código Carregar Ficheiro ......................................................... 69

Figura 36: Exemplo de Código Calcular Quota Mensal................................................. 69

Page 11: Escola Superior de Tecnologia e Gestãobdigital.ipg.pt/dspace/bitstream/10314/1793/1... · do curso de Engenharia Informática, da Escola Superior de Tecnologia e Gestão, do Instituto

viii

Lista de Tabelas

Tabela 1: Comparação das Aplicações ............................................................................. 9

Tabela 2: Atores e Casos de Uso .................................................................................... 15

Tabela 3: Pedir Orçamento ............................................................................................. 19

Tabela 4: Descrição caso de uso Registar Novo Condomínio........................................ 20

Tabela 5: Descrição Caso de uso Inserir Cliente no Condomínio .................................. 21

Tabela 6: Inserir Despesa do Condomínio ..................................................................... 22

Tabela 7: Selecionar Serviços Pedidos do Condomínio ................................................. 23

Tabela 8: Editar Cliente .................................................................................................. 25

Tabela 9: Descrição caso de uso Gerir Cliente por Condomínio ................................... 26

Tabela 10: Apagar Cliente .............................................................................................. 28

Tabela 11: Descrição caso de uso Ver/Editar Atas......................................................... 29

Tabela 12: Descrição caso de uso Consultar Info Pessoal .............................................. 31

Tabela 13: Descrição caso de uso Contactar Empresa ................................................... 32

Tabela 14: Descrição caso de uso Gerir Funcionário ..................................................... 33

Tabela 15: Descrição caso de uso Confirmar Pagamentos ............................................. 34

Tabela 16: Semântica da classe Atas .............................................................................. 41

Tabela 17: Semântica dos Métodos ................................................................................ 41

Tabela 18: Semântica da classe Condomínios ................................................................ 42

Tabela 19: Método Pesquisar ......................................................................................... 43

Tabela 20: Semântica da classe Clientes ........................................................................ 44

Tabela 21: Método Apagar Cliente ................................................................................ 45

Tabela 22: Método Inserir Cliente .................................................................................. 45

Tabela 23: Semântica da classe Funcionários ................................................................ 47

Tabela 24: Semântica da classe Despesas ...................................................................... 48

Tabela 25: Semântica da classe ConfirmarPagamento ................................................... 48

Tabela 26: Semântica da classe Servicos ....................................................................... 49

Tabela 27: Semântica da classe DespesaCliente ............................................................ 50

Page 12: Escola Superior de Tecnologia e Gestãobdigital.ipg.pt/dspace/bitstream/10314/1793/1... · do curso de Engenharia Informática, da Escola Superior de Tecnologia e Gestão, do Instituto

ix

Listas de Código

Lista de Código 1: Exemplo SQL .................................................................................. 54

Lista de Código 2: Exemplo ASP.NET .......................................................................... 55

Lista de Código 3: Exemplo C# ..................................................................................... 55

Lista de Código 5: Exemplo HTML ............................................................................... 56

Lista de Código 7: Exemplo CSS ................................................................................... 57

Lista de Código 9: Exemplo JavaScript ......................................................................... 57

Page 13: Escola Superior de Tecnologia e Gestãobdigital.ipg.pt/dspace/bitstream/10314/1793/1... · do curso de Engenharia Informática, da Escola Superior de Tecnologia e Gestão, do Instituto

x

Glossário

ASP.NET Plataforma da Microsoft utilizado para o desenvolvimento de aplicações

Web.

C# (C Sharp) linguagem de programação orientada a objetos.

JavaScript É uma linguagem de programação executada do interior dos programas

e/ou outras linguagens de programação.

CSS Cascading Style Sheets, é uma linguagem otimizada para a construção

de layouts para websites.

PK Primary Key, é a chave primária de uma tabela na base de dados.

FK Foreign Key, é a chave estrangeira de uma tabela e também uma PK em

outra tabela na BD (base de dados).

NIB Número de identificação bancária.

HTML HyperText Markup Language, que significa Linguagem de Marcação de

Hipertexto.

Servidor

Web

Responsável por aceitar pedidos HTTP de clientes, geralmente os

navegadores, e servi-los com respostas HTTP, incluindo opcionalmente

dados, que são na maioria páginas web, tais como documentos HTML

SQL

SERVER

É um SGBD (Sistema de Gestão de Base de Dados), criado pela

Microsoft que permite interação com os dados através da linguagem

SQL.

Page 14: Escola Superior de Tecnologia e Gestãobdigital.ipg.pt/dspace/bitstream/10314/1793/1... · do curso de Engenharia Informática, da Escola Superior de Tecnologia e Gestão, do Instituto

1

Capítulo 1. Introdução

Este projeto consiste no desenvolvimento de uma solução informática para Gestão de

Condomínios. A ideia surge por sugestão de uma jovem empreendedora Andreia

Sequeira, que está a iniciar a carreira empresarial neste ramo.

A Gestão de Condomínios é cada vez mais utilizada no nosso quotidiano. As pessoas,

cada vez menos, querem ter preocupações com o condomínio onde habitam. Preferem

deixar essa função para entidades profissionais, umas porque não têm tempo que lhes

permita gerir um condomínio, outras porque não se entendem bem entre vizinhos,

fazendo com que as reuniões pareçam um tormento, sem chegarem a conclusões

importantes sobre temas relativos ao condomínio.

Nascem assim as empresas de Gestão de Condomínios, para facilitar e ajudar os

habitantes que necessitam da prestação de serviços deste negócio. Surgem também o

desenvolvimento de aplicações para apoiarem as empresas na gestão e também métodos

para cativarem os clientes a optarem pelos seus serviços.

Page 15: Escola Superior de Tecnologia e Gestãobdigital.ipg.pt/dspace/bitstream/10314/1793/1... · do curso de Engenharia Informática, da Escola Superior de Tecnologia e Gestão, do Instituto

2

1.1 Objetivos

Após recolha da informação necessária para a realização do projeto, definiram-se que os

objetivos da solução informática a desenvolver devem ser divididos em quatro partes

bem definidas, a primeira consiste na divulgação online da empresa para maior

visibilidade e para o utilizador ter acesso à informação da mesma, visualizar os serviços

que a empresa disponibiliza, contactos, localização e quais os métodos que a empresa

utiliza. Disponibilizar também uma opção para pedido de orçamento.

A segunda parte é uma área de cliente, apenas para utilizadores registados no sistema

onde podem visualizar a informação pessoal, do condomínio, como também as despesas

que têm para com o condomínio.

A terceira parte trata-se da área de funcionário, que permite fazer a gestão do

condomínio, despesas, clientes e documentos que sejam relevantes como por exemplo

as atas das reuniões.

A quarta parte passa pela área de gestor, onde este poderá ter acesso a algumas

funcionalidades da área do funcionário, fazer a gestão de funcionários, serviços e

despesas.

Analisados os objetivos da aplicação, chegou-se à conclusão que a solução incidia na

criação de uma aplicação web. Isto porque permite visibilidade da empresa na internet,

facilidade de acesso onde quer que esteja, basta para isso ter um ponto de acesso, como

na atualidade a internet está quase em todos os lugares, não se torna numa barreira. Não

é necessário instalar nada nos computadores para utilizar a aplicação, as atualizações

são aplicadas para todos os utilizadores de uma só vez, foram estes os pontos fortes para

a escolha da solução deste projeto. Um exemplo vantajoso desta escolha, é que um

funcionário possa registar toda a informação de um condomínio ao mesmo tempo que

está a realizar uma reunião com os clientes do condomínio. E que para isso chegue ter

um tablet, ou um telemóvel ou portátil com um ponto de acesso à Internet disponível.

Para melhor percebermos os fatores da escolha da melhor solução é apresentado em

anexo (Anexo 4) as vantagens e desvantagens de uma aplicação Web e uma aplicação

Desktop.

Page 16: Escola Superior de Tecnologia e Gestãobdigital.ipg.pt/dspace/bitstream/10314/1793/1... · do curso de Engenharia Informática, da Escola Superior de Tecnologia e Gestão, do Instituto

3

Os pontos importantes deste projeto têm os seguintes objetivos:

Impulsionar a divulgação online da empresa de gestão de condomínios o que

permite que qualquer utilizador web interessado no serviço possa ter contacto

com a empresa via email através de um pedido de orçamento.

Na área do cliente que esteja registado:

Consultar informação pessoal, podendo editar alguma dessa informação.

Consultar condomínio e respetivos serviços a ele associados.

Consultar as despesas para com o condomínio e a situação financeira do mesmo.

Alterar password de acesso ou fazer recuperação da mesma.

Na área do funcionário:

Procurar e gerir Condomínios.

Procurar e gerir Clientes.

Procurar e gerir Atas de um condomínio.

Procurar e gerir Despesas de um condomínio.

Na área do gestor:

Algumas funcionalidades do funcionário.

Pesquisar e gerir um funcionário.

Pesquisar e gerir os pacotes de serviços e seus custos.

Fazer a gestão das quotas mensais dos clientes consoante as despesas existentes

e opções de serviços prestados.

Page 17: Escola Superior de Tecnologia e Gestãobdigital.ipg.pt/dspace/bitstream/10314/1793/1... · do curso de Engenharia Informática, da Escola Superior de Tecnologia e Gestão, do Instituto

4

1.2 Motivação

A motivação da realização deste projeto foi a criação de uma aplicação personalizada,

que permite facilitar a gestão de condomínios, de modo a que seja possível gerir os

meios envolventes e ligados aos Condomínios, sejam eles os Clientes, Atas, Despesas,

Serviços de forma simples para o utilizador, possibilitar também pesquisas de

informação que o utilizador deseje consultar.

1.3 Contribuição

Este projeto consiste no desenvolvimento de uma aplicação web como referido

anteriormente, que tem o propósito de simplificar a Gestão de Condomínios e permitir

aos utilizadores intervir com a aplicação de forma flexível, e terem acesso a

informações e soluções. As funcionalidades que os utilizadores devem ter como opções

são:

Fazer pedido de orçamento por email.

Inserir/Ver/Editar Condomínios.

Gerir Clientes.

Gerir Despesas.

Inserir/Ver/Editar Atas.

Consultar informações.

Gerir Serviços.

Inserir/Ver/Editar Funcionários.

Introduzir e visualizar documentos PDF.

Enviar email com avisos.

Estas são algumas das contribuições deste projeto.

Page 18: Escola Superior de Tecnologia e Gestãobdigital.ipg.pt/dspace/bitstream/10314/1793/1... · do curso de Engenharia Informática, da Escola Superior de Tecnologia e Gestão, do Instituto

5

1.4 Estrutura do Documento

Este documento é constituído por 7 capítulos:

No Capítulo 1. Introdução, onde temos uma breve introdução, motivação,

contribuição e a estrutura do documento.

No Capítulo 2. Estado da arte, onde é comentado após uma breve pesquisa, o que

podemos encontrar no mercado e qual o registo atual da gestão de condomínios, assim

como as aplicações que se podem encontrar para soluções informáticas na atualidade.

No Capítulo 3. Metodologia e Análise de Requisitos, é descrito o problema e tipo de

metodologia utilizada para a realização do projeto, bem como o planeamento do mesmo,

podemos também visualizar a interação dos atores com o sistema e casos de uso

utilizados, onde encontraremos de forma pormenorizada os requisitos necessários para a

nossa aplicação.

No Capítulo 4. Tecnologias e Software Utilizados, é descrito de forma breve as

tecnologias e software utilizados para o desenvolvimento deste projeto.

No Capítulo 5. Implementação da Solução, vamos descrever algumas das

funcionalidades implementadas na aplicação web e disponibilizar alguns excertos de

código utilizado para executar determinadas opções.

No Capítulo 6. Conclusão e Trabalho Futuro, tem a finalidade de retirar conclusões

do que foi realizado no projeto, e também descrever o trabalho futuro.

Page 19: Escola Superior de Tecnologia e Gestãobdigital.ipg.pt/dspace/bitstream/10314/1793/1... · do curso de Engenharia Informática, da Escola Superior de Tecnologia e Gestão, do Instituto

6

Capítulo 2. Estado da Arte

2.1 Introdução

Encontram-se facilmente empresas ligadas ao ramo da gestão de condomínios. Basta

escrever a palavra “gestão de condomínios” num motor de busca para que os nossos

olhos sejam invadidos com uma quantidade de páginas web associadas a empresas que

se dedicam a este negócio.

Em todo o caso, conseguimos também constatar que muitos dos sites não têm uma área

de cliente definida, mostram informação da empresa, valores, parceiros, contatos, os

serviços que disponibilizam, em alguns casos permitem que o utilizador faça um pedido

de orçamento, mas se um cliente quiser aceder á informação pessoal e do condomínio

onde habita já não se verifica com a mesma quantidade com que eramos conquistados

no inicio da pesquisa.

Da pesquisa realizada às 10 primeiras empresas encontradas no motor de busca do

Google, verificamos que a área de cliente está implementada em 60% destas, as outras

40% não disponibilizam essa função.

Aprofundando um pouco mais, das empresas que têm o serviço disponível ao cliente,

reparamos que 20% destas têm a área de cliente personalizada e que 40% utilizam o

mesmo software “GeCond Online” desenvolvido pela empresa “Improxy”

(http://www.improxy.pt/) que está muito bem classificada no mercado no fornecimento

de software, nomeadamente no sector imobiliário, gestão de condomínios e

arrendamentos.

Para podermos ter uma ideia mais concreta destes valores era preciso ter acesso na

totalidade a todas as aplicações encontradas, como isso não foi possível, apenas

podemos afirmar estes dados.

Na Figura 1, encontra-se um gráfico para nos ajudar a perceber melhor como estão

distribuídas as percentagens da pesquisa realizada aos sites que têm ou não Área de

Cliente.

Page 20: Escola Superior de Tecnologia e Gestãobdigital.ipg.pt/dspace/bitstream/10314/1793/1... · do curso de Engenharia Informática, da Escola Superior de Tecnologia e Gestão, do Instituto

7

Figura 1: Gráfico Área de Clientes

2.2 Aplicação GeCond Online

Uma vez que era necessário sermos clientes das empresas encontradas para saber

detalhadamente quais as operações que dispunham, vamos focar o software da empresa

“Improxy” com o nome “GeCond Online”, é um software comercializado para empresas

do ramo da gestão de condomínios ao qual foi possível ter acesso e alguma informação.

Segundo o que está na sua página web da empresa, este software disponibiliza as

seguintes opções:

As opções disponíveis para o condómino são:

Visualização dos documentos e mensagens criadas pelo administrador

Consulta de dados pessoais

Consulta dos seus avisos, créditos e recibos

Consulta da informação geral do condomínio

Consulta do orçamento e da análise orçamental (comparação entre o

orçamentado e realizado)

Lista de frações e quotas

Situação das frações (valores globais em dívida)

Balanço do exercício

Lista de despesas

Consulta de ocorrências e registo de nova ocorrência

20%

40%

40%

Área de Cliente

Area de ClientePersonalizada

Area de Cliente GeCond

Sem area de ClienteDefinida

Page 21: Escola Superior de Tecnologia e Gestãobdigital.ipg.pt/dspace/bitstream/10314/1793/1... · do curso de Engenharia Informática, da Escola Superior de Tecnologia e Gestão, do Instituto

8

Alterar palavra-passe

Como administrador pode:

Definir que opções do menu ficam disponíveis aos utilizadores

Ativar e desativar utilizadores

Anexar a cada condomínio um conjunto de documentos para consulta, tais como

relatórios, atas e formulários.

Este módulo pode ser disponibilizado de várias formas, sendo que, em qualquer uma

das situações, o módulo terá de estar instalado num servidor da Improxy:

Incluído num mini-site desenvolvido pela Improxy (veja alguns exemplos de

mini-sites Gecond online)

Integrado num website completo desenvolvido pela Improxy

Ser chamado a partir dum website que o cliente já disponha. (1)

Figura 2: Exemplo do software Gecond

Este software pode ser comercializado para qualquer empresa, e foi muito encontrado

nos websites que foram pesquisados. 1

1 Os websites pesquisados encontram-se no final do relatório no anexo 1

Page 22: Escola Superior de Tecnologia e Gestãobdigital.ipg.pt/dspace/bitstream/10314/1793/1... · do curso de Engenharia Informática, da Escola Superior de Tecnologia e Gestão, do Instituto

9

Comparação entre a aplicação encontrada Gecond e a que foi desenvolvida neste

projeto:

Tabela 1: Comparação das Aplicações

Aplicação Gecond Aplicação Desenvolvida

Visualização dos documentos e

mensagens criadas pelo

administrador

Sim. Também permite a visualização de

documentos, sendo que as mensagens entre

os intervenientes são efetuadas por email.

Consulta de dados pessoais Sim

Consulta dos seus avisos, créditos

e recibos

Não tem.

Consulta da informação geral do

condomínio

Sim. Consulta do Condomínio, dos

Serviços, Atas, Despesas, Clientes.

Lista de frações e quotas Sim. Lista das frações e quotas por

permilagem.

Situação das frações (valores

globais em dívida)

De momento ainda não tem. (Em

implementação, Confirmar Pagamentos)

Balanço do exercício Não tem

Lista de despesas Sim. Lista de Despesas do Condomínio e

do Cliente

Consulta de ocorrências e registo

de nova ocorrência

Não tem

Alterar palavra-passe Sim

Para além das descritas a aplicação desenvolvida, permite:

Gerir funcionários

Gerir serviços

Pedir orçamentos

Enviar avisos via email

Page 23: Escola Superior de Tecnologia e Gestãobdigital.ipg.pt/dspace/bitstream/10314/1793/1... · do curso de Engenharia Informática, da Escola Superior de Tecnologia e Gestão, do Instituto

10

Capítulo 3. Metodologia e Análise de Requisitos

3.1 Problema

Desenvolver uma aplicação web que permita fazer a gestão de condomínios.

Para a área de cliente foi necessário fazer um estudo de como fazer:

A solicitação de orçamento onde o possível cliente numa primeira abordagem possa

introduzir dados relativos à composição do prédio, nomeadamente número de

frações, numero de andares existentes, se existem lojas ou parqueamento, se sim qual

a capacidade dos mesmos, garagens, sala de condomínio, arrecadações. Para deste

modo o funcionário da empresa ir minimamente preparado quando for a reunião

numa data a marcar pelos intervenientes.

A solicitação de serviços de limpeza do prédio, ou pintura e outros pequenos

trabalhos no âmbito particular.

Apresentar os vários contactos da empresa.

Após a reunião, quando acordarem os termos entre as partes e realizar negocio, para os

clientes registados, a empresa fornece ao cliente os dados de acesso (username e password -

dados que ele pode alterar posteriormente) onde podem consultar:

As informações sobre o condomínio como por exemplo quais os administradores

internos do prédio (normalmente existem dois, um da empresa e alguém que reside

no prédio - estipulado em assembleia e presente na ata da reunião), qual o nome do

banco e numero de conta para transferências, assim como os valores existentes tanto

na conta à ordem como a prazo, qual o seguro em vigor com o montante e validade

do mesmo, no caso de existirem elevadores qual os gastos de manutenção e outros

serviços ligados à construção e limpeza com a informação das despesas.

Os clientes podem também observar os seus dados pessoais, com a possibilidade de

alterar algumas informações a eles referentes como por exemplo o numero de

telefone ou o email…

Page 24: Escola Superior de Tecnologia e Gestãobdigital.ipg.pt/dspace/bitstream/10314/1793/1... · do curso de Engenharia Informática, da Escola Superior de Tecnologia e Gestão, do Instituto

11

Para a área do funcionário e gestor:

Como fazer pesquisas, consultas e gestão de informações relacionadas com o

condomínio, clientes, despesas, atas,

Como confirmar pagamentos do cliente para com o condomínio.

Poderem carregar um ficheiro PDF.

Page 25: Escola Superior de Tecnologia e Gestãobdigital.ipg.pt/dspace/bitstream/10314/1793/1... · do curso de Engenharia Informática, da Escola Superior de Tecnologia e Gestão, do Instituto

12

3.2 Metodologia

A metodologia utilizada para a realização do projeto foi a Ágil adaptada a Extreme

Programming (XP) é uma metodologia de desenvolvimento de software, surgiu nos

Estados Unidos por volta dos anos 90. Tem tido bastante sucesso em vários países, pois

permite ajudar a criar sistemas de melhor qualidade, reduz o tempo de produção que por

sua vez a nível financeiro torna-se mais económico do que o habitual. Os objetivos são

alcançados devido a valores, princípios e praticas, que são substancialmente diferentes

da forma tradicional de desenvolver software. (2)

Os principais princípios da metodologia ágil são:

Mais interações entre indivíduos que processos e ferramentas.

Mais Software em funcionamento que documentação abrangente.

Mais colaboração com o cliente que negociação de contratos.

Mais respostas a mudanças que seguir um plano.

Roger S. Pressman2, afirma que o Desenvolvimento Ágil requer a utilização de

pequenos e constantes incrementos de software, e para isso, necessita que o feedback do

cliente seja o mais rápido possível. (3)

Figura 3: Citação Pressman metodologia ágil

O método Ágil não descarta a utilização dos métodos tradicionais como documentação,

ferramentas e processos, planeamentos e negociações, mas prefere dar prioridade á

interação entre programador e cliente, deixa assim os métodos tradicionais para segundo

plano.

2 Engenheiro de Software, escritor e consultor, norte-americano, presidente da R.S. Pressman &

Associates

Page 26: Escola Superior de Tecnologia e Gestãobdigital.ipg.pt/dspace/bitstream/10314/1793/1... · do curso de Engenharia Informática, da Escola Superior de Tecnologia e Gestão, do Instituto

13

3.3 Plano de Trabalho

O plano de trabalho para o desenvolvimento do projeto é o seguinte:

Tarefa 1 Análise de sistema dos requisitos do projeto.

-Usar diagramas de uso de modo a definir requisitos da aplicação

web

Tarefa 2 Implementação da aplicação.

-Criar páginas mestre, base de dados, definir as permissões dos

utilizadores.

-Programação em ASP.NET, C#, JavaScript para desenvolvimento

da aplicação.

Tarefa 3 Testes da aplicação.

-Realização de testes e análise da eficiência e fiabilidade da

aplicação.

-Verificar se todas as validações estão a funcionar.

Tarefa 4 Documentação do projeto num relatório.

Na Figura 4, é apresentado o mapa de Gantt, que mostra a duração e intervalos de tempo

das tarefas para a execução do projeto:

ID Tarefas Data Inicio Data Fim Duração TotalAgo 2013 Set 2013 Out 2013 Nov 2013

4-8 11-8 18-8 25-8 1-9 8-9 15-9 22-9 29-9 6-10 13-10 20-10 27-10 3-11 10-11 17-11 24-11

1 14d20-08-201301-08-2013Tarefa 1

2 65d29-11-201302-09-2013Tarefa 2

3 40d29-11-201307-10-2013Tarefa 3

4 20d29-11-201304-11-2013Tarefa 4

4h

6h

2h

4h

Horas em média por dia

Figura 4: Mapa de Gantt

Page 27: Escola Superior de Tecnologia e Gestãobdigital.ipg.pt/dspace/bitstream/10314/1793/1... · do curso de Engenharia Informática, da Escola Superior de Tecnologia e Gestão, do Instituto

14

3.4 Diagrama de Contexto

Este tipo de diagrama expõe-nos o projeto e a sua relação com o meio ambiente. É uma

forma simplificada de representar o projeto em execução, onde se pode identificar os

limites dos processos, as áreas envolvidas e os relacionamentos com outros processos e

elementos. Na figura 5 podemos visualizar de forma simples como se realiza a execução

da aplicação.

Gestão de Condomínios

Cliente

Gestor

Funcionário

Envia pedido de orçamentoConsulta Informação pessoal

Edita, insere contactos, nib.

Devolve resultados de consulta

Insere, edita, atualiza e elimina Condomínios, Clientes, Atas, Despesas

Seleciona Serviços para os Condominios

Consulta Informação

Devolve resultados da consulta com (Atas ,Clientes, Condomínios)

Insere, edita, atualiza e elimina Serviços e FuncionáriosConsulta Informação

Devolve resultados da consulta com (Atas ,Clientes, Condomínios)

Envia Avisos

Utilizador

Envia Avisos

Figura 5: Diagrama de Contexto

Page 28: Escola Superior de Tecnologia e Gestãobdigital.ipg.pt/dspace/bitstream/10314/1793/1... · do curso de Engenharia Informática, da Escola Superior de Tecnologia e Gestão, do Instituto

15

3.5 Atores e Casos de Uso

Um ator representa um conjunto de pessoas que interagem com o sistema de forma

semelhante, sobre o qual não há controlo. Cada ator tem um papel diferente para

executar uma operação, vamos neste ponto, perceber a que atores estão ligados os casos

de uso do projeto.

Tabela 2: Atores e Casos de Uso

Atores Casos de Uso Objetivos

Utilizador Pedir Orçamento

Para que o utilizador entre em contacto com a

empresa e possa solicitar um orçamento para o seu

Condomínio.

Cliente

Consultar Info Pessoal Para o utilizador ter acesso á informação que lhe

corresponde e poder editar alguns campos

Consultar Info Condomínio Para o utilizador visualizar os dados correspondentes

ao Condomínio em que se encontra registado

Consultar Documentos Para o utilizador consultar atas

Editar Password Para o utilizador alterar a password uma vez que a

primeira é gerada pelo sistema

Editar Contactos Para o utilizador alterar alguma informação,

essencialmente os contactos

Consultar Despesas Para o utilizador consultar as despesas daquele mês,

e o histórico de outras

Contactar Administrador

Externo

Para o utilizador entrar em contacto via email com o

funcionário nomeado em reunião para o cargo de

administrador do condomínio

Contactar Administrador

Interno

Para o utilizador entrar em contacto via email com o

administrador interno do condomínio nomeado em

reunião

Page 29: Escola Superior de Tecnologia e Gestãobdigital.ipg.pt/dspace/bitstream/10314/1793/1... · do curso de Engenharia Informática, da Escola Superior de Tecnologia e Gestão, do Instituto

16

Contactar Empresa Para o utilizador contactar a empresa

Funcionário

Registar Novo Condomínio

Para o utilizador registar novo condomínio, e dados

associados como inserir também os clientes,

serviços, atas e despesas

Ver/Editar Condomínios Para o utilizador ver um condomínio e editá-lo se

necessário

Procurar Condomínio

Para o utilizador procurar um condomínio

introduzindo apenas uma palavra que esteja

associada á morada, localidade ou código postal

Enviar Aviso Para o utilizador poder enviar avisos aos clientes de

um condomínio

Procurar Cliente

Para o utilizador procurar um cliente introduzindo

apenas uma palavra-chave que esteja associada ao

nome, apelido ou número de identidade

Ver/Editar Cliente Para o utilizador ver informação de um cliente e

edita-la se necessário

Gerir Atas Para o utilizador poder ver uma ata, e se necessário

inserir, editar, apagar a mesma de um condomínio

Confirmar Pagamentos Para o utilizador quando verificar que os pagamentos

foram efetuados, colocar um visto

Simulador de Valores

Para o utilizador caso necessite confirmar uma conta

relacionada com o cálculo da quota mensal poder

utilizar esta função

Gestor

Gerir Funcionários Para o utilizador inserir, ver e editar um funcionário

Gerir Serviços Para o utilizador inserir, ver e editar serviços

Page 30: Escola Superior de Tecnologia e Gestãobdigital.ipg.pt/dspace/bitstream/10314/1793/1... · do curso de Engenharia Informática, da Escola Superior de Tecnologia e Gestão, do Instituto

17

3.6 Diagrama de Casos de Uso

O diagrama de casos de uso tem a finalidade de nos mostrar as interações entre os atores

e os casos de uso do sistema. Na figura 5 que se segue, podemos visualizar como essas

interações se vão executar entre atores e respetivos casos de uso.

Cliente

Amec-Gestão de Condomínios

Consultar Info Pessoal,Info Condomínio, Documentos,

Despesas

Gestor

Funcionario

LOGIN

Editar Password,Contactos

Enviar email paraAdministrador Externo, Administrador

Interno, EmpresaRegistar NovoCondomínio

Ver/EditarCondomínios

Gerir Clientes porCondomínio

Procurar e ConsultarCondominio, Cliente, Atas

Enviar Aviso

ConfirmarPagamentos

Simulador deValores

Procurar, Ver,Editar, Inserir Funcionário

Gerir Serviços

<include>

<include>

<include>

<include>

<include>

<include>

<include>

Utilizador Ocasional

Pedir Orçamento

<include>

<include>

<include>

<include>

Emitir Pagamento

<include>

Ver/Editar Atas <include>

Figura 6: Diagrama de Casos de Uso

Page 31: Escola Superior de Tecnologia e Gestãobdigital.ipg.pt/dspace/bitstream/10314/1793/1... · do curso de Engenharia Informática, da Escola Superior de Tecnologia e Gestão, do Instituto

18

3.7 Descrição de Casos de Uso

Neste tópico é exposto com pormenor como os casos de uso vão funcionar.

Para isso usamos tabelas compostas pelos seguintes campos:

Nome: Indica o nome do caso de uso que vai ser descrito.

Ator: Indica os atores que vão interagir no caso de uso.

Descrição: Descreve o objetivo do caso de uso indicado.

Pré-Condições: se existir uma pré condição necessária para se puder dar inicio

ao caso de uso, é indicada nesta secção.

Caminho Principal: onde é descrito o caminho do ator que interage com o

caso de uso

Caminho Alternativo: se houver validações de campos ou falha em operações

ao caminho principal, é descrito neste campo.

Suplementos: validações necessárias a serem feitas para se poder executar o

caso de uso pretendido

Pós-Condições: descreve uma operação efetuada após o término do caso de

uso, se existir.

Page 32: Escola Superior de Tecnologia e Gestãobdigital.ipg.pt/dspace/bitstream/10314/1793/1... · do curso de Engenharia Informática, da Escola Superior de Tecnologia e Gestão, do Instituto

19

3.7.1 Pedir Orçamento

Tabela 3: Pedir Orçamento

Nome: Pedir Orçamento

Ator: Utilizador ocasional

Descrição: O objetivo é, que o ator possa fazer um pedido de orçamento

entrando em contacto com a empresa via email.

Pré-Condições: Basta estar a navegar na aplicação web

Caminho Principal:

1) O caso de uso começa quando o ator pressiona no menu a

opção ”Orçamentos”.

2) A aplicação disponibiliza um formulário para preencher.

3) O ator introduz a informação necessária e carrega no botão

“Confirmar”.

4) O sistema envia um email para a empresa e para o ator se

escolher a opção de receber uma cópia do pedido.

Caminho

Alternativo:

3 a) Se o ator não introduzir a informação obrigatória ou

estiver mal inserida, o sistema não envia o email e indica quais

as caixas de texto que merecem atenção.

4 a) Se houver algum erro no envio do email, o sistema avisa

que o email não pode ser enviado e qual o motivo.

Suplementos:

Testar se as validações dos campos preenchidos funcionam

corretamente. Como é o caso do nif, contacto telefónico, email

e código postal.

Testar se envia os dados introduzidos para o email da empresa

e do ator se a opção for selecionada.

Page 33: Escola Superior de Tecnologia e Gestãobdigital.ipg.pt/dspace/bitstream/10314/1793/1... · do curso de Engenharia Informática, da Escola Superior de Tecnologia e Gestão, do Instituto

20

3.7.2 Registar Novo Condomínio

Tabela 4: Descrição caso de uso Registar Novo Condomínio

Nome: Registar Novo Condomínio

Ator: Funcionário

Descrição: Este caso de uso permite que o ator registe um novo

condomínio

Pré-Condições: Login - O ator precisa estar devidamente identificado e

ligado no sistema.

Caminho Principal:

1) O caso de uso começa quando o ator pressiona o botão

“Novo Condomínios” no menu rápido, ou no submenu

“Condomínios -> Registar Novo”.

2) A aplicação disponibiliza um formulário.

3) O ator introduz detalhes do Condomínio e pressiona no

botão “Inserir”.

4) A aplicação insere os dados do Condomínio.

Caminho Alternativo:

3 a)Se houver algum campo de preenchimento obrigatório

vazio ou com uma formatação não adequada, a aplicação não

deixa guardar os dados e aparecem “X” nos locais onde se

verificou a falha com o motivo da não inserção do mesmo.

Suplementos:

Testar se a aplicação deixa inserir os dados, sem que os

campos obrigatórios estejam devidamente preenchidos.

Depois de registado o Condomínio, o sistema disponibiliza um menu onde é possível

Inserir Clientes, Selecionar Serviços Pedidos, Inserir Ata ou Despesas associadas ao

Condomínio. O ator pode desta forma continuar a inserção de dados ou se preferir

introduzi-los mais tarde, também é possivél.

Page 34: Escola Superior de Tecnologia e Gestãobdigital.ipg.pt/dspace/bitstream/10314/1793/1... · do curso de Engenharia Informática, da Escola Superior de Tecnologia e Gestão, do Instituto

21

3.7.3 Inserir Cliente no Condomínio

Tabela 5: Descrição Caso de uso Inserir Cliente no Condomínio

Nome: Inserir Cliente no Condomínio

Ator: Funcionário

Descrição: Este caso de uso permite que o ator insira Clientes no

Condomínio.

Pré-Condições: Login - O ator precisa estar devidamente identificado e

ligado no sistema; O Condomínio tem de estar registado.

Caminho Principal:

1) O caso de uso começa após o ator Registar Novo

Condomínio.

2) A aplicação disponibiliza um formulário.

3) O ator introduz os dados relativos ao Cliente, onde a

inserção da quota mensal, pode ser manual ou automática

e pressiona botão “Inserir”.

4) A aplicação insere os dados do Cliente e envia um email

com o username e password gerada pelo sistema para o

Cliente.

Caminho Alternativo:

3 a)Se o ator quer fazer o cálculo automático da quota

mensal, pressiona botão “Calcular”.

3 a1)A aplicação introduz o valor da quota mensal no

respetivo campo.

3 b)Se houver algum campo de preenchimento obrigatório

vazio ou com uma formatação não adequada, a aplicação não

deixa inserir os dados e aparecem “X” nos locais onde se

verificou a falha com o motivo da não inserção.

4 a) Se o cliente já existir ou o email já estiver a ser

utilizado, o sistema avisa que o cliente já se encontra

registado.

Suplementos:

Testar se a aplicação deixa inserir os dados, sem que os

campos obrigatórios estejam devidamente preenchidos.

Testar se o cálculo da quota mensal está em conformidade

com o resultado esperado.

Page 35: Escola Superior de Tecnologia e Gestãobdigital.ipg.pt/dspace/bitstream/10314/1793/1... · do curso de Engenharia Informática, da Escola Superior de Tecnologia e Gestão, do Instituto

22

A inserção de Atas e Despesas do Condomínio funcionam de forma semelhante.

3.7.4 Inserir Despesa do Condomínio

Tabela 6: Inserir Despesa do Condomínio

Nome: Inserir Despesa do Condomínio

Ator: Funcionário

Descrição: Este caso de uso permite que o ator insira Despesas do

Condomínio.

Pré-Condições: Login - O ator precisa estar devidamente identificado e

ligado no sistema; O Condomínio tem de estar registado.

Caminho Principal:

1) O caso de uso começa após o ator Registar Novo

Condomínio, quando o ator pressiona o botão “Despesas”

do menu.

2) A aplicação disponibiliza um formulário.

3) O ator introduz os dados relativos à Despesa do

Condomínio e clica no botão “Inserir”.

4) A aplicação insere os dados da Despesa e regista

automaticamente a data em que foi inserida.

Caminho Alternativo:

4 a) Se houver algum campo de preenchimento obrigatório

vazio ou com uma formatação não adequada, a aplicação não

deixa inserir os dados e aparecem “X” nos locais onde se

verificou a falha com o motivo da não inserção.

Suplementos:

Testar se a aplicação deixa inserir os dados, sem que os

campos obrigatórios estejam devidamente preenchidos.

O caso de uso Inserir Ata tem o mesmo funcionamento que o caso de uso anterior, com

a particularidade de que no ponto 3, o ator faz inserção dos dados e carrega um ficheiro

PDF com os pormenores da reunião.

Page 36: Escola Superior de Tecnologia e Gestãobdigital.ipg.pt/dspace/bitstream/10314/1793/1... · do curso de Engenharia Informática, da Escola Superior de Tecnologia e Gestão, do Instituto

23

3.7.5 Selecionar Serviços Pedidos do Condomínio

Tabela 7: Selecionar Serviços Pedidos do Condomínio

Nome: Selecionar Serviços Pedidos do Condomínio

Ator: Funcionário

Descrição: O objetivo é, que o ator introduza o tipo de pacote de

serviços que o Condomínio deseja contratar.

Pré-Condições: Login - O ator precisa estar devidamente identificado e

ligado no sistema. O Condomínio tem de estar registado.

Caminho Principal:

1) O caso de uso começa após o ator Registar Novo

Condomínio, quando o ator pressiona o botão “Serviços”

do menu.

2) A aplicação disponibiliza um formulário para inserir o

pedido de Serviço.

3) O ator introduz a data do Inicio do Serviço Pedido.

4) A aplicação disponibiliza a linha de Serviços Pedidos,

onde aparecem as opções de Serviços consoante a escolha

de pacotes de Serviços (Tipos de Serviços), e Validade.

5) O ator seleciona o pacote de Serviços, os Serviços, a

Validade e clica em “Inserir”.

6) A aplicação guarda as escolhas feitas na Linha de

Serviços Pedidos e insere automaticamente a data do fim

do Pedido de Serviço, consoante a validade selecionada.

Caminho Alternativo:

3 a)O ator pode escolher se a data de início do Serviço

Pedido a introduzir é a do dia da inserção ao clicar o botão

“Hoje” ao lado da caixa de texto, ou se preferir pode colocar

a data manualmente.

Suplementos:

Testar se a aplicação guarda devidamente as opções

selecionadas e insere a data do fim do Serviço Pedido

automaticamente.

Page 37: Escola Superior de Tecnologia e Gestãobdigital.ipg.pt/dspace/bitstream/10314/1793/1... · do curso de Engenharia Informática, da Escola Superior de Tecnologia e Gestão, do Instituto

24

3.7.6 Procurar Cliente

Tabela 8: Descrição caso de uso Procurar Cliente

Nome: Procurar Cliente

Ator: Funcionário

Descrição:

O objetivo é, que o ator possa procurar um Cliente através de

uma palavra de pesquisa, de modo a obter a informação do

Cliente e que permita também, Inserir uma Despesa do

Cliente ou editar informação do mesmo.

Pré-Condições: Login - O ator precisa estar devidamente identificado e

ligado no sistema.

Caminho Principal:

1) O caso de uso começa quando o ator pressiona o botão

“Procurar Clientes” no menu rápido, ou no submenu

“Clientes -> Procurar Clientes”.

2) A aplicação disponibiliza uma tabela com todos os

Clientes registados e uma caixa de texto para procurar por

nome, apelido ou número de identidade.

3) O ator introduz palavra de pesquisa e clica no botão

procurar.

4) A aplicação devolve o resultado obtido da procura.

5) O ator seleciona o cliente que deseja.

6) A aplicação apresenta a informação relativa ao Cliente e

opções para “Editar” “+Despesas”.

Caminho Alternativo:

3 a)Se a caixa de texto não estiver preenchida com pelo

menos um caracter, o texto muda para vermelho de modo a

chamar a atenção do ator que nada foi introduzido na caixa

de texto.

4 a)Se não houver clientes com os dados introduzidos na

procura, o sistema avisa que não existem clientes com os

atributos inseridos na procura.

6 a) Se o ator escolher opção “Editar”, ver caso de uso Editar

Cliente.

6 b) Se o ator escolher opção +Despesas, ver caso de uso

Inserir Despesa do Cliente.

Page 38: Escola Superior de Tecnologia e Gestãobdigital.ipg.pt/dspace/bitstream/10314/1793/1... · do curso de Engenharia Informática, da Escola Superior de Tecnologia e Gestão, do Instituto

25

Suplementos:

Testar se a aplicação devolve o resultado da procura

esperado.

Inserir Despesa do Cliente, este caso de uso funciona da mesma forma que o Inserir

Despesa do Condomínio só que na vez de inserir a despesa associada à classe

Condomínio, é inserido na classe Cliente.

3.7.7 Editar Cliente

Tabela 8: Editar Cliente

Nome: Editar Cliente

Ator: Funcionário

Descrição: Neste caso de uso o objetivo é, que o ator possa editar os

dados de um cliente.

Pré-Condições: Login - O ator precisa estar devidamente identificado e

ligado no sistema.

Caminho Principal:

1) O caso de uso começa quando o ator pressiona o botão

“Editar”.

2) A aplicação disponibiliza um formulário com os dados

que se podem editar do Cliente.

3) O ator introduz as alterações a realizar e pressiona botão

“Atualizar”.

4) A aplicação guarda as alterações.

Caminho Alternativo:

3 a) Se houver algum campo de preenchimento obrigatório

vazio ou com uma formatação não adequada, a aplicação não

deixa alterar os dados e aparecem “X” nos locais onde se

verificou a falha com o motivo da não alteração.

Suplementos: Testar se os dados editados foram atualizados

Testar se as validações estão a funcionar corretamente.

Page 39: Escola Superior de Tecnologia e Gestãobdigital.ipg.pt/dspace/bitstream/10314/1793/1... · do curso de Engenharia Informática, da Escola Superior de Tecnologia e Gestão, do Instituto

26

3.7.8 Gerir Clientes por Condomínio

Tabela 9: Descrição caso de uso Gerir Cliente por Condomínio

Nome: Gerir Clientes por Condomínio

Ator: Funcionário

Descrição:

Neste caso de uso o objetivo é, que o ator visualize

informação dos Clientes por Condomínio onde

posteriormente pode inserir, editar ou apagar um Cliente no

Condomínio selecionado.

Pré-Condições: Login - O ator precisa estar devidamente identificado e

ligado no sistema.

Caminho Principal:

1) O caso de uso começa quando o ator pressiona o submenu

“Clientes -> Ver/Editar Clientes”.

2) A aplicação disponibiliza uma tabela com todos os

Condomínios registados e uma caixa de texto para

procurar por morada, localidade ou código postal.

3) O ator introduz palavra de pesquisa e clica no botão

“Procurar”.

4) A aplicação devolve o resultado obtido da procura.

5) O ator seleciona o Condomínio onde pretende gerir os

Clientes.

6) A aplicação apresenta uma tabela com os Clientes que

estão associados ao Condomínio selecionado

7) O ator seleciona o Cliente.

8) A aplicação apresenta os dados do Cliente selecionado e

opções para editar, novo, apagar e voltar ao ponto

anterior.

Caminho Alternativo:

3 a)Se a caixa de texto não estiver preenchida com pelo

menos um caracter, o texto muda para vermelho de modo a

chamar a atenção do ator, nada foi introduzido na caixa de

texto.

4 a)Se não houver Condomínios com os dados introduzidos

Page 40: Escola Superior de Tecnologia e Gestãobdigital.ipg.pt/dspace/bitstream/10314/1793/1... · do curso de Engenharia Informática, da Escola Superior de Tecnologia e Gestão, do Instituto

27

na procura, o sistema avisa que não existem condomínios

com os atributos inseridos na procura.

6 a)Se no Condomínio selecionado não existirem Clientes

registados, o sistema alerta que não há clientes no

Condomínio e disponibiliza opção do botão ”Novo” Inserir

Cliente no Condomínio (Ver este caso de uso Tabela 5).

8 a)Se o ator selecionar opção “Editar” Editar Cliente (Ver

caso de uso na Tabela 8)

8 b)Se o ator selecionar opção “Novo” Inserir Cliente no

Condomínio (Ver caso de uso na Tabela 5)

8 c)Se o ator selecionar opção “Apagar” Apagar Cliente

(Ver caso de uso na Tabela 10)

Suplementos:

Testar se a aplicação devolve o resultado da procura

esperado.

Testar se os Clientes são os do Condomínio selecionado.

Page 41: Escola Superior de Tecnologia e Gestãobdigital.ipg.pt/dspace/bitstream/10314/1793/1... · do curso de Engenharia Informática, da Escola Superior de Tecnologia e Gestão, do Instituto

28

3.7.9 Apagar Cliente

Tabela 10: Apagar Cliente

Nome: Apagar Cliente

Ator: Funcionário

Descrição: Neste caso de uso o objetivo é, que o ator possa apagar um

Cliente

Pré-Condições: Login - O ator precisa estar devidamente identificado e

ligado no sistema.

Caminho Principal:

1) O caso de uso começa quando o ator pressiona o botão

“Apagar”.

2) A aplicação pede para confirmar a eliminação do Cliente.

3) O ator confirma

4) A aplicação apaga o Cliente.

Caminho Alternativo:

2 a) Se não houver confirmação a aplicação cancela a

operação.

2 b) Se o utilizador pressionar o botão “Não”

3 a) O sistema não permite eliminar se houver dados

associados ao Cliente.

Suplementos: Testar se a aplicação deixa eliminar o Cliente com dados

associados a ele.

Page 42: Escola Superior de Tecnologia e Gestãobdigital.ipg.pt/dspace/bitstream/10314/1793/1... · do curso de Engenharia Informática, da Escola Superior de Tecnologia e Gestão, do Instituto

29

3.7.10 Ver/Editar Atas

Tabela 11: Descrição caso de uso Ver/Editar Atas

Nome: Ver/Editar Atas

Ator: Funcionário e Gestor

Descrição: O objetivo é, o ator visualizar informação das Atas por

Condomínio, e se for necessário poder editar Atas.

Pré-Condições: Login - O ator precisa estar devidamente identificado e ligado

no sistema.

Caminho Principal:

1) O caso de uso começa quando o ator pressiona o submenu

“Documentos>> Atas” ou clica botão “Ver Atas” no menu

rápido inicial.

2) A aplicação disponibiliza uma tabela com todos os

Condomínios registados e uma caixa de texto para procurar

por morada, localidade ou código postal.

3) O ator introduz palavra-chave e clica no botão procurar.

4) A aplicação devolve o resultado obtido da procura.

5) O ator seleciona o Condomínio onde estão as atas que

deseja ver.

6) A aplicação apresenta as Atas que estão associadas ao

Condomínio selecionado e também opções para visualizar

documento e editar Ata.

7) O ator seleciona opção.

8) A aplicação apresenta os dados relativos à opção escolhida.

Caminho

Alternativo:

3 a)Se a caixa de texto não estiver preenchida com pelo menos

um caracter, o texto muda para vermelho de modo a chamar a

atenção do ator, nada foi introduzido na caixa de texto.

4 a)Se não houver Condomínios com os dados introduzidos na

procura, o sistema avisa que não existem condomínios com os

atributos inseridos na procura.

5 a)Se no Condomínio selecionado não existirem Atas

registadas, o sistema alerta que não há Atas no Condomínio.

Page 43: Escola Superior de Tecnologia e Gestãobdigital.ipg.pt/dspace/bitstream/10314/1793/1... · do curso de Engenharia Informática, da Escola Superior de Tecnologia e Gestão, do Instituto

30

7 a)Se escolher “Ver Documento”, o sistema abre um novo

separador com o documento PDF da ata.

7 b) Se escolher editar, apresenta um formulário para alterar os

dados da Ata correspondente

Suplementos:

Testar se a aplicação devolve o resultado da procura esperado.

Testar se as Atas são as correspondentes do Condomínio

selecionado.

Testar se as validações na opção editar estão a funcionar

corretamente.

Poder imprimir a ata selecionada.

Page 44: Escola Superior de Tecnologia e Gestãobdigital.ipg.pt/dspace/bitstream/10314/1793/1... · do curso de Engenharia Informática, da Escola Superior de Tecnologia e Gestão, do Instituto

31

3.7.11 Consultar Info Pessoal

Tabela 12: Descrição caso de uso Consultar Info Pessoal

Nome: Consultar Info Pessoal

Ator: Cliente

Descrição: O objetivo é, que o ator visualize a informação pessoal e todos

os dados do condomínio a ele associados.

Pré-Condições: Login - O ator precisa estar devidamente identificado e ligado

no sistema.

Caminho Principal:

1) O caso de uso começa quando o ator pressiona o submenu

“Consultar Informações>> Pessoal” ou clica botão “Perfil”

no menu rápido inicial.

2) A aplicação disponibiliza a informação pessoal relativa ao

ator, e opções para o ator poder editar contactos, ver

informações do Condomínio, Pagamentos, Atas.

3) O ator escolhe, visualiza a sua informação e se quiser pode

escolher as opções disponíveis.

Caminho

Alternativo:

3 a) Se o ator clicar em Condomínio

A aplicação mostra a informação do Condomínio

3 b) Se o ator clicar em Pagamentos

A aplicação mostra a informação dos Pagamentos

3 c) Se o ator clicar em Atas

A aplicação mostra a informação das Atas

3 d) Se o ator clicar em Editar

A aplicação disponibiliza um formulário para que o ator faça

as devidas alterações.

Suplementos:

Testar se a aplicação apresenta a informação correta do ator

que fez login.

Testar se os dados do Condomínio, Atas, Pagamentos

associados ao ator estão corretos.

Testar validações na opção editar.

Page 45: Escola Superior de Tecnologia e Gestãobdigital.ipg.pt/dspace/bitstream/10314/1793/1... · do curso de Engenharia Informática, da Escola Superior de Tecnologia e Gestão, do Instituto

32

3.7.12 Contactar Empresa

Tabela 13: Descrição caso de uso Contactar Empresa

Nome: Contactar Empresa

Ator: Cliente

Descrição: Este caso de uso tem a finalidade de dar ao ator possibilidade

de entrar em contacto com a empresa via email.

Pré-Condições: Login - O ator precisa estar devidamente identificado e ligado

no sistema.

Caminho Principal:

1) O caso de uso começa quando o ator pressiona o submenu

“Contactar>> Empresa”

2) A aplicação disponibiliza um formulário.

3) O ator introduz o título e o assunto, clica em enviar.

4) O sistema envia o email para a empresa.

Caminho

Alternativo:

4 a)Se houver algum erro no envio, avisa com uma mensagem

de erro e volta ao ponto 3.

Suplementos: Testar se avisa o ator quando o título e o assunto não estão

introduzidos, anulando o envio do email.

Page 46: Escola Superior de Tecnologia e Gestãobdigital.ipg.pt/dspace/bitstream/10314/1793/1... · do curso de Engenharia Informática, da Escola Superior de Tecnologia e Gestão, do Instituto

33

3.7.13 Ver/Editar Funcionário

Tabela 14: Descrição caso de uso Gerir Funcionário

Nome: Ver/Editar Funcionário

Ator: Gestor

Descrição: Permite que ator possa procurar, ver, editar funcionário

Pré-Condições: Login - O ator precisa estar ligado na aplicação

Caminho Principal:

1) O caso de uso começa quando o ator pressiona o submenu

“Funcionários”

2) A aplicação disponibiliza uma tabela com todos os

Funcionários registados na empresa e uma caixa de texto

para procurar por nome, cargo ou número de identidade.

3) O ator introduz palavra de pesquisa na caixa de texto e

clica no botão “Procurar”.

4) A aplicação devolve o resultado obtido da procura, para

visualização da informação do Funcionário.

5) O ator seleciona o Funcionário que quer “Editar”.

6) A aplicação disponibiliza um formulário com os dados a

editar do Funcionário selecionado.

7) O ator introduz dados a editar e clica no botão “Atualizar”.

8) O sistema atualiza os dados alterados.

Caminho

Alternativo:

3 a) Se a caixa de texto não estiver preenchida com pelo

menos um caracter, o texto muda para vermelho de modo a

chamar a atenção do ator, nada foi introduzido na caixa.

4 a) Se não houver Funcionários com os dados introduzidos na

procura, o sistema avisa que não existem funcionários com os

atributos inseridos na procura.

8 a) Se houver algum campo de preenchimento obrigatório

vazio ou com uma formatação não adequada, a aplicação não

deixa alterar os dados e aparecem “X” nos locais onde se

verificou a falha com o motivo da não alteração.

Suplementos:

Testar se o resultado obtido é coincidente com a procura

realizada.

Testar validações da edição do Funcionário.

Page 47: Escola Superior de Tecnologia e Gestãobdigital.ipg.pt/dspace/bitstream/10314/1793/1... · do curso de Engenharia Informática, da Escola Superior de Tecnologia e Gestão, do Instituto

34

O caso de uso Inserir Funcionário, funciona como os outros exemplos de inserção já

descritos, mais propriamente com o Inserir Cliente, pois também envia um email para o

funcionário com o username e password gerada pelo sistema quando se clica no botão

“Inserir”.

3.7.14 Confirmar Pagamentos

Tabela 15: Descrição caso de uso Confirmar Pagamentos

Nome: Confirmar Pagamentos

Ator: Funcionário

Descrição: Permite que ator possa verificar quem pagou as faturas do mês

corrente, assinalando quem tem as quotas em dia.

Pré-Condições: Login - O ator precisa estar devidamente identificado e ligado

no sistema.

Caminho Principal:

1) O caso de uso começa quando o ator pressiona o submenu

“Documentos>> Confirmar Pagamentos”

2) A aplicação disponibiliza uma tabela com todos os pedidos

de confirmação de pagamento.

3) O ator verifica se está pago, se sim passa para true o

atributo PAGA.

4) A aplicação guarda as alterações de estado do pagamento.

Caminho

Alternativo:

Suplementos: Testar se altera o estado da confirmação de pagamento visto

da área do Cliente.

Page 48: Escola Superior de Tecnologia e Gestãobdigital.ipg.pt/dspace/bitstream/10314/1793/1... · do curso de Engenharia Informática, da Escola Superior de Tecnologia e Gestão, do Instituto

35

3.8 Diagramas de Sequência

Na maioria dos casos, usamos um diagrama de sequência para ilustrar as realizações de

casos de uso, isto é, para mostrar como os objetos interagem para executar o

comportamento total ou parcial de um caso de uso. Um ou mais diagramas de sequência

podem ilustrar as interações de objetos que constituem um caso de uso.

3.8.1 Procurar Cliente por Condomínio

Este diagrama de sequência mostra o comportamento das ações entre o ator e a interface

do caso de uso para Procurar Cliente por Condomínio.

Interface Procurar Clientepor Condominio

Clientes

Top Package::Funcionário

Seleciona

Devolve uma GridView(tabela) de todos os Clientes registados

Seleciona Cliente

Mostra os dados do Cliente

Consulta

Condominios

Devolve uma GridView(tabela) de todos os Condominios e uma caixa de procura

Introduz palavra de pesquisa relacionada com a morada, localidade, codigoPostal

Mostra os dados filtrados pela procura

Seleciona CondomínioConsulta

Figura 7: Diagrama de Sequência Procurar Cliente por Condomínio

Page 49: Escola Superior de Tecnologia e Gestãobdigital.ipg.pt/dspace/bitstream/10314/1793/1... · do curso de Engenharia Informática, da Escola Superior de Tecnologia e Gestão, do Instituto

36

3.8.2 Registar Novo Condomínio

Este diagrama de sequência mostra o comportamento das ações entre o ator e a interface

do caso de uso para registar novo Condomínio.

Fun

cio

nár

ioIn

terf

ace

Reg

ista

r N

ovo

Co

nd

om

inio

Co

nd

om

inio

sC

lien

tes

Serv

ico

sPed

ido

sA

tas

Des

pes

as

Top

Pac

kage

::Fu

nci

on

ário

Sele

cio

na

Co

nsu

lta

Dev

olv

e o

fo

rmu

lári

o

Pre

ench

e o

s d

ado

s re

spet

ivo

s ao

Co

nd

om

inio

Ver

ific

a o

s d

ado

s in

tro

du

zid

os.

Co

nfi

rma

(Bo

tão

Inse

rir)

Inse

rir

Dis

po

nib

iliza

os

form

ulá

rio

s p

ara

inse

rção

de

Clie

nte

s, S

ervi

ços,

Ata

s, D

esp

esas

Co

nsu

lta

Co

nsu

lta

Co

nsu

lta

Co

nsu

lta

Pre

ench

e o

s d

ado

s d

os

resp

etiv

os

form

ulá

rio

s

Ver

ific

a o

s d

ado

s in

tro

du

zid

o

Co

nfi

rma

(Bo

tão

Inse

rir)

Inse

rir

Inse

rir

Inse

rir

Inse

rir

Co

nsu

lta

Lin

has

Serv

ico

sPed

ido

s

Co

nsu

lta

Inse

rir

Figura 8: Diagrama de Sequência Registar Novo Condomínio

Page 50: Escola Superior de Tecnologia e Gestãobdigital.ipg.pt/dspace/bitstream/10314/1793/1... · do curso de Engenharia Informática, da Escola Superior de Tecnologia e Gestão, do Instituto

37

3.8.3 Gerir Funcionários

Este diagrama mostra a sequência de inserir novo funcionário.

Novo funcionário:

FuncionárioInterfacer Novo Funcionário

Top Package::Gestor

Seleciona

Devolve o formulário

Preenche os dados respetivos ao Funcionário

Pede para confirmar e validar

Confirma (Botão Inserir)

Guardar

Consulta

Figura 9: Diagrama de Sequência Novo Funcionário

Editar Funcionário:

FuncionárioInterfacer Editar Funcionário

Top Package::Gestor

Seleciona

Devolve o formulário

Edita os dados respetivos ao Funcionário

Pede para confirmar e validar

Confirma (Botão Editar)

Atualiza

Consulta

Figura 10: Diagrama de Sequência Editar Funcionário

Page 51: Escola Superior de Tecnologia e Gestãobdigital.ipg.pt/dspace/bitstream/10314/1793/1... · do curso de Engenharia Informática, da Escola Superior de Tecnologia e Gestão, do Instituto

38

3.8.4 Ver/Editar Atas

O diagrama de sequência que se segue mostra a interação do ator com o interface, para

o ator ver e editar uma Ata.

AtasInterface Ver/Editar

Ata

Top Package::Gestor

Seleciona

Se for ver abre novo separador com ficheiro PDF

Confirma caminho do ficheiro

Valida se fichero foi introduzido

Confirma Botão (Atualizar)

Atualizar(com novo ficheiro)

Consulta

Condominios

Devolve uma tabela com todos os Condominios

Seleciona o condomínio ou faz uma procura

Consulta

Devolve uma tabela com todas as atas por Condominios

Seleciona a Ata que quer ver ou editar

Se for editar faz o upload do ficheiro

Figura 11: Ver/Editar Ata

Page 52: Escola Superior de Tecnologia e Gestãobdigital.ipg.pt/dspace/bitstream/10314/1793/1... · do curso de Engenharia Informática, da Escola Superior de Tecnologia e Gestão, do Instituto

39

3.8.5 Emitir e Confirmar Pagamento

Top Package::Funcionário Top Package::Cliente

Interface Emitir Pagamento Interface Confirmar Pagamento Confirmar Pagamento Cliente Funcionário

Seleciona

Devolve um ficheiro pdf e formulário

Seleciona

Consulta

Consulta

Preenche formulário

Guarda com (PAGA = FALSE)

Consulta

Consulta

Consulta

Devolve formulário para edição de dados

Se pagamento verificado na conta o Condominio (PAGA = TRUE)

Guardar Alteração de estado PAGA

Confirmar Edição

Confirma Pagamento

Figura 12:Diagrama de Sequência Emitir e Confirmar Pagamento

O que está neste diagrama, ainda não foi testado nem implementado na aplicação.

Page 53: Escola Superior de Tecnologia e Gestãobdigital.ipg.pt/dspace/bitstream/10314/1793/1... · do curso de Engenharia Informática, da Escola Superior de Tecnologia e Gestão, do Instituto

40

3.9 Diagrama de Classes

+Registar Novo()+Ver/Editar()+Procurar()

-idCondominio-idFuncionario-morada-codigoPostal-localidade-orcamentoAnual-nomeBancoCond-nibCondominio-nFracoes-nAndares-nLojas-capacidadeParque-nGaragens-salaCondominio-nArrecadacoes-elevadores

Condominios

+Inserir()+Procurar()+Ver/Editar()+Apagar()

-idCliente-username-nomeCliente-aplidoCliente-biCliente-nifCliente-telefoneCliente-telemovelCliente-emailCliente-idCondominio-fracao-andar-permilagem-quotaMensal-adminterno-nomeBancoCliente-nibCliente

Clientes

+Inserir()+Ver/Editar()

-idDespesaCliente-decricaoC-custosC-idCliente-data

DespesaCliente

+Inserir()+Ver/Editar()

-idServicosPedidos-dataInicio-idCondominio-dataFim

ServiçosPedidos

+Inserir()+Ver/Editar()

-idLinhasServicosPedidos-idServicosPedidos-idServicos-validade

LinhasSevicosPedidos

+Inserir()+Ver/Editar()+Apagar()

-idServicos-idTipoServico-servico-custosServico

Servicos

+Inserir()+Ver/Editar()+Apagar()

-idTipoServicos-tipoServicos-descricao

TipoDeServicos

+Inserir()+Ver/Editar()

-idAta-idCondominio-descricao-ficheiro-data

Atas

+Inserir()+Ver/Editar()+Pesquisar()

-idConfirmarPagamento-idCliente-idFuncionario-descricaoPagamento-ficheiroPagamento-data-paga

ConfirmaPagamento

+Inserir()+Ver/Editar()+Procurar()

-idFuncionario-username-nomeFuncionario-cargo-biFuncionario-nifFuncionario-telefoneFuncionario-contato2

Funcionarios

+Inserir()+Ver/Editar()+Apagar()

-idDespesas-descDespesaExtra-custos-idCondominio-data

Despesas

1

*

1

*

1

*

1

*

*

1

*

1

1

*

1*

*

1

1

*

*1

Figura 13: Diagrama de Classes

Page 54: Escola Superior de Tecnologia e Gestãobdigital.ipg.pt/dspace/bitstream/10314/1793/1... · do curso de Engenharia Informática, da Escola Superior de Tecnologia e Gestão, do Instituto

41

3.10 Semântica de Classes

3.10.1 Entidade: Atas

Tabela 16: Semântica da classe Atas

Atributos Tipos de

Dados

Descrição Valores

Válidos

Formato Restrições

idAta(PK) Numeração

Automática

Número sequencial

que identifica

univocamente cada

Ata

Maior que 0 Até 10

dígitos

Gerado pelo

sistema / Não

alterável

idCondominio

(FK)

Integer Número que

identifica

univocamente cada

Condomínio

Maior que 0 Até 10

dígitos

Facultado pelo

sistema e

alterável

descricao String Descreve de uma

forma resumida o

conteúda da Ata

Caracteres Até 50

caracteres

Obrigatório e

alterável

ficheiro String Onde se carrega o

ficheiro com a ata

Caracteres Até 100

caracteres

Obrigatório e

alterável

data Date Data em que a ata

foi introduzida no

sistema

DD/MM/YY Até 10

caracteres

Obrigatório e

não alterável

Tabela 17: Semântica dos Métodos

Nome Descrição

Inserir() Operação que permite inserir uma nova Ata:

1. O Sistema gera o id_Ata (incrementa uma unidade ao último id_Ata).

2. O idCondominio é introduzido consoante o Condomínio inserido ou

selecionado o sistema vai buscar o valor.

3. Introduzir descrição.

4. Carregar ficheiro PDF.

5. Introduzir data da reunião.

Ver/Editar() Operação que permite ver/editar uma Ata.

1. Selecionar a Ata através do idAta.

2. Mostrar informação da Ata.

3. Introduzir nova descrição e/ou carregar ficheiro da ata.

4. Alterar dados da Ata.

Page 55: Escola Superior de Tecnologia e Gestãobdigital.ipg.pt/dspace/bitstream/10314/1793/1... · do curso de Engenharia Informática, da Escola Superior de Tecnologia e Gestão, do Instituto

42

3.10.2 Entidade: Condomínios

Tabela 18: Semântica da classe Condomínios

Atributos Tipos de

Dados

Descrição Valores

Válidos

Formato Restrições

idCondominio

(PK)

Numeração

Automática

Número sequencial

que identifica

univocamente cada

Condomínio

Maior que

0

Até 10

dígitos

Gerado pelo

sistema / Não

alterável

idFuncionario

(FK)

Integer Numero que

identifica o

Funcionário que está

a realizar reuniões

com os condóminos

(Clientes)

Maior que

0

Até 10

dígitos

Facultado pelo

sistema e

alterável

morada String Morada onde se

encontra registado o

condomínio

Caracteres Até 70

caracteres

Obrigatório e

não alterável

codigoPostal String Código postal do

condomínio

Caracteres Até 8

caracteres

Obrigatório e

não alterável

localidade String Localização do

condomínio

Caracteres Até 50

caracteres

Obrigatório e

não alterável

orcamentoAnual Float Orçamento anual do

condomínio

Números

de 0 a 9

Até (8,2)

dígitos

Obrigatório e

alterável

nomeBancoCond String Nome do banco no

qual se encontram os

valores relativos ao

condomínio

Caracteres Até 50

caracteres

Obrigatório e

alterável

nibCondominio String NIB do banco para

futuras transferências

Caracteres Até 50

caracteres

Obrigatório e

alterável

nFracoes Integer Frações do

condomínio

Números

inteiros de

0 a 9

Até 4

dígitos

Obrigatório e

alterável

nAndares Integer Número de andares

do condomínio

Números

inteiros de

0 a 9

Até 3

dígitos

Obrigatório e

alterável

nLojas Integer Número de lojas caso

existam do

condomínio

Números

inteiros de

0 a 9

Até 2

dígitos

Obrigatório e

alterável

capacidadeParque Float Capacidade do

parque do

condomínio

Números

de 0 a 9

Até (5,2)

dígitos

00000,00

Obrigatório e

alterável

nGaragens Integer Número de garagens

caso existam do

Números

inteiros de

Até 4

digitos

Obrigatório e

alterável

Page 56: Escola Superior de Tecnologia e Gestãobdigital.ipg.pt/dspace/bitstream/10314/1793/1... · do curso de Engenharia Informática, da Escola Superior de Tecnologia e Gestão, do Instituto

43

condomínio 0 a 9

salaCondominio Bit Diz se existe ou não

sala de condomínio

True ou

false

0 ou 1 Obrigatório/

Alterável

nArrecadacoes Integer Número de

arrecadações do

condomínio

Números

inteiros de

0 a 9

Até 3

digitos

Obrigatório e

alterável

elevadores Bit Diz se existe ou não

elevadores no

condominio

True ou

false

0 ou 1 Obrigatório/

Alterável

Para além dos métodos Inserir (), Ver/Editar (), que são iguais aos da Ata, mudando os

campos a inserir ou ver/editar. Temos o método Pesquisar ().

Tabela 19: Método Pesquisar

Nome Descrição

Pesquisar() Operação que permite procurar um Condomínio:

1. Inserir palavra-chave de uma morada, localidade ou codigoPostal

2. Se existe

3. Mostrar dados do Condomínio

4. Senão

5. Informar que não existem Condomínios relacionados à palavra de

pesquisa.

O método Pesquisar () funciona da mesma maneira para Pesquisar Clientes, ou

Pesquisar Funcionário, alterando os campos de pesquisa para cada caso, para o Cliente

procura palavra de pesquisa por nome, apelido e bi, para o Funcionário procura palavra

de pesquisa relacionados ao nome, cargo e Nº BI.

Page 57: Escola Superior de Tecnologia e Gestãobdigital.ipg.pt/dspace/bitstream/10314/1793/1... · do curso de Engenharia Informática, da Escola Superior de Tecnologia e Gestão, do Instituto

44

3.10.3 Entidade: Clientes

Tabela 20: Semântica da classe Clientes

Atributos Tipos de

Dados

Descrição Valores

Válidos

Formato Restrições

idCliente(PK) Numeração

Automática

Número sequencial

que identifica

univocamente cada

Cliente

Maior que

0

Até 10

dígitos

Gerado pelo

sistema / Não

alterável

idCondominio

(FK)

Integer Número que

identifica

univocamente cada

Condomínio

Maior que

0

Até 10

dígitos

Facultado pelo

sistema e

alterável

username String Username para que o

cliente tenha acesso

á sua informação

pessoal e do

condomínio onde

habita

Caracteres Até 20

caracteres

Obrigatório e

não alterável

nomeCliente String Nome do condómino Caracteres Até 70

caracteres

Obrigatório e

não alterável

apelidoCliente String Apelido do

condómino

Caracteres Até 50

caracteres

Obrigatório e

alterável

biCliente Integer Número de Bilhete

de Identidade ou

Cartão de Cidadão

Números

de 0 a 9

Até 8

dígitos

Obrigatório e

não alterável

nifCliente String Número de

identificação fiscal

do condómino

Números

de 0 a 9

Até 9

dígitos

Obrigatório e

não alterável

telefoneCliente String Número de telefone

do condómino

Números

de 0 a 9

Até 9

caracteres

Obrigatório e

alterável

telemovelCliente Integer Número de

telemóvel do

condómino

Números

inteiros de

0 a 9

Até 9

dígitos

Obrigatório e

alterável

fracao String Fração do

condómino

Caracteres

Até 2

Caracteres

Obrigatório e

alterável

andar String Andar do

condomínio

Alfa

numéricos

Até 3

dígitos

Obrigatório e

alterável

permilagem Integer Percentagem da

fração do

condómino

Números

inteiros de

0 a 9

Escala de

inteiros de 0

a 100

Obrigatório e

alterável

quotaMensal Float Quota mensal do

cliente

Números

de 0 a 9

Até (5,2)

dígitos

00000,00

Obrigatório e

alterável

Page 58: Escola Superior de Tecnologia e Gestãobdigital.ipg.pt/dspace/bitstream/10314/1793/1... · do curso de Engenharia Informática, da Escola Superior de Tecnologia e Gestão, do Instituto

45

adminterno Bit Identifica se o

cliente é o

administrador

interno

True ou

false

0 ou 1 Obrigatório e

alterável

nomeBancoCliente String Nome do Banco do

Cliente

Caracteres Até 50

caracteres

Obrigatório e

alterável

nibCliente String NIB do cliente para

futuras transferência

Caracteres Até 21

caracteres

Obrigatório e

alterável

Os métodos são muito semelhantes aos das tabelas Método Pesquisar e Semântica dos

Métodos referidos nas páginas anteriores. Alterando os campos consoante as classes.

Com acrescento do método Apagar()

Tabela 21: Método Apagar Cliente

Apagar() Operação que permite eliminar um Cliente.

1. Selecionar o Cliente através do idCliente.

2. Se idCliente está a ser utilizado

3. Cancelar operação e enviar mensagem “Não é possível eliminar”

4. Senão

5. Apagar Cliente

Tabela 22: Método Inserir Cliente

Inserir() Operação que permite inserir um Cliente.

1) O Sistema gera o id_Cliente (incrementa uma unidade ao último

id_Cliente).

2) O idCondominio é introduzido consoante o Condomínio inserido ou

selecionado o sistema vai buscar o valor.

3) Introduzir username.

4) Introduzir nomeCliente.

5) Introduzir apelidoCliente

6) Introduzir biCliente

7) Introduzir nifCliente onde é verificado se o Nif está bem introduzido

a) Verifica se valor introduzido do nif é nulo, se é numérico e se

tem 9 digitos.

b) Verifica se o primeiro número é (1,2,5,6,8,9)

c) Faz o cálculo do dígito controlo.

dígito controlo = c * 9;

var i = 0;

for (i = 2; i <= 8; i++) {

dígito controlo += nif.charAt(i - 1) * (10 - i);

}

dígito controlo = 11 - (dígito controlo % 11);

Page 59: Escola Superior de Tecnologia e Gestãobdigital.ipg.pt/dspace/bitstream/10314/1793/1... · do curso de Engenharia Informática, da Escola Superior de Tecnologia e Gestão, do Instituto

46

d) Se o dígito controlo é maior que 10, coloca-o a zero.

e) Compara o digito controlo com o ultimo numero do nif

f) Se for igual, então nif válido.

g) Senão nif inválido.

8) Introduzir telefoneCliente

ValidationExpression="2([1-9]{1}[0-9]{7}|[1-9]{2}[0-9]{6})"

9) Introduzir telemovelCliente

ValidationExpression="9([1236]{1}[0-9]{7})"

10) Introduzir email

ValidationExpression="\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*"

11) Introduzir fracao

12) Introduzir andar

13) Introduzir permilagem

14) Introduzir quotaMensal manualmente, ou gerar automaticamente

clicando no botão Calcular:

a) quotamensal = ((orçamento anual.Condominios / 12) *

(permilagem / 1000));

15) Introduzir adminterno

16) Introduzir nomeBancoCliente

17) Introduzir nibCliente

Page 60: Escola Superior de Tecnologia e Gestãobdigital.ipg.pt/dspace/bitstream/10314/1793/1... · do curso de Engenharia Informática, da Escola Superior de Tecnologia e Gestão, do Instituto

47

3.10.4 Entidade: Funcionários

Tabela 23: Semântica da classe Funcionários

Atributos Tipos de

Dados

Descrição Valores

Válidos

Formato Restrições

idFuncionario(PK) Numeração

Automática

Número sequencial

que identifica

univocamente cada

Funcionário

Maior que

0

Até 10

dígitos

Gerado pelo

sistema / Não

alterável

username String Username para que o

funcionário tenha

acesso á sua

informação pessoal e

possa operar

informação

relacionada aos

condomínios

Caracteres Até 20

caracteres

Obrigatório e

não alterável

nomeFuncinario String Nome do Funcionário Caracteres Até 70

caracteres

Obrigatório e

não alterável

biFuncionario Integer Número de Bilhete de

Identidade ou Cartão

de Cidadão

Números

de 0 a 9

Até 8

dígitos

Obrigatório e

não alterável

nifFuncionario String Número de

identificação fiscal do

condómino

Números

de 0 a 9

Até 9

dígitos

Obrigatório e

não alterável

telefoneFuncionario String Número de telefone

do condómino

Números

de 0 a 9

Até 9

caracteres

Obrigatório e

alterável

contato2 Integer Número auxiliar caso

o primeiro não se

encontre disponível

Números

inteiros de

0 a 9

Até 9

dígitos

Obrigatório e

alterável

Page 61: Escola Superior de Tecnologia e Gestãobdigital.ipg.pt/dspace/bitstream/10314/1793/1... · do curso de Engenharia Informática, da Escola Superior de Tecnologia e Gestão, do Instituto

48

3.10.5 Entidade: Despesas

Tabela 24: Semântica da classe Despesas

Atributos Tipos de

Dados

Descrição Valores

Válidos

Formato Restrições

idDespesas(PK) Numeração

Automática

Número

sequencial que

identifica

univocamente

cada Despesa

Maior que 0 Até 10

dígitos

Gerado pelo

sistema / Não

alterável

idCondominio

(FK)

Integer Número que

identifica

univocamente

cada Condomínio

Maior que 0 Até 10

dígitos

Facultado pelo

sistema e

alterável

descDespesaExtra String Descreve o tipo de

despesa que vai

ser inserida

Caracteres Até 100

caracteres

Obrigatório e

alterável

custos Float Custo da despesa Caracteres Até (5,2)

dígitos

00000,00

Obrigatório e

alterável

data Date Data em que a

despesa foi

introduzida no

sistema

DD/MM/YY Até 10

caracteres

Obrigatório e

não alterável

3.10.6 Entidade: ConfirmarPagamento

Tabela 25: Semântica da classe ConfirmarPagamento

Atributos Tipos de

Dados

Descrição Valores

Válidos

Formato Restrições

idConfirmarPagamento(PK) Numeração

Automática

Número

sequencial

que identifica

univocamente

cada Ata

Maior que 0 Até 10

dígitos

Gerado pelo

sistema /

Não

alterável

idCliente (FK)

Integer Número que

identifica

univocamente

cada Cliente

Maior que 0 Até 10

dígitos

Facultado

pelo sistema

e não

alterável

idFuncionario (FK) Integer Número que

identifica

univocamente

cada

Funcionario

Maior que 0 Até 10

dígitos

Facultado

pelo sistema

e não

alterável

Page 62: Escola Superior de Tecnologia e Gestãobdigital.ipg.pt/dspace/bitstream/10314/1793/1... · do curso de Engenharia Informática, da Escola Superior de Tecnologia e Gestão, do Instituto

49

descricaoPagamento String Descreve de

uma forma

resumida o

conteúdo do

pagamento

Caracteres Até 50

caracteres

Obrigatório

e alterável

ficheiroPagamento String Onde se

carrega o

ficheiro com

os dados do

pagamento

Caracteres Até 100

caracteres

Obrigatório

e alterável

data Date Data em que

foi emitido o

pagamento no

sistema

DD/MM/YY Até 10

caracteres

Obrigatório

e não

alterável

paga Bit Indica se a

fatura já foi

paga ou não

true or false 1 ou 0

Obrigatório

e alterável

3.10.7 Entidade: Servicos

Tabela 26: Semântica da classe Servicos

Atributos Tipos de

Dados

Descrição Valores

Válidos

Formato Restrições

idServicos(PK) Numeração

Automática

Número sequencial

que identifica

univocamente cada

Despesa

Maior que

0

Até 10

dígitos

Gerado pelo

sistema / Não

alterável

idLinhasServicos

Pedidos (FK)

Integer Número que

identifica

univocamente cada

Linha de Serviços

Pedidos

Maior que

0

Até 10

dígitos

Facultado pelo

sistema e

alterável

servico String Tipo de serviço Caracteres Até 20

caracteres

Obrigatório e

alterável

custosServico Float Custo da despesa Caracteres Até (5,2)

dígitos

00000,00

Obrigatório e

alterável

Page 63: Escola Superior de Tecnologia e Gestãobdigital.ipg.pt/dspace/bitstream/10314/1793/1... · do curso de Engenharia Informática, da Escola Superior de Tecnologia e Gestão, do Instituto

50

3.10.8 Entidade: DespesaCliente

Tabela 27: Semântica da classe DespesaCliente

Atributos Tipos de

Dados

Descrição Valores

Válidos

Formato Restrições

idDespesaCliente(PK) Numeração

Automática

Número

sequencial que

identifica

univocamente

cada Despesa do

Cliente

Maior que 0 Até 10

dígitos

Gerado pelo

sistema / Não

alterável

idCliente (FK) Integer Número que

identifica

univocamente

cada Cliente

Maior que 0 Até 10

dígitos

Facultado

pelo sistema e

não alterável

descricaoC String Descreve o tipo

de despesa que

vai ser inserida

Caracteres Até 100

caracteres

Obrigatório e

alterável

custosC Float Custo da despesa Caracteres Até (5,2)

dígitos

00000,00

Obrigatório e

alterável

data Date Data em que a

despesa foi

introduzida no

sistema

DD/MM/YY Até 10

caracteres

Obrigatório e

não alterável

Page 64: Escola Superior de Tecnologia e Gestãobdigital.ipg.pt/dspace/bitstream/10314/1793/1... · do curso de Engenharia Informática, da Escola Superior de Tecnologia e Gestão, do Instituto

51

3.11 Diagrama de Atividades

Os diagramas de atividades servem para mostrar fluxos operacionais do sistema,

descrevendo as operações que constituem a aplicação de forma prática.

Na figura 14, está o diagrama de atividades do funcionário para registar um novo

Condomínio e poder inserir os Clientes associados a ele, como também Serviços, Atas e

Despesas.

Login Registar Condomínio

Login Correcto?

Não

Sim

Funcionário

Inserir todos os dados

Dados bem inseridos e com formato adequado?

Sim

NãoRever dados introduzidos

Aviso de erros

Disponibiliza formulários de inserção de Clientes, Serviços, Atas, Despesas

Inserir mais tarde?

Sim

NãoInserir todos os dados

Aviso de erros

Rever dados introduzidosNão

Dados bem inseridos e com formato adequado?

Sim

Figura 14: Diagrama de atividades Registar novo Condomínio

Page 65: Escola Superior de Tecnologia e Gestãobdigital.ipg.pt/dspace/bitstream/10314/1793/1... · do curso de Engenharia Informática, da Escola Superior de Tecnologia e Gestão, do Instituto

52

3.12 Diagrama de Estados

Este tipo de diagramas indicam as transações de estado de um objeto, o exemplo da

Figura 15 mostra-nos, se uma emissão de pagamento se encontra “Paga” ou “Em

divida”.

Em divida//entry:IdConfirmarPagamento,idCliente,idFuncionário,...,paga="False"//do/ Confirmar Pagamento

[O Cliente emite o pagamento]

[O funcionário verifica se o pagamento foi efetuado]

Paga//entry:IdConfirmarPagamento,idCliente,idFuncionário,...,paga="True"//do/

Sim

Figura 15: Diagrama de Estado Confirmar Pagamento

Page 66: Escola Superior de Tecnologia e Gestãobdigital.ipg.pt/dspace/bitstream/10314/1793/1... · do curso de Engenharia Informática, da Escola Superior de Tecnologia e Gestão, do Instituto

53

3.13 Diagrama de Instalação

O diagrama de instalação descreve os componentes de hardware e software e a sua

interação com os outros elementos de suporte ao processamento.

InternetServidor Amec

Dispositivo de Acesso

Servidor Base de Dados

Impressora

TCP/IPTCP/IP

TCP/IP

TCP/IP

Figura 16: Diagrama de instalação

3.14 Arquitetura da Solução

Através da Figura 17, podemos ver como a aplicação interage com os outros periféricos

de saída e entrada de dados.

INTERNET

Cliente Funcinário Gestor

Servidor ISSBase de Dados

SQL SERVER

Figura 17: Arquitetura da Solução

Page 67: Escola Superior de Tecnologia e Gestãobdigital.ipg.pt/dspace/bitstream/10314/1793/1... · do curso de Engenharia Informática, da Escola Superior de Tecnologia e Gestão, do Instituto

54

Capítulo 4. Tecnologias e Software Utilizados

Neste capítulo vão ser descritas as tecnologias utilizadas na elaboração deste projeto

bem como apresentar alguns exemplos de código utilizados na aplicação.

4.1 Tecnologias

Uma vez que o projeto utilizou um conjunto de tecnologias web, faz todo o sentido

evidencia-las de forma breve. São elas Microsoft SQL SERVER, ASP.NET, C#,

HTML, CSS e JavaScript.

4.1.1 Microsoft SQL SERVER

É um sistema de gestão de Base de dados, criado pela Microsoft. Vem incluído no

Microsoft Visual Studio, e é utilizado sempre que queremos aceder a dados da BD (base

de dados) do projeto.

Podemos ver o código SQL usado para selecionar os serviços e informações a eles

associados, para que o funcionário veja quantos dias faltam para o serviço expirar por

ordem crescente.

Lista de Código 1: Exemplo SQL

4.1.2 ASP.NET

O ASP.NET é uma tecnologia de scripting do lado do servidor, esta tecnologia permite

colocar numa página web, scripts que irão ser executados por um servidor. (4)

Esta tecnologia, permite ao programador utilizar várias linguagens, como o VB, C#,

C++, entre outras.

Na Lista de Código 2 é mostrado um exemplo de ASP.NET que tem a finalidade de

criar um menu de navegação da aplicação.

Page 68: Escola Superior de Tecnologia e Gestãobdigital.ipg.pt/dspace/bitstream/10314/1793/1... · do curso de Engenharia Informática, da Escola Superior de Tecnologia e Gestão, do Instituto

55

Lista de Código 2: Exemplo ASP.NET

4.1.3 C#

O C# (pronuncia-se "C sharp") é uma linguagem de programação criada para o

desenvolvimento de uma variedade de aplicações que executam sobre o .NET

Framework. As várias inovações no C# permitem o desenvolvimento rápido de

aplicações, mantendo a expressividade e a elegância das linguagens C-style. (5)

Visual C# é uma implementação da linguagem C# pela Microsoft. Visual Studio suporta

Visual C#. Desta forma torna-se muito mais fácil trabalhar uma aplicação e acelera

significativamente o desenvolvimento do projeto, pois disponibiliza editor de código,

compilador, modelos de projetos, designers, assistentes de código entre outras

ferramentas.

Na Lista de Código 3 podemos visualizar um exemplo C#, que mostra como funciona o

botão Calcular, que tem a finalidade de fazer o cálculo da quota mensal de um Cliente.

Lista de Código 3: Exemplo C#

Page 69: Escola Superior de Tecnologia e Gestãobdigital.ipg.pt/dspace/bitstream/10314/1793/1... · do curso de Engenharia Informática, da Escola Superior de Tecnologia e Gestão, do Instituto

56

4.1.4 HTML

HTML é sigla de HyperText Markup Language, uma expressão inglesa que significa

"Linguagem de Marcação de Hipertexto". É uma linguagem de marcação utilizada para

produção de páginas na web. Os elementos são definidos através de tags, que funcionam

como comandos de formatação de textos, formulários, links (ligações), imagens,

tabelas, entre outros. (6)

Na Lista de Código 4 é apresentado o exemplo de uma pequena parte da criação de uma

página mestre.

Lista de Código 5: Exemplo HTML

4.1.5 CSS

Cascading Style Sheets (ou simplesmente CSS) é uma folha de estilo que é utilizada

para definir a apresentação de documentos escritos em uma linguagem de marcação,

como HTML ou XML. Seu principal benefício é prover a separação entre o formato e o

conteúdo de um documento. (7)

Desta forma em vez de estarmos constantemente a utilizar o mesmo código

repetidamente para formatar objetos que requerem a mesma formatação, basta criar uma

classe CSS e chamá-la quando se deseja utilizar.

Na Lista de Código 6 mostra-nos exemplos de utilização de CSS, que permite criar um

botão rollover.

Page 70: Escola Superior de Tecnologia e Gestãobdigital.ipg.pt/dspace/bitstream/10314/1793/1... · do curso de Engenharia Informática, da Escola Superior de Tecnologia e Gestão, do Instituto

57

Lista de Código 7: Exemplo CSS

4.1.6 JavaScript

JavaScript é uma linguagem de programação utilizada para criar programas que são

intervenientes em ações que se desejam realizar numa página web, aumentando a

interatividade entre páginas e utilizador.

Na Lista de Código 8 está o exemplo para abrir nova janela centrada no meio do ecrã.

Lista de Código 9: Exemplo JavaScript

Page 71: Escola Superior de Tecnologia e Gestãobdigital.ipg.pt/dspace/bitstream/10314/1793/1... · do curso de Engenharia Informática, da Escola Superior de Tecnologia e Gestão, do Instituto

58

4.2 Software Utilizado

4.2.1 Microsoft Visual Studio 2010

É um pacote de programas da Microsoft com vasto leque de opções, o principal

software para a realização da aplicação, este software permite a interação entre todas as

tecnologias que foram referidas anteriormente, é um produto com muito potencial para

desenvolvimento de aplicações web.

Figura 18: Ambiente de trabalho do Visual Studio

4.2.2 Outros

O software que também teve um papel muito importante para a concretização do projeto

foram o Adobe Photoshop, Fireworks para a criação e edição de imagens da aplicação

web, o Microsoft Word para a realização do relatório, o Microsoft Visio para a criação

de todos os diagramas e também o Power Designer para criação do modelo ER da BD

da aplicação web.

Page 72: Escola Superior de Tecnologia e Gestãobdigital.ipg.pt/dspace/bitstream/10314/1793/1... · do curso de Engenharia Informática, da Escola Superior de Tecnologia e Gestão, do Instituto

59

Capítulo 5. Implementação da Solução

5.1 Introdução

Neste capítulo é apresentado algumas das funcionalidades da aplicação web

desenvolvida, recorrendo a figuras e breve código utilizado para atingir os objetivos

desejados.

5.2 Modelo Físico da BD

Figura 19: Modelo Físico da BD

Este foi o ponto de partida para a criação da aplicação web.

FK_SERVICOS_REFERENCE_TIPODESE

FK_CONDOMIN_REFERENCE_FUNCIONÁ

FK_CONFIRMA_REFERENCE_FUNCIONÁ

FK_LINHASSE_REFERENCE_SERVICOS

FK_SERVIÇOS_REFERENCE_CONDOMIN

FK_CLIENTES_REFERENCE_CONDOMIN

FK_ATAS_REFERENCE_CONDOMIN

FK_DESPESAS_REFERENCE_CONDOMIN

FK_LINHASSE_REFERENCE_SERVIÇOS

FK_DESPESAC_REFERENCE_CLIENTES

FK_CONFIRMA_REFERENCE_CLIENTES

TipoDeServiços

idTipoServicos

tipoServicos

descricao

...

int

varchar(20)

varchar(100)

<pk>

Funcionários

idFuncionario

username

nomeFuncionario

cargo

biFuncionario

nifFuncionario

telefoneFuncionario

contato2

...

int

varchar(50)

varchar(70)

varchar(50)

int

int

varchar(50)

varchar(50)

<pk>

Servicos

idServicos

idTipoServicos

servico

custosServico

...

int

int

varchar(20)

float

<pk>

<fk>

Condominios

idCondominio

idFuncionario

morada

codigoPostal

localidade

orcamentoAnual

nomeBancoCond

nibCondominio

nFracoes

nAndares

nlojas

capacidadeParque

nGaragens

salaCondominio

nArrecadacoes

elevadores

...

int

int

varchar(70)

varchar(10)

varchar(50)

float

varchar(50)

varchar(30)

int

int

int

float

int

bit

int

bit

<pk>

<fk>

ServiçosPedidos

idServicosPedidos

dataInicio

idCondominio

dataFim

...

int

datetime

int

datetime

<pk>

<fk>

Clientes

idCliente

username

nomeCliente

aplidoCliente

biCliente

nifCliente

telefoneCliente

telemovelCliente

emailCliente

idCondominio

fracao

andar

permilagem

quotaMensal

adminterno

nomeBancoCliente

nibCliente

...

int

varchar(20)

varchar(70)

varchar(50)

int

int

varchar(15)

varchar(15)

varchar(50)

int

varchar(10)

varchar(10)

float

float

bit

varchar(50)

varchar(50)

<pk>

<ak2>

<ak1>

<fk>

Atas

idAta

idCondominio

descricao

ficheiro

data

...

int

int

varchar(50)

varchar(100)

datetime

<pk>

<fk>

Despesas

idDespesas

descDespesaExtra

custos

idCondominio

...

int

varchar(100)

float

int

<pk>

<fk>

LinhasServicosPedidos

idLinhasServicosPedidos

idServicosPedidos

idServicos

validade

...

int

int

int

datetime

<pk>

<fk2>

<fk1>

DespesaCliente

idDespesaCliente

descriçãoC

custosC

idCliente

...

int

varchar(100)

float

int

<pk>

<fk> ConfirmaPagamento

idConfirmarPagamento

idCliente

idFuncionario

descricaoPagamento

ficheiroPagamento

data

paga

...

int

int

int

varchar(50)

varchar(100)

datetime

bit

<pk>

<fk2>

<fk1>

Page 73: Escola Superior de Tecnologia e Gestãobdigital.ipg.pt/dspace/bitstream/10314/1793/1... · do curso de Engenharia Informática, da Escola Superior de Tecnologia e Gestão, do Instituto

60

É apresentada na Figura 20 a base de dados implementada no Visual Studio com o

seguinte diagrama.

Figura 20: Diagrama Visual Studio

Clientes

idCliente

username

nomeCliente

aplidoCliente

biCliente

nifCliente

telefoneCliente

telemovelCliente

emailCliente

idCondominio

fracao

andar

permilagem

quotaMensal

adminterno

nomeBancoCliente

nibCliente

Condominios

idCondominio

idFuncionario

morada

codigoPostal

localidade

orcamentoAnual

nomeBancoCond

nibCondominio

nFracoes

nAndares

nlojas

capacidadeParque

nGaragens

salaCondominio

nArrecadacoes

elevadores

Despesas

idDespesas

descDespesaExtra

custos

idCondominio

data

Funcionários

idFuncionario

username

nomeFuncionario

cargo

biFuncionario

nifFuncionario

telefoneFuncionario

contato2

emailFunci

ServiçosPedidos

idServicosPedidos

dataInicio

idCondominio

dataFim

TipoDeServiços

idTipoServicos

tipoServicos

descricao

Servicos

idServicos

idTipoServicos

servico

custosServico

LinhasServicosPedidos

idLinhasServicosPedidos

idServicosPedidos

idServicos

validade

Atas

idAta

idCondominio

descricao

ficheiro

data

ConfirmaPagamento

idConfirmarPagamento

idCliente

idFuncionario

descricaoPagamento

ficheiroPagamento

data

paga

DespesaCliente

idDespesaCliente

descricaoC

custosC

idCliente

Data

Page 74: Escola Superior de Tecnologia e Gestãobdigital.ipg.pt/dspace/bitstream/10314/1793/1... · do curso de Engenharia Informática, da Escola Superior de Tecnologia e Gestão, do Instituto

61

5.3 Aplicação

5.3.1 Navegação da aplicação

Na Figura 21 podemos ver como funciona a navegação entre as páginas da aplicação de

uma forma geral.

Figura 21:Navegação da aplicação

Page 75: Escola Superior de Tecnologia e Gestãobdigital.ipg.pt/dspace/bitstream/10314/1793/1... · do curso de Engenharia Informática, da Escola Superior de Tecnologia e Gestão, do Instituto

62

5.3.2 Criação de uma página mestre

Uma página mestre, permite que se crie o conteúdo que vai ser universal em todas as

páginas. Assim sempre que se quer alterar algo num website que tenha uma página

mestre, é só fazer as modificações uma vez, que todas as outras páginas vão atualizar,

sem ser necessário andar a fazer alterações página a página.

Como criar uma página mestre?

No Solution Explorer, fazer “Add New Item” onde aparece e janela seguinte:

Figura 22:Criar Master Page

Escolhemos “Master Page”, inserimos o nome que desejamos e “Add”. De seguida abre

uma janela onde podemos então criar e editar como vai ficar distribuída a informação

através de código HTML e ASP.NET.

Para este projeto foram criadas 4 páginas mestres, uma para normal navegação, outra

para navegação da área de Cliente, outra para área de Funcionário e para a área de

Gestor.

No anexo 2 está disponível o código da criação da página mestre da área do funcionário.

Page 76: Escola Superior de Tecnologia e Gestãobdigital.ipg.pt/dspace/bitstream/10314/1793/1... · do curso de Engenharia Informática, da Escola Superior de Tecnologia e Gestão, do Instituto

63

5.3.3 Registar um Condomínio

Um breve exemplo dos passos que o utilizador precisa fazer para Registar Novo

Condomínio.

Todos os utilizadores podem navegar na página Web, mas para acederem ao conteúdo

de interesse individual, é necessário realizar um Login e entrar na área associada ao

utilizador ligado no sistema.

Figura 23: Login

Depois do login feito com sucesso, aparece no canto superior direito as opções Logout e

neste exemplo, Área de Funcionário, porque se for o gestor ou o cliente a operação é

semelhante, mudando a opção Área para Cliente ou Gestor dependendo de quem fez o

login.

Figura 24: Opções depois do Login com sucesso

Se o utilizador clicar em “Área Funcionário”, entra na área que lhe corresponde.

Onde lhe é apresentada a seguinte pagina web, com as opções necessárias ao

desempenho das suas funções e aviso de serviços que expiraram ou estão perto de

expirar a validade, merecendo a atenção por parte dele.

Page 77: Escola Superior de Tecnologia e Gestãobdigital.ipg.pt/dspace/bitstream/10314/1793/1... · do curso de Engenharia Informática, da Escola Superior de Tecnologia e Gestão, do Instituto

64

Figura 25: Área de Funcionário

Se por exemplo optar por introduzir “Novo Condomínio”, clicando no botão mais

escuro da Figura 25, ou se for à barra de menu Condomínios>> Registar Novo, aparece

o formulário para inserir o condomínio (Figura 26).

Figura 26: Formulário Registar Condomínio

Page 78: Escola Superior de Tecnologia e Gestãobdigital.ipg.pt/dspace/bitstream/10314/1793/1... · do curso de Engenharia Informática, da Escola Superior de Tecnologia e Gestão, do Instituto

65

O funcionário insere os dados do condomínio e depois do sistema validar os dados, é

apresentado um menu para inserir Clientes, Serviços, Atas e Despesas.

Na Figura 27, mostra como o funcionário vê a informação do Condomínio e fica com

acesso aos formulários para poder inserir Clientes, Serviços, Atas e Despesas associadas

ao Condomínio registado.

Figura 27: Exemplo Formulários Desbloqueados

Page 79: Escola Superior de Tecnologia e Gestãobdigital.ipg.pt/dspace/bitstream/10314/1793/1... · do curso de Engenharia Informática, da Escola Superior de Tecnologia e Gestão, do Instituto

66

5.3.1 Validar e Enviar Pedido de Orçamento

Qualquer utilizador pode fazer um pedido de orçamento à empresa. Através do seguinte

formulário.

Figura 28: Formulário Pedir Orçamento

O utilizador introduz a informação, e se os campos obrigatórios não estiverem

devidamente preenchidos ou com o formato correto, ao clicar no botão confirmar,

ocorre o seguinte (Figura 29):

Figura 29: Exemplo de inserção incorreta

Isto acontece porque foram utilizadas as ferramentas disponibilizadas para validação de

dados do ASP.NET e também para o caso do NIF JavasScript.

Page 80: Escola Superior de Tecnologia e Gestãobdigital.ipg.pt/dspace/bitstream/10314/1793/1... · do curso de Engenharia Informática, da Escola Superior de Tecnologia e Gestão, do Instituto

67

Exemplo da validação de um dado introduzido na TextBoxEmail (Figura 31):

Figura 30: Exemplo da validação do email

O RequiredFieldValidator faz a validação de campos obrigatórios e o

RegularExpressionValidator serve para validar os caracteres introduzidos e qual os

formatos os dados a introduzidos devem ter.

Exemplo da validação de um dado introduzido na TextBoxNIF (Figura 31):

Figura 31: Exemplo validação do NIF

Esta validação é mais complexa foi necessário usar um CustomValidator para que possa

executar uma função em JavaScrip (Anexo 3). Todos os outros campos têm validações

semelhantes a estes dois exemplos (Figura 30 e 31), dependendo do que é requerido.

Para que as mensagens de erro sejam apresentadas no ecrã cria-se um

ValidationSummary que permite gerir como e onde queremos que as notificações de

erro apareçam:

Figura 32: Exemplo ValidationSummary

E atribui-se ao botão o mesmo grupo de validação:

Figura 33:Exemplo do botão Confirmar

Page 81: Escola Superior de Tecnologia e Gestãobdigital.ipg.pt/dspace/bitstream/10314/1793/1... · do curso de Engenharia Informática, da Escola Superior de Tecnologia e Gestão, do Instituto

68

Se houver erros nos dados introduzidos, o botão não faz o evento enquanto não

estiverem todos os dados corretos.

Se os dados estão bem inseridos é enviado o email para a empresa com a informação:

Figura 34: Exemplo do Código do Botão Confirmar

Page 82: Escola Superior de Tecnologia e Gestãobdigital.ipg.pt/dspace/bitstream/10314/1793/1... · do curso de Engenharia Informática, da Escola Superior de Tecnologia e Gestão, do Instituto

69

5.4 Código

Neste tópico é mostrado alguns excertos de código, utilizados para realizar algumas

operações e funcionalidades.

5.4.1 Carregar um ficheiro PDF

Tem a finalidade de permitir que o utilizador possa fazer o upload de um ficheiro PDF

associado a uma Ata, neste caso.

Figura 35: Exemplo de Código Carregar Ficheiro

5.4.2 Calcular Quota Mensal

Utilizado quando o funcionário está a registar um Cliente, e quer que o sistema calcule a

quota mensal.

Figura 36: Exemplo de Código Calcular Quota Mensal

Page 83: Escola Superior de Tecnologia e Gestãobdigital.ipg.pt/dspace/bitstream/10314/1793/1... · do curso de Engenharia Informática, da Escola Superior de Tecnologia e Gestão, do Instituto

70

Capítulo 6. Conclusão e Trabalho Futuro

6.1 Conclusão

No final desde projeto, tirando um ou dois pontos os objetivos previstos foram

conseguidos. O que aprendemos durante o curso teve impacto na forma como foram

contornados os problemas encontrados.

Neste caso a interação com um possível utilizador da aplicação foi enriquecedora, a

troca de ideias para melhorar a aplicação foi impecável e vai continuar para o futuro,

pois ainda existe um caminho longo a percorrer para que este projeto possa concorrer

diretamente com os melhores do mercado.

6.2 Resultados Obtidos

No final deste projeto, os resultados obtidos foram:

Inserir, editar, procurar um Condomínio.

Gerir Clientes.

Gerir Serviços.

Ver/editar/inserir Atas.

Ver/editar/inserir Despesas do Condomínio e do Cliente.

Ver/editar/inserir Funcionários.

Fazer Procuras com palavras de pesquisa.

Carregar e Visualizar ficheiros PDF.

Calcular a quota mensal que o cliente irá pagar.

Aviso de validade dos pacotes de serviços contratados.

Enviar email com avisos para reuniões, pagamentos, serviços e outros.

Pedir orçamentos.

Page 84: Escola Superior de Tecnologia e Gestãobdigital.ipg.pt/dspace/bitstream/10314/1793/1... · do curso de Engenharia Informática, da Escola Superior de Tecnologia e Gestão, do Instituto

71

6.3 Trabalho Futuro

Para trabalho futuro pretende-se:

Criar um modo de facilitar a gestão do NIB do Condomínio e Clientes. E

também para uma validação real do NIB introduzido e o Nome do Banco.

Fazer uma gestão de crédito e débito da conta do Condomínio.

Se tudo correr bem com a empresa, passado um ano do surgimento no mercado,

é necessária a criação de um sistema de faturação certificada.

Criar uma forma de identificar uma localidade através da introdução do código

postal para facilitar a inserção.

Fazer a uma gestão para os fornecedores, com quem a empresa de Condomínios

pode ter como parceiros.

Page 85: Escola Superior de Tecnologia e Gestãobdigital.ipg.pt/dspace/bitstream/10314/1793/1... · do curso de Engenharia Informática, da Escola Superior de Tecnologia e Gestão, do Instituto

72

Bibliografia

1. Improxy. Gecond online. http://www.improxy.pt. [Online] Improxy, 2012. [Citação:

28 de 09 de 2013.]

http://www.improxy.pt/Solu%C3%A7%C3%B5eseplataformas/Gest%C3%A3odecond

om%C3%ADnios/Gecondonline/tabid/1759/Default.aspx.

2. Improve it. Extreme Programming. desenvolvimentoagil. [Online] Improve it, 2013.

[Citação: 2013 de 11 de 25.] http://desenvolvimentoagil.com.br/xp/.

3. Hiperbytes. Metodologia Agil XP. Hiperbytes. [Online] 2013. [Citação: 16 de 11 de

2013.] http://www.hiperbytes.com.br/artigos/metodologia-xp-extreme-programming-

desenvolvimento-agil/.

4. pplWare. ASP.NET – Introdução e conceitos. pplWare no Comments. [Online]

Pplware, 2013. [Citação: 12 de 11 de 2013.] http://pplware.sapo.pt/tutoriais/asp-net-

%E2%80%93-introducao-e-conceitos/.

5. Microsoft. Microsoft developer network. Visual C#. [Online] Microsoft, 2013.

[Citação: 20 de 11 de 2013.] http://msdn.microsoft.com/pt-

BR/library/kx37x362(v=VS.90).aspx.

6. significados.com. Significado de HTML. Significados.com. [Online] 7Graus, 2011-

2013. [Citação: 28 de 11 de 2013.] http://www.significados.com.br/html/.

7. wikipedia. http://pt.wikipedia.org. Cascading_Style_Sheets. [Online] wikipedia, 30

de 6 de 2013. [Citação: 12 de 11 de 2013.]

http://pt.wikipedia.org/wiki/Cascading_Style_Sheets.

Page 86: Escola Superior de Tecnologia e Gestãobdigital.ipg.pt/dspace/bitstream/10314/1793/1... · do curso de Engenharia Informática, da Escola Superior de Tecnologia e Gestão, do Instituto

73

Anexo 1

Lista de websites visitados para pesquisa no estudo do Estado da Arte:

http://www.grupocertifacil.com/

http://www.paxdomi.pt/

http://www.gestaodecondominios.pt/

http://www.great-house.pt/

http://www.h24gestaodecondominios.com/

http://www.scgc.pt/

http://www.condblue.com/

http://www.lispatios.ich.pt/

http://www.predominio.pt/

http://www.contacomum.com/

Page 87: Escola Superior de Tecnologia e Gestãobdigital.ipg.pt/dspace/bitstream/10314/1793/1... · do curso de Engenharia Informática, da Escola Superior de Tecnologia e Gestão, do Instituto

74

Anexo 2

Exemplo de código utilizado para a criação da master page na área do funcionário:

<%@ Master Language="C#" AutoEventWireup="true" CodeBehind="menuFuncionario.master.cs" Inherits="GestCondominios.menuFuncionario" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <script type="text/javascript"> function abrir(pagina, largura, altura) { //pega a resolução do visitante w = screen.width; h = screen.height; //divide a resolução por 2, obtendo o centro do monitor meio_w = w / 2; meio_h = h / 2; //diminui o valor da metade da resolução pelo tamanho da janela, fazendo com q ela fique centralizada altura2 = altura / 2; largura2 = largura / 2; meio1 = meio_h - altura2; meio2 = meio_w - largura2; //abre a nova janela, já com a sua devida posição window.open(pagina, '', 'height=' + altura + ', width=' + largura + ', top=' + meio1 + ', left=' + meio2 + ',resizable=no'); } </script> <head runat="server"> <title>Gestão de Condominios/Funcionário</title> <link rel="SHORTCUT ICON" type="image/x-icon" href="~/images/logoAmecI.ico" /> <link href="Styles/style.css" rel="stylesheet" type="text/css" /> <asp:ContentPlaceHolder ID="HeadContent" runat="server"> </asp:ContentPlaceHolder> <style type="text/css"> .style1 { width: 100px; height: 80px; text-align: justify; float: left; } </style> </head> <body> <form id="form1" runat="server"> <div class="main-out"> <div class="main"> <div class="page"> <div class="top"> <div class="header"> <div class="header-top"> <h1>

Page 88: Escola Superior de Tecnologia e Gestãobdigital.ipg.pt/dspace/bitstream/10314/1793/1... · do curso de Engenharia Informática, da Escola Superior de Tecnologia e Gestão, do Instituto

75

<asp:ImageButton ID="ImageLogo" CssClass="style1" ImageUrl="~/images/logoAmec.png" runat="server" OnClick="ImageLogo_Click" /> GESTÃO <span>CONDOMÍNIOS</span></h1> <p style="margin-top: 25px;"> <asp:LoginStatus ID="LoginSt" runat="server" CssClass="btLogin" LoginText="Login" LogoutText="Logout" LogoutAction="Redirect" LogoutPageUrl="~/Default.aspx" Font-Bold="True" Font-Italic="False" Font-Size="Large" ForeColor="#F1F1F1" Height="30px" Width="85px" /> <asp:LoginView ID="LoginViewMenu" runat="server"> <RoleGroups> <asp:RoleGroup Roles="Cliente"> <ContentTemplate> <asp:HyperLink ID="HyperLinkMenuCliente" runat="server" CssClass="btLogin" NavigateUrl="~/Cliente/PagClientes.aspx" Height="30px" Width="85px" Font-Bold="True" Font-Italic="False" Font-Size="7pt" ForeColor="#F1F1F1">Area <br /> Cliente</asp:HyperLink></ContentTemplate> </asp:RoleGroup> <asp:RoleGroup Roles="Funcionario"> <ContentTemplate> <asp:HyperLink ID="HyperLinkVendedorMenu" runat="server" CssClass="btLogin" NavigateUrl="~/Funcionario/PagFuncionario.aspx" Height="30px" Width="85px" Font-Bold="True" Font-Italic="False" Font-Size="7pt" ForeColor="#F1F1F1">Area <br /> Funcionário</asp:HyperLink> </ContentTemplate> </asp:RoleGroup> <asp:RoleGroup Roles="Gestor"> <ContentTemplate> <asp:HyperLink ID="HyperLinkGestor" runat="server" CssClass="btLogin" NavigateUrl="~/Gestor/PagGestor.aspx" Height="30px" Width="85px" Font-Bold="True" Font-Italic="False" Font-Size="7pt" ForeColor="#F1F1F1">Area <br /> Gestão</asp:HyperLink></ContentTemplate> </asp:RoleGroup> </RoleGroups> </asp:LoginView> </p> </div> <div class="topmenu"> <asp:Menu ID="Menu1" runat="server" Orientation="Horizontal"> <Items> <asp:MenuItem NavigateUrl="~/Default.aspx" Text="Bem Vindo"></asp:MenuItem> <asp:MenuItem Text="Quem Somos"> <asp:MenuItem Text="Missão" NavigateUrl="#"></asp:MenuItem> <asp:MenuItem Text="Valores" NavigateUrl="#"></asp:MenuItem> <asp:MenuItem Text="História" NavigateUrl="#"></asp:MenuItem> </asp:MenuItem>

Page 89: Escola Superior de Tecnologia e Gestãobdigital.ipg.pt/dspace/bitstream/10314/1793/1... · do curso de Engenharia Informática, da Escola Superior de Tecnologia e Gestão, do Instituto

76

<asp:MenuItem NavigateUrl="~/PagParceiros.aspx" Text="Parceiros"></asp:MenuItem> <asp:MenuItem NavigateUrl="~/PagServicos.aspx" Text="Serviços"> <asp:MenuItem Text="Gestão de Condomínios" NavigateUrl="~/PagGestao.aspx"></asp:MenuItem> <asp:MenuItem Text="Manutenção" NavigateUrl="~/PagManutencao.aspx"></asp:MenuItem> <asp:MenuItem Text="Limpeza" NavigateUrl="~/PagLimpeza.aspx"></asp:MenuItem> </asp:MenuItem> <asp:MenuItem NavigateUrl="~/PagOrcamentos.aspx" Text="Orçamentos"></asp:MenuItem> <asp:MenuItem NavigateUrl="~/PagContatos.aspx" Text="Contatos"></asp:MenuItem> </Items> <StaticMenuItemStyle Width="105px" /> <StaticHoverStyle BackColor="#0F87D5" Width="105px" /> <DynamicMenuItemStyle CssClass="MenuItem" /> </asp:Menu> </div> <br /> <asp:Panel ID="PanelLogin" runat="server"> <br /> </asp:Panel> </div> <div class="body_txt"> </div> <div class="content"> <asp:Menu ID="MenuGS" runat="server" Orientation="Horizontal" StaticSubMenuIndent="10px" DynamicHorizontalOffset="2" BackColor="#ECEFF0" Font-Names="Verdana" Font-Size="10pt" ForeColor="#0066FF" Width="980px" Font-Bold="True"> <DynamicHoverStyle BackColor="#0066FF" ForeColor="#ECEFF0" /> <DynamicMenuItemStyle HorizontalPadding="10px" VerticalPadding="5px" /> <DynamicMenuStyle BackColor="#ECEFF0" /> <DynamicSelectedStyle BackColor="#0066FF" ForeColor="#ECEFF0" /> <Items> <asp:MenuItem Text="Condominios"> <asp:MenuItem Text="Registar Novo" NavigateUrl="~/Funcionario/PagRegCondominio.aspx"> </asp:MenuItem> <asp:MenuItem Text="Ver/Editar" NavigateUrl="~/Funcionario/PagVerEditarCond.aspx"> </asp:MenuItem> <asp:MenuItem Text="Enviar Aviso" NavigateUrl="~/Funcionario/PagEnviarAviso.aspx"> </asp:MenuItem> </asp:MenuItem> <asp:MenuItem Text="Clientes"> <asp:MenuItem Text="Procurar clientes" NavigateUrl="~/Funcionario/PagProcurarClient.aspx"> </asp:MenuItem> <asp:MenuItem Text="Ver/Editar Clientes" NavigateUrl="~/Funcionario/PagVerEditCliente.aspx"> </asp:MenuItem> </asp:MenuItem>

Page 90: Escola Superior de Tecnologia e Gestãobdigital.ipg.pt/dspace/bitstream/10314/1793/1... · do curso de Engenharia Informática, da Escola Superior de Tecnologia e Gestão, do Instituto

77

<asp:MenuItem Text="Documentos"> <asp:MenuItem Text="Atas" NavigateUrl="~/Funcionario/PagDocAtas.aspx"></asp:MenuItem> <asp:MenuItem Text="Confirmar Pagamentos" NavigateUrl="~/Funcionario/PagDocFaturas.aspx"></asp:MenuItem> </asp:MenuItem> <asp:MenuItem Text="Simulador de valores" NavigateUrl="javascript: abrir('PagSimulaCal.aspx','650','400')"> </asp:MenuItem> </Items> <StaticHoverStyle BackColor="#0066FF" ForeColor="#ECEFF0" /> <StaticMenuItemStyle HorizontalPadding="10px" VerticalPadding="5px" /> <StaticSelectedStyle BackColor="#0066FF" ForeColor="#ECEFF0" /> </asp:Menu> <asp:Panel ID="PanelLinhaFora" runat="server" Width="974px" BorderColor="#DDDDDD" BorderWidth="3px" CssClass="content"> <asp:ContentPlaceHolder ID="MainContent" runat="server"> </asp:ContentPlaceHolder> <br /> </asp:Panel> </div> <table> <tr> <td style="text-align: center; width: 980px"> <br /> <asp:Label ID="LabelDataAtual" runat="server" Font-Size="10pt" Font-Bold="True" Font-Italic="True" ForeColor="GradientActiveCaption" Text=" "></asp:Label> </td> </tr> </table> </div> <div class="bottom"> <ul> <li style="border-left: medium none;"><a href="Default.aspx">Bem Vindo</a></li> <li><a href="PagSobreNos.aspx">Quem Somos</a></li> <li><a href="PagParceiros.aspx">Parceiros</a></li> <li><a href="PagServicos.aspx">Serviços</a></li> <li><a href="PagOrcamentos.aspx">Orçamentos</a></li> <li><a href="PagContatos.aspx">Contactos</a></li> </ul> <p> Copyright &copy; 2013</p> </div> </div> </div> </div> </form> </body> </html>

Page 91: Escola Superior de Tecnologia e Gestãobdigital.ipg.pt/dspace/bitstream/10314/1793/1... · do curso de Engenharia Informática, da Escola Superior de Tecnologia e Gestão, do Instituto

78

Anexo 3

<script type="text/javascript"> function ValidateNIF(sender, args) { args.IsValid = IsValidNIF(args.Value); } function IsValidNIF(nif) { var c; var checkDigit = 0; var x = ""; var y = ""; //Verifica se é nulo, se é numérico e se tem 9 dígitos if (nif != null && IsNumeric(nif) && nif.length == 9) { //Obtem o primeiro número do NIF c = nif.charAt(0); //Verifica se o primeiro número é (1, 2, 5, 6, 8 ou 9) if (c == '1' || c == '2' || c == '5' || c == '6' || c == '8' || c == '9') { //Calculo do Digito de Controle checkDigit = c * 9; var i = 0; for (i = 2; i <= 8; i++) { checkDigit += nif.charAt(i - 1) * (10 - i); } checkDigit = 11 - (checkDigit % 11); //Se o digito de controle é maior que dez, coloca-o a zero if (checkDigit >= 10) checkDigit = 0; //Compara o digito de controle com o último numero do NIF //Se igual, o NIF é válido. if (checkDigit == nif.charAt(8)) //alert("nif valido"); document.getElementById("nifvalido").innerHTML = (x = "NIF Válido!"); document.getElementById("nifinvalido").innerHTML = (y = ""); return true; } } else { //alert("nif invalido"); document.getElementById("nifinvalido").innerHTML = (y = "NIF Inválido!"); document.getElementById("nifvalido").innerHTML = (x = ""); return false; } } function IsNumeric(ObjVal) { return /^\d+$/.test(ObjVal); } </script>

Page 92: Escola Superior de Tecnologia e Gestãobdigital.ipg.pt/dspace/bitstream/10314/1793/1... · do curso de Engenharia Informática, da Escola Superior de Tecnologia e Gestão, do Instituto

79

Anexo 4

Como já foi referido, optamos pelo desenvolvimento de uma aplicação web, mas existiu o

problema de implementar o projeto numa aplicação web ou desktop. Para auxílio da decisão

foram estudadas as vantagens e desvantagens de cada uma.

Aplicações web:

Vantagens:

A principal vantagem é a facilidade de acesso, em qualquer local pode facilmente ter

acesso as informações contidas na aplicação.

Possibilidade de ter acesso à aplicação sem que seja necessário instalar nada no

computador, basta utilizar o browser.

O custo de manutenção de uma aplicação web é mais económico, uma vez que

depende apenas do servidor que hospeda a aplicação.

Quando se faz uma atualização, não é necessário instalar nada de novo e as

alterações surgem para todos os utilizadores ao mesmo tempo.

Se for preciso aumentar o processamento, basta acionar o servidor que hospeda a

aplicação e realizar o upgrade.

Desvantagens:

Se não houver acesso à Internet, não é possível utilizar a aplicação, e isso pode

tornar-se um enorme problema.

A informação é mostrada de acordo com os diferentes navegadores, pode tornar-se

fatal, uma vez que num navegador é apresentada a página web corretamente e em

outro navegador podem ocorrer erros.

Menor segurança

Page 93: Escola Superior de Tecnologia e Gestãobdigital.ipg.pt/dspace/bitstream/10314/1793/1... · do curso de Engenharia Informática, da Escola Superior de Tecnologia e Gestão, do Instituto

80

Aplicações desktop:

Vantagens

Uma integração mais fácil com vários periféricos.

A interface permite maior controlo e variedade.

A rapidez de processamento é maior, uma vez que é local.

Maior segurança

Desvantagens

Com a diversidade dos sistemas operativos, implica a criação de várias versões de

software.

Pode ser necessária a instalação de componentes de hardware e software no

computador.

Para a instalação da aplicação pode precisar de drivers e periféricos.

Distribuição critica, e quando surge uma atualização, é preciso voltar a instalar

novamente a aplicação ou o update.

Como existe o objetivo de permitir que utilizador tenha acesso à aplicação em todo o lado,

onde quer que esteja, e atualmente a internet está em todo o mundo, é utilizada por milhões de

utilizadores todos os dias, a melhor solução é a criação de uma aplicação web pois assim

permite divulgação da empresa e serviços online.

E como há uma interação por parte de diferentes tipos de utilizadores, o facto de não ser

preciso instalar nada no computador, facilita a utilização dos intervenientes.

Quando se realiza uma atualização do sistema, esta fica aplicada para todos sem

complicações. Foi também um ponto forte para a escolha do tipo da aplicação.