Você está na página 1de 46

REPÚBLICA DE ANGOLA

INSTITUTO MÉDIO PRIVADO FATIMA DUARTE – (IMFAD)


CURSO TÉCNICO DE INFORMÁTICA
PROVA DE APTIDÃO PROFISSIONAL(PAP)
13º CLASSE
DESENVOLVIMENTO DE UMA APLICAÇÃO WEB PARA REGISTRO DE
OCORRÊNCIA DE BOMBEIROS.

ZANGO - 1

______________________________________________________________________

Amílcar Machado Francisco.

Eliud Gabriel Gonga.

Gonçalo Antônio Bumba Catimba.

Hepifânio Ernesto Júlio Manuel.

Kennedy Augusto Candele Neto.

Luanda, 2024

_____________________________________________________________________
INSTITUTO MÉDIO PRIVADO FATIMA DUARTE – IMFAD
CURSO TÉCNICO DE INFORMÁTICA
PROVA DE APTIDÃO PROFISSIONAL (PAP)
13º CLASSE

DESENVOLVIMENTO DE UMA APLICAÇÃO WEB PARA REGISTRO DE


OCORRÊNCIA DE BOMBEIROS.

ZANGO - 1
GRUPO Nº. 5
AMÍLCAR MACHADO FRANCISCO
Nº02
ELIUD GABRIEL GONGA
Nº6
GONÇALO ANTÓNIO BUMBA CATIMBA
Nº8
HEPIFÂNIO ERNESTO JÚLIO MANUEL

Nº15
KENNEDY AUGUSTO CANDELE NETO
Nº19
TURMA: INF13
TURNO: TARDE
ORIENTADOR:HERNANI DA SILVA

Luanda,2024
DEDICATÓRIA

Dedicamos este trabalho aos nossos familiares, em especial aos nossos Pais, pessoas
que sempre buscaram o melhor para nós, a todos que de alguma maneira ou de outra
contribuíram para a elaboração deste trabalho, e pelo apoio incondicional que nos veem
prestando ao longo dos anos, sem eles que outrora colaboraram desde à nossa infância até aos
dias de hoje.
AGRADECIMENTOS

A vida não é uma sequência de acontecimentos aleatórios. Muita coisa teve de


acontecer em uma certa ordem para que este trabalho fosse possível, desde uma longínqua
oportunidade de fazer o primeiro curso de informática, passando por curso técnico, grupos de
estudo, palestras, até as oportunidades de trabalhar com pessoas que nos fizeram evoluir. Por
isso, agradecemos a Deus por nos ter dado as ferramentas e o discernimento necessários para
encontrar os caminhos que nos trouxeram até este magnifico trabalho

Aos nossos pais, e familiares por serem nossos suportes emocional e financeiro. Aos
nossos professores que a todo o momento nos incentivam a continuar a partilhar esta aventura
acadêmica.

Aos nossos colegas com quem nós partilhamos bons momentos de euforia durante os 4
anos de formação e por partilharmos também esta aventura acadêmica.

E a todos que direta ou indiretamente contribuíram para concretização deste trabalho

A vocês o nosso muito obrigado!!


SÍGLAS E ABREVIATURAS

IMFAD-Instituto Médio Fatima Duarte

CSS-Cascading Style Sheet

E/S-Entrada/Saída

IBM-International Business Machines

DFD-Data-flow diagram

HTTP-Hypertext Transfer Protocol

URL- Uniform Resourch Locator

HTML- Hypertext Markup Language

PHP-Processador de hypertexto

RUP-Rational Unified Process

SGBD-Sistema gerenciador de base de dados

SQL-Structured Query Language

TI- Tecnologia de informação

UML- Unified Modeling Language

WWW-World Wide Web

XHTML- Extensible Hypertext Markup Language


Sumário
DEDICATÓRIA....................................................................................................................................3
AGRADECIMENTOS...........................................................................................................................4
SÍGLAS E ABREVIATURAS...............................................................................................................5
SUMÁRIO.............................................................................................................................................8
INTRODUÇÃO.....................................................................................................................................7
JUSTIFICATIVA...................................................................................................................................7
OBJECTIVOS........................................................................................................................................7
Objectivo Geral..................................................................................................................................7
Objectivo Especifico..........................................................................................................................7
Metodologia...........................................................................................................................................8
Estrutura do relatório..............................................................................................................................8
Capítulo I – Domínio do problema.........................................................................................................9
1.1 -O objetivo de estudo......................................................................................................10
1.2. Âmbito do projecto..............................................................................................................10
1.3. Objectivo da instituição.......................................................................................................10
1.4. Utilizadores (Potenciais)......................................................................................................10
1.5. Áreas de automatização (Procedimento manual)..............................................................10
1.6. Situação atual.......................................................................................................................10
1.7. Problemas a serem resolvidos.............................................................................................10
1.8. Solução a ser proposta.........................................................................................................10
1.9. Materiais necessários, estimativa de custos e apoios.........................................................11
1.10. Viabilidade do projeto.......................................................................................................11
Capitulo II – Analíse de requisitos.......................................................................................................12
2.1. Metodologia aplicacional.....................................................................................................13
Metodologia Ágil.........................................................................................................................13
Metodologia Scrum....................................................................................................................14
Metodologia Lean.......................................................................................................................14
Metodologia em Cascáta............................................................................................................14
Metodologia Kanban..................................................................................................................15
2.2. Tipo De Aplicação................................................................................................................15
2.3. Utilizadores do sistema........................................................................................................16
2.4. Processos/ Funções (Baseado na metodologia do ponto 2.1).............................................17
2.4.1. Especificação dos processos/ funções do sistema (ponto 2.1).........................................17
2.4.2. Requistos funcionais.........................................................................................................17
2.4.3. Requistos não funcionais..................................................................................................18
2.4.4. Diagramas (baseado na metodologia do ponto 2.1)........................................................19
2.4.5. Diagrama de Classe..........................................................................................................20
2.4.6. Diagrama caso de uso......................................................................................................21
Capítulo III – Desenho.........................................................................................................................22
3.1. Estrutura de menu...............................................................................................................23
3.2. Elaboração de interface gráficas com o utilizador............................................................23
3.3.Modelo lógico de dados........................................................................................................24
3.4. Arquitetura lógica de aplicação..........................................................................................24
Capítulo IV – T ecnologias e ferramentas utilizadas............................................................................25
4.1 Tecnologias Utilizadas (conceitos/definições).....................................................................26
4.2. Ferramentas Utilizadas (conceitos/definições)...................................................................29
Capítulo V – Implementação................................................................................................................31
5.1. Arquitetura física do sistema..............................................................................................32
5.2. Modelo físico de dados.........................................................................................................32
5.3. Extractos de códigos.......................................................................................................33
Conclusão.............................................................................................................................................34
Referências bibliográficas (excepto e-books).......................................................................................40
Apêndices.............................................................................................................................................41
Índice remissivo...................................................................................................................................42
Anexos.................................................................................................................................................43
SUMÁRIO

Este projeto tem como objetivo facilitar o acesso ao registro de bombeiros, com uma
melhor organização o principal objetivo deste projeto é desenvolver o conceito e a estrutura
de uma nova plataforma digital, o website da para o registro de , com uma robustez que
permita aos utilizadores aceder a qualquer informação dos serviços uma homepage que
servirá como a área de comunicação entre e os seus utilizadores.
INTRODUÇÃO

No contexto do crescente avanço tecnologico, a criação de soluções inovadoras torna-


se imperativa para otimizar operações cruciais, como o registro de ocorrências dos bombeiros.
Este trabalho aborda o desenvolvimento de uma aplicação web voltada para esse próposito
especifico,visando simplificar e agilizar o processo de documentação e resposta a
emergencias

Ao unir a eficiência da tecnologia à essencialidade dos serviços prestados pelos


bombeiros , busca-se aprimorar significativamente a gestão e a prontidão no atendimento as
situações críticas, face aos momentos de crize nas linhgas telefonicas que temos vivido e ao
mesmo tempo condicionando as chamadas, traremos uma forma de comunicar casos de
emergencias sem necessidade de ligar para uma central dos bombeiros.

JUSTIFICATIVA
O presente projecto apresentado vem surgindo no intuito de que, uma vez que as
tecnologias de comunicação e informação vem evoluindo não devemos nos prender apenas
em uma forma tradicional de enviar ou comunicar uma ocorrencia de emergencia, deste modo
o Zuela sera o projecto que ajudara milhares de angolanos que tenham em posse um
dispositivo movel a relatar ocorrencias de forma online.

OBJECTIVOS

Objectivo Geral
Desenvolver uma plataforma WEB para serviços de atendimento online permitindo a
facilidade no acesso as instituições publicas

Objectivo Especifico
 Compreender o conceito e finalidade das plataformas Real Time Comunication;

 Efetuar o levantamento de dados e análise dos requisitos;

 Modelar o sistema utilizando a UML;

 Incorporar a Inteligência Artificial para previsão de Questões, e atendimento virtual;

7
 Implementar a solução e consequentemente a monitorização e avaliação do impacto do
software.

Metodologia

Metodologia tem como objetivo o estudo dos caminhos para se chegar a um


determinado fim, além de estudar os métodos, a metodologia é também considerada como
uma forma de conduzir a pesquisa. Para este projeto a metodologia de pesquisa é de carácter
qualitativo pois, a pesquisa qualitativa é um método de investigação científica que se foca no
carácter subjetivo do objeto analisado, estudando as suas particularidades e experiências
individuais, onde os entrevistados estão mais livres para apontar os seus pontos de vista sobre
determinados assuntos que estejam relacionados com o objeto de estudo. Numa pesquisa
qualitativa as respostas não são objetivas, e o propósito não é contabilizar quantidades como
resultado, mas sim conseguir compreender o comportamento de determinado grupo alvo para
dar melhores soluções.

Neste contexto foi necessário a escolha deste tipo de pesquisa porque levantou-se
dados em várias pessoas que usam estes produtos para poder analisar melhor os requisitos do
sistema criando um projeto com maior qualidade, lembrar que uma análise mal elaborada
influencia negativamente na modelagem do sistema e automaticamente compromete a
qualidade do sistema.

Estrutura do relatório

O presente projeto está constituído por 5 capítulos,em que os mesmos abordam os seguintes
assuntos:

1. O primeiro capítulo fala sobre o domínio do problema.


2. O segundo capítulo fala sobre análise de requisitos.
3. O terceiro capítulo fala sobre desenho.
4. O quarto capítulo fala sobre tecnologias e ferramentas utilizadas.
5. O quinto capítulo que é o último, fala sobre implementação.

8
Capítulo I – Domínio do problema

9
1.1-O objetivo de estudo
Para realização desse projeto o nosso objetivo é de descrever a situação das ocorrências.

1.2. Âmbito do projecto


Este projecto é do âmbito acadêmico, para realização da prova de aptidão profissional.

1.3. Objectivo da instituição


O objetivo da instituição é de ajudar os cidadãos a terem uma interação sobre ocorrências
exitentes, e de forma remota, e permitir que outras pessoas conheçam a instituição sem a
necessidade de sair de casa.

1.4. Utilizadores (Potenciais)


Os utilizadores potenciais são todas pessoas que desejam conhecer o website, que desejam
usufruir de outras informações relactivas a outros serviços.

1.5. Áreas de automatização (Procedimento manual)


Com o presente desenvolvimento desta aplicação web vamos automatizar
áreas como:
 Metodos de comunicação do utente e o Corpo de bombeiros.
 A forma de descrever a situação da ocorrência no momento.

1.6. Situação atual


Atualmente o nosso país não possui nenhuma página web em funcionamento sobre registro de
ocorrências de bombeiros.

1.7. Problemas a serem resolvidos


 Evitar atrasos no registo de ocorrências de bombeiros.
 Facilitar a Comunicação entre os dois lados.
 Permitir o uso de camaras de celular para registar estado de ocorrencia.

1.8. Solução a ser proposta


Criação de uma página web, para publicitar, e efectuar o registro de ocorrências de bombeiros
e dá a conhecer ao público em geral sobre os outros serviços prestados pela instituição.

10
1.9. Materiais necessários, estimativa de custos e apoios.

Itens Quantidade Preço Total


Computador 4 220.000.00 880.000.00
Modem 2 21.750.00 43.500.00
923.000.00

1.10. Viabilidade do projeto

O nosso corpo de bombeiros. É uma instituição que está á mais de 10 anos , mas que,
apesar da grande experiência de seus serviços, encontra dificuldades devido ao grande número
de problemas que tem se deparado. É uma instituição que teve uma grande resistência a novas
tecnologias e acabou se acomodando com um software desktop com modulo de registros. Ao
fazer-se este estudo espera-se que boa parte dos problemas existentes possam ser resolvidos.

11
Capitulo II – Analíse de requisitos

12
2.1. Metodologia aplicacional

As metodologias de desenvolvimento de software, consistem basicamente, no


conjunto de abordagens que podem ser utilizadas para a criação de sistemas de processamento
de dados. O sucesso de qualquer projeto voltado à elaboração de um software depende
diretamente da escolha da metodologia adequada. Para garantir mais eficiência em todo o
desenvolvimento, cabe ao responsável pela equipe conhecer as diferentes metodologias
disponíveis e optar por aquela que seja melhor para o seu caso. É evidente que cada método
possui vantagens e desvantagens, por isso é indispensável conhecer as metas, os objetivos,
prazos e orçamentos envolvidos no projeto para determinar qual é a abordagem mais alinhada.
Muitos são os métodos e abordagens de desenvolvimento de um software. Dentre eles
destacam-se:

1. Metodologia Ágil;
2. Metodologia Scrum;
3. Metodologia Lean;
4. Metodologia em Cascata;
5. Metodologia Kanban.

Metodologia Ágil
Trata-se de uma metodologia de desenvolvimento de software com foco no próprio
projeto ou produto. Ela visa a realização de melhorias e alterações constantes, baseadas no
feedback dos usuários, dos próprios clientes e até do time interno de criação. Sem estruturas
rígidas, o processo visa períodos curtos de desenvolvimento, para que os resultados e seus
respectivos feedbacks sejam obtidos de maneira rápida(monitoratec.com). O grande benefício
desta metodologia, é que os eventuais problemas do software podem ser corrigidos ainda em
seu estágio inicial, garantindo mais qualidade já nas primeiras versões do sistema
(monitoratec.com).

13
Metodologia Scrum

O método Scrum funciona como uma etapa adicional da Metodologia Ágil. Seu
objetivo é agregar mais produtividade nos processos. Seus recursos incluem a criação de listas
sobre os trabalhos pendentes, reuniões diárias para discutir a direção e o progresso do projeto,
sessões de planejamento para pendências futuras e reflexões sobre os meios de resolução de
pendências anteriores . O sucesso da metodologia Scrum diz respeito à capacidade da equipe
em identificar e corrigir desafios emergentes, sempre de maneira ágil e orientada à resolução
de novos problemas que possivelmente surgirão no processo de desenvolvimento.

Metodologia Lean

O conceito Lean diz respeito ao desenvolvimento enxuto de um projeto, que se


concentra principalmente na diminuição de suas perdas. Nele, o valor a ser gerado para os
clientes é o principal ponto de todas as atividades. Ou seja, se determinada ação vale a pena,
ela deve ser realizada imediatamente, se não for o caso, ela deve ser removida
(monitoratec.com). Com isso, todo o projeto é examinado minuciosamente já em sua fase
inicial, visando a remoção de etapas que podem comprometer o tempo ou os recursos para a
sua realização. O feedback também tem suma importância nessa fase. Pode-se dizer que o
método Lean é a melhor opção para projetos com orçamento limitado e com pouco tempo
para realização .

Metodologia em Cascáta

Considerada oposta à Metodologia Ágil, a abordagem em Cascata visa a adoção de


controles e processos lineares muito rigorosos. Nela, uma nova etapa só pode ser começada
quando as anteriores forem concluídas, para que as ações sejam orientadas gradualmente até
as próximas responsabilidades previstas (Ian SommerVille, 2011, PP.20). Esse modelo é
conhecido como ‘modelo em cascata’, ou ciclo de vida de um software, por causa do
encadeamento entre uma fase e outra. O modelo em cascata é um exemplo de um processo
dirigido a planos em princípio, deve-se planejar e programar todas as atividades do processo
antes de começar a trabalhar nelas (Ian SommerVille, 2011, PP.20).

14
Metodologia Kanban

O desenvolvimento Kanban é excelente para equipes que recebem muitos pedidos,


que por sua vez variam muito em termos de tamanho e prioridades. Isso porque o método
permite uma melhor visualização do trabalho e limitação das atividades em andamento,
mudando com agilidade os processos ainda em realização para concluídos. Nele, as
atualizações já são liberadas assim que estiverem prontas, sem a necessidade de uma
programação regular com datas de vencimento bem delimitadas. Assim, não existe um
período fixo para a entrega das tarefas. Se elas forem concluídas com antecedência, ou mesmo
em atraso, basta lançá-las conforme a necessidade do projeto. Essa é a metodologia mais
flexível entre todas as mencionadas e é perfeita para sistemas com muitos requisitos de
alterações. Seu principal benefício é que toda a equipe se torna responsável pela tomada de
decisões, em um método de controle que garante um acompanhamento e atualização constante

entre todos os envolvidos.

2.2. Tipo De Aplicação

O tipo de aplicação a ser desenvolvida neste projeto, é a aplicação web. Em


computação, aplicação web designa, de forma geral, sistemas de informática projetados para
utilização de um navegador, por meio da internet ou aplicativos desen

volvidos utilizando tecnologias web HTML, JavaScript e CSS. Pode ser executado a
partir de um servidor HTTP ou localmente, no dispositivo do usuário . São como sistemas
tradicionais que recebem uma entrada, processam informação e emitem uma saída. Contudo,
eles são rodados e interpretados por um navegador. Por conta disso, envolvem um paradigma
totalmente distinto de aplicações comuns.

Esses softwares também são ecossistemas diferentes dos websites, uma vez que são
mais completos e apresentam um dinamismo maior.

Se um site comum é mais voltado para dispor informações na tela, uma aplicação
web consiste em interações constantes entre o usuário e o próprio sistema. A partir de um
protocolo chamado HTTP, uma pessoa consegue se comunicar com uma máquina que fornece
15
informações para acesso (Tegra.com). Para entender melhor as aplicações que rodam na
internet, temos que ir mais a fundo no funcionamento da rede. Existem dois lados que
conversam entre si:

servidor e cliente. O lado servidor oferece arquivos e fornece a aplicação hospedada,


sua função principal é executar requisições. Ao passo que o lado cliente envia requisições e
recebe arquivos para fazer download, o que o permite utilizar o sistema. Em termos de
desenvolvimento, os sistemas web envolvem três frentes:

 FrontEnd; /
 BackEnd; /
 Banco de dados.

O front-end é responsável pela apresentação do web site ao usuário. Ele lida com
tecnologias HTML, CSS e JavaScript a fim de organizar a estrutura dos sites, a relação entre
as páginas, bem como interações com o cliente. O front-end cuida também do design e da
experiência do usuário.

O back-end, por sua vez, gerência a parte do servidor, cuidando de questões mais
técnicas e profundas, relacionadas com a lógica de interação entre a apresentação e o banco de
dados, bem como respostas a requisições do usuário. Uma linguagem comum para
desenvolvimento deste lado, é o PHP .

Por fim, temos o banco de dados. Esta parte está relacionada com as informações
utilizadas pelos sistemas a fim de executar sua tarefa principal. O banco cuida das relações
entre tabelas e a modelagem do mundo real para garantir que a aplicação consiga administrar
esses dados de forma organizada. Uma linguagem popular para esse gerenciamento é o
MySQL.

2.3. Utilizadores do sistema

Os utilizadores deste sistema na sua maior parte serão a população, o pessoal da área
administrativa, e os demais ativos da comunidade que quiserem usufruir do site.

16
2.4. Processos/ Funções (Baseado na metodologia do ponto 2.1)

As aplicações web funcionam de forma semelhante aos aplicativos tradicionais, mas


com uma diferença básica: são rodados na web. O uso desse tipo de sistema é uma tendência
atualmente por conta da necessidade de economia de recursos e por gerarem menos problemas
com infraestrutura interna de TI.

2.4.1. Especificação dos processos/ funções do sistema (ponto 2.1)

Trata-se de uma metodologia de desenvolvimento de software com foco no próprio


projeto ou produto. Ela visa a realização de melhorias e alterações constantes, baseadas no
feedback dos usuários, dos próprios clientes e até do time interno de criação. Sem estruturas
rígidas, o processo visa períodos curtos de desenvolvimento, para que os resultados e seus
respectivos feedbacks sejam obtidos de maneira rápida.

2.4.2. Requistos funcionais

Segundo Ian Sommerville (2011), os requisitos de software são frequentemente


classificados em requisitos funcionais e requisitos não funcionais. Requisitos funcionais, são
declarações de serviços que o sistema deve fornecer, de como o sistema deve reagir a entradas
específicas e de como o sistema deve se comportar em determinadas situações. Em alguns
casos, os requisitos funcionais também podem explicitar o que o sistema não deve fazer
(Sommerville, 2011, p.60).

Os requisitos funcionais de um sistema descrevem o que ele deve fazer. Eles


dependem do tipo de software a ser desenvolvido, de quem são seus possíveis usuários e da
abordagem geral adotada pela organização ao escrever os requisitos (Sommerville, 2011,
p.61).

Quando expressos como requisitos de usuário, os requisitos funcionais são


normalmente descritos de forma abstrata, para serem compreendidos pelos usuários do

17
sistema. No entanto, requisitos de sistema funcionais mais específicos descrevem em detalhes
as funções do sistema, suas entradas e saídas, exceções etc. Requisitos funcionais do sistema
variam de requisitos gerais, que abrangem o que o sistema deve fazer, até requisitos muito
específicos, que refletem os sistemas e as formas de trabalho em uma organização
(Sommerville, 2011, p.60).

A imprecisão na especificação de requisitos é a causa de muitos problemas da


engenharia de software. É compreensível que um desenvolvedor de sistemas interprete um
requisito ambíguo de uma maneira que simplifique sua implementação. Muitas vezes, porém,
essa não é a preferência do cliente, sendo necessário, então, estabelecer novos requisitos e
fazer alterações no sistema. Naturalmente, esse procedimento gera atrasos de entrega e
aumenta os custos (Sommerville, 2011, p.60)

2.4.3. Requistos não funcionais

Os requisitos não funcionais, como o nome sugere, são requisitos que não estão
diretamente relacionados com os serviços específicos oferecidos pelo sistema a seus usuários.
Eles podem estão relacionados a propriedades emergentes do sistema, como confiabilidade,
tempo de resposta e ocupação de área (Sommerville, 2011, p.61).

Uma alternativa a esse cenário seria os requisitos definirem restrições sobre a implementação
do sistema, como as capacidades dos dispositivos de E/S ou as representações de dados
usados nas interfaces com outros sistemas. Os requisitos não funcionais, como desempenho,
proteção ou disponibilidade, normalmente especificam ou restringem as características do
sistema como um todo (Sommerville, 2011, p.61). Requisitos não funcionais são
frequentemente mais críticos que requisitos funcionais individuais. Os usuários do sistema
podem, geralmente, encontrar maneiras de contornar uma função do sistema que realmente
não atenda a suas necessidades. No entanto, deixar de atender a um requisito não funcional
pode significar a inutilização de todo o sistema(Sommerville, 2011, p.61).

A diferença que há entre requisitos funcionais e não funcionais é que, requisitos funcionais
declara os serviços que o sistema deve fornecer, e os não funcionais declaram as restrições
aos serviços ou funções oferecidas pelo sistema (Sommerville, 2011)

18
2.4.4. Diagramas (baseado na metodologia do ponto 2.1)

 Interface de Usuário – parte responsável pela exibição de informações do


sistema ao usuário e também por interpretar comandos do usuário;
 Domínio – representa os conceitos, regras e lógicas de negócio. Todo o foco de
DDD está nessa camada;
 Infraestrutura – fornece recursos técnicos que darão suporte às camadas
superiores. São normalmente as partes de um sistema responsáveis por persistência de dados,
conexões com BD, envio de mensagens por redes, gravação e leitura de discos etc.
 Depois de dividirmos o sistema em camadas, nos preocuparemos apenas com a
camada de domínio. Para modelar essa parte, utilizamos alguns Padrões propostos em DDD.
Esses padrões são chamados de blocos de construção e serão utilizados para representar nosso
modelo abstrato. Esses blocos podem ser:
 Entidades – classes de objetos que necessitam de uma identidade.
Normalmente são elementos do domínio que possuem ciclo de vida dentro de nossa aplicação:
um Cliente, por exemplo, se cadastra no sistema, faz pedidos, se torna inativo, é excluído,
etc.;

 Serviços – classes que contém lógica de Serviços, mas que não pertence a
nenhuma Entidade ou Objetos de Valores. É importante ressaltar que Serviços não guardam
estado, ou seja, toda chamada a um mesmo serviço, dada uma mesma pré-condição, deve
retornar sempre o mesmo resultado;

 Repositórios – classes responsáveis por administrar o ciclo de vida dos outros


objetos, normalmente Entidades, Objetos de Valor e Agregados. Os repositórios são classes
que centralizam operações de criação, alteração e remoção de objetos.

19
2.4.5. Diagrama de Classe
Os diagramas de classes são os diagramas encontrados com maior frequência na
modelagem de sistemas orientados a objetos. Um diagrama de classes mostra um conjunto de
classes, interfaces ecolaborações e seus relacionamentos.

Use os diagramas de classes para fazer a modelagem da visão estática doprojeto de um


sistema. Na maioria dos casos, isso envolve a modelagem do vocabulário do sistema, a
modelagem de colaborações ou a modelagem de esquemas.

Os diagramas de classes também são a base para um par de diagramas relacionados: os


diagramas de componentes e os diagramas de implantação.

Os diagramas de classes são importantes não só para a visualização, a especificação e


a documentação de modelos estruturais, mas também para a construção de sistemas
executáveis por intermédio de engenharia direta e reversa

20
2.4.6. Diagrama caso de uso

Nenhum sistema existe isoladamente. Todo sistema interessante interage com atores
humanos ou autômatos que utilizam esse sistema para algum propósito e esses atores esperam
que o sistema se comporte de acordo com as maneiras previstas. Um caso de uso especifica o
comportamento de um sistema ou de parte de um sistema e é uma descrição de um conjunto
de sequências de ações, incluindo variantes realizadas pelo sistema para produzir um
resultado observável do valor de um ator.

Os casos de usos podem ser aplicados para captar o comportamento pretendido do


sistema que está sendo desenvolvido, sem ser necessário especificar como esse
comportamento é implementado. Os casos de uso fornecem uma maneira para os
desenvolvedores chegarem a uma compreensão comum com os usuários finais do sistema e
com os especialistas do domínio. Além disso, os casos de uso servem para ajudar a validar a
arquitetura e para verificar o sistema à medida que ele evolui durante seu desenvolvimento. À
proporção que você implementa o seu sistema, esses casos de uso são realizados por
colaborações cujos elementos trabalham em conjunto para a execução de cada caso de uso.

Casos de uso bem estruturados denotam somente o comportamento essencial do


sistema ou subsistema e não são amplamente gerais, nem muito específicos.

21
Capítulo III – Desenho

22
3.1. Estrutura de menu

O nosso menu está estruturado por: Botão Zuela que nos dá acesso direito a tudo que é

a estruturda do nosso site, em seguida temos TESTEMUNHOS sítio este que encontramos

relatos de ocorrências, NOTICIAS página onde podemos relatos do que se tem passado ,

temos a página SOBRE NÓS onde encontramos descrições sobre os membros que fazem

parte da equipa, temos CONTACTO é a secção onde se encontram as linhas direitas para

entrar em contactos com a nossa equipa,e por último e temos o botão REPORTAR para que é

do direito de todo o utilizador relatar o que tem se passado em seus arredores.

Figura 1 Estrutura do Menu

3.2. Elaboração de interface gráficas com o utilizador

23
Figura 2 Estrutura do Menu

3.3.Modelo lógico de dados

Modelo lógico de dados, descreve como os dados serão armazenados no banco e


também seus relacionamentos. Esse modelo adota alguma tecnologia que pode ser: relacional,
orientado a objetos, orientado a colunas, entre outros. Ou seja modelo lógico mostra as
ligações entre as tabelas de banco de dados, as chaves primárias, os componentes de cada
uma, etc (spaceprogrammer.com).

Um modelo lógico de dados para uso meramente operacional/transacional deve:

 Ser completamente normalizado;


 Representar fielmente o negócio, e não necessariamente a base de dados desejada,
a qual será construída posteriormente por ocasião do Projeto Físico;
 Conter descrição sucinta das entidades, atributos e relacionamentos;
 Conter os nomes de entidades e atributos, extensos e abreviados, atribuídos de
acordo com algum padrão adotado na organização e formados por termos
previamente convencionados em um glossário;
 Contemplar, para cada um dos atributos, o tipo de dado, tamanho e opcionalidade.

24
3.4. Arquitetura lógica de aplicação

Uma arquitetura lógica de dados descreve com precisão as propriedades e os


relacionamentos de cada uma das entidades de dados envolvidas em um domínio
organizacional ou problema de negócio a ser resolvido com apoio de TI, compondo um
desenho detalhado a partir do qual líderes de projeto e desenvolvedores possam trabalhar com
relativa independência

Capítulo IV – Tecnologias e ferramentas utilizadas

25
4.1 Tecnologias Utilizadas (conceitos/definições)

 As tecnologias utilizadas neste projecto, são: HTML;


 CSS;
 PHP;
 Bootstrap;
 Javascript;
 Mysql.

HTML

HTML é a sigla para Hyper Text Markup Language, ou seja, linguagem de marcação
de hipertexto. Ela é utilizada como marcação para desenvolver páginas e documentos
eletrônicos para a internet. Isso significa que ela garante a formatação ideal para sites
(br.godaddy.com).

26
CSS

CSS, é a sigla para o termo em inglês Cascading Style Sheets que, traduzido para o
português, significa Folha de Estilo em Cascatas, é usado para estilizar elementos escritos em
uma linguagem de marcaçãocomo HTML, XHTML, e XML (hostinger.com)

PHP

PHP, é uma linguagem que permite criar sites WEB dinâmicos, possibilitando
uma interação com ousuário através de formulários, parâmetros da URL e links. A diferença
de PHP com relação a linguagens semelhantes aJavascript é que o código PHP é executado no
servidor, sendo enviado para o cliente apenas html puro. Desta maneira épossível interagir
com bancos de dados e aplicações existentes no servidor, com a vantagem de não expor o
código fontepara o cliente (BARRETO, 2000).

Maurício (2000, p.6).

A linguagem PHP foi concebida durante o outono de 1994 por Rasmus Lerdorf, com
esta mesma linguagem, permite fazer coletar dados de um formulário, gerar páginas
dinamicamente ou enviar e receber cookies.PHP também tem como uma das características
mais importantes o suporte a um grande número de bancos de dados, como dBase, Interbase,
mSQL, mySQL, Oracle, Sybase, PostgreSQL e vários outros. Construir uma página baseada
em um banco de dados torna-se uma tarefa extremamente simples com PHP.

27
Bootstrap

Bootstrap é um framework front-end desenvolvida para dar um plus na programação de


sites mobile (responsivos), evitando que seja necessário digitar uma linha CSS para que tudo
funcione (isbrasil.info).

Seu significado é ‘’inicialização’’ ou ‘’ponto de partida’’, justamente porque tem essa função
de dar um start geral em vez de gastar tempo com tantas linhas burocráticas, ajudando o
designer a programar e implementar todos os métodos de modo rápido e prático
(isbrasil.info).

Javascript

Também conhecida apenas como JS, JavaScript é uma linguagem de programação


usada para desenvolver aplicações, sistemas e serviços de alta complexidade(weblink.com)

Com ela, podemos criar páginas web dinâmicas, animações, mapas interativos, gráficos em
três dimensões, aplicativos para dispositivos móveis e games para plataformas
portáteis(weblink.com)

O JavaScript, actua como um complemento às linguagens HTML, CSS e PHP no


momento em que o desenvolvedor vai construir uma página na internet(weblink.com)

MySQL

O MySQL, é um sistema de gestão de bases de dados relacionais, suporta SQL, é open


source e é um dos SGBDs para utilização profissional mais utilizado e mais conhecido a nível
mundial (Pedro Neves; Rui Ruas, p. 21).

28
O MySQL foi desenvolvido pela empresa MySQL AB Limited Company, que actualmente
vende um conjunto de serviços e produtos relacionados com a tecnologia MySQL (Pedro
Neves; Rui Ruas, p. 21).

4.2. Ferramentas Utilizadas (conceitos/definições)


E as ferramentas utilizadas neste projecto, são:

 Visual Studio Code;


 Adobe XD.

Visual Studio Code

O Visual Studio Code é um editor de texto multiplataforma disponibilizado pela Microsoft


para o desenvolvimento de aplicações web, com suporte principalmente a ASP.NET 5 e
Node.js. Conhecer essa ferramenta é importante para os desenvolvedores que pretendem
trabalhar em ambientes multiplataforma, por exemplo, seguindo a tendência de
desenvolvimento web em ambiente Mac e Linux, ao mesmo tempo em que mantém o projecto
compatível com Windows (devmedia.com.br)

Adobe XD

29
Adobe XD, ou Adobe Experience Design, é uma ferramenta de edição de gráficos que
funciona para criar Web e interfaces de sites de aplicativos. Ele permite que o designer se
concentre na experiência do usuário ao navegar, com um intervalo de erro mínimo e no menor
tempo possível (lojadelayouts.com).

30
31
Capítulo V – Implementação

32
5.1. Arquitetura física do sistema.
É uma representação de um sistema em que existe um mapeamento de funcionalidade
para componentes de hardware e software, um mapeamento da arquitetura de software de
hardware para a arquitetura de hardware e uma interação humana com esses componentes
(walderson.com)

5.2. Modelo físico de dados

Este tipo de modelagem, inclui a análise das características e recursos necessários para
armazenamento e manipulação das estruturas de dados (estrutura de armazenamento,
endereçamento, acesso e alocação física), sendo uma sequência de comandos executados em
SQL a fim de criar as tabelas, estruturas e ligações projetadas até então e finalmente criar o
banco de dados. Ou seja, modelos dirigidos a dados mostram a sequência de ações envolvidas
no processamento de dados de entrada e a geração de uma saída associada. Eles são
particularmente úteis durante a análise de requisitos, pois podem ser usados para mostrar, do
início ao fim, o processamento de um sistema (walderson.com).

Modelos dirigidos a dados estavam entre os primeiros modelos gráficos de software.

Na década de 1970, os métodos estruturados, como Análise Estruturada de De Marco


(DeMARCO, 1978), apresentaram os diagramas de fluxo de dados (DFDs, do inglês data-
flow diagrams) como forma de ilustrar as etapas de processamento em um sistema
(walderson.com).

Modelos de fluxo de dados são úteis porque nos permite analisar e documentar os
dados associados a um determinado processo que se movem pelo sistema e ajuda os analistas
e projetistas a entenderem o que está acontecendo. Diagramas de fluxo de dados são simples e
intuitivos, e normalmente é possível explicá-los aos potenciais usuários do sistema, que,
então, podem participar na validação do modelo (walderson.com).

A UML não oferece apoio a diagramas de fluxo de dados, pois estes foram
inicialmente propostos e usados para modelagem de processamento de dados. A razão para
isso é que os DFDs se centram sobre as funções do sistema e não reconhecem os objetos do
sistema.

33
No entanto, devido aos sistemas dirigidos a dados serem tão comuns no mundo dos
negócios, a UML 2.0 introduziu diagramas de atividades, semelhantes a diagramas de fluxo
de dados. Uma forma alternativa de mostrar a sequência de processamento em um sistema é o
uso de diagramas de sequência da UML(UML, 2009).

Já vimos como esses diagramas podem ser usados para modelar interações, mas, se
você desenhar de modo que as mensagens sejam enviadas apenas da esquerda para a direita,
então verá que elas mostram o processamento de dados sequencial no sistema. Modelos de
sequência destacam os objetos em um sistema, enquanto os diagramas de fluxo de dados
destacam as funções (UML, 2009).

O diagrama de fluxo de dados equivalente para o processamento do pedido é


apresentado nas páginas do livro na Internet.

Descreve, por meio de alguma linguagem, como será feita a armazenagem no banco.

Nesse nível se escolhe qual Sistema gerenciador de Banco de dados (SGBD) será
usado, levando em consideração o modelo lógico adotado. Pode ser: PostgreSQL, MySQL,
dentre

outros (UML, 2009).

5.3. Extractos de códigos


código utilizado para desenvolver a primeira secção do front-end

34
Figura 4 - primeira secção front-end

Conclusão

35
Glossário

Servidor

É um computador equipado com um ou mais processadores, bancos de memória,


portas de comunicação e, ocasionalmente, algum sistema para armazenamento de dados como
hard disks internos ou memórias SSD.

Servidor HTTP

É um software que processa pedidos via HTTP. A principal atribuição de um


servidor web é prestar serviço de armazenamento, processamento e entrega de páginas da web
aos clientes. Para tanto, é utilizado o protocolo HTTP como forma de comunicação entre o
servidor e seus clientes.

É chamado de website no idioma inglês. Então vamos dividir as duas palavras: web
e site. Web significa rede é o nome dado a rede mundial de computadores (world wide web).
Site significa lugar. Com isso, podemos entender que website é um lugar na rede.

Hospedagem de site

36
É o serviço de armazenamento de um site e disponibilização constante do mesmo na
internet, ou seja, o serviço de hospedagem possibilitará que seu site seja visualizado 24h por
dia em todo o mundo.

Donwload

É o download significa receber dados de um sistema remoto, geralmente um


servidor como um servidor Web, um servidor FTP, um servidor de e-mail ou outro sistema
similar. Isso contrasta com o upload, onde os dados são enviados para um servidor remoto.

Banco de dados

É uma coleção de dados inter-relacionados, representando informações sobre um


domínio específico, ou seja, sempre que for possível agrupar informações que se relacionam e
tratam de um mesmo assunto, posso dizer que tenho um banco de dados.

Chaves primárias

Referem-se aos conjuntos de um ou mais campos, cujos valores, considerando a


combinação de valores em caso de mais de uma chave primária, nunca se repetem na mesma
tabela e, desta forma, podem ser usadas como um índice de referência para criar
relacionamentos com as demais tabela do banco de dados (daí vem o nome banco de dados
relacional). Portanto, uma chave primária nunca pode ter valor nulo, nem repetição.

Framework

É um conjunto de códigos prontos com diversas funções que podem ser utilizadas no
desenvolvimento de sites. Um framework pode atingir uma funcionalidade específica, por
configuração, durante a programação de uma aplicação.

As funções do framework têm uma grande variedade de parâmetros, garantindo ao


desenvolvedor a possibilidade de fazer personalizações, de acordo com as necessidades do
projecto.

Javascript

37
É uma linguagem de programação interpretada, estruturada de script em alto nível com
tipagem dinâmica fraca e multiparadigma. Juntamente com HTML e CSS, o JavaScript é uma
das três principais tecnologias da World Wide Web.

Web

É uma palavra inglesa que significa teia ou rede. O significado de web ganhou outro
sentido com o aparecimento da internet. A web passou a designar a rede que conecta
computadores por todo mundo, a World Wide Web (WWW). Ou seja, web significa um
sistema de informações ligadas através de hipermédia (hiperligações em forma de texto,
vídeo, som e outras animações digitais) que permitem ao usuário acessar uma infinidade de
conteúdos através da internet.

Navegador

É um programa criado para permitir a navegação pela internet. É o que torna possível
o acesso a sites, como um caminho que leva até o que você procura na rede. Ele pode
processar diversas linguagens, como HTML, ASP, PHP.

Código – fonte

É um conjunto de instruções escritas em determinada linguagem que tem a função de


dizer ao computador o que ele deve fazer. Ou seja, o computador funciona com base na
linguagem de máquina. Trata-se de impulsos electrónicos com apenas duas instruções: ligado
ou desligado “0 ou 1”. Portanto, tudo o que é executado em uma máquina é traduzido para
esse formato.

Tipografia

É o estudo, criação e aplicação dos caracteres, estilos, formatos e arranjos visuais das
palavras. Os tipos, conhecidos como fontes ou tipos de letra, indicam a composição visual de
um texto.

Windows

É uma série de sistemas operativos produzidos pela Microsoft para uso em


computadores pessoais, incluindo computadores domésticos e empresariais, laptops, tablets e
PCs de centros de mídia, entre outros.

38
Linux

É um Sistema Operacional, assim como o Windows e o Mac OS, que possibilita a


execução de programas em um computador e outros dispositivos. Linux pode ser livremente
modificado e distribuído. Apesar desta interpretação ser simplista é perfeitamente correcta e
aceitável. Mas, em uma definição mais profunda e técnica, Linux é o nome dado apenas ao
núcleo do sistema operacional, chamado de Kernel.

MacOS

É um sistema operativo proprietário desenvolvido e fabricado pela Apple Inc. desde


2001, baseado no kernel Unix titulado XNU e destinado exclusivamente aos computadores
Mac, que combina a experiência adquirida com a tradicional GUI desenvolvida para as
versões anteriores do Mac OS com um estável e comprovado núcleo.

Depuração

É um programa de computador usado para testar outros programas e fazer sua


depuração, que consiste em encontrar os defeitos do programa.

Git

É um sistema de controle de versões distribuído, usado principalmente no


desenvolvimento de software, mas pode ser usado para registrar o histórico de edições de
qualquer tipo de arquivo (Exemplo: alguns livros digitais são disponibilizados no GitHub e
escrito aos poucos publicamente). O Git foi inicialmente projetado e desenvolvido por Linus
Torvalds para o desenvolvimento do kernel Linux, mas foi adotado por muitos outros
projetos.

Fluxogramas

É um tipo de diagrama, e pode ser entendido como uma representação esquemática de


um processo ou algoritmo, muitas vezes feito através de gráficos que ilustram de forma
descomplicada a transição de informações entre os elementos que o compõem, ou seja, é a
sequência operacional do desenvolvimento de um processo, o qual caracteriza: o trabalho que
está sendo realizado, o tempo necessário para sua realização, a distância percorrida pelos
documentos, quem está realizando o trabalho e como ele flui entre os participantes deste
processo.

39
Diagrama de rede

É um gráfico representando a sequência em que os elementos terminais de um projecto


estão a ser concluídos, mostrando elementos terminais e suas dependências. A estrutura
analítica do projeto ou estrutura analítica do produto mostram as relações "partetodo".

Snippet

São blocos de códigos utilizados no Visual Studio para agilizar o desenvolvimento de


código. Muitas vezes utilizamos Snippets sem saber. O que devemos saber é que podemos
criá-los de um modo rápido e fácil.

Hardware

Hardware, é a parte física do computador, ou seja, o conjunto de aparatos eletrônicos,


peças e equipamentos que fazem o computador funcionar. A palavra hardware pode se referir
também como o conjunto de equipamentos acoplados em produtos que precisam de algum
tipo de processamento computacional.

Software

Software, é uma sequência de instruções escritas para serem interpretadas por um


computador com o objectivo de executar tarefas específicas. Também pode ser definido como
os programas que comandam o funcionamento de um computador. Em um computador, o
software é classificado como a parte lógica cuja função é fornecer instruções para o hardware.

Sistema gerenciador de Banco de dados

É o conjunto de softwares responsáveis pelo gerenciamento de um banco de dados.


Seu principal objetivo é retirar da aplicação cliente a responsabilidade de gerenciar o acesso, a
persistência, a manipulação e a organização dos dados. O SGBD disponibiliza uma interface
para que seus clientes possam incluir, alterar ou consultar dados previamente armazenados.
Em bancos de dados relacionais a interface é constituída pelas APIs
(ApplicationProgramming Interface) ou drivers do SGBD, que executam comandos na
linguagem SQL (Structured Query Language).

PostgreSQL

40
É um sistema gerenciador de banco de dados objeto relacional (SGBD), desenvolvido
como projeto de código aberto. O PostgreSQL é um dos resultados de uma ampla evolução
que se iniciou com o projeto Ingres, desenvolvido na Universidade de Berkeley, Califórnia. O
líder do projeto, Michael Stonebraker, um dos pioneiros dos bancos de dados relacionais,
deixou a universidade em 1982 para comercializar o Ingres, porém retornou a ela logo em
seguida.

Modularização

É entendida como um conceito computacional que é empregado para dividir o seu


programa em partes funcionais, partes essas que conversam umas com as outras. Observando
bem, toda a nossa solução de software é, no final das contas, sequencial, isto é, o software é
executado linha por linha, uma após a outra.

Referências bibliográficas

41
Apêndices

42
Índice remissivo

43
Anexos

44

Você também pode gostar