ALEXSANDRO TÉOFILO DO CARMO DE RIVERA – N6482B-7 – CP7P01
DIOGO EREDIA OLIVEIRA MARCHÃO – N61479-0 – CP7Q01
GEOVANNE HENRIQUE COSTA – N589FJ-1 – CP7Q01
GUSTAVO DELLABARBA – F2250H4 – CP7Q01
IVAN ALEXANDER YAPITA VARGAS – F1851H-0 – CP7P01
KAMILLY VIEIRA SILVA – N61906-6 – CP7Q01
LUAN PARENTE DE SOUZA – N64168-1 – CP7Q01
THIAGO OGALLA BENEDITO – F1412E-5 – CP7Q01
VINICIUS SOUZA MODOLO – N6535J-8 – CP7P01
WILLIAN PUBLIO THEODORO GOMES – N568GD-2 – CP7Q01
STOCK VIRTUAL ASSISTANT
São Paulo
2023
ALEXSANDRO TÉOFILO DO CARMO DE RIVERA – N6482B-7 – CP7P01
DIOGO EREDIA OLIVEIRA MARCHÃO – N61479-0 – CP7Q01
GEOVANNE HENRIQUE COSTA – N589FJ-1 – CP7Q01
GUSTAVO DELLABARBA – F2250H4 – CP7Q01
IVAN ALEXANDER YAPITA VARGAS – F1851H-0 – CP7P01
KAMILLY VIEIRA SILVA – N61906-6 – CP7Q01
LUAN PARENTE DE SOUZA – N64168-1 – CP7Q01
THIAGO OGALLA BENEDITO – F1412E-5 – CP7Q01
VINICIUS SOUZA MODOLO – N6535J-8 – CP7P01
WILLIAN PUBLIO THEODORO GOMES – N568GD-2 – CP7Q01
STOCK VIRTUAL ASSISTANT
Trabalho apresentado ao curso de
Engenharia da Computação da
Universidade Paulista – UNIP, como
exigência da disciplina APS (Atividade
Prática Supervisionada).
Orientadora: Andrea Cristina Esteves
São Paulo
2023
RESUMO
Com base em pesquisas sobre software, sistemas de apoio a decisão (SAD) e banco
de dados para o auxílio de empresas foi engenhado um projeto para uma empresa de
vendas de pequeno porte, esta criada pelos autores, seguindo o modelo de processo
de software cascata, proposto por Sommerville, analisando possíveis requisitos,
revisando-os em conjunto e projetando o sistema e software. Assim, foi feito um
aprofundamento no assunto de back-end e front-end, a fim de determinar qual seria
utilizado, interface, design e segurança das informações, para que a sensibilidade dos
dados não seja comprometida. O objetivo do SAD que será aplicado é auxiliar o
estoque do empresário, organizando-o, prevendo riscos e melhorias para o negócio
com base nos dados inseridos nos bancos de dados, deste modo a ferramenta
BrModelo foi utilizada como CASE para organizar os bancos de Dados para assim
cria-lo empregando a ferramenta MySQL, usada como o Sistema de Gerenciamento
de Banco de Dados para manipular as informações armazenadas neste.
Palavras chaves: SAD; banco de dados; software.
ABSTRACT
Based on research on software, decision support systems (DSS) and database to help
companies, a project was designed for a small sales company, created by the authors,
following the waterfall software process model. , proposed by Sommerville, analyzing
possible requirements, reviewing them together and designing the system and
software. Thus, an in-depth study was carried out on the subject of back-end and front-
end, in order to determine which would be used, interface, design and information
security, so that the sensitivity of the data is not compromised. The objective of the
SAD that will be applied is to help the entrepreneur's stock, organizing it, predicting
risks and improvements for the business based on the data entered in the databases,
in this way the BrModelo tool was used as a CASE to organize the databases to create
it using the MySQL tool, used as the Database Management System to manipulate the
information stored in it.
Keywords: SAD; database; software.
LISTA DE ILUSTRAÇÕES
LISTA DE FIGURAS
Figura 1 – A Convergência Do Mundo Digital Com O Real ......................................... 6
Figura 2 – Exemplo De Metadados ........................................................................... 19
Figura 3 – MySQL ..................................................................................................... 20
Figura 4 – Exemplo de Banco De Dados .................................................................. 21
Figura 5 – Ranking dos 10 SGBDs Mais Usados ...................................................... 22
Figura 6 – Exemplificação do Fluxo de Dados .......................................................... 23
Figura 7 – Modelo Entidade-Relacionamento (MER) ................................................ 28
Figura 8 – Diagrama de Entidade de Relacionamento .............................................. 29
Figura 9 – Exemplificação de um Framework de Cascata ........................................ 34
Figura 10 – Interface ................................................................................................. 35
Figura 11 – Interface de Usuário ............................................................................... 36
Figura 12 – Interfaces GUI e CLI ............................................................................... 36
Figura 13 – Modelo Conceitual .................................................................................. 46
Figura 14 – Modelo Lógico ........................................................................................ 47
Figura 15 – Projeto do Sistema ................................................................................. 50
LISTA DE TABELAS
Tabela 1 – Metadados da Tabela de Vendas ............................................................ 43
Tabela 2 – Metadados da Tabela de Lotes ............................................................... 44
Tabela 3 – Metadados da Tabela de Produtos.......................................................... 44
Tabela 4 – Metadados da Tabela de Estoque ........................................................... 44
Tabela 5 – Metadados da Tabela de Funcionários ................................................... 44
Tabela 6 – Metadados da Tabela de Fornecedores .................................................. 44
Tabela 7 – Metadados da Tabela de Clientes ........................................................... 45
Tabela 8 – Metadados da Tabela de Avaliações....................................................... 45
Tabela 9 – Metadados da Tabela de Nivel de Acesso .............................................. 45
Tabela 10 – Metadados da Tabela de Categorias ..................................................... 45
Tabela 11 – Metadados da Tabela de Promoções .................................................... 45
SUMÁRIO
1 INTRODUÇÃO ..................................................................................................... 6
2 APRESENTAÇÃO DO TRABALHO ..................................................................... 8
3 OBJETIVO ......................................................................................................... 10
3.1 Objetivo Geral .............................................................................................. 10
3.2 Objetivo Específico....................................................................................... 11
4 Sistema de Apoio à Decisão (SAD) ................................................................... 12
4.1 Processo de Construção de Software .......................................................... 12
4.1.1 Planejamento ......................................................................................... 12
4.1.2 Análise ................................................................................................... 13
4.1.3 Design ................................................................................................... 13
4.1.4 Implementação ...................................................................................... 13
4.1.5 Testes .................................................................................................... 13
4.1.6 Implantação ........................................................................................... 13
4.1.7 Manutenção ........................................................................................... 13
4.2 Estatística e Dados de um Software SAD ....................................................
,VARCHAR (30) Quantidade de lotes individuais
Validade_Lote DATE Validade dos produtos que estão nos lotes
Qtd_Produto DOUBLE Valor de compra de um Lote
ID_Fornecedor DOUBLE É o identificador do Fornecedor (Chave Estrangeira)
Custo_Unit DOUBLE É o custo que o empresário compra
Fonte: Autoria Própria.
Tabela 3 – Metadados da Tabela de Produtos
Atributos Tipo Descrição
# ID_Produto INT Identificador do produto (Chave Primaria)
Nome_Produto VARCHAR (30) Nome registrado do produto
ID_Categoria INT Identificador da categoria (Chave Estrangeira)
Marca_Produto VARCHAR (30) Nesta coluna é onde estaria a marca das empresas
Num_Serie INT Código de barras
Preço_Unit DOUBLE Valor de uma unidade vendida
Fonte: Autoria Própria.
Tabela 4 – Metadados da Tabela de Estoque
Atributos Tipo Descrição
# ID_Produto INT Identificador da tabela Produto (Chave Primária)
Qtd_Estoque INT Quantidade do Produto em Estoque
ID_Lote INT Identificador do lote (Chave estrangeira)
Fonte: Autoria Própria.
Tabela 5 – Metadados da Tabela de Funcionários
Atributos Tipo Descrição
# ID_Funcionario INT É o identificador do Funcionário (Chave Primaria)
Nome_Funcionario VARCHAR (30) Nome registrado do funcionário
E-mail VARCHAR (30) Email do funcionário para contato
Telefone INT Telefone do funcionário para contato
Nivel_Acesso INT Nível de acesso ao SAD (Chave Estrangeira)
Fonte: Autoria Própria.
Tabela 6 – Metadados da Tabela de Fornecedores
Atributos Tipo Descrição
# ID_Fornecedor INT Identificador do fornecedor (Chave Primária)
Nome_Fornecedor VARCHAR (30) Nome registrado do fornecedor
Telefone TEXT (14)
Telefone do fornecedor para contato de futuras
compras ou falar sobre um possível problema no lote
E-mail VARCHAR (45)
Segunda forma de contato com o fornecedor por meio
do endereço de e-mail
Fonte: Autoria Própria.
45
Tabela 7 – Metadados da Tabela de Clientes
Atributos Tipo Descrição
# ID_Cliente INT É o identificador do Cliente (Chave Primaria)
Nome VARCHAR (15) Nome registrado do cliente
Sobrenome VARCHAR (15) Sobrenome registrado do cliente
Sexo BOOLEAN
Nessa coluna serão armazenados 1 para representa homem
e 0 para representa mulher
E-mail VARCHAR (30) Email para contato com o cliente
Telefone INT Telefone para contato com cliente
Fonte: Autoria Própria.
Tabela 8 – Metadados da Tabela de Avaliações
Atributos Tipo Descrição
# ID_Avaliacao INT É o identificador da Avaliação (Chave Primaria)
Nivel_Avaliacao VARCHAR (15) Registro do nível de avaliação que será em quatro níveis.
Descr_Avaliacao VARCHAR (50) registro de avaliação do cliente
ID_Cliente INT Identificador do cliente (Chave estrangeira)
ID_Funcionario INT Identificador do funcionário (Chave estrangeira)
Fonte: Autoria Própria.
Tabela 9 – Metadados da Tabela de Nivel de Acesso
Atributos Tipo Descrição
# Nivel_Acesso INT Nível de acesso ao SAD (Chave Primaria)
Tipo_Acesso VARCHAR (25)
Especificação do de dados que poderão ser
cessados
Fonte: Autoria Própria.
Tabela 10 – Metadados da Tabela de Categorias
Atributos Tipo Descrição
# ID_categoria INT Identificador da categoria (Chave Primária)
Categoria VARCHAR (30) Categoria que do produto
Fonte: Autoria Própria.
Tabela 11 – Metadados da Tabela de Promoções
Atributos Tipo Descrição
# ID_Promo INT Identificador promoções (Chave Primaria)
Valor_Promo DOUBLE
O valor indicado nesta coluna será a porcentagem de
desconto que será aplicado numa compra
Periodo_promo DATE Serão os períodos que as promoções valerão
Fonte: Autoria Própria.
13.3 Modelo Conceitual
Em modelagem de dados, o modelo conceitual é uma representação abstrata
dos dados e das suas relações, na qual é independente de qualquer tecnologia de
banco de dados específica. Ele é utilizado para descrever os requisitos e as regras de
negócios que devem ser atendidos pelo banco de dados (BDs).
O modelo conceitual é a primeira etapa na criação de um banco de dados,
46
sendo geralmente representado por meio de diagramas, um deles é o diagrama
entidade-relacionamento (ER). A partir do modelo conceitual, é possível criar o modelo
lógico, que é a implementação do banco de dados em um sistema de gerenciamento
de banco de dados (SGBDs). Em resumo, o modelo conceitual é uma representação
abstrata dos dados e suas relações, que são utilizadas para guiar a criação do BD.
Figura 13 – Modelo Conceitual
Fonte: Autoria Própria.
13.4 Modelo Lógico
Em modelagem de dados, o modelo lógico é um modelo que irá descrever as
relações entre elementos de dados de um sistema ou seus processos, ele é usado
para a compreensão visual das entidades de dados e seus atributos, sendo
independente de bancos de dados físicos. Às vezes referida como modelagem de
informações, a modelagem lógica de dados é a segunda etapa dentre os processos
de modelagem. Em resumo, um modelo lógico é uma representação abstrata de um
sistema ou processo que descreve as relações entre seus elementos de dados.
47
Figura 14 – Modelo Lógico
Fonte: Autoria Própria.
48
14 BACK-END E FRONT-END DO SISTEMA
14.1 Definição de Back-End
O Back-End é um termo muito conhecido e que se encontra na linguagem até
dos usuários não técnicos de computador, isso porque se trata da parte vital de
qualquer sistema, porém diferente do Front-End, essa parte nunca é vista, mas é
encarregada por toda e qualquer alteração que se manifesta aos nossos olhos perante
uma tela.
Uma aplicação é composta por diversas outras menores, como banco de dados
e até mesmo outras aplicações que não possuem GUI, cujo resultado é retornado para
então ser exposto de alguma forma ao usuário, assim como realizamos diversas
consultas ao banco de dados do Facebook por exemplo, quando estamos em busca
de um contato ou quando observamos os metadados de um perfil.
Por isso este componente invisível age como uma ponte para integrar todas as
partes do software, manipulando e transformando os tipos de dados para serem
expostos em seus fins no modo correto, agindo como um intérprete que leva as
informações ao usuário por diferentes canais de transmissão.
Os responsáveis por construir estes caminhos de acordo com as
especificações descritas são os desenvolvedores, estes possuem a habilidade
necessária para se comunicar com o hardware por meio de linguagens de
programação, que nada mais são que códigos reconhecidos somente por eles e pelo
computador, para garantir a ocorrência de eventos de maneira ordenada e correta,
proteger dados dos usuários que não devem acessa-los e até mesmo sugerir ações,
esses códigos costumam estar dispostos de uma forma que não poderia ser entendida
pelo usuário, demonstrando um dos motivos pelo qual permanecem em anonimato e
requerem uma GUI para o uso geral.
14.2 Definição de Front-End
O Front-End é a parte do sistema com a qual o usuário interage diretamente,
também conhecido como “lado do cliente” da aplicação. É responsável por receber as
informações inseridas pelos usuários, processá-las, repassá-las ao Back-End se
necessário e por fim, exibir os resultados de maneira organizada na interface.
49
Por exemplo, em um sistema de gerenciamento de estoque de produtos, a área
de Front-End pode apresentar uma interface gráfica onde o usuário pode preencher
um formulário com informações sobre um novo produto, como nome, preço e
quantidade em estoque etc. Quando o usuário for enviar o formulário, é esta área em
questão que será o responsável por enviar os dados para o banco de dados, que
armazenará as informações.
Os desenvolvedores que trabalham nesta parte do software têm uma estreita
colaboração com os designers para traduzir as ideias e conceitos visuais em código,
criando interfaces atraentes e intuitivas que os usuários podem interagir facilmente.
E agora referente ao projeto em geral, a escolha das tecnologias e ferramentas
,de desenvolvimento, para o Front-End e de Back-End referente ao banco de dados e
interfaces depende das necessidades do projeto e das habilidades da equipe de
desenvolvimento, e pensando em isso nós da equipe Bacelar Technology LTDA,
optamos a princípio por desenvolver todo o SAD na linguagem Python.
Escolhemos Python como a linguagem de programação do nosso projeto pois
é uma linguagem de alto nível, versátil, que irá nos ajudar tanto em GUI (Graphical
User Interface ou Interface Gráfica de Usuário) quanto em Back-End e Front-End, e
por ser Open-sourse (gratuita para o uso e distribuição). Além de ser uma linguagem
com um grau de dificuldade baixo (porém super eficaz), e por ser a linguagem de
programação que a equipe tem mais afinidade, além de claro ser suficiente para
atender as regras de negócio.
Python foi criada por Guido van Rossum, e disponibilizada pela primeira vez
em 20 de fevereiro, 1991. O nome da linguagem de programação Python vem de um
antigo show de tv, uma comédia da BBC chamada Monty Python’s Flying Circus. Com
o incrível fato de ser criada por apenas uma pessoa (sendo ao longo do tempo
desenvolvida por diversas pessoas e comunidades).
50
15 PROJETO DO SISTEMA
Para o projeto do sistema, foi feito um framework (estrutura) do projeto, com
base no que será feito, interligando as etapas como visto na figura 15. Inicialmente
terá o banco de dados onde serão armazenadas as informações uteis do negócio,
após isso virá o Back-End visto anteriormente, e, por fim, o Front-End, na imagem há
os detalhamentos de cada etapa bem como suas interligações.
Figura 15 – Projeto do Sistema
Banco de Dados
MySQL
Avaliações
Clientes
Produtos
Estoque
Acessos dos
Usuários (DB)
Vendas
Fornecedores
New Indie stock system framework – Local Application
Back-End
Python
Análise
estatística
Criação de
relatórios
Criação de
informação
Controle de
Acesso
Automação
Alertas
Front-End
Python
Relatórios on-demand
& automatizados
Controle
de Estoque
Insights e
oportunidades
Controle de
acesso (Login)
Manipulação
de dados
Nível 01 – Banco de dados onde se
armazenará todas as tabelas para o
estabelecimento de relações.
Os atributos e as entidades serão
definidos pelas regras negócio e
construídos segundo o planejamento
exposto na seção de banco de dados.
Nível 03 – Front-End onde o usuário irá
interagir com as informações e dados
armazenados nas fases anteriores, de
maneira gráfica, possuindo controle de
acesso por meio do login para garantir a
segurança do sistema, além de possuir
telas acessíveis dependendo do nível de
acesso do usuário, com insights,
gráficos, linhas de tendência, visão total
do estoque e relatórios para análises não
automatizadas.
Gera relatórios pré-
definidos configurados
pelo usuário, assim
como gerência os
alertas e os acessos
por meio de
requisições ao banco
de dados.
analisa os dados no
banco, para gerar
oportunidades de
negócio de maneira
automatizada, criando
informação e valor para
o cliente
Nível 02 – Back-End
Fonte: Autoria própria.
51
16 CONCLUSÕES ATÉ O MOMENTO
Em vista de tudo que foi retratado acima, podemos perceber a importância dos
SADs nos dias de hoje em seus mais diversos componentes, além de expor com
clareza o conhecimento geral necessário para entender os processos que involucram
a construção de um software deste gênero.
No contexto atual do mundo tecnológico, cada vez mais e mais informação tem
sido transformada em dados com velocidade e em volumes inestimáveis, tais dados
isoladamente não podem representar informações do mundo real refletidas em um
banco de dados, porém são capazes de demonstrar seu potencial na presença de um
software de auxílio para a tomada de decisões.
Esses softwares não limitados pela capacidade humana, ajuntam e coordenam
os dados segundo modelos pré-estabelecidos para gerar possíveis informações a
serem interpretadas pelos seres humanos, tornando possível não somente a gestão
de assets através do mundo todo, mas a criação de oportunidades de negócio com
base em análise dados ao mais baixo nível, que levariam dias para serem analisados
por seres-humanos, tornando esses softwares ferramentas de auxilio e que
dependemos muito nos dias de hoje.
Com representatividade no pedido de nosso cliente fictício, foi possível
representar os processos no modelo cascata, desde o recebimento dos requisitos,
refinamento dos mesmos com base na viabilidade técnica e legal, planejamento de
desenvolvimento e estruturação dos pré-requisitos como a base de dados,
embasando assim, com sucesso, nosso planejamento para a construção do software
em questão.
52
REFERÊNCIAS
BRUSCHI, Adriano; BREVE, Fabricio; GIORDANO, Luís. Construindo Sistemas de
Apoio à Decisão. Trabalho acadêmico (Sistemas de Informação) - Universidade
Estadual Paulista, [S. l.]. Disponível em:
https://www.fabriciobreve.com/trabalhos/sad.php#.ZEbNid3MKaG. Acesso em: 16
mar. 2023.
MACHADO, Francis. Limitações e deficiências no uso da informação para tomada de
decisões. Caderno de pesquisas em administração, São Paulo, v. 9, n. 2, p. 59-
63, 2002. Disponível em:
http://tecspace.com.br/paginas/aula/faccamp/TI/Texto13.pdf. Acesso em: 17 de mar.
de 2023.
ARONSON, Jay ; LIANG, Ting-Peng; MACCARTHY, Richard. Decision support
systems and intelligent systems. Upper Saddle River, NJ, USA:: Pearson Prentice-
Hall, 2005. Disponível em: http://sutlib2.sut.ac.th/sut_contents/H86360.pdf. Acesso
em: 17 de mar. de 2023.
CLERICUZI, Adriana; JÚNIOR, Tarcísio. Discussão sobre modelos para
desenvolvimento de sistemas de apoio a decisão específico. Simpósio de
Excelência em Gestão e Tecnologia, p. 01-10, 2009. Disponível em:
https://www.aedb.br/seget/arquivos/artigos09/370_370_artigo.pdf. Acesso em: 17 de
mar. de 2023.
ENCONTRO NAC. DE ENG. DE PRODUÇÃO - ENEGEP, XXIII, 2003, Ouro Preto,
MG, Brasil. Desenvolvimento de um sistema de apoio à decisão (SAD) para
previsão de estoques com suporte estatístico [...]. 2003. p. 8. Disponível em:
https://abepro.org.br/biblioteca/enegep2003_tr0902_0830.pdf. Acesso em: 17 de
mar. de 2023.
VINICIUS, Douglas. Sistema de Apoio à Decisão (SAD). [S. l.], 2015. Disponível
em: addowirole.blogspot.com/p/sistema-de-apoio-decisao-sad.html. Acesso em: 17
mar. 2023.
NEW Chat. In: ChatGPT. Países Baixos, 1991. Disponível em:
https://chat.openai.com/chat. Acesso em 17 de mar. de 2023.
CLERICUZI, Adriana; JÚNIOR, Tarcísio. Discussão sobre modelos para
desenvolvimento de sistemas de apoio a decisão específico. Simpósio de
Excelência em Gestão e Tecnologia, p. 01-10, 2009. Disponível em:
https://www.aedb.br/seget/arquivos/artigos09/370_370_artigo.pdf. Acesso em: 17 de
mar. de 2023.
BARBOSA, Gilka Rocha; ALMEIDA, Adiel Teixeira de; COSTA, Ana Paula Cabral
Seixas. SAD: Análise da percepção de usuários e desenvolvedores através de
análise fatorial. Production, v. 16, p. 216-228, 2006. Disponível em:
https://www.prod.org.br/article/10.1590/S0103-
65132006000200004/pdf/1574685864-16-2-216.pdf. Acesso em: 18 de mar. de
53
2023.
MACEDO, Mateus Henrique Basso; SALGADO, Eduardo Gomes. Gerenciamento de
risco aplicado ao desenvolvimento de software. Sistemas & Gestão, v. 10, n. 1, p.
158-170, 2015. Disponível em:
https://www.revistasg.uff.br/sg/article/view/V10N1A13/SGV10N1A13. Acesso em: 20
de mar. de 2023.
LEOPOLDINO, Claúdio. Avaliação de Riscos em Desenvolvimento de Software.
Orientador: Denis Borenstein. 2004. 151 f. Dissertação de mestrado (Pós-graduação
em administração) - Escola de Administração, Universidade Federal do Rio Grande
do Sul, Porto Alegre, 2004. Disponível em:
https://www.lume.ufrgs.br/bitstream/handle/10183/4616/000413617.pdf?sequence=.
Acesso em: 20 de mar. de 2023.
ANTUNES, Daniel. 6 Riscos Gerenciais do Desenvolvimento de Software. [S. l.],
2019. Disponível em: https://www.gobacklog.com/blog/riscos-gerenciais-
,desenvolvimento-software/. Acesso em: 21 mar. 2023.
AMARAL, Fernando. Introdução à ciência de dados: mineração de dados e big
data. Alta Books Editora, 2016. Disponível em:
https://books.google.com.br/books?id=hAlVDQAAQBAJ. Acesso em: 18 de mar. de
2023.
O QUE é um banco de dados?. Disponível em: https://aws.amazon.com/pt/what-
is/database/. Acesso em: 20 mar. 2023.
O QUE é um Banco de Dados?. Disponível em:
https://www.oracle.com/br/database/what-is-database/. Acesso em: 20 mar. 2023.
MELO, Daniel. O que é SQL? [Guia para iniciantes]. Disponível em:
https://tecnoblog.net/responde/o-que-e-sql/. Acesso em: 21 mar. 2023.
SQL – o que é e como funciona na prática?. 10 ago. 2020. Disponível em:
https://www.pravaler.com.br/sql-o-que-e-e-como-funciona-na-pratica/. Acesso em: 22
mar. 2023.
SQL: Aprenda a utilizar a chave primária e a chave estrangeira. [S. l.], 2020.
Disponível em: https://www.devmedia.com.br/sql-aprenda-a-utilizar-a-chave-primaria-
e-a-chave-estrangeira/37636. Acesso em: 23 mar. 2023.
PISA, Pedro. O que é e como usar o MySQL?. TechTudo, [S. l.], 17 abr. 2012.
Disponível em: https://www.techtudo.com.br/noticias/2012/04/o-que-e-e-como-usar-
o-mysql.ghtml. Acesso em: 25 mar. 2023.
Disponível em: https://www.devmedia.com.br/introducao-ao-mysql/27799. Acesso
em: 25 de mar. de 2025.
MILANI, André. MySQL - guia do programador. Novatec Editora, 2007. Disponível
54
em: https://books.google.com.br/books?hl=pt-BR&lr=&id=81EwMDA-
pC0C&oi=fnd&pg=PA19&dq=Mysql&ots=xPDt76qU_E&sig=jlx27Fax5TYXXiTgSE7S
Ed9H-3Y#v=onepage&q=Mysql&f=false. Acesso em: 20 de mar. de 2023.
SILVA, Gabriel. Memórias: Circuitos Lógicos. UFRJ. Disponível em:
https://dcc.ufrj.br/~gabriel/circlog/Memoria.pdf. Acesso em: 23 de mar. de 2023.
BOGHI, Cláudio. Ranking de Sistemas de Bancos de Dados mais usados em
2021/2022. RedeTV, [S. l.], 6 abr. 2022. Disponível em:
https://www.redetv.uol.com.br/colunistas/desvendando-a-tecnologia/ranking-de-
sistemas-de-bancos-de-dados-mais-usados-em-2021-2022. Acesso em: 23 mar.
2023.
CLOUD, Google. O que é um banco de dados relacional?. [S. l.], 20--. Disponível
em: https://cloud.google.com/learn/what-is-a-relational-database?hl=pt-br. Acesso
em: 23 mar. 2023.
OLIBONI, Daniel. O que é um SGBD?. [S. l.], 8 jun. 2016. Disponível em:
https://www.oficinadanet.com.br/post/16631-o-que-e-um-sgbd. Acesso em: 23 mar.
2023.
SGBD: o que é, como funciona e principais vantagens. [S. l.], 22 jan. 2021.
Disponível em: https://www.fiveacts.com.br/sgbd/. Acesso em: 23 mar. 2023.
DIAMOND, Paul. Armazenamento em nuvem vs. servidores locais: nove
considerações importantes. [S. l.], 25 set. 2020. Disponível em:
https://www.microsoft.com/pt-br/microsoft-365/business-insights-
ideas/resources/cloud-storage-vs-on-premises-servers. Acesso em: 23 mar. 2023.
TORANZO, Bruno. DATA WAREHOUSE: O QUE É, PARA QUE SERVE E COMO
FUNCIONA. Insper, São Paulo, 1 nov. 2022. Disponível em:
https://www.insper.edu.br/noticias/data-warehouse-o-que-e-para-que-serve-e-como-
funciona/?gclid=CjwKCAjw5dqgBhBNEiwA7PryaIwEOpc_wHf88x8rDwsyT2ebtRf6qT
bwwPdvoeCzH58JDrbXJ1tJ-RoC62QQAvD_BwE. Acesso em: 23 mar. 2023.
PIMENTEL, Renato. Modelo entidade-relacionamento (MER). FACOM, 2022.
Disponível em: https://www.facom.ufu.br/~rpimentel/files/ges013-2022-
1/ges013.er.pdf. Acesso em: 16 de mar. de 2023.
PIMENTEL, Renato. Mapeamento do MER para relacional. FACOM, 2022.
Disponível em: https://www.facom.ufu.br/~rpimentel/files/ges013-2022-
1/ges013.map.pdf. Acesso em: 17 de mar. de 2023.
SANTOS, Hudyson. E-commerce de bebidas. Orientador: Prof. Ma. Diomara
Martins Reigato Barros. 2022. 34 p. Trabalho de Conclusão de Curso (Graduação)
(Curso de Análise e Desenvolvimento de Sistemas) - Fundação Educacional do
Município de Assis, Assis/SP, 2022. Disponível em:
https://cepein.femanet.com.br/BDigital/arqTccs/2011550343.pdf. Acesso em: 17 mar.
2023.
55
DIAGRAMAS UML no Visio. [S. l.], 20--. Disponível em:
https://support.microsoft.com/pt-br/office/diagramas-uml-no-visio-ca4e3ae9-d413-
4c94-8a7a-38dac30cbed6#OfficeVersion=Web. Acesso em: 17 mar. 2023.
BACURAU, Rodrigo M.; LEAL, Brauliro G.; RAMOS, Ricardo A. Uma Abordagem
para a Construção de Diagramas da UML Concomitante à Prototipação de Interface.
2022. Disponível em: http://www.univasf.edu.br/~brauliro.leal/pesquisa/Bacurau-
5.pdf. Acesso em: 20 de mar. de 2023.
MANIERO, Antonio. Qual a diferença entre MER (Modelo de Entidade
Relacionamento) e DER (Diagrama de Entidade Relacionamento)?. Rio Claro,
2018. Disponível em: https://pt.stackoverflow.com/questions/328342/qual-a-
diferen%C3%A7a-entre-mer-modelo-de-entidade-relacionamento-e-der-diagrama-d.
Acesso em: 20 mar. 2023.
MICROSOFT. O que é modelagem de dados?. [S. l.], 20--. Disponível em:
https://powerbi.microsoft.com/pt-br/what-is-data-modeling/. Acesso em: 23 de mar.
de 2023.
DATE, C.J. Introdução a Sistemas de Bancos de Dados. São Paulo: Grupo GEN,
2004. E-book. ISBN 9788595154322. Disponível em:
https://integrada.minhabiblioteca.com.br/#/books/9788595154322/. Acesso em: 24
mar. 2023.
NETO, Joel. MER e DER: Modelagem de Bancos de Dados. Rio de Janeiro, 2014.
Disponível em: https://www.devmedia.com.br/mer-e-der-modelagem-de-bancos-de-
dados/14332. Acesso em: 24 mar. 2023.
ESPINHA, Roberto. Processo de desenvolvimento de software: entenda como
funciona na prática. Artia. Disponível em: https://artia.com/blog/processo-de-
desenvolvimento-de-software. Acesso em: 17 de mar. de 2023.
Disponível em:
https://edisciplinas.usp.br/pluginfile.php/2939594/mod_resource/content/1/Aula02_M
odelosProcessos.pdf. Acesso em: 22 de mar. de 2023.
MYERS, Brad A. User interface software technology. ACM Computing Surveys
(CSUR), v. 28, n. 1, p. 189-191, 1996. Disponível em:
https://dl.acm.org/doi/pdf/10.1145/234313.234394. Acesso em: 21 de mar. de 2023.
PONTES, Adéle Malta; ORTH, Afonso Inácio. Uma proposta de interface de software
orientada à linguagem de sinais. In: Anais. II Workshop sobre Fatores Humanos
em Sistemas Computacionais. Campinas: Unicamp. 1999. p. 1-6. Disponível em:
https://www.unicamp.br/~ihc99/Ihc99/AtasIHC99/art31.pdf. Acesso em: 21 de mar. de
2023.
O QUE é uma Interface (sistema ou software). Disponível em:
https://www.significados.com.br/interface/. Acesso em: 21 de mar. de 2023.
56
INTERFACE. In: DICIO. [S. l.: s. n.], 2009. Disponível em:
https://www.dicio.com.br/interface/. Acesso em: 21 mar. 2023.
COMO O design para sistemas pode ajudar a sua empresa. In: HOMEM
MÁQUINA. Homem Máquina. [S. l.], 22 jul. 2021. Disponível em:
https://www.homemmaquina.com.br/design-para-sistemas-importancia/. Acesso em:
22 mar. 2023.
SOUZA, Nathan. Design Systems: exemplos práticos. Alura, [s. l.], 16 set. 2022.
Disponível em: https://www.alura.com.br/artigos/design-systems-exemplos-praticos.
Acesso em: 22 mar. 2023.
ELMASRI, Ramez. Sistemas de Banco de Dados. 7. ed. [S. l.]: Pearson, 2019.
1152 p. ISBN 8543025001. Disponível em:
https://plataforma.bvirtual.com.br/Leitor/Publicacao/168492/pdf/98. Acesso em: 21
de abr. de 2023.
BR Modelo Web. In: BrModelo. Santa Catarina, 2005. Disponível em:
https://www.brmodeloweb.com. Acesso em: 21 de abr. de 2023.
FRANCK, Kewry Mariobo; PEREIRA, Robson Fernandes; DANTAS FILHO, Jerônimo
Vieira. Diagrama Entidade-Relacionamento: uma ferramenta para modelagem de
dados conceituais em Engenharia de Software. Research, Society and
Development, v. 10, n. 8, p. e49510817776-e49510817776, 2021. Disponível em:
https://rsdjournal.org/index.php/rsd/article/view/17776/15626. Acesso em: 21 de abr.
de 2023.
TIBCO. What is a Logical Data Model?. TIBCO, [s. l.], 2023. Disponível em:
https://www.tibco.com/reference-center/what-is-a-logical-data-model. Acesso em: 20
abr. 2023.
MODELAGEM lógica de dados. Erwin by Quest, [s. l.]. Disponível em:
https://www.erwin.com/br-pt/solutions/data-modeling/logical.aspx. Acesso em: 20 abr.
2023.
SOUTO, Mario. Front-end,
,Back-end e Full Stack. Alura, [S. l.], 17 jan. 2023.
Disponível em: https://www.alura.com.br/artigos/o-que-e-front-end-e-back-end.
Acesso em: 22 abr. 2023.
SANTOS, Diego. Plataforma Online para Criação de Jogos Personalizados com
Labirintos para Introdução à Lógica de Programação. Orientador: Profa. Andrea
Schwertner Charão. 2022. 32 p. Trabalho Final de Graduação (Curso de
Bacharelado em Sistemas de Informação) - Universidade Federal de Santa Maria,
Santa Maria, RS, 2022. Disponível em:
https://repositorio.ufsm.br/bitstream/handle/1/26174/TG_Diego%20Viana%20dos%2
0Santos.pdf?sequence=1&isAllowed=y. Acesso em: 22 abr. 2023.
ABOUT Python. In: Python. Países Baixos, 1991. Disponível em:
https://www.python.org/about/. Acesso em: 23 abr. 2023.
57
SOMMERVILLE, Ian. Engenharia de Software. 9. ed. São Paulo: Pearson
Education, 2011. 532 p. Disponível em:
https://plataforma.bvirtual.com.br/Leitor/Publicacao/2613/pdf/48. Acesso em: 22 mar.
2023.
,14
4.2.1 Dados não estruturados ........................................................................ 14
4.2.2 Dados Estruturados ............................................................................... 14
4.2.3 Dados Internos ...................................................................................... 14
4.2.4 Dados Externos ..................................................................................... 14
4.2.5 Dados de Simulação .............................................................................. 15
4.3 Riscos Gerados em seu Desenvolvimento e Atualização ............................ 15
4.4 Fases do Processo Decisórios do Sistema .................................................. 16
4.5 Limitações e Deficiências no Uso da Informação para Tomada de Decisões
16
5 BANCO DE DADOS ........................................................................................... 18
5.1 Linguagem SQL ........................................................................................... 18
5.2 Sobre o MySQL ............................................................................................ 20
6 METODOS DE ARMAZENAMENTO ................................................................. 21
7 SISTEMA GERENCIAMENTO DE BANDO DE DADOS (SGBD) ...................... 23
7.1 Relacional (SQL) .......................................................................................... 24
7.2 Não Relacional (NoSQL) .............................................................................. 24
7.3 Hierárquico ................................................................................................... 24
7.4 Orientado a Objeto (SGBDOO) .................................................................... 24
8 MODELOS DE DADOS...................................................................................... 27
8.1 Tipos de Modelos ......................................................................................... 27
8.1.1 Modelo Entidade-Relacionamento (MER) ............................................. 27
8.1.2 Diagrama Entidade-Relacionamento (DER) .......................................... 28
9 MODELOS DE PROCESSO DE DESENVOLVIMENTO DE SOFTWARE ........ 30
9.1 Fluxo de Processos ...................................................................................... 30
9.1.1 Requisitos do cliente .............................................................................. 30
9.1.2 Especificações técnicas ......................................................................... 30
9.1.3 Desenvolvimento e Reuso ..................................................................... 31
9.1.4 Validação ............................................................................................... 31
9.1.5 Teste ...................................................................................................... 31
9.1.6 Implementação ...................................................................................... 32
9.2 Cascata ........................................................................................................ 33
10 FUNCIONAMENTO DE UMA INTERFACE ....................................................... 35
10.1 Definição de Interface ............................................................................... 35
10.2 Interface de um Software .......................................................................... 35
11 DESIGN DE SISTEMA ....................................................................................... 37
12 CARACTERÍSTICAS DE RELACIONAMENTO EMPRESARIAL ....................... 39
12.1 Empresa Desenvolvedora do Software ..................................................... 39
12.2 Empresa Fictícia: New Indie ..................................................................... 39
12.3 Regras de Negócio – Requisitos do Cliente .............................................. 40
13 PROCESSO DE MAPEAMENTO DO BANCO DE DADOS ............................... 42
13.1 Ferramenta CASE brModelo (Will) ............................................................ 43
13.2 Metadados do BD ..................................................................................... 43
13.3 Modelo Conceitual .................................................................................... 45
13.4 Modelo Lógico ........................................................................................... 46
14 BACK-END E FRONT-END DO SISTEMA ........................................................ 48
14.1 Definição de Back-End.............................................................................. 48
14.2 Definição de Front-End ............................................................................. 48
15 PROJETO DO SISTEMA ................................................................................... 50
16 CONCLUSÕES ATÉ O MOMENTO ................................................................... 51
REFERÊNCIAS ......................................................................................................... 52
6
1 INTRODUÇÃO
Aplicações digitais têm sido criadas em massa ao longo dos últimos anos para
as mais diversas finalidades, desde a ida a farmácia, aquisição de um bem de
consumo em um mercado e até a compra de um veículo, todas as áreas de nossa
vida têm sido marcadas pela presença de ferramentas construídas para convergir o
real com o digital, transformando tudo que fazemos em dados, depois os ordenando
e refinando até que atinjam o nível de informação e representem valor de uso.
Figura 1 – A Convergência Do Mundo Digital Com O Real
Fonte: MIT Sloan Review Brasil (https://mitsloanreview.com.br/post/por-que-toda-empresa-esta-
virando-uma-empresa-de-midia).
A densa quantidade dessas aplicações em múltiplas instâncias do nosso
cotidiano nos leva a normalização frente a este cenário, muitas vezes fazendo com
que não reflitamos sobre a origem, o objetivo delas e todo o processo por trás que faz
com que empresas e negócios de todo porte invistam cada dia mais em soluções
digitais.
Em frente aos diferentes fronts de interação com o público, tem se feito
necessário a criação de Sistemas de Auxílio à Decisão (SAD), isso porque mesmo
alguém dotado de experiência necessitaria muito tempo para recolher, analisar e
retirar conhecimento das informações providenciadas internamente e externamente
pelos dados. Assim o SAD tem desempenhado papel crucial em diversas escalas de
negócio, tendo seu renome marcado em empresas de grande escala onde se coletam
dados ao redor de todo o mundo ao mesmo tempo e que seriam impossíveis de serem
7
processados somente por mentes humanas, facilitando atividades do dia a dia,
acelerando e trazendo cada vez mais segurança aos planejamentos orientados ao
negócio por conta da predição dos acontecimentos futuros e facilitação nas ações do
presente embasados em dados, fazendo com que em muitos casos já sejam um motor
que dita os caminhos, possibilidades e dificuldades para que atinjam seus objetivos.
Com base nessas informações, exploraremos o caminho desde o pedido de um
software SAD até a integração em um cliente, debruçando sobre as aplicações
técnicas gerais e em seguida específicas para o desenvolvimento da aplicação
prevista neste projeto, também trazendo noções de esforço de desenvolvimento,
gerenciamento de projetos e metodologias que servirão de auxílio para a entrega
efetiva de um software de pequeno porte, avaliando valores gerados e muitos outros
fatores de preocupação para a engenharia de software, simulando assim o cenário
próximo ao que nos cerca.
8
2 APRESENTAÇÃO DO TRABALHO
Já é conhecido que nos dias de hoje os SADs estão presentes em diversos
contextos, que influenciam fortemente na decisão das companhias, em como elas,
enquanto entidades não corpóreas compostas por conjuntos
,de pessoas, interagem
com cada um de seus até milhares de clientes, provedores, distribuidores e qualquer
outro tipo de entidade que possua relacionamento direto ou indireto com aquela
companhia, para muitas dessas interações temos os intermediadores SADs,
convergindo toneladas de informações em um compilado de fácil analise e resposta
efetiva e ágil.
Tendo em vista a importância dos SADs no mercado e no cotidiano das
pessoas, por meio de análises que levam a diversas tomadas de decisões, focamos
em distribuir este trabalho de modo a explorar os processos envolvidos na criação de
um software SAD, com base em requisitos de autoria própria, que guiarão todo o
caminho para uma entrega de caso específico.
Iniciando pelo estudo dos fundamentos e definições que cercam um SAD (a
partir do ponto de vista da engenharia de software), visando a total compreensão do
que criaremos a priori dos passos de como faremos. Seguido pelas noções básicas
de banco de dados (BD com enfoque ao relacional) e os sistemas que os gerenciam
(SGDB), uma vez que são uma base sólida e necessária para a construção da maioria
dos SADs, construindo sobre esta base sólida conhecimentos das metodologias de
armazenamento e representação dos objetos do mundo real portados ao digital,
abordando casos padrões em contraste aos que utilizaremos de fato neste projeto.
Considerando que um software é composto do produto final somado a
documentação associada, exporemos informações sobre metodologias de projeto e
documentação de banco de dados como: MER (Modelo Entidade Relacionamento) e
DER (Diagrama Entidade Relacionamento), adjunto das informações documentadas
de análise de risco, qualidade e seus derivados para todas as fases no
desenvolvimento da aplicação, fases tais que estarão sujeitas ao modelo de processo
de desenvolvimento de software Cascata ou Waterfall, além de abordar as definições
por trás deste modelo e sua contribuição quanto aos resultados finais.
Concluindo o projeto do SAD, debruçaremos sobre o desenvolvimento de uma
9
interface para conectar o usuário ao que foi construído até então, juntamente da
esquematização para o design do sistema, caminhando para o estudo e criação do
modelo analítico, assim formando o framework que utilizaremos para dar origem ao
software que atenderá a necessidade descrita nos requisitos inicialmente
fundamentados.
10
3 OBJETIVO
3.1 Objetivo Geral
Neste trabalho acadêmico, temos como objetivo específico fundamentar a
teoria básica dos processos que involucram o desenvolvimento de um SAD, bem
como prover noções matemáticas mínimas, metodologias, ferramentas e termos
necessários para a compreensão correta da proposta de implementação apresentada
no decorrer do trabalho.
Uma vez estruturado os fundamentos necessários, buscamos aprofundar cada
tópico desde metodologias de desenvolvimento de software (Frameworks de
Engenharia de Software), até a criação de interfaces com usuários e modelos
analíticos, tendo como alvo o que será utilizado para a criação do software, que será
proposta com base nos requisitos do cliente que serão especificados durante as fases
de desenvolvimento prevista no Framework escolhido.
Além disso, traremos sempre uma visão difundida entre o trabalho realizado a
mais baixo nível em termos de organização e estrutura de dados, assim como as
maneiras e metodologias que envolvem modelagem e criação de banco de dados,
visando obter e prover conhecimentos no tocante às possibilidades de
armazenamento de dados, dando enfoque na que será aplicada para o caso
específico.
Abordaremos também a visão geral da arquitetura do sistema SAD proposto
neste trabalho, bem como, apresentaremos informações recolhidas em cada fase
prevista no framework selecionado, permitindo assim acompanhar a criação do
software em uma visão ponta a ponta, levando ao entendimento de como é realizado
o desenvolvimento de um software e toda sua documentação associada, para assim
seguir de fato para a implementação prevista.
Por fim, objetivamos ao término possuir os conhecimentos necessários para
gerar um diagrama completo do software em questão, incluindo requisitos, banco de
dados, metodologias de teste, especificações de interface, objetos, framework e front-
end, representados em um modelo analítico que proverá informações do desempenho
e funcionamento do futuro software que será desenvolvido.
11
3.2 Objetivo Específico
Em específico com este trabalho acadêmico, temos como objetivo introduzir
conceitos teóricos que serão abordados para o nosso projeto final que será da Sistema
de Auxílio de Decisão, tendo início nas nossas regras de negócios (Requisitos dos
Cliente) que são a base para construção de qualquer tipo de software, levando em
consideração os atributos básicos e essenciais sendo eles Funcionalidade,
Desempenho, Confiabilidade, Usabilidade e Facilidade de Manutenção/Atualização, e
logo em seguida definimos as tecnologias que serão usadas como o SGBD mySQL e
também será elaborado ainda neste trabalho uma previa do sistema que será usado,
além de abordar conceitos gerais sobre o Banco de dados, SAD em geral, SGBD,
meios de armazenamento e interface seus tipos e suas funcionalidades, realizando
pesquisas de modo a expor o funcionamento destes componentes e como utilizá-los
em prol da realização do projeto final.
12
4 Sistema de Apoio à Decisão (SAD)
O Sistema SAD (Sistema de Apoio à Decisão) é uma ferramenta utilizada por
empresas para auxiliar em processos decisórios. Trata-se de um Conjunto de
tecnologias e processos que ajudam gestores e funcionários a analisar dados e
informações relevantes para tomadas de decisões estratégicas.
Neste tipo de software existem diferentes categorias, como o SAD baseado em
modelo, que utiliza modelos matemáticos para prever possíveis resultados, e o SAD
baseado em dados, que aplica informações armazenadas para gerar insights e
visualizações.
O uso de um sistema SAD pode trazer diversos benefícios para uma empresa,
como a redução de custos, aumento da eficiência operacional, melhora na qualidade
da tomada de decisão e aumento da competitividade no mercado e diversos outros
benefícios.
Porém, por outro lado, não utilizar um sistema SAD pode gerar problemas como
tomada de decisões com base em dados imprecisos, perda de oportunidades e
dificuldades em manter-se atualizado em relação aos concorrentes.
Existem também suas desvantagens, como a necessidade de alto investimento
em tecnologia e treinamento de pessoal especializado, a complexidade na integração
com sistemas existentes e a dependência do sistema para a tomada de decisão.
4.1 Processo de Construção de Software
O processo de construção de um software SAD envolve etapas como análise
de requisitos, modelagem de dados, desenvolvimento do sistema, testes e
implementação. É importante considerar estatísticas e tecnologias como algoritmos
de inteligência artificial, aprendizado de máquina e data mining para gerar insights
mais precisos.
As etapas que incluem no desenvolvimento do software SAD são:
4.1.1 Planejamento
São identificados e definidos os requisitos além de um plano geral para o
software. É importante também que os objetivos do software SAD estejam alinhados
13
com as necessidades da organização e que sejam claramente definidos;
4.1.2 Análise
É coletado e analisado dados relevantes para implementação do software SAD.
Os dados podem vir de fontes internas ou externas da organização e é imprescindível
que a qualidade dos dados seja verificada para não constituir erros;
4.1.3 Design
É feito a projeção da arquitetura do software, incluindo a estrutura dos dados,
as interfaces com o usuário e as funcionalidades. É importante que o design seja
flexível, organizado e intuitivo, além de ser adaptável para necessidades futuras;
4.1.4 Implementação
O software
,informações relevantes e
atualizadas para a tomada de decisão.
Por último, os softwares SAD também podem ser afetados por problemas
técnicos, como falhas de software e hardware, falta de segurança e privacidade, e
problemas de integração com outros sistemas e processos de negócios.
18
5 BANCO DE DADOS
Banco de dados (BD) são estruturas onde estão armazenados diversos dados
ou informações, esses dados são armazenados e gerenciados nos softwares de
computadores. Através desses softwares, os dados podem ser manipulados de
maneira fácil, e para isso acontecer, os dados serão guardados em modelos com
linhas e colunas como nas planilhas.
Muitos perguntam qual a diferença entre banco de dados e planilhas, ambos
têm pequenas semelhanças, as planilhas são geralmente para manipulação de dados
com pequenos grupos de usuários que possam utilizar para entrega de relatórios e
controle de suas atividades. Já o banco de dados é utilizado para armazenamento de
grandes bases de dados, onde são armazenadas diversas informações, permitindo
que usuários possam navegar e encontrar dados rapidamente com segurança
utilizando as linguagens de programação complexas.
A maior parte dos bancos de dados utilizam uma linguagem de programação
chamada SQL, essa linguagem foi desenvolvida pela IBM juntamente com a Oracle
como sua principal contribuinte.
Existem diversos tipos de bancos de dados, cada um tem uma função diferente
de outro, alguns dos mais famosos são: Banco de dados orientados a objetos, banco
de dados relacionais, data Warehouse, banco de dados distribuídos, banco de dados
em nuvem, entre outros que existem.
Os softwares de banco de dados são conhecidos como “Sistema de
Gerenciamento de Banco de Dados” (DBMS ou SGBD). Esses softwares processam,
armazenam dados, realizam backup e relatórios de controle. Eles são utilizados para
editar, criar e guardar arquivos.
A utilização do banco de dados é importante, pois podemos ter uma grande
escalabilidade com eficiência para armazenamento de bilhões de dados. Dentro das
estruturas dos bancos temos a integridade dele, pois existem regras e condições
internas que são criadas pelo usuário para manter os dados de maneiras consistentes.
5.1 Linguagem SQL
A sigla SQL significa Structured Query Language que seria Linguagem de
19
Consulta Estruturada, esta linguagem foi padronizada pelo órgão internacional, para
realizar gerenciamento das informações em bancos de dados relacionais, com essa
linguagem é possível realizar consultas utilizando diversos parâmetros de pesquisas,
facilitando a inserção e a recuperação das informações no banco.
Os comandos mais utilizados dessa linguagem são: SELECT, INSERT,
UPDATE e DELETE, mas além desses existem diversos outros comandos para
utilização e manuseio dos dados. Ele também pode utilizar operadores de condições
lógicas como: AND, OR e NOT.
Além desses comandos eles são divididos em subgrupos que seriam:
• DML – Linguagem de Manipulação de Dados ou Data Manipulation
Language (por exemplo: SELECT, DELETE e INSERT);
• DDL – Linguagem de Definição de Dados ou Data Definition Language (por
exemplo: DROP);
• DCL – Linguagem de Controle de Dados ou Data Control Language
(exemplo: GRANT), e DTL – Data Transaction Language (por exemplo:
COMMIT).
Existem duas chaves no SQL, a chave primária e a chave estrangeira. A chave
primária é utilizada como identificador único da tabela e não recebe o mesmo valor.
Tem algumas características que podem levar em consideração, como: a chave não
pode ser nula, essas chaves são incrementadas automaticamente na tabela sem
precisar inseri-las, e cada um dos registrados da tabela podem possuir apenas uma
chave primária.
Figura 2 – Exemplo De Metadados
Fonte: Fernando Amaral, 2016.
20
5.2 Sobre o MySQL
O MySQL é um dos sistemas mais utilizado para gerenciamento do banco de
dados, o mesmo por ser categorizado como gerenciador de banco de dados relacional
utilizando a linguagem SQL para manipulação de dados. Ele é um dos bancos mais
utilizados no mundo inteiro consequentemente sendo usado por diversas empresas
de grande e pequeno porte.
Muitas delas o utilizam, pois, é de fácil manuseio já que sua interface é simples,
tendo ótima compatibilidade com a maioria dos sistemas operacionais como Windows,
Linux, Unix, FreeBSD e Mac OS X Server, pelo fato dele ser desenvolvido em C e
C++, e será por esses diversos benefícios que usaremos este SBGD para o
desenvolvimento do projeto SAD.
Para seu uso é necessário fazer uma instalação do servidor e através dele é
realizado o armazenamento dos dados. Podem os manuseá-los via console direto do
servidor ou usar ferramentas com interface gráfica, uma das mais utilizadas é o
MySQL Workbeach da empresa Oracle, nele é possível administrar os sistemas e
modelá-los.
Figura 3 – MySQL
Fonte: TechTudo (https://www.techtudo.com.br/noticias/2012/04/o-que-e-e-como-usar-o-mysql.ghtml)
21
6 METODOS DE ARMAZENAMENTO
Na era da informação é de suma importância ter o máximo de recursos ao seu
alcance para armazenar a maior quantidade possível de conhecimento, elementos,
ou como também podem ser chamados, os dados. Mas o que são esses dados e por
que eles devem ser armazenados de forma correta?
O dado em si pode ser denominado como qualquer tipo de acontecimento ou
fato que está registrado e com seu acesso não comprometido, como por exemplo uma
tabela com as informações do ano letivo de um colégio contendo fotos, notas de
avaliações, carga horária de uma disciplina, entre outros. Essas informações podem
consideradas dados. Na figura 4 há um exemplo de Banco de Dados com dados
meramente ilustrativos.
Figura 4 – Exemplo de Banco De Dados
Fonte: Imagens de autoria própria.
Todo o conteúdo produzido com o tempo tem a necessidade de ser guardado,
já que o armazenamento desses dados assegura muitos benefícios, como por
exemplo futuras consultas para próximas tomadas de decisões, elaboração das
informações de forma mais detalhada para análises, entre outros.
Como podemos armazenar esses dados? Primeiramente são necessários
alguns requisitos que devem ser seguidos antes de juntá-los, segundo Amaral
Fernando (2016) são “segurança da informação, integridade, minimização de
redundância, concorrência, otimização de espaço, entre outros”. Os dados podem ser
armazenados tanto no estado físico como a RAM e o CD, que são voláteis (funcionam
com base de energia elétrica), quanto no estado digital como a ROM e o Disco Rígido
que não são voláteis.
Existem muitos outros sistemas de gerenciamento de banco de dados (SGDB),
cada um com o seu uso para a situação desejada. Na figura 5, são listados os 10
SGDBs mais usados no período entre abril de 2021 até abril de 2022.
22
Figura 5 – Ranking dos 10 SGBDs Mais Usados
Fonte: DB-Engines (http://db-engines.com/en/).
Para armazenar os dados temos muitas escolhas para banco de dados, como
o Hierárquico, o Orientado a Objeto, NoSQL (Not Only SQL), mas usaremos o banco
de dados do tipo relacional, desenvolvido por volta dos anos 70 que tem como objetivo
guardar os dados por meio de atributos (Colunas da tabela) e tuplas (Linhas da tabela)
relacionando tabelas entre si. A coluna é a classificação desse dado e a linha é onde
o dado estará localizado, o SGBD escolhido foi o MySQL.
23
7 SISTEMA GERENCIAMENTO DE BANDO DE DADOS (SGBD)
Você já ouviu falar em SGBD? Esse acrônimo está intimamente relacionado à
coleta e uso de informações que ajudam as empresas, aplicações e usuários a tomar
decisões para criar soluções.
No atual mundo empresarial orientado para a tecnologia, o Sistema de
Gerenciamento de Banco de Dados (SGBD) é uma ferramenta crucial que ajuda a
gerenciar os dados com eficiência. Podendo ser usado para criar, gerenciar, consultar,
alterar, excluir, relacionar, importar e exportar
,dados das tabelas do BD.
Figura 6 – Exemplificação do Fluxo de Dados
FONTE: ResearchGate (https://www.researchgate.net/figure/Figura-2-Interacao-entre-usuarios-
SGBD-e-banco-de-dados-Fonte-Adaptado-de-Date-1998_fig2_237739960). Acesso em: 20 de março
de 2023.
Ao implementar um sistema baseado neste tipo de software, a empresa estará
equipada para executar diversas tarefas e atividades com base em seus dados. E ter
esse suporte para o gerenciamento de dados, é fundamental na atualidade pois está
se tornando cada vez mais crucial para empresas de todos os portes e setores aderir
a estas novas tecnologias.
E obviamente que dependendo dos objetivos e das metas da empresa o nosso
modelo de sistema que será aplicado também irá mudar, pois os dados a serem
trabalhados também irão ser distintos, de forma que o sistema aplicado irá se adequar
para melhor desempenho e performance, tendo exemplos como: Relacional, Não
Relacional, Hierárquico e Orientado a Objetos, que serão explicados posteriormente.
24
7.1 Relacional (SQL)
De forma direta e um sistema com finalidade de conectar dados de origens
diferentes, sendo também o tipo mais comum de SGBD, este sistema expressa em
tabelas e relacionamentos através de chaves e utiliza a linguagem de busca SQL
(Structured Query Language) para relacionar os dados de tabelas, colunas linhas e
esquemas, além de ser o modelo escolhido para este trabalho.
Maiormente aplicados em: Oracle SQL, Microsoft SQL Server, PostgreeSQL,
MySQL, MariaDB.
7.2 Não Relacional (NoSQL)
Em comparação ao sistema Relacional, neste modelo não necessariamente
precisamos predefinir a estrutura de dados, tendo dados mais flexíveis não se
limitando a tabelas, linhas, colunas ou esquemas, e logo também geralmente não se
utiliza a linguagem SQL neste tipo.
Maiormente aplicados em: Cassandra, Redis, MongoDB, CouchDB, Apache
Hbase, Riak.
7.3 Hierárquico
Como o nome sugere é um modelo que toma a forma de hierarquia parecido
com uma árvore em sua maioria, onde dados “filhos” são ligados a dados “pais”, onde
os vínculos não estabelecidos entre tabelas como no modelo relacional.
7.4 Orientado a Objeto (SGBDOO)
Formato complexo com tipos de dados mistos e de implementação cara devido
a ser o modelo mais avançado no mercado, seu desenvolvimento de origem na base
da combinação de ideias de modelos de dados tradicionais e na linguagem de
programação orientada a objeto, sendo o modelo que junta a programação com a
engenharia de software.
Bom agora que já temos a noção de alguns modelos que existem e de como
funcionam, hora de falarmos sobre as vantagens operacionais e estratégicas que usar
um SGBD oferece:
Podemos começar falando pela diminuição do esforço humano durante todo o
25
processo, sendo o objetivo principal de um sistema de controle de dados a
automatização de tarefas trabalhosas que consomem muito tempo para serem
executadas manualmente, assim um SGBD pode localizar e manipular dados
rapidamente, substituindo a busca manual por um algoritmo automatizado que pode
realizar a tarefa em milissegundos, poupando o recurso humano para os negócios.
Outro ponto que podemos levar como vantagem de SGBD é sua customização
que se adapta a diferentes necessidades devido a ser um software de código fonte
aberto.
O armazenamento de dados idênticos ou semelhantes é um problema comum
ao lidar com dados. Um SGBD pode identificar e eliminar a redundância, resultando
em dados mais limpos e precisos, para melhores insights.
E por fim e não menos importante temos que levar em conta uma das principais
vantagens que grandes empresas tem ao usar o sistema de gerenciamento de BD
que é a questão de compartilhamento, onde um SGBD garante que todos, não importa
quantos usuários, tenham acesso aos arquivos, permitindo que compartilhem dados
de acordo com suas respectivas credenciais.
Quando se fala de compartilhamento, também e necessário falar um pouco
sobre o armazenamento que é um detalhe deveras importante, podemos dizer
facilmente que os três principais métodos de armazenamento são o Armazenamento
Local, onde o servidor de uma empresa é hospedado na sua própria infraestrutura, e
é mantido e administrado por uma equipe interna da empresa, em segundo temos o
tipo de Armazenamento em Nuvem que nada mais é, que a hospedagem de seus
dados através de um provedor de serviços externos, sendo possível gerenciar a conta
com os dados através do acesso à internet desde um celular até um desktop, e por
último temos o mais recente método de armazenamento que é o Data Warehouse,
que consiste num repositório central de informações, que pode aprimorar os recursos
de tomada de decisão. Ele recebe dados de sistemas transacionais, bancos de dados
relacionais e outras fontes, geralmente em intervalos fixos, e os armazena para uso
posterior, no decorrer deste documento já foi abordado mais sobre o tema de
armazenamento do BD.
Em resumo podemos observar que independente dos dados que serão usados,
26
se faz necessário um SGBD para sua gestão, pois além de todas as vantagens e sua
segurança que traz com sigo, esta é uma ferramenta que se adequa a diferentes tipos
e portes de negócio.
27
8 MODELOS DE DADOS
Os Modelos de Dados são definidos como um conjunto de ferramentas
conceituais que auxiliam, principalmente, na descrição de dados e em seus
relacionamentos, transformando-as em informações úteis e deduzindo fatos
adicionais. A partir disso, um dos principais motivos do uso da modelagem de dados
é o de reduzir os erros, melhorar a integridade dos dados e auxiliar na entrada de
dados excessivos, criando uma estrutura que aumenta a colaboração da equipe de
TI.
Para iniciar a utilização dos Modelos de Dados é fundamental determinar uma
organização da base de dados, sendo assim iniciado o Processo de Mapeamento.
Desse modo, tem-se ao menos duas fases na elaboração de um Banco de Dados, a
fase lógica e a fase física. Após o levantamento e a análise de dados, a primeira fase
a se seguir é a lógica, possui a função de representar as relações de forma correta e
eficaz, a fim de que as operações relacionais funcionem como o esperado, assim, os
tipos e as dependências entre os dados devem ser mencionados, utilizando de
esquemas conceituais e lógicos. Já a fase física é, portanto, derivada do projeto lógico,
focado em eficiência de armazenamento e desempenho, preservando a informação
entre as duas fases, nesta etapa é feita a aplicação do SQL, por exemplo.
8.1 Tipos de Modelos
Na primeira fase, são utilizados os Modelos de Dados, dentre estes há os
conceituais, modelo abstrato (esboço) dos dados, e os lógicos, estrutura de dados, o
mais utilizado é o Modelo Entidade-Relacionamento (MER).
8.1.1 Modelo Entidade-Relacionamento (MER)
O Modelo Entidade-Relacionamento (MER) é definido como um modelo que
transforma estruturas do mundo real para dentro de um banco de dados, sendo
formado por entidades, atributos e relacionamentos. No exemplo a seguir, foi feito um
esquema utilizando a conta bancária de um cliente de um banco, demonstrado na
Figura 7.
28
Figura 7 – Modelo Entidade-Relacionamento (MER)
Cliente:
#Nome
CPF_Cliente
Endereço
Conta:
#Saldo
Numero_Conta
Fonte: Autoria Própria.
A partir do MER, é feito o Diagrama de Entidade-Relacionamento (DER), porém
para representá-lo é necessário ter conhecimento dos principais conceitos do MER
citados anteriormente e explicados a seguir.
As entidades são um conjunto de dados do qual pretende-se obter informações,
podendo ser tanto objetos físicos quanto abstratos, representada por retângulos. Já
os atributos são os dados propriamente ditos, uma propriedade da entidade, ou seja,
se temos um cliente (entidade) precisaremos de informações acerca deste, como seu
nome, CPF e endereço (atributos). Por fim, tem-se os relacionamentos, é definido
como a
,associação entre entidades, representado através de um losango conectando
cada entidade.
8.1.2 Diagrama Entidade-Relacionamento (DER)
Deste modo, utilizando destes conceitos citados anteriormente e construído o
DER, que possui como principal função fazer projetos e aprimorar o banco de dados
relacional, representando visualmente a parte lógica do projeto do banco de dados,
similar às outras notações que são muito usadas em projetos de software e banco de
dados, como diagramas de classe, exibição de uma estrutura do banco de dados de
um sistema, e a notação UML (Linguagem de Modelagem Unificada), uma linguagem
desenvolvida para especificar, construir, visualizar e documentar software. Assim
sendo, o DER não define os passos para o desenvolvimento do projeto, mas fornece
um meio de representação de sistemas de informação que auxilia a documentação e
comunicação entre os desenvolvedores.
Abaixo foi elaborado um exemplo de DER com base na figura 1, onde há o
relacionamento Conta Corrente entre as entidades Cliente e Conta que possuem seus
respectivos atributos.
29
Figura 8 – Diagrama de Entidade de Relacionamento
Fonte: Autoria Própria.
30
9 MODELOS DE PROCESSO DE DESENVOLVIMENTO DE SOFTWARE
O processo de desenvolvimento de software tem evoluído juntamente com a
necessidade da sociedade, cada dia mais sendo necessário a criação ou
aprimoramento de técnicas para reduzir o tempo de desenvolvimento sem perder a
qualidade e segurança do produto final entregue ao cliente.
9.1 Fluxo de Processos
O workflow mais simplificado destes processos segue os seguintes passos:
Requisitos Do Cliente, Especificações Técnicas, Desenvolvimento / Reuso, Validação,
Teste e Implementação.
9.1.1 Requisitos do cliente
Primeiro e mais importante passo no planejamento do desenvolvimento de um
software, podemos tratá-lo como a alma da aplicação, por que uma vez incoerente
com os requisitos apresentados pelo cliente, o software perde o propósito de criação,
tornando vão todo e qualquer esforço imputado após essa fase.
De maneira breve, se resume ao primeiro contato com o cliente ou requerente
da aplicação digital, onde se coleta de maneira rústica e informal os “inputs” ou
detalhes mais elementares do que será o projeto do software e que deve
mandatoriamente nortear todas as discussões e planejamentos a seguir, sabendo que
majoritariamente das vezes ocorrem alterações e aprimoramentos nos planos iniciais.
Ainda nesta fase realizamos algumas análises de risco e de possibilidades de
implementação, visando avaliar qualquer implicação legal ou que não seja possível
de desenvolver, uma vez avaliado e aprovado pode-se seguir para o primeiro
processo no desenvolvimento do software.
9.1.2 Especificações técnicas
Etapa conhecida pela criação das user stories, onde é descrito, de modo ainda
prévio ao totalmente técnico, o esboço das componentes do sistema e suas
funcionalidades com uma base técnica e de caráter projetista, já tomando decisões
referente ao desenvolvimento, divergente da primeira ideia advinda dos requisitos,
mas totalmente alinhada com eles.
31
Essa fase é crucial para garantir o desenvolvimento correto do software, pois é
nela que se gera uma noção em todos os integrantes da equipe do que será feito e
que deve estar acordada entre os membros de equipe/squad para garantir que não
haja retrabalho, ou desperdício de recurso temporal, causados pela divergência entre
os entendimentos transmitidos.
Vale ressalvar, que esta etapa está alinhada diretamente com a primeira,
estando sujeita a revisões e alterações em virtude de mudanças nos requisitos, ou
descoberta de novas necessidades e problemas não previstos no primeiro modelo.
9.1.3 Desenvolvimento e Reuso
Após o cumprimento e revisão das fases anteriores, ainda não é chegado a
hora de desenvolver de fato o software, primeiramente é necessário quebrar a tarefa
em partes para a distribuição coordenada das peças em desenvolvimento similar a
uma fábrica, para então definir o método de desenvolvimento coerente e eficiente ao
projeto em particular.
Para alguns casos em que o tempo de desenvolvimento é a prioridade,
podemos utilizar do reuso de partes de softwares já produzidos para acelerar o
processo, o que é muito famoso em modelos embasados na prototipagem.
É importante citar que nesta fase já se encontram os primeiros testes, iniciando
pelos unitários conforme se escolhe ou desenvolve as peças que vão compor o
software, seguido pelos testes em conjunto conforme integramos um componente ao
outro, salvando assim tempo nas fases a seguir.
9.1.4 Validação
Não é incomum na transição de fases do projeto haver uma compreensão
errônea causada pela troca de informações ou mudanças no requisito do cliente, por
conta disso há muita importância nesta fase, uma vez que é nela que se garante que
o que foi desenvolvido está de acordo com o especificado, que por sua vez, deve-se
provar alinhado com as especificações do cliente.
9.1.5 Teste
Uma vez confirmado que o software se encontra dentro das especificações, é
32
necessário assegurar por meio de repetidos testes nos mais diversos cenários de uso,
isso para garantir que não só foram atendidas as especificações do cliente com suas
variâncias, como também a eficiência, qualidade, análise de risco do sistema e
facilidade de uso.
Pode-se também realizar testes com usuários nesta fase, o que permite um
maior nível de excelência nas entregas, uma vez que o próprio requerente pode ter
sofrido alguma mudança no contexto de negócio e a aplicação de algum de seus
requisitos ter sido comprometida, porém o mesmo não ter reportado esta mudança
nas especificações, tornando este teste muito útil para uma última validação do
sistema em relação ao esperado pelo cliente.
9.1.6 Implementação
Tendo sido concluídas todas as fases em relação ao desenvolvimento da
aplicação, é o momento de prover ao cliente manuais e treinamentos para que os
usuários estejam integrados ao software, levando assim a um retorno em valor para o
cliente, uma vez que o software somente demonstra seu potencial perante usuários
capacitados ao uso.
O suporte integrativo pode vir acompanhado de sessões de treinamento ou
somente da provisão de manuais, dependendo somente do acordado entre o
requerente e a companhia desenvolvedora de software, porém é um passo muito
importante para garantir a excelência de serviço prestado ao cliente e que pode ser
até mesmo decisivo quanto ao sucesso do software.
Há diversos outros modelos de desenvolvimento de software, cada um
contendo mudanças nas fases, com acréscimos ou realocação de tarefas de uma
etapa para outras visando atender as prioridades do desenvolvimento, seja no caso
do tempo, segurança, qualidade e assim por diante.
No entanto, temos acima descrito o que seria a essência para o
desenvolvimento estruturado, seguro e qualificado de um software e que embasará o
modelo escolhido para a execução deste trabalho.
33
9.2 Cascata
Um dos modelos de desenvolvimento de software mais tradicionais, porém,
ainda amplamente utilizado nos dias de hoje, isso porque os modelos consideram
diversos fatores para determinar o melhor método, como: produto a ser desenvolvido,
características inerentes a equipe, recursos disponíveis, tempo e assim por diante,
fazendo com que não exista um modelo ideal, mas sim o que atende melhor às
necessidades de um dado projeto.
No tocante à cascata (waterfall), é um modelo bem simplista que consiste em
uma iniciativa sequencial e sistemática, onde se engaja uma fase logo após o término
da anterior, garantindo uma significante margem de segurança na implementação das
interfaces e diminuindo a possibilidade de transmissão incorreta de informação entre
os times envolvidos, uma vez que somente após completa a fase anterior que se inicia
a seguinte.
Há uma
,grande vantagem em termos de garantia das funcionalidades do
software, isso porque se prioriza a qualidade e a segurança em um sistema mais
conservador, garantindo que a entrega esteja alinhada com o definido nas fases
anteriores e consequentemente com os requisitos do cliente (mesmo quando
alterados durante o processo).
Porém, há um demérito principal em relação ao tempo de desenvolvimento,
dado a logística do modelo que não tem enfoque em economia de tempo, o cliente
deve ser muito paciente sabendo que só terá a oportunidade de ver os primeiros
modelos do software nas fases finais, o que incrementa o risco de ter mudanças
maiores de requisitos próximo ao fim do projeto, dado a impossibilidade do cliente de
testar e validar a versão primária de seus requisitos.
É importante citar que há variações do modelo cascata e que sofrem alterações
para balancear ou alterar o enfoque do modelo original, assim como anteriormente
descrito não há um modelo correto, mas o que de fato atende a necessidade de
desenvolvimento de um dado software.
Dado as características deste modelo e da entrega em questão neste projeto,
utilizaremos do modelo cascata para realizar a criação do software, juntamente com
sua documentação associada, garantindo a compreensão das especificações do
34
cliente até a etapa final de entrega do projeto.
As fases padrões conhecidas no modelo cascata são as expostas na figura 9.
Figura 9 – Exemplificação de um Framework de Cascata
Fonte: Ian Sommerville, 2011.
35
10 FUNCIONAMENTO DE UMA INTERFACE
10.1 Definição de Interface
Uma interface pode ser descrita como um dispositivo ou um sistema que faz
com que entidades que não necessariamente tenham uma relação possam interagir.
Exemplos dessa definição podem ser vistos como, o controle remoto sendo uma
interface entre uma pessoa e a televisão, a língua portuguesa sendo a interface entre
duas pessoas e um protocolo de comportamento é a interface entre pessoas de
diferentes patentes em alguns serviços.
10.2 Interface de um Software
A interface de uma aplicação é a parte de um software que o usuário verá e
poderá interagir com. Como visto nos exemplos anteriores, isso nada mais é do que
a forma em que o usuário irá interagir com o sistema. Um bom exemplo disso é o
desktop do sistema operacional Windows, que trará ao usuário acesso a diversas
informações e funções para que o usuário possa interagir com o computador.
Figura 10 – Interface
Fonte: Dicio (https://www.dicio.com.br/interface/).
A criação de uma interface para um software é baseada em diversos fatores.
Primeiramente deve ser visto quais são os requerimentos para qual objetivo o software
será criado, isso é de importância pois determinará se será possível atender a
demanda do cliente e a viabilidade. Também deve-se levar em conta o público-alvo
para determinar alguns fatores como qual o grau de conhecimento do usuário, a
36
acessibilidade do software e qual a melhor direção de design que atenda o projeto.
Então, tudo que seja feito terá que ser levado em consideração um balanço entre
usabilidade e viabilidade.
Figura 11 – Interface de Usuário
Fonte: Des1gnON (https://www.des1gnon.com/2013/07/16-dicas-para-uma-boa-interface-de-
usuario-ui/).
Para a criação de uma interface de software, teremos múltiplas opções de tipos
de interface para que se escolha a que melhor atenda aos requisitos. A interface
gráfica do usuário (GUI), interface de linha de comando (CLI), interface de usuário
orientada pelo menu, interface de toque do usuário, interface de voz do usuário (VUI),
interface do usuário baseado em formulário e interface de usuário de linguagem
natural.
Figura 12 – Interfaces GUI e CLI
Fonte: Future Techno India (https://futuretechnoindia.medium.com/graphical-user-interface-
gui-and-command-line-interface-cli-c1fd7c951c39?source=user_profile---------30-----------------
-----------).
37
11 DESIGN DE SISTEMA
Design de Sistema (Design System) é um conjunto de componentes
reutilizáveis, para um determinado produto, como site ou sistema de web, unificando
determinado produto, sendo um produto interno de uma empresa, que necessita de
pessoas que o atualizem enquanto estão desenvolvendo soluções novas, novos
componentes e novos guias de estilo.
Como o design system ainda é viva, existem exemplos conhecidos, que
possuem o seu sistema: O Stack Overflow tem um Design System com os padrões
que vai de classes CSS, é um exemplo muito conhecido na comunidade de UX e
Design.
A funcionalidade do design para sistemas bem planejados, vai além da
combinação de cores e elementos gráficos. O uso de um sistema, depende de um
design bem estruturado e com o foco especial, na facilitação e interação do usuário
com o sistema.
Com isso podemos pensar em uma interface de um certo sistema, como ocorre
a sua apresentação e como ele interage com o usuário envolvendo os elementos que
estão participando da interação, como botões, setas e legendas.
Nisso o design de interface, pode ser visto como o modelo que se apodera de
composições de arranjos entre os componentes para localizar resultados para os
problemas que o usuário pode ter com a interface, ou seja, um sistema como
operacional de celular, e suas entidades que precisam conversar de modo integrado,
com isso ficando no centro do processo de design.
Um bom design de interface necessita ter em consideração os componentes
que estão envolvidos no seu processo de criação, que são:
• Arquitetura de Informação: O seu principal objetivo é proporcionar uma
navegação muito mais simplificada para o seu usuário, independentemente
de seu navegador usado.
• Design de Interação: A criação do design deve ser levada em conta, como
ocorre na interação do usuário com o sistema, analisando os elementos
gráficos e audiovisuais do sistema, nas cores, fontes e tamanho das letras.
38
• Usabilidade: A usabilidade é fundamental quando o assunto é a criação do
sistema, afinal o sistema deve facilitar o uso do usuário e ser fácil de
navegar, intuitivo, e seus erros têm que ser levantados para que tenham
uma solução.
• Wireframing: Se refere na criação de teste dos recursos disponíveis e da
sua usabilidade, para certificar que o sistema pode ser iniciado. Esse teste,
além de ser muito importante, é também uma forma de visualizar como vai
funcionar o sistema na prática.
• Design Visual: É como será definida a marca da empresa, por isso tem um
impacto direto na interação entre o usuário e o sistema.
39
12 CARACTERÍSTICAS DE RELACIONAMENTO EMPRESARIAL
12.1 Empresa Desenvolvedora do Software
Descrição: Criada com o intuito de redefinir o conceito de software, a Bacelar
Technology LTDA foi fundada por um grupo de engenheiros universitários em 2023,
buscando dar vida as mais inovadoras soluções de software para o mundo de
business.
Temos como valor o cliente acima de tudo, entendemos a necessidade volátil
do mundo atual e por isso estamos prontos com nossos modelos de desenvolvimento
de software, junto de nossos profissionais capacitados, para entregar não um software
que auxilie um processo, mas uma solução para os problemas de nossos clientes e
assim como estes mudam todos os dias, estamos prontos para mudar o mundo com
você.
Abaixo foram descritas informações pontuais do projeto.
• Nome: Bacelar Technology LTDA.
• Área de negócio: Desenvolvedora de softwares.
• Porte: Pequeno.
• Localização: Não aplicável.
• Contato: bacelar.technology@gmail.com
12.2 Empresa Fictícia: New Indie
Descrição: A New Indie é a mais nova empresa focada no ramo alimentício, foi
fundada por um homem com grande ambição em mostrar para o mundo seu talento
para as vendas e para agradar seus clientes.
Seu nome é Richard Indie Junior, com 32 anos, apaixonado por música do estilo
indie abriu um estabelecimento com a temática desse
,estilo musical, buscando
fornecer aos seus clientes a melhor experiência ao fazer uma simples compra de
mercado.
Preservando muito a experiência desde o momento em que o cliente pisa no
estabelecimento e escuta suas músicas preferidas. Trazendo os melhores preços da
40
região e a melhor experiência possível para todos.
Abaixo seguiram as informações pontuais da empresa fictícia que iremos
atender:
• Nome: New Indie
• Área de negócio: Comércio varejista de produtos.
• Público-alvo: Todos os públicos.
• Porte: Pequeno (10 Funcionários).
• Localização Geográfica: Av. Indianópolis 807, Indianápolis – SP
• Contato: richard.indie@gmail.com
• Nome: Richard Indie Junior
• Posição: Dono (CEO)
12.3 Regras de Negócio – Requisitos do Cliente
1) Problema que a empresa tem e a falta de controle no estoque e para isso ele quer
um SAD que tenha controle sobre o produto em específico e a quantidade que está
entrando e saindo do estoque, qual produto está tendo tempo demais no estoque
levando em consideração o tempo de validade do produto. Ter controle de
qualidade de produtos dos fornecedores, referente a integridade, valor e
quantidade do produto.
a) Baseado nesse controle do estoque fazer com que o sistema mostre os
produtos que estão mais perto da validade e que estão parados no estoque,
para a criação de possíveis promoções.
2) Ter o envio de um alerta sobre se o estoque de um produto em específico está
chegando limite e se necessário a compra de mais deste se aplicando ao conceito
de máximo e mínimo do produto, para não ter demasiado sobrando e nem faltando.
3) Ter esses relatórios de forma semanal/mensal e ter a visualização de dados, o
software deve ser capaz de fornecer visualizações claras e intuitivas dos dados,
como gráficos, tabelas e outros recursos, para facilitar a análise e interpretação
dos dados.
41
4) Cruzar as informações de volume de vendas com a informação de volume de
reclamações para saber como o negócio está indo na semana/mês, e tomar as
medidas necessárias.
5) Ter linhas de tendencias baseadas em dados para saber as épocas do ano,
semanas do mês e dias da semana que terão mais vendas de uma determinada
categoria de produto, levando em com a análise de dados, o software deve ser
capaz de realizar análises de dados avançadas, como análise de tendências,
previsão de demanda e análise de rentabilidade, para que a empresa possa tomar
decisões informadas com base nos dados.
6) Segurança: o software deve ter medidas de segurança adequadas para proteger
os dados da empresa, autenticação de usuário, para controlar o nível de acesso
de acordo de um perfil administrador.
7) Custo-benefício: o software não deve ser caro de manter, através de um software
estático e com um sistema local, com atualizações rotineiras evitando assim gastos
adicionais com suporte.
8) O software deve ter um painel que prove uma visão geral de vendas, feedbacks
de atendimentos do cliente e balanço econômico compreendidos entre as datas
de início e fim selecionadas com a possibilidade de extração através de um botão.
9) Ter o SAD com uma interface amigável e fácil de entender, para que os usuários
possam acessar facilmente as informações e tomar decisões rapidamente, sem
prejudicar o fluxo de trabalho do negócio.
42
13 PROCESSO DE MAPEAMENTO DO BANCO DE DADOS
Para iniciar a criação dos modelos relacional e lógico do projeto foi primeiro
feito uma análise de dados, além de ser feita uma breve pesquisa sobre, onde foram
selecionados os tipos de dados, como seriam utilizados, seus propósitos e possíveis
relacionamentos. A partir disso, foi arquitetado em planilhas os metadados das
entidades e atributos que iríamos utilizar, assim, foi determinado o aplicativo que seria
utilizado para fazer os modelos, que foi apresentado em aula, sendo esse o brModelo,
utilizado para fazer os modelos conceitual e lógico com base no Modelo Entidade-
Relacionamento (MER) para assim criar o Diagrama Entidade-Relacionamento (DER),
apresentado no trabalho anteriormente no tópico 9.
Quando feito a implantação das entidades e atributos no brModelo, foram feitos
os relacionamentos e as cardinalidades com base naquilo ensinado em sala de aula.
Retomando os conceitos já abordados, os relacionamentos são um conjunto de
associações entre entidades (tabelas) que se pretende manter informações no banco
de dados. Assim, para determinar o número mínimo e máximo de ocorrências entre
as entidades de um relacionamento binário, entre duas entidades, são utilizadas as
cardinalidades. Estas são classificadas em:
• Cardinalidade mínima: categorizada como uma associação opcional (0),
onde a entidade pode possuir ou não um valor associado aos valores de
outra entidade, ou associação obrigatória (1), onde uma entidade deverá ter
ao menos uma relação com a outra entidade;
• Cardinalidade máxima: podendo possuir os valores de um (1), onde uma
ocorrência da entidade pode estar associada a no máximo uma ocorrência
de outra entidade, e muitos (m ou n), expressando que não há um limite
para o número de ocorrências entre duas entidades.
Assim, pode-se concluir as razões de cardinalidade possíveis para tipos de
relacionamento binários são 0:1, 0:n, 1:1 e 1:n, levando em consideração apenas as
entidades que se relacionam. Será abordado novamente este assunto futuramente
demonstrando as entidades, atributos, relacionamentos e cardinalidades quando
demonstrado os modelos conceitual e lógico.
43
13.1 Ferramenta CASE brModelo (Will)
Para a criação do modelo conceitual e lógico do projeto, foi utilizada a
ferramenta brModelo. O brModelo é uma ferramenta de apoio ao projeto de BDs
relacionais desenvolvida pelo Grupo de BD da UFSC (GBD/UFSC).
Todas as ramificações e versões da brModelo apresentadas na seção anterior
compartilham as seguintes funcionalidades: suporte as três etapas tradicionais do
projeto de um BD relacional; geração da modelagem lógica e guiada pelo usuário
projetista; interface gráfica com o projetista intuitiva e rica em opções de menu e
ícones representando conceitos de modelagem que podem ser manipulados no estilo
drag-and-drop. Ou seja, o brModelo é uma ferramenta simples, fácil e eficaz para a
suas funcionalidades.
Assim, o processo de mapeamento consistiu-se em: analisar os tipos de dados
quer serão alocados; separá-los por quais seriam entidades, atributos e os tipos de
chaves; adicionar todos os respectivos dados na ferramenta CASE (no caso
brModelo), com os seus devidos artefatos (caixa de entidade, atributos etc.); definir,
adicionar e nomear relações entre as entidades; definir e adicionar as cardinalidades
das relações.
13.2 Metadados do BD
Metadados são informações que descrevem dados. Eles fornecem contexto e
informações adicionais sobre os dados, como seu tipo dado e uma descrição do que
se trata determinados atributos.
Os metadados são importantes para facilitar a organização, busca,
compartilhamento e reutilização dos dados, além de ajudar a garantir a qualidade e a
precisão deles. A seguir, das tabelas 1 a 11 é demonstrado os metadados que estão
presentes neste projeto.
Tabela 1 – Metadados da Tabela de Vendas
Atributos Tipo Descrição
# ID_Venda INT Identificador da tabela Venda (Chave Primária)
Data_Venda DATE Data da Venda
ID_Produto INT Identificador da tabela Produto (Chave Estrangeira)
Qtd_Venda INT Quantidade de produtos vendidos por venda
ID_Promo INT Identificador da tabela Promo (Chave Estrangeira)
ID_Avalicao INT Identificador da tabela Avaliacao (Chave Estrangeira)
Fonte: Autoria Própria.
44
Tabela 2 – Metadados da Tabela de Lotes
Atributos Tipo Descrição
# ID_Lote INT É o identificador do Lote (Chave Primaria)
Data_Entrega VARCHAR (30) É onde fica registrado a data de entrega do lote
ID_Produto INT É o identificador do produto (Chave Estrangeira)
Qtd_Lote
,Back-end e Full Stack. Alura, [S. l.], 17 jan. 2023. Disponível em: https://www.alura.com.br/artigos/o-que-e-front-end-e-back-end. Acesso em: 22 abr. 2023. SANTOS, Diego. Plataforma Online para Criação de Jogos Personalizados com Labirintos para Introdução à Lógica de Programação. Orientador: Profa. Andrea Schwertner Charão. 2022. 32 p. Trabalho Final de Graduação (Curso de Bacharelado em Sistemas de Informação) - Universidade Federal de Santa Maria, Santa Maria, RS, 2022. Disponível em: https://repositorio.ufsm.br/bitstream/handle/1/26174/TG_Diego%20Viana%20dos%20Santos.pdf?sequence=1&isAllowed=y. Acesso em: 22 abr. 2023. ABOUT Python. In: Python. Países Baixos, 1991. Disponível em: https://www.python.org/about/. Acesso em: 23 abr. 2023. 57 SOMMERVILLE, Ian. Engenharia de Software. 9. ed. São Paulo: Pearson Education, 2011. 532 p. Disponível em: https://plataforma.bvirtual.com.br/Leitor/Publicacao/2613/pdf/48. Acesso em: 22 mar. 2023.