Logo Passei Direto
Buscar
Material
páginas com resultados encontrados.
páginas com resultados encontrados.

Prévia do material em texto

<p>ALEXSANDRO TÉOFILO DO CARMO DE RIVERA – N6482B-7 – CP8P01</p><p>DIOGO EREDIA OLIVEIRA MARCHÃO – N61479-0 – CP8Q01</p><p>GEOVANNE HENRIQUE COSTA – N589FJ-1 – CP8Q01</p><p>GUSTAVO DELLABARBA – F2250H-4 – CP8Q01</p><p>IVAN ALEXANDER YAPITA VARGAS – F1851H-0 – CP8P01</p><p>KAMILLY VIEIRA SILVA – N61906-6 – CP8Q01</p><p>LUAN PARENTE DE SOUZA – N64168-1 – CP8Q01</p><p>THIAGO OGALLA BENEDITO – F1412E-5 – CP8Q01</p><p>VINICIUS SOUZA MODOLO – N6535J-8 – CP8P01</p><p>WILLIAN PUBLIO THEODORO GOMES – N568GD-2 – CP8Q01</p><p>STOCK VIRTUAL ASSISTANT</p><p>São Paulo</p><p>2023</p><p>ALEXSANDRO TÉOFILO DO CARMO DE RIVERA – N6482B-7 – CP8P01</p><p>DIOGO EREDIA OLIVEIRA MARCHÃO – N61479-0 – CP8Q01</p><p>GEOVANNE HENRIQUE COSTA – N589FJ-1 – CP8Q01</p><p>GUSTAVO DELLABARBA – F2250H-4 – CP8Q01</p><p>IVAN ALEXANDER YAPITA VARGAS – F1851H-0 – CP8P01</p><p>KAMILLY VIEIRA SILVA – N61906-6 – CP8Q01</p><p>LUAN PARENTE DE SOUZA – N64168-1 – CP8Q01</p><p>THIAGO OGALLA BENEDITO – F1412E-5 – CP8Q01</p><p>VINICIUS SOUZA MODOLO – N6535J-8 – CP8P01</p><p>WILLIAN PUBLIO THEODORO GOMES – N568GD-2 – CP8Q01</p><p>STOCK VIRTUAL ASSISTANT</p><p>Trabalho apresentado ao curso de</p><p>Engenharia da Computação da</p><p>Universidade Paulista – UNIP, como</p><p>exigência da disciplina APS (Atividade</p><p>Prática Supervisionada).</p><p>Orientadora: Andrea Cristina Esteves</p><p>São Paulo</p><p>2023</p><p>RESUMO</p><p>Com base em pesquisas sobre software, sistemas de apoio a decisão (SAD) e banco</p><p>de dados para o auxílio de empresas foi engenhado um projeto para uma empresa de</p><p>vendas de pequeno porte, esta criada pelos autores, seguindo o modelo de processo</p><p>de software cascata, proposto por Sommerville, analisando possíveis requisitos,</p><p>revisando-os em conjunto e projetando o sistema e software. Assim, foi feito um</p><p>aprofundamento no assunto de back-end e front-end, a fim de determinar qual seria</p><p>utilizado, interface, design e segurança das informações, para que a sensibilidade dos</p><p>dados não seja comprometida. Neste sentido, o Qt Designer foi selecionado para o</p><p>desafio em questão, com sua abordagem WYSIWYG (What You See Is What You</p><p>Get), ele permite a implementação de um front-end em um espaço de tempo muito</p><p>reduzido com alta otimização por apresentar alta portabilidade para python em seu</p><p>código fonte. O objetivo do SAD que será aplicado é auxiliar o estoque do empresário,</p><p>organizando-o, prevendo riscos e melhorias para o negócio com base nos dados</p><p>inseridos nos bancos de dados, deste modo a ferramenta BrModelo foi utilizada como</p><p>CASE para organizar os bancos de Dados para assim criá-lo empregando a</p><p>ferramenta MySQL, usada como o Sistema de Gerenciamento de Banco de Dados</p><p>para manipular as informações armazenadas neste.</p><p>Palavras chaves: SAD; banco de dados; software.</p><p>ABSTRACT</p><p>Based on research in software, Decision Support Systems (DSS), and databases for</p><p>business support, a project was devised for a small-scale sales company, established</p><p>by the authors, following the waterfall software process model proposed by</p><p>Sommerville. This involved analyzing potential requirements, reviewing them</p><p>collaboratively, and designing the system and software. A comprehensive exploration</p><p>of backend and frontend aspects was undertaken to determine the framework for</p><p>interface, design, and information security, ensuring data sensitivity remains</p><p>uncompromised. In this regard, Qt Designer was selected for the given challenge. With</p><p>its WYSIWYG (What You See Is What You Get) approach, it enables the</p><p>implementation of a frontend in a significantly reduced timeframe, with high</p><p>optimization due to its portability for Python in its source code. The objective of the</p><p>DSS to be applied is to assist the entrepreneur's inventory management by organizing</p><p>it, anticipating risks, and suggesting improvements based on the data stored in</p><p>databases. To achieve this, the BrModelo tool was employed as a Computer-Aided</p><p>Software Engineering (CASE) tool to organize the databases. The MySQL tool was</p><p>utilized as the Database Management System to handle the information stored in these</p><p>databases. The aim is to create and manage the databases employing MySQL</p><p>effectively.</p><p>Keywords: SAD; database; software.</p><p>LISTA DE ILUSTRAÇÕES</p><p>LISTA DE FIGURAS</p><p>Figura 1 – A Convergência Do Mundo Digital Com O Real .......................................... 6</p><p>Figura 2 – Exemplo De Metadados ............................................................................. 19</p><p>Figura 3 – MySQL ........................................................................................................ 20</p><p>Figura 4 – Exemplo de Banco De Dados .................................................................... 21</p><p>Figura 5 – Ranking dos 10 SGBDs Mais Usados ....................................................... 22</p><p>Figura 6 – Exemplificação do Fluxo de Dados ............................................................ 23</p><p>Figura 7 – Modelo Entidade-Relacionamento (MER) ................................................. 28</p><p>Figura 8 – Diagrama de Entidade de Relacionamento ............................................... 29</p><p>Figura 9 – Exemplificação de um Framework de Cascata ......................................... 34</p><p>Figura 10 – Interface .................................................................................................... 35</p><p>Figura 11 – Interface de Usuário ................................................................................. 36</p><p>Figura 12 – Interfaces GUI e CLI ................................................................................. 36</p><p>Figura 13 – Página do Qt Designer ............................................................................. 37</p><p>Figura 14 – Modelo Conceitual .................................................................................... 47</p><p>Figura 15 – Modelo Lógico ........................................................................................... 48</p><p>Figura 16 – Projeto do Sistema ................................................................................... 51</p><p>Figura 17 – Projeto de Design do Sistema feito no Canva ......................................... 52</p><p>Figura 18 – Tela de Login do Aplicativo ...................................................................... 57</p><p>Figura 19 – Mensagem de Erro ................................................................................... 57</p><p>Figura 20 – Mensagem de Sucesso ............................................................................ 57</p><p>Figura 21 – Tela Inicial do Aplicativo ........................................................................... 57</p><p>Figura 22 – Tela de Dashboard de Faturamento ........................................................ 58</p><p>Figura 23 – Tela de Dashboard de Estoque................................................................ 58</p><p>Figura 24 – Tela de Dashboard de Recursos Humanos ............................................. 58</p><p>Figura 25 – Tela de Catálogo....................................................................................... 58</p><p>Figura 26 – Tela de Catálogo Para o Produto “Açúcar Cristal” .................................. 58</p><p>Figura 27 – Tela de Sistema de Cadastro ................................................................... 59</p><p>Figura 28 – Exemplo de Registro de Produto ............................................................. 59</p><p>Figura 29 – Exemplo de Registro de Lote ................................................................... 59</p><p>Figura A-1 – Códigos para Criação das Tabelas ........................................................ 70</p><p>Figura A-2 – Metadados da Tabela de Avaliação ....................................................... 73</p><p>Figura A-3 – Metadados da Tabela de Categoria ....................................................... 73</p><p>Figura A-4 – Metadados da Tabela de Cliente ............................................................ 74</p><p>Figura A-5 – Metadados da Tabela de Descarte ........................................................ 74</p><p>Figura A-6 – Metadados</p><p>atender:</p><p>• Nome: New Indie</p><p>• Área de negócio: Comércio varejista de produtos.</p><p>• Público-alvo: Todos os públicos.</p><p>• Porte: Pequeno (10 Funcionários).</p><p>• Localização Geográfica: Av. Indianópolis 807, Indianápolis – SP</p><p>• Contato: richard.indie@gmail.com</p><p>• Nome: Richard Indie Junior</p><p>• Posição: Dono (CEO)</p><p>12.3 Regras de Negócio – Requisitos do Cliente</p><p>1) Problema que a empresa tem e a falta de controle no estoque e para isso ele quer</p><p>um SAD que tenha controle sobre o produto em específico e a quantidade que está</p><p>entrando e saindo do estoque, qual produto está tendo tempo demais no estoque</p><p>levando em consideração o tempo de validade do produto. Ter controle de</p><p>qualidade de produtos dos fornecedores, referente a integridade, valor e</p><p>quantidade do produto.</p><p>a) Baseado nesse controle do estoque fazer com que o sistema mostre os</p><p>produtos que estão mais perto da validade e que estão parados no estoque,</p><p>para a criação de possíveis promoções.</p><p>2) Ter o envio de um alerta sobre se o estoque de um produto em específico está</p><p>chegando limite e se necessário a compra de mais deste se aplicando ao conceito</p><p>de máximo e mínimo do produto, para não ter demasiado sobrando e nem faltando.</p><p>3) Ter esses relatórios de forma semanal/mensal e ter a visualização de dados, o</p><p>software deve ser capaz de fornecer visualizações claras e intuitivas dos dados,</p><p>como gráficos, tabelas e outros recursos, para facilitar a análise e interpretação</p><p>dos dados.</p><p>42</p><p>4) Cruzar as informações de volume de vendas com a informação de volume de</p><p>reclamações para saber como o negócio está indo na semana/mês, e tomar as</p><p>medidas necessárias.</p><p>5) Ter linhas de tendencias baseadas em dados para saber as épocas do ano,</p><p>semanas do mês e dias da semana que terão mais vendas de uma determinada</p><p>categoria de produto, levando em com a análise de dados, o software deve ser</p><p>capaz de realizar análises de dados avançadas, como análise de tendências,</p><p>previsão de demanda e análise de rentabilidade, para que a empresa possa tomar</p><p>decisões informadas com base nos dados.</p><p>6) Segurança: o software deve ter medidas de segurança adequadas para proteger</p><p>os dados da empresa, autenticação de usuário, para controlar o nível de acesso</p><p>de acordo de um perfil administrador.</p><p>7) Custo-benefício: o software não deve ser caro de manter, através de um software</p><p>estático e com um sistema local, com atualizações rotineiras evitando assim gastos</p><p>adicionais com suporte.</p><p>8) O software deve ter um painel que prove uma visão geral de vendas, feedbacks</p><p>de atendimentos do cliente e balanço econômico compreendidos entre as datas</p><p>de início e fim selecionadas com a possibilidade de extração através de um botão.</p><p>9) Ter o SAD com uma interface amigável e fácil de entender, para que os usuários</p><p>possam acessar facilmente as informações e tomar decisões rapidamente, sem</p><p>prejudicar o fluxo de trabalho do negócio.</p><p>43</p><p>13 PROCESSO DE MAPEAMENTO DO BANCO DE DADOS</p><p>Para iniciar a criação dos modelos relacional e lógico do projeto foi primeiro</p><p>feito uma análise de dados, além de ser feita uma breve pesquisa sobre, onde foram</p><p>selecionados os tipos de dados, como seriam utilizados, seus propósitos e possíveis</p><p>relacionamentos. A partir disso, foi arquitetado em planilhas os metadados das</p><p>entidades e atributos que iríamos utilizar, assim, foi determinado o aplicativo que seria</p><p>utilizado para fazer os modelos, que foi apresentado em aula, sendo esse o brModelo,</p><p>utilizado para fazer os modelos conceitual e lógico com base no Modelo Entidade-</p><p>Relacionamento (MER) para assim criar o Diagrama Entidade-Relacionamento (DER),</p><p>apresentado no trabalho anteriormente no tópico 9.</p><p>Quando feito a implantação das entidades e atributos no brModelo, foram feitos</p><p>os relacionamentos e as cardinalidades com base naquilo ensinado em sala de aula.</p><p>Retomando os conceitos já abordados, os relacionamentos são um conjunto de</p><p>associações entre entidades (tabelas) que se pretende manter informações no banco</p><p>de dados. Assim, para determinar o número mínimo e máximo de ocorrências entre</p><p>as entidades de um relacionamento binário, entre duas entidades, são utilizadas as</p><p>cardinalidades. Estas são classificadas em:</p><p>• Cardinalidade mínima: categorizada como uma associação opcional (0),</p><p>onde a entidade pode possuir ou não um valor associado aos valores de</p><p>outra entidade, ou associação obrigatória (1), onde uma entidade deverá ter</p><p>ao menos uma relação com a outra entidade;</p><p>• Cardinalidade máxima: podendo possuir os valores de um (1), onde uma</p><p>ocorrência da entidade pode estar associada a no máximo uma ocorrência</p><p>de outra entidade, e muitos (m ou n), expressando que não há um limite</p><p>para o número de ocorrências entre duas entidades.</p><p>Assim, pode-se concluir as razões de cardinalidade possíveis para tipos de</p><p>relacionamento binários são 0:1, 0:n, 1:1 e 1:n, levando em consideração apenas as</p><p>entidades que se relacionam. Será abordado novamente este assunto futuramente</p><p>demonstrando as entidades, atributos, relacionamentos e cardinalidades quando</p><p>demonstrado os modelos conceitual e lógico.</p><p>44</p><p>13.1 Ferramenta CASE brModelo</p><p>Para a criação do modelo conceitual e lógico do projeto, foi utilizada a</p><p>ferramenta brModelo. O brModelo é uma ferramenta de apoio ao projeto de BDs</p><p>relacionais desenvolvida pelo Grupo de BD da UFSC (GBD/UFSC).</p><p>Todas as ramificações e versões da brModelo apresentadas na seção anterior</p><p>compartilham as seguintes funcionalidades: suporte as três etapas tradicionais do</p><p>projeto de um BD relacional; geração da modelagem lógica e guiada pelo usuário</p><p>projetista; interface gráfica com o projetista intuitiva e rica em opções de menu e</p><p>ícones representando conceitos de modelagem que podem ser manipulados no estilo</p><p>drag-and-drop. Ou seja, o brModelo é uma ferramenta simples, fácil e eficaz para a</p><p>suas funcionalidades.</p><p>Assim, o processo de mapeamento consistiu-se em: analisar os tipos de dados</p><p>quer serão alocados; separá-los por quais seriam entidades, atributos e os tipos de</p><p>chaves; adicionar todos os respectivos dados na ferramenta CASE (no caso</p><p>brModelo), com os seus devidos artefatos (caixa de entidade, atributos etc.); definir,</p><p>adicionar e nomear relações entre as entidades; definir e adicionar as cardinalidades</p><p>das relações.</p><p>13.2 Metadados do BD</p><p>Metadados são informações que descrevem dados. Eles fornecem contexto e</p><p>informações adicionais sobre os dados, como seu tipo dado e uma descrição do que</p><p>se trata determinados atributos.</p><p>Os metadados são importantes para facilitar a organização, busca,</p><p>compartilhamento e reutilização dos dados, além de ajudar a garantir a qualidade e a</p><p>precisão deles. A seguir, das tabelas 1 a 11 é demonstrado os metadados que estão</p><p>presentes neste projeto.</p><p>Tabela 1 – Metadados da Tabela de Vendas</p><p>Atributos Tipo Descrição</p><p># ID_Venda INT Identificador da tabela Venda (Chave Primária)</p><p>Data_Venda DATE Data da Venda</p><p>ID_Produto INT Identificador da tabela Produto (Chave Estrangeira)</p><p>Qtd_Venda INT Quantidade de produtos vendidos por venda</p><p>ID_Promo INT Identificador da tabela Promo (Chave Estrangeira)</p><p>ID_Avalicao INT Identificador da tabela Avaliacao (Chave Estrangeira)</p><p>Fonte: Autoria Própria.</p><p>45</p><p>Tabela 2 – Metadados da Tabela de Lotes</p><p>Atributos Tipo Descrição</p><p># ID_Lote INT É o identificador do Lote (Chave Primaria)</p><p>Data_Entrega VARCHAR (30) É onde fica registrado a data de entrega do lote</p><p>ID_Produto INT É o identificador do produto (Chave Estrangeira)</p><p>Qtd_Lote VARCHAR (30) Quantidade de lotes individuais</p><p>Validade_Lote DATE Validade dos produtos que estão nos lotes</p><p>Qtd_Produto DOUBLE Valor de compra de um Lote</p><p>ID_Fornecedor DOUBLE É o identificador do Fornecedor (Chave Estrangeira)</p><p>Custo_Unit DOUBLE É o custo que o empresário compra</p><p>Fonte: Autoria Própria.</p><p>Tabela 3 – Metadados da Tabela de Produtos</p><p>Atributos Tipo Descrição</p><p># ID_Produto INT Identificador do</p><p>produto (Chave Primaria)</p><p>Nome_Produto VARCHAR (30) Nome registrado do produto</p><p>ID_Categoria INT Identificador da categoria (Chave Estrangeira)</p><p>Marca_Produto VARCHAR (30) Nesta coluna é onde estaria a marca das empresas</p><p>Num_Serie INT Código de barras</p><p>Preço_Unit DOUBLE Valor de uma unidade vendida</p><p>Fonte: Autoria Própria.</p><p>Tabela 4 – Metadados da Tabela de Estoque</p><p>Atributos Tipo Descrição</p><p># ID_Produto INT Identificador da tabela Produto (Chave Primária)</p><p>Qtd_Estoque INT Quantidade do Produto em Estoque</p><p>ID_Lote INT Identificador do lote (Chave estrangeira)</p><p>Fonte: Autoria Própria.</p><p>Tabela 5 – Metadados da Tabela de Funcionários</p><p>Atributos Tipo Descrição</p><p># ID_Funcionario INT É o identificador do Funcionário (Chave Primaria)</p><p>Nome_Funcionario VARCHAR (30) Nome registrado do funcionário</p><p>E-mail VARCHAR (30) Email do funcionário para contato</p><p>Telefone INT Telefone do funcionário para contato</p><p>Nivel_Acesso INT Nível de acesso ao SAD (Chave Estrangeira)</p><p>Fonte: Autoria Própria.</p><p>Tabela 6 – Metadados da Tabela de Fornecedores</p><p>Atributos Tipo Descrição</p><p># ID_Fornecedor INT Identificador do fornecedor (Chave Primária)</p><p>Nome_Fornecedor VARCHAR (30) Nome registrado do fornecedor</p><p>Telefone TEXT (14)</p><p>Telefone do fornecedor para contato de futuras</p><p>compras ou falar sobre um possível problema no lote</p><p>E-mail VARCHAR (45)</p><p>Segunda forma de contato com o fornecedor por meio</p><p>do endereço de e-mail</p><p>Fonte: Autoria Própria.</p><p>46</p><p>Tabela 7 – Metadados da Tabela de Clientes</p><p>Atributos Tipo Descrição</p><p># ID_Cliente INT É o identificador do Cliente (Chave Primaria)</p><p>Nome VARCHAR (15) Nome registrado do cliente</p><p>Sobrenome VARCHAR (15) Sobrenome registrado do cliente</p><p>Sexo BOOLEAN</p><p>Nessa coluna serão armazenados 1 para representa homem</p><p>e 0 para representa mulher</p><p>E-mail VARCHAR (30) Email para contato com o cliente</p><p>Telefone INT Telefone para contato com cliente</p><p>Fonte: Autoria Própria.</p><p>Tabela 8 – Metadados da Tabela de Avaliações</p><p>Atributos Tipo Descrição</p><p># ID_Avaliacao INT É o identificador da Avaliação (Chave Primaria)</p><p>Nivel_Avaliacao VARCHAR (15) Registro do nível de avaliação que será em quatro níveis.</p><p>Descr_Avaliacao VARCHAR (50) registro de avaliação do cliente</p><p>ID_Cliente INT Identificador do cliente (Chave estrangeira)</p><p>ID_Funcionario INT Identificador do funcionário (Chave estrangeira)</p><p>Fonte: Autoria Própria.</p><p>Tabela 9 – Metadados da Tabela de Nivel de Acesso</p><p>Atributos Tipo Descrição</p><p># Nivel_Acesso INT Nível de acesso ao SAD (Chave Primaria)</p><p>Tipo_Acesso VARCHAR (25)</p><p>Especificação do de dados que poderão ser</p><p>cessados</p><p>Fonte: Autoria Própria.</p><p>Tabela 10 – Metadados da Tabela de Categorias</p><p>Atributos Tipo Descrição</p><p># ID_categoria INT Identificador da categoria (Chave Primária)</p><p>Categoria VARCHAR (30) Categoria que do produto</p><p>Fonte: Autoria Própria.</p><p>Tabela 11 – Metadados da Tabela de Promoções</p><p>Atributos Tipo Descrição</p><p># ID_Promo INT Identificador promoções (Chave Primaria)</p><p>Valor_Promo DOUBLE</p><p>O valor indicado nesta coluna será a porcentagem de</p><p>desconto que será aplicado numa compra</p><p>Periodo_promo DATE Serão os períodos que as promoções valerão</p><p>Fonte: Autoria Própria.</p><p>Apesar do planejamento do banco de dados e seus metadados terem sido as</p><p>tabelas acima, houveram mudança e elas foram documentadas no Apêndice A, sendo</p><p>apresentadas inicialmente no tópico 16, onde será discutido a execução do projeto.</p><p>13.3 Modelo Conceitual</p><p>Em modelagem de dados, o modelo conceitual é uma representação abstrata</p><p>dos dados e das suas relações, na qual é independente de qualquer tecnologia de</p><p>47</p><p>banco de dados específica. Ele é utilizado para descrever os requisitos e as regras de</p><p>negócios que devem ser atendidos pelo banco de dados (BDs).</p><p>O modelo conceitual é a primeira etapa na criação de um banco de dados,</p><p>sendo geralmente representado por meio de diagramas, um deles é o diagrama</p><p>entidade-relacionamento (ER). A partir do modelo conceitual, é possível criar o modelo</p><p>lógico, que é a implementação do banco de dados em um sistema de gerenciamento</p><p>de banco de dados (SGBDs). Em resumo, o modelo conceitual é uma representação</p><p>abstrata dos dados e suas relações, que são utilizadas para guiar a criação do BD.</p><p>Figura 14 – Modelo Conceitual</p><p>Fonte: Autoria Própria.</p><p>13.4 Modelo Lógico</p><p>Em modelagem de dados, o modelo lógico é um modelo que irá descrever as</p><p>relações entre elementos de dados de um sistema ou seus processos, ele é usado</p><p>para a compreensão visual das entidades de dados e seus atributos, sendo</p><p>independente de bancos de dados físicos. Às vezes referida como modelagem de</p><p>informações, a modelagem lógica de dados é a segunda etapa dentre os processos</p><p>de modelagem. Em resumo, um modelo lógico é uma representação abstrata de um</p><p>48</p><p>sistema ou processo que descreve as relações entre seus elementos de dados.</p><p>Figura 15 – Modelo Lógico</p><p>Fonte: Autoria Própria.</p><p>49</p><p>14 BACK-END E FRONT-END DO SISTEMA</p><p>14.1 Definição de Back-end</p><p>O Back-End é um termo muito conhecido e que se encontra na linguagem até</p><p>dos usuários não técnicos de computador, isso porque se trata da parte vital de</p><p>qualquer sistema, porém diferente do Front-End, essa parte nunca é vista, mas é</p><p>encarregada por toda e qualquer alteração que se manifesta aos nossos olhos perante</p><p>uma tela.</p><p>Uma aplicação é composta por diversas outras menores, como banco de dados</p><p>e até mesmo outras aplicações que não possuem GUI, cujo resultado é retornado para</p><p>então ser exposto de alguma forma ao usuário, assim como realizamos diversas</p><p>consultas ao banco de dados do Facebook por exemplo, quando estamos em busca</p><p>de um contato ou quando observamos os metadados de um perfil.</p><p>Por isso este componente invisível age como uma ponte para integrar todas as</p><p>partes do software, manipulando e transformando os tipos de dados para serem</p><p>expostos em seus fins no modo correto, agindo como um intérprete que leva as</p><p>informações ao usuário por diferentes canais de transmissão.</p><p>Os responsáveis por construir estes caminhos de acordo com as</p><p>especificações descritas são os desenvolvedores, estes possuem a habilidade</p><p>necessária para se comunicar com o hardware por meio de linguagens de</p><p>programação, que nada mais são que códigos reconhecidos somente por eles e pelo</p><p>computador, para garantir a ocorrência de eventos de maneira ordenada e correta,</p><p>proteger dados dos usuários que não devem acessa-los e até mesmo sugerir ações,</p><p>esses códigos costumam estar dispostos de uma forma que não poderia ser entendida</p><p>pelo usuário, demonstrando um dos motivos pelo qual permanecem em anonimato e</p><p>requerem uma GUI para o uso geral.</p><p>14.2 Definição de Front-end</p><p>O Front-End é a parte do sistema com a qual o usuário interage diretamente,</p><p>também conhecido como “lado do cliente” da aplicação. É responsável por receber as</p><p>informações inseridas pelos usuários, processá-las, repassá-las ao Back-End se</p><p>necessário e por fim, exibir os resultados de maneira organizada na interface.</p><p>50</p><p>Por exemplo, em um sistema de gerenciamento de estoque de produtos, a área</p><p>de Front-End pode apresentar uma interface gráfica onde o usuário pode preencher</p><p>um formulário com informações sobre um novo produto, como nome, preço e</p><p>quantidade em estoque etc. Quando o usuário for enviar o formulário, é esta área em</p><p>questão que será o responsável por enviar os dados para o banco de dados, que</p><p>armazenará as informações.</p><p>Os desenvolvedores que trabalham nesta parte do software têm uma estreita</p><p>colaboração com os designers para traduzir as ideias e conceitos visuais em código,</p><p>criando interfaces atraentes e intuitivas que os usuários podem interagir facilmente.</p><p>E agora referente ao projeto em geral, a escolha das tecnologias e ferramentas</p><p>de desenvolvimento, para o Front-End e de Back-End referente ao banco de dados e</p><p>interfaces depende das necessidades do projeto e das habilidades da equipe de</p><p>desenvolvimento,</p><p>e pensando em isso nós da equipe Bacelar Technology LTDA,</p><p>optamos a princípio por desenvolver todo o SAD na linguagem Python.</p><p>Escolhemos Python como a linguagem de programação do nosso projeto pois</p><p>é uma linguagem de alto nível, versátil, que irá nos ajudar tanto em GUI (Graphical</p><p>User Interface ou Interface Gráfica de Usuário) quanto em Back-End e Front-End, e</p><p>por ser Open-sourse (gratuita para o uso e distribuição). Além de ser uma linguagem</p><p>com um grau de dificuldade baixo (porém super eficaz), e por ser a linguagem de</p><p>programação que a equipe tem mais afinidade, além de claro ser suficiente para</p><p>atender as regras de negócio.</p><p>Python foi criada por Guido van Rossum, e disponibilizada pela primeira vez</p><p>em 20 de fevereiro, 1991. O nome da linguagem de programação Python vem de um</p><p>antigo show de tv, uma comédia da BBC chamada Monty Python’s Flying Circus. Com</p><p>o incrível fato de ser criada por apenas uma pessoa (sendo ao longo do tempo</p><p>desenvolvida por diversas pessoas e comunidades).</p><p>51</p><p>15 PROJETO</p><p>Para o projeto do sistema, foi feito um framework (estrutura) do projeto, com</p><p>base no que será feito, interligando as etapas como visto na figura 15. Inicialmente</p><p>terá o banco de dados onde serão armazenadas as informações importante do</p><p>negócio, após isso virá o Back-end visto anteriormente, e, por fim, o Front-end, na</p><p>imagem há os detalhamentos de cada etapa bem como suas interligações.</p><p>Figura 16 – Projeto do Sistema</p><p>Banco de Dados</p><p>MySQL</p><p>Avaliações</p><p>Clientes</p><p>Produtos</p><p>Estoque</p><p>Acessos dos</p><p>Usuários (DB)</p><p>Vendas</p><p>Fornecedores</p><p>New Indie stock system framework – Local Application</p><p>Back-End</p><p>Python</p><p>Análise</p><p>estatística</p><p>Criação de</p><p>relatórios</p><p>Criação de</p><p>informação</p><p>Controle de</p><p>Acesso</p><p>Automação</p><p>Alertas</p><p>Front-End</p><p>Python</p><p>Relatórios on-demand</p><p>& automatizados</p><p>Controle</p><p>de Estoque</p><p>Insights e</p><p>oportunidades</p><p>Controle de</p><p>acesso (Login)</p><p>Manipulação</p><p>de dados</p><p>Nível 01 – Banco de dados onde se</p><p>armazenará todas as tabelas para o</p><p>estabelecimento de relações.</p><p>Os atributos e as entidades serão</p><p>definidos pelas regras negócio e</p><p>construídos segundo o planejamento</p><p>exposto na seção de banco de dados.</p><p>Nível 03 – Front-End onde o usuário irá</p><p>interagir com as informações e dados</p><p>armazenados nas fases anteriores, de</p><p>maneira gráfica, possuindo controle de</p><p>acesso por meio do login para garantir a</p><p>segurança do sistema, além de possuir</p><p>telas acessíveis dependendo do nível de</p><p>acesso do usuário, com insights,</p><p>gráficos, linhas de tendência, visão total</p><p>do estoque e relatórios para análises não</p><p>automatizadas.</p><p>Gera relatórios pré-</p><p>definidos configurados</p><p>pelo usuário, assim</p><p>como gerência os</p><p>alertas e os acessos</p><p>por meio de</p><p>requisições ao banco</p><p>de dados.</p><p>analisa os dados no</p><p>banco, para gerar</p><p>oportunidades de</p><p>negócio de maneira</p><p>automatizada, criando</p><p>informação e valor para</p><p>o cliente</p><p>Nível 02 – Back-End</p><p>Fonte: Autoria própria.</p><p>Assim que arquitetado o projeto foi feita sua execução, detalhada a seguir.</p><p>15.1 Execução do Projeto</p><p>A partir da escolha das ferramentas para executar o software, foi dado início a</p><p>construção do aplicativo, onde houve as fases de desenvolvimento e da construção</p><p>do ambiente do software, sendo estudado com máximo cuidado as definições dos</p><p>requisitos passados pelo cliente.</p><p>No início do projeto foi descrito que a contribuição do software para o cliente</p><p>seria de enorme importância, levando em consideração a diminuição de tempo para</p><p>análises e relatórios necessários, podendo ser agora realizado pelo próprio dono do</p><p>negócio, assim agilizando processos e auxiliando em tarefas que antes poderiam ser</p><p>52</p><p>feitas de forma que o erro humano estivesse muito mais presente.</p><p>Para segunda etapa do projeto, foi especificado como seria cada parte do</p><p>sistema e como iria se comunicar com as outras partes, para uni-las ao final, trazendo</p><p>uma maior atividade para o design do projeto, colocando em pauta os requisitos que</p><p>a empresa trouxe para a criação e a solicitação do software. Na figura 15, há o design</p><p>realizado pelo grupo que serviu para o planejamento de como as telas seriam</p><p>padronizadas.</p><p>Figura 17 – Projeto de Design do Sistema feito no Canva</p><p>53</p><p>Fonte: Autoria Própria.</p><p>Após a análise e design, junto com a implementação do sistema do software,</p><p>foram elaboradas telas, como demonstradas na figura 16, com as funções:</p><p>• Tela Login: tela de segurança para acesso do dono do negócio e dos</p><p>funcionários;</p><p>• Tela de Home: tela inicial, onde foi dividida em três partes:</p><p>o Cadastro: Dentro do cadastro existem duas subtelhas: cadastro de</p><p>novos produtos, onde usuário poderá fazer cadastro destes ou até</p><p>mesmo excluí-los, e cadastro de lotes, onde poderá cadastrar novos</p><p>lotes, estes dois contendo os campos necessários para isso;</p><p>o Catálogo: possui informações de todos os produtos, como marca,</p><p>categoria, seu estoque mínimo e o estoque máximo de cada um, onde o</p><p>usuário poderá pesquisar por um produto específico;</p><p>o Dashboard: local onde os gráficos se encontram, subdividido em três</p><p>subtelhas: na primeira os gráficos de faturamento da loja; na segunda</p><p>pode visualizar e fazer o controle de estoque; e por último a tela do RH</p><p>(Recursos Humanos), com a produtividade dos funcionários e</p><p>avaliações dos clientes.</p><p>Fora isso, foi determinado pelos requisitos, que seria necessário a criação de</p><p>54</p><p>um banco de dados com suas tabelas definidas. Ao longo do projeto, houve diversas</p><p>alterações, baseadas em melhor desempenho e máxima normalização do banco de</p><p>dados, assim, as tabelas definidas ao final foram:</p><p>• Avaliação: avaliações feitas pelos clientes, com nível de insatisfação;</p><p>• Categoria: contêm as principais categorias que os produtos apresentam;</p><p>• Cliente: tabela com informações sobre clientes fidelidade;</p><p>• Descarte: produtos que foram descartados de cada estoque e lote;</p><p>• Estoque: quantidade de produtos no estoque de acordo com a data de registro;</p><p>• Fornecedor: informações importantes dos fornecedores, associando-os a uma</p><p>categoria;</p><p>• Funcionário: toda a informação de cada funcionário que trabalha na loja;</p><p>• Login: usuário e senha para pessoas autorizadas;</p><p>• Lote: data de entrega e validade dos lotes, assim como seus valores;</p><p>• Produto: contêm todas as informações principais e inalteráveis dos produtos;</p><p>• Promoção: valor da promoção em porcentagem, bem como suas informações;</p><p>• Venda: apresenta a data da venda, seus valores, o funcionário que realizou a</p><p>venda, e, se houve, avaliação e promoção para tal venda.</p><p>Para a realização da terceira fase da construção do software, aquela que</p><p>demanda mais atividade ativa do grupo, foi necessário a divisão em três partes: Front-</p><p>end, Back-end e Integração. Com essa divisão o projeto foi construído de forma</p><p>paralela entres os grupos, demostrado em reuniões desde o começo do projeto, com</p><p>o objetivo que cada grupo esteja alinhado um com o outro, mostrando os resultados</p><p>construídos até aquele certo momento, além disso, houve também reuniões entre os</p><p>grupos no privado para desenvolvimento de cada parte eficientemente.</p><p>O grupo do Front-end ficou responsável, da codificação dos visuais e dos</p><p>comportamentos esperados dos objetos, de acordo com a especificações dos</p><p>requisitos dados pelo cliente e do design definidos. Além disso, trabalhando na</p><p>formulação das interfaces das telas de dashboard, tela de introdução, tela de cadastro</p><p>55</p><p>para itens do banco de dados e a tela de estoque, mostrando mensagens de erros,</p><p>ou de sucesso em buscas e por fim de login.</p><p>Já o grupo Back-end foi responsável por todos os procedimentos realizados no</p><p>Banco de Dados (BD), desde toda estrutura e inserção de todos os dados até as</p><p>pesquisas (querys) utilizadas no aplicativo para demonstrar os dados, onde os</p><p>participantes realizaram a criação de tabelas em conjunto e auxílio de outros</p><p>participantes do grupo de integração, que possuem experiências mais avançadas no</p><p>aplicativo e na linguagem SQL, foi feita adição de dados com procedures e os dados</p><p>foram analisados e corrigidos posteriormente pelo grupo do Back-end. Assim que</p><p>criado, houve ainda algumas reuniões para determinar quais seriam os dados e como</p><p>eles seriam acrescentados no aplicativo, isso com o grupo de integração, novamente,</p><p>já que os códigos para pesquisa viriam do Back-end e os de integração, do grupo de</p><p>integração. Deste modo, após algumas alterações realizadas no Banco de Dados</p><p>(BD), para sua normalização e conexões apropriadas, os códigos utilizados para</p><p>criação das tabelas finais (Apêndice A) e as tabelas do projeto com os dados inseridos</p><p>foram adquiridas.</p><p>Assim, com os códigos prontos e os dados inseridos em cada tabela, foi iniciado</p><p>o projeto de tela dos Dashboards, uma das telas principais para o projeto SAD. Para</p><p>isso a tela foi dividida em:</p><p>• Estoque: Giro de estoque, Estoque mínimo e máximo, perdas no estoque;</p><p>• Faturamento: Faturamento por mês, Faturamento por categoria, Ticket Médio,</p><p>Quantidade de Vendas;</p><p>• Recursos Humanos: Índice de reclamação dos clientes, Produtividade.</p><p>Com os gráficos já definidos, o grupo do Back-end ficou responsável por</p><p>produzir as pesquisas destes dados nas tabelas, uma pessoa ficou responsável por</p><p>essa parte e as outras ficou auxiliando o grupo de integração e Front-end, com as</p><p>interfaces das telas inicial, login e dashboard, e com a integração já que estes</p><p>participantes possuíam mais experiência com o aplicativo. Portanto, o trabalho</p><p>realizado pelo Back-end pode ser observado pelos dados apresentados e como foram</p><p>apresentados, como as tabelas, gráficos, com uma grande comunicação com o grupo</p><p>de integração.</p><p>56</p><p>Por fim, o grupo de integração como próprio nome significa, é o responsável</p><p>por associar as partes dos demais grupos, juntando cada uma das interfaces</p><p>desenvolvidas pelo time do Front-end e com o Banco de Dados desenvolvido pelos</p><p>DBAs (DataBase Architect) do time de Back-end. Tendo como principal objetivo, além</p><p>de conectar essas partes, desenvolver as funcionalidades, responsividades e pelo</p><p>processo de acurácia do software solicitado pelo stakeholder.</p><p>Por fim, pode-se destacar que cada grupo ajudou ao outro em suas</p><p>responsabilidades, para que nada saía do esperado e tenha uma ótima funcionalidade</p><p>ao cliente. Ao final do projeto, toda a codificação e banco de dados foram enviados</p><p>para um site de repositório, assim, o código-fonte pode ser encontrado no repositório</p><p>de William Publio (2023) no GitHub, juntamente com os outros integrantes fazendo</p><p>parte desta equipe.</p><p>57</p><p>16 APLICATIVO E SUAS FUNCIONALIDADES</p><p>Para complementar a documentação é definido as funções e como o aplicativo</p><p>funciona. A partir de um aplicativo intuitivo tem-se a tela de Login (figura 18), sendo</p><p>essa a primeira tela a aparecer, nela, há um campo para colocar o login e a senha,</p><p>assim que inserido o aplicativo checa os dados no banco de dados e caso a senha ou</p><p>o login estejam errados, aparece uma mensagem na tela informando o erro (figura 19)</p><p>e caso esteja correto irá aparecer uma mensagem de sucesso (figura 20).</p><p>Figura 18 – Tela de Login do Aplicativo</p><p>Fonte: Autoria própria.</p><p>Figura 19 – Mensagem de Erro</p><p>Fonte: Autoria própria.</p><p>Figura 20 – Mensagem de Sucesso</p><p>Fonte: Autoria própria.</p><p>Assim, a tela inicial (figura 21) é apresentada com Welcome (Bem-Vindo em</p><p>inglês) e o logo do grupo, nela há alguns botões ao lado esquerdo da tela, sendo eles,</p><p>Inicial, com ícone de casa, que ao apertar retornam para a mesma tela, Dashboards,</p><p>com ícone de gráfico, Catálogo, com ícone de livro, e Cadastro, com ícone de caneta,</p><p>além do ícone para abrir o menu, sendo ele as três listras acima de todos os botões.</p><p>Figura 21 – Tela Inicial do Aplicativo</p><p>Fonte: Autoria própria.</p><p>Ao abrir a tela de Dashboards (figura 22, figura 23 e figura 24), tem-se três</p><p>58</p><p>botões com dizeres: “Faturamento”, “Estoque”, “RH”, ao apertar em qualquer um</p><p>destes irá aparecer o esquema de gráficos para a análise do desempenho do</p><p>comércio. Estes indicadores foram solicitados pelo stakeholder e a partir de</p><p>pesquisas, foram definidos como e por que seriam apresentados, todos detalhados</p><p>no apêndice B com seus códigos de pesquisa.</p><p>Figura 22 – Tela de Dashboard de Faturamento</p><p>Fonte: Autoria própria.</p><p>Figura 23 – Tela de Dashboard de Estoque</p><p>Fonte: Autoria própria.</p><p>Figura 24 – Tela de Dashboard de Recursos Humanos</p><p>Fonte: Autoria própria.</p><p>Na próxima tela, apresenta-se a tela de Catálogo (figura 25), onde são</p><p>localizados todos os produtos, com suas informações gerais, porém, ao apertar no</p><p>nome de qualquer produto é aberto uma tela com informações mais detalhadas e um</p><p>gráfico de velocímetro que mostra o estoque atual, juntamente com indicações de seu</p><p>estoque mínimo e máximo. Um exemplo com o produto “Açúcar Cristal” foi mostrado</p><p>na figura 26.</p><p>Figura 25 – Tela de Catálogo</p><p>Fonte: Autoria própria.</p><p>Figura 26 – Tela de Catálogo Para o Produto “Açúcar Cristal”</p><p>Fonte: Autoria própria.</p><p>59</p><p>Por fim, o último botão direciona o usuário para a tela de Cadastro (figura 27),</p><p>o qual, apresenta dois botões, escritos: “Produtos” e “Lotes”, ao apertar em algum dos</p><p>botões aparecerá uma nova tela com campos para preencher com as informações</p><p>necessárias para o cadastro, caso não haja alguma das informações obrigatórias o</p><p>aplicativo não registrará o dado no banco de dados, recebendo apenas estes dados</p><p>se corretos. Na figura 28 e figura 29, há as duas telas com exemplos de dados.</p><p>Figura 27 – Tela de Sistema de Cadastro</p><p>Fonte: Autoria própria.</p><p>Figura 28 – Exemplo de Registro de Produto</p><p>Fonte: Autoria própria.</p><p>Figura 29 – Exemplo de Registro de Lote</p><p>Fonte: Autoria própria.</p><p>Com isso, as telas contidas no aplicativo foram todas apresentadas. Entretanto,</p><p>a entrada de dados para vendas e avaliações foram um dos problemas observados</p><p>no decorrer do projeto, pois teria de haver uma integração com outro sistema para</p><p>obter estes dados, sendo estes de responsabilidade do dono do mercado. Uma</p><p>solução que poderia ser utilizada para as avaliações seria o de disponibilizar um QR-</p><p>Code no estabelecimento direcionando o cliente a um formulário no Google Forms,</p><p>onde os dados seriam automaticamente enviados para o banco de dados local do</p><p>CEO. Todavia, para adquirir dados de vendas seria necessário que houvesse outro</p><p>software para atualização automática de registros de cada venda, o que, como dito</p><p>anteriormente, seria de responsabilidade do CEO, assim, mesmo que solicitada tal</p><p>60</p><p>função no aplicativo não foi possível executar por conta do tempo e complexidade que</p><p>deveriam ser aplicadas.</p><p>61</p><p>17 CONCLUSÕES</p><p>Em vista de tudo que foi retratado acima, podemos perceber a importância dos</p><p>SADs nos dias de hoje em seus mais diversos componentes, além de expor com</p><p>clareza o conhecimento geral necessário para entender os processos que involucram</p><p>a construção de um software deste gênero.</p><p>No contexto atual do mundo tecnológico, cada vez mais e mais informação tem</p><p>sido transformada em dados com velocidade e em volumes inestimáveis, tais dados</p><p>isoladamente não podem representar informações do mundo real refletidas em um</p><p>banco de dados, porém são capazes de demonstrar seu potencial na presença de um</p><p>software de auxílio para a tomada de decisões.</p><p>Esses softwares não limitados pela capacidade humana, ajuntam e coordenam</p><p>os dados segundo modelos pré-estabelecidos para gerar possíveis informações a</p><p>serem interpretadas pelos seres humanos, tornando possível não somente a gestão</p><p>de assets através do mundo todo, mas a criação de oportunidades de negócio com</p><p>base em análise dados ao mais baixo nível, que levariam dias para serem analisados</p><p>por seres-humanos, tornando esses softwares ferramentas de auxilio e que</p><p>dependemos muito nos dias de hoje.</p><p>Com representatividade no pedido de nosso cliente fictício, foi</p><p>possível</p><p>representar os processos no modelo cascata, desde o recebimento dos requisitos,</p><p>refinamento dos mesmos com base na viabilidade técnica e legal, planejamento de</p><p>desenvolvimento e estruturação dos pré-requisitos como a base de dados,</p><p>embasando assim, com sucesso, nosso planejamento para a construção do software</p><p>em questão.</p><p>Em vista de tudo que foi retratado acima, podemos perceber a importância dos</p><p>SADs nos dias de hoje em seus mais diversos componentes, além de expor com</p><p>clareza o conhecimento geral necessário para entender os processos que involucram</p><p>a construção de um software deste gênero.</p><p>No contexto atual do mundo tecnológico, cada vez mais e mais informação tem</p><p>sido transformada em dados com velocidade e em volumes inestimáveis, tais dados</p><p>isoladamente não podem representar informações do mundo real refletidas em um</p><p>banco de dados, porém são capazes de demonstrar seu potencial na presença de um</p><p>62</p><p>software de auxílio para a tomada de decisões.</p><p>Esses softwares não limitados pela capacidade humana, ajuntam e coordenam</p><p>os dados segundo modelos pré-estabelecidos para gerar possíveis informações a</p><p>serem interpretadas pelos seres humanos, tornando possível não somente a gestão</p><p>de assets através do mundo todo, mas a criação de oportunidades de negócio com</p><p>base em análise dados ao mais baixo nível, que levariam dias para serem analisados</p><p>por seres-humanos, tornando esses softwares ferramentas de auxilio e que</p><p>dependemos muito nos dias de hoje.</p><p>Com representatividade no pedido de nosso cliente fictício, foi possível</p><p>representar os processos no modelo cascata, desde o recebimento dos requisitos,</p><p>refinamento deles com base na viabilidade técnica e legal, planejamento de</p><p>desenvolvimento e estruturação dos pré-requisitos como a base de dados,</p><p>embasando assim, com sucesso, nosso planejamento para a construção do software</p><p>em questão.</p><p>Seguindo a fase de desenvolvimento, foi realizado uma separação de times</p><p>para suportar e direcionar o processo criativo de implementação, garantindo fidelidade</p><p>aos requisitos e funcionalidades previamente estabelecidos.</p><p>O MySQL foi utilizado para implementação do banco de dados previamente</p><p>planejado no BR modelo, tendo sua versão primaria alterada seguidas vezes de</p><p>acordo com as necessidades apresentadas pelo front e back-ends para atingir os</p><p>requisitos do cliente. Procedures, índices e outras técnicas tiveram de ser aplicadas</p><p>para otimizar as buscas e atingir a usabilidade esperada dado o ambiente de</p><p>implantação do software, além de otimizar os tempos de busca e estabelecer regras</p><p>para manutenção da integridade de dados.</p><p>Já quanto ao desenvolvimento, um time foi empregado como catalisador na</p><p>relação entre o back-end, o front-end e o banco de dados, este time foi chamado de</p><p>integração. Tendo como única e importantíssima responsabilidade de agir como um</p><p>sincronizador, atuando como gatilho para refletir as mudanças técnicas e de limitações</p><p>de um time em cada um dos outros dois, mantendo a uniformidade e buscando o mais</p><p>alto nível de qualidade no desenvolvimento direcionado.</p><p>O time de front-end e back-end se ocuparam na procura da implementação das</p><p>63</p><p>features mantendo o padrão do Qt Designer ao máximo possível para aproveitar a</p><p>eficiência da ferramenta, para depois, por meio do importe de bibliotecas e codificação</p><p>personalizada em Python, refinar e atingir soluções para as funcionalidades</p><p>requisitadas.</p><p>Este time também foi grandemente influenciado pelas mudanças de requisitos,</p><p>uma vez que nem todos puderam ser atendidos sem alteração, foi necessária uma</p><p>busca incessante por soluções análogas que entregassem por outro caminho o</p><p>resultado esperado pelo cliente, desencadeando inúmeros gatilhos e alterações.</p><p>Com todas as mudanças aplicadas para refinar o protótipo e os modelos</p><p>intermediários até chegar à versão final, foi possível implementar o software proposto</p><p>sem grandes alterações de escopo e com o apoio das fases iniciais de planejamento</p><p>que nos serviram por bussola durante a exploração de soluções.</p><p>64</p><p>REFERÊNCIAS</p><p>BRUSCHI, Adriano; BREVE, Fabricio; GIORDANO, Luís. Construindo Sistemas de</p><p>Apoio à Decisão. Trabalho acadêmico (Sistemas de Informação) - Universidade</p><p>Estadual Paulista, [S. l.]. Disponível em:</p><p>https://www.fabriciobreve.com/trabalhos/sad.php#.ZEbNid3MKaG. Acesso em: 16</p><p>mar. 2023.</p><p>MACHADO, Francis. Limitações e deficiências no uso da informação para tomada de</p><p>decisões. Caderno de pesquisas em administração, São Paulo, v. 9, n. 2, p. 59-</p><p>63, 2002. Disponível em:</p><p>http://tecspace.com.br/paginas/aula/faccamp/TI/Texto13.pdf. Acesso em: 17 de mar.</p><p>de 2023.</p><p>ARONSON, Jay ; LIANG, Ting-Peng; MACCARTHY, Richard. Decision support</p><p>systems and intelligent systems. Upper Saddle River, NJ, USA:: Pearson Prentice-</p><p>Hall, 2005. Disponível em: http://sutlib2.sut.ac.th/sut_contents/H86360.pdf. Acesso</p><p>em: 17 de mar. de 2023.</p><p>CLERICUZI, Adriana; JÚNIOR, Tarcísio. Discussão sobre modelos para</p><p>desenvolvimento de sistemas de apoio a decisão específico. Simpósio de</p><p>Excelência em Gestão e Tecnologia, p. 01-10, 2009. Disponível em:</p><p>https://www.aedb.br/seget/arquivos/artigos09/370_370_artigo.pdf. Acesso em: 17 de</p><p>mar. de 2023.</p><p>ENCONTRO NAC. DE ENG. DE PRODUÇÃO - ENEGEP, XXIII, 2003, Ouro Preto,</p><p>MG, Brasil. Desenvolvimento de um sistema de apoio à decisão (SAD) para</p><p>previsão de estoques com suporte estatístico [...]. 2003. p. 8. Disponível em:</p><p>https://abepro.org.br/biblioteca/enegep2003_tr0902_0830.pdf. Acesso em: 17 de</p><p>mar. de 2023.</p><p>VINICIUS, Douglas. Sistema de Apoio à Decisão (SAD). [S. l.], 2015. Disponível</p><p>em: addowirole.blogspot.com/p/sistema-de-apoio-decisao-sad.html. Acesso em: 17</p><p>mar. 2023.</p><p>NEW Chat. In: ChatGPT. Países Baixos, 1991. Disponível em:</p><p>https://chat.openai.com/chat. Acesso em 17 de mar. de 2023.</p><p>CLERICUZI, Adriana; JÚNIOR, Tarcísio. Discussão sobre modelos para</p><p>desenvolvimento de sistemas de apoio a decisão específico. Simpósio de</p><p>Excelência em Gestão e Tecnologia, p. 01-10, 2009. Disponível em:</p><p>https://www.aedb.br/seget/arquivos/artigos09/370_370_artigo.pdf. Acesso em: 17 de</p><p>mar. de 2023.</p><p>BARBOSA, Gilka Rocha; ALMEIDA, Adiel Teixeira de; COSTA, Ana Paula Cabral</p><p>Seixas. SAD: Análise da percepção de usuários e desenvolvedores através de</p><p>análise fatorial. Production, v. 16, p. 216-228, 2006. Disponível em:</p><p>https://www.prod.org.br/article/10.1590/S0103-</p><p>65132006000200004/pdf/1574685864-16-2-216.pdf. Acesso em: 18 de mar. de</p><p>65</p><p>2023.</p><p>MACEDO, Mateus Henrique Basso; SALGADO, Eduardo Gomes. Gerenciamento de</p><p>risco aplicado ao desenvolvimento de software. Sistemas & Gestão, v. 10, n. 1, p.</p><p>158-170, 2015. Disponível em:</p><p>https://www.revistasg.uff.br/sg/article/view/V10N1A13/SGV10N1A13. Acesso em: 20</p><p>de mar. de 2023.</p><p>LEOPOLDINO, Claúdio. Avaliação de Riscos em Desenvolvimento de Software.</p><p>Orientador: Denis Borenstein. 2004. 151 f. Dissertação de mestrado (Pós-graduação</p><p>em administração) - Escola de Administração, Universidade Federal do Rio Grande</p><p>do Sul, Porto Alegre, 2004. Disponível em:</p><p>https://www.lume.ufrgs.br/bitstream/handle/10183/4616/000413617.pdf?sequence=.</p><p>Acesso em: 20 de mar. de 2023.</p><p>ANTUNES, Daniel. 6 Riscos Gerenciais do Desenvolvimento de Software. [S. l.],</p><p>2019. Disponível em: https://www.gobacklog.com/blog/riscos-gerenciais-</p><p>desenvolvimento-software/. Acesso em: 21 mar. 2023.</p><p>AMARAL, Fernando. Introdução à ciência de dados: mineração de dados e big</p><p>data. Alta Books Editora, 2016. Disponível em:</p><p>https://books.google.com.br/books?id=hAlVDQAAQBAJ. Acesso em: 18 de mar. de</p><p>2023.</p><p>O QUE é um banco de dados?. Disponível em: https://aws.amazon.com/pt/what-</p><p>is/database/. Acesso em: 20 mar. 2023.</p><p>O QUE é um Banco de Dados?. Disponível em:</p><p>https://www.oracle.com/br/database/what-is-database/. Acesso em: 20 mar. 2023.</p><p>MELO, Daniel. O que é SQL? [Guia para iniciantes]. Disponível em:</p><p>https://tecnoblog.net/responde/o-que-e-sql/. Acesso em:</p><p>21 mar. 2023.</p><p>SQL – o que é e como funciona na prática?. 10 ago. 2020. Disponível em:</p><p>https://www.pravaler.com.br/sql-o-que-e-e-como-funciona-na-pratica/. Acesso em: 22</p><p>mar. 2023.</p><p>SQL: Aprenda a utilizar a chave primária e a chave estrangeira. [S. l.], 2020.</p><p>Disponível em: https://www.devmedia.com.br/sql-aprenda-a-utilizar-a-chave-primaria-</p><p>e-a-chave-estrangeira/37636. Acesso em: 23 mar. 2023.</p><p>PISA, Pedro. O que é e como usar o MySQL?. TechTudo, [S. l.], 17 abr. 2012.</p><p>Disponível em: https://www.techtudo.com.br/noticias/2012/04/o-que-e-e-como-usar-</p><p>o-mysql.ghtml. Acesso em: 25 mar. 2023.</p><p>Disponível em: https://www.devmedia.com.br/introducao-ao-mysql/27799. Acesso</p><p>em: 25 de mar. de 2025.</p><p>MILANI, André. MySQL - guia do programador. Novatec Editora, 2007. Disponível</p><p>66</p><p>em: https://books.google.com.br/books?hl=pt-BR&lr=&id=81EwMDA-</p><p>pC0C&oi=fnd&pg=PA19&dq=Mysql&ots=xPDt76qU_E&sig=jlx27Fax5TYXXiTgSE7S</p><p>Ed9H-3Y#v=onepage&q=Mysql&f=false. Acesso em: 20 de mar. de 2023.</p><p>SILVA, Gabriel. Memórias: Circuitos Lógicos. UFRJ. Disponível em:</p><p>https://dcc.ufrj.br/~gabriel/circlog/Memoria.pdf. Acesso em: 23 de mar. de 2023.</p><p>BOGHI, Cláudio. Ranking de Sistemas de Bancos de Dados mais usados em</p><p>2021/2022. RedeTV, [S. l.], 6 abr. 2022. Disponível em:</p><p>https://www.redetv.uol.com.br/colunistas/desvendando-a-tecnologia/ranking-de-</p><p>sistemas-de-bancos-de-dados-mais-usados-em-2021-2022. Acesso em: 23 mar.</p><p>2023.</p><p>CLOUD, Google. O que é um banco de dados relacional?. [S. l.], 20--. Disponível</p><p>em: https://cloud.google.com/learn/what-is-a-relational-database?hl=pt-br. Acesso</p><p>em: 23 mar. 2023.</p><p>OLIBONI, Daniel. O que é um SGBD?. [S. l.], 8 jun. 2016. Disponível em:</p><p>https://www.oficinadanet.com.br/post/16631-o-que-e-um-sgbd. Acesso em: 23 mar.</p><p>2023.</p><p>SGBD: o que é, como funciona e principais vantagens. [S. l.], 22 jan. 2021.</p><p>Disponível em: https://www.fiveacts.com.br/sgbd/. Acesso em: 23 mar. 2023.</p><p>DIAMOND, Paul. Armazenamento em nuvem vs. servidores locais: nove</p><p>considerações importantes. [S. l.], 25 set. 2020. Disponível em:</p><p>https://www.microsoft.com/pt-br/microsoft-365/business-insights-</p><p>ideas/resources/cloud-storage-vs-on-premises-servers. Acesso em: 23 mar. 2023.</p><p>TORANZO, Bruno. DATA WAREHOUSE: O QUE É, PARA QUE SERVE E COMO</p><p>FUNCIONA. Insper, São Paulo, 1 nov. 2022. Disponível em:</p><p>https://www.insper.edu.br/noticias/data-warehouse-o-que-e-para-que-serve-e-como-</p><p>funciona/?gclid=CjwKCAjw5dqgBhBNEiwA7PryaIwEOpc_wHf88x8rDwsyT2ebtRf6qT</p><p>bwwPdvoeCzH58JDrbXJ1tJ-RoC62QQAvD_BwE. Acesso em: 23 mar. 2023.</p><p>PIMENTEL, Renato. Modelo entidade-relacionamento (MER). FACOM, 2022.</p><p>Disponível em: https://www.facom.ufu.br/~rpimentel/files/ges013-2022-</p><p>1/ges013.er.pdf. Acesso em: 16 de mar. de 2023.</p><p>PIMENTEL, Renato. Mapeamento do MER para relacional. FACOM, 2022.</p><p>Disponível em: https://www.facom.ufu.br/~rpimentel/files/ges013-2022-</p><p>1/ges013.map.pdf. Acesso em: 17 de mar. de 2023.</p><p>SANTOS, Hudyson. E-commerce de bebidas. Orientador: Prof. Ma. Diomara</p><p>Martins Reigato Barros. 2022. 34 p. Trabalho de Conclusão de Curso (Graduação)</p><p>(Curso de Análise e Desenvolvimento de Sistemas) - Fundação Educacional do</p><p>Município de Assis, Assis/SP, 2022. Disponível em:</p><p>https://cepein.femanet.com.br/BDigital/arqTccs/2011550343.pdf. Acesso em: 17 mar.</p><p>2023.</p><p>67</p><p>DIAGRAMAS UML no Visio. [S. l.], 20--. Disponível em:</p><p>https://support.microsoft.com/pt-br/office/diagramas-uml-no-visio-ca4e3ae9-d413-</p><p>4c94-8a7a-38dac30cbed6#OfficeVersion=Web. Acesso em: 17 mar. 2023.</p><p>BACURAU, Rodrigo M.; LEAL, Brauliro G.; RAMOS, Ricardo A. Uma Abordagem</p><p>para a Construção de Diagramas da UML Concomitante à Prototipação de Interface.</p><p>2022. Disponível em: http://www.univasf.edu.br/~brauliro.leal/pesquisa/Bacurau-</p><p>5.pdf. Acesso em: 20 de mar. de 2023.</p><p>MANIERO, Antonio. Qual a diferença entre MER (Modelo de Entidade</p><p>Relacionamento) e DER (Diagrama de Entidade Relacionamento)?. Rio Claro,</p><p>2018. Disponível em: https://pt.stackoverflow.com/questions/328342/qual-a-</p><p>diferen%C3%A7a-entre-mer-modelo-de-entidade-relacionamento-e-der-diagrama-d.</p><p>Acesso em: 20 mar. 2023.</p><p>MICROSOFT. O que é modelagem de dados?. [S. l.], 20--. Disponível em:</p><p>https://powerbi.microsoft.com/pt-br/what-is-data-modeling/. Acesso em: 23 de mar.</p><p>de 2023.</p><p>DATE, C.J. Introdução a Sistemas de Bancos de Dados. São Paulo: Grupo GEN,</p><p>2004. E-book. ISBN 9788595154322. Disponível em:</p><p>https://integrada.minhabiblioteca.com.br/#/books/9788595154322/. Acesso em: 24</p><p>mar. 2023.</p><p>NETO, Joel. MER e DER: Modelagem de Bancos de Dados. Rio de Janeiro, 2014.</p><p>Disponível em: https://www.devmedia.com.br/mer-e-der-modelagem-de-bancos-de-</p><p>dados/14332. Acesso em: 24 mar. 2023.</p><p>ESPINHA, Roberto. Processo de desenvolvimento de software: entenda como</p><p>funciona na prática. Artia. Disponível em: https://artia.com/blog/processo-de-</p><p>desenvolvimento-de-software. Acesso em: 17 de mar. de 2023.</p><p>Disponível em:</p><p>https://edisciplinas.usp.br/pluginfile.php/2939594/mod_resource/content/1/Aula02_M</p><p>odelosProcessos.pdf. Acesso em: 22 de mar. de 2023.</p><p>MYERS, Brad A. User interface software technology. ACM Computing Surveys</p><p>(CSUR), v. 28, n. 1, p. 189-191, 1996. Disponível em:</p><p>https://dl.acm.org/doi/pdf/10.1145/234313.234394. Acesso em: 21 de mar. de 2023.</p><p>PONTES, Adéle Malta; ORTH, Afonso Inácio. Uma proposta de interface de software</p><p>orientada à linguagem de sinais. In: Anais. II Workshop sobre Fatores Humanos</p><p>em Sistemas Computacionais. Campinas: Unicamp. 1999. p. 1-6. Disponível em:</p><p>https://www.unicamp.br/~ihc99/Ihc99/AtasIHC99/art31.pdf. Acesso em: 21 de mar. de</p><p>2023.</p><p>O QUE é uma Interface (sistema ou software). Disponível em:</p><p>https://www.significados.com.br/interface/. Acesso em: 21 de mar. de 2023.</p><p>68</p><p>INTERFACE. In: DICIO. [S. l.: s. n.], 2009. Disponível em:</p><p>https://www.dicio.com.br/interface/. Acesso em: 21 mar. 2023.</p><p>COMO O design para sistemas pode ajudar a sua empresa. In: HOMEM</p><p>MÁQUINA. Homem Máquina. [S. l.], 22 jul. 2021. Disponível em:</p><p>https://www.homemmaquina.com.br/design-para-sistemas-importancia/. Acesso em:</p><p>22 mar. 2023.</p><p>SOUZA, Nathan. Design Systems: exemplos práticos. Alura, [s. l.], 16 set. 2022.</p><p>Disponível em: https://www.alura.com.br/artigos/design-systems-exemplos-praticos.</p><p>Acesso em: 22 mar. 2023.</p><p>ELMASRI, Ramez. Sistemas de Banco de Dados. 7. ed. [S. l.]: Pearson, 2019.</p><p>1152 p. ISBN 8543025001. Disponível em:</p><p>https://plataforma.bvirtual.com.br/Leitor/Publicacao/168492/pdf/98. Acesso em: 21</p><p>de abr. de 2023.</p><p>BR Modelo Web. In: BrModelo. Santa Catarina, 2005. Disponível em:</p><p>https://www.brmodeloweb.com. Acesso em: 21 de abr. de 2023.</p><p>FRANCK, Kewry Mariobo; PEREIRA, Robson Fernandes; DANTAS FILHO, Jerônimo</p><p>Vieira. Diagrama Entidade-Relacionamento: uma ferramenta para modelagem de</p><p>dados conceituais em Engenharia de Software. Research, Society and</p><p>Development, v. 10, n. 8, p. e49510817776-e49510817776, 2021. Disponível em:</p><p>https://rsdjournal.org/index.php/rsd/article/view/17776/15626. Acesso em: 21 de abr.</p><p>de 2023.</p><p>TIBCO. What is a Logical Data Model?. TIBCO, [s. l.], 2023. Disponível em:</p><p>https://www.tibco.com/reference-center/what-is-a-logical-data-model. Acesso em: 20</p><p>abr. 2023.</p><p>MODELAGEM lógica de dados. Erwin by Quest, [s. l.]. Disponível em:</p><p>https://www.erwin.com/br-pt/solutions/data-modeling/logical.aspx. Acesso em: 20 abr.</p><p>2023.</p><p>SOUTO, Mario. Front-end, Back-end e Full Stack. Alura, [S. l.], 17 jan. 2023.</p><p>Disponível em: https://www.alura.com.br/artigos/o-que-e-front-end-e-back-end.</p><p>Acesso em: 22 abr. 2023.</p><p>SANTOS, Diego. Plataforma Online para Criação de Jogos Personalizados com</p><p>Labirintos para Introdução à Lógica de Programação. Orientador: Profa. Andrea</p><p>Schwertner Charão. 2022. 32 p. Trabalho Final de Graduação (Curso de</p><p>Bacharelado em Sistemas de Informação) - Universidade Federal de Santa Maria,</p><p>Santa Maria, RS, 2022. Disponível em:</p><p>https://repositorio.ufsm.br/bitstream/handle/1/26174/TG_Diego%20Viana%20dos%2</p><p>0Santos.pdf?sequence=1&isAllowed=y. Acesso em:</p><p>22 abr. 2023.</p><p>ABOUT Python. In: Python. Países Baixos, 1991. Disponível em:</p><p>https://www.python.org/about/. Acesso em: 23 abr. 2023.</p><p>69</p><p>SOMMERVILLE, Ian. Engenharia de Software. 9. ed. São Paulo: Pearson</p><p>Education, 2011. 532 p. Disponível em:</p><p>https://plataforma.bvirtual.com.br/Leitor/Publicacao/2613/pdf/48. Acesso em: 22 mar.</p><p>2023.</p><p>HULE, Vishal. Python MySQL Database Connection using MySQL Connector.</p><p>Disponível em: https://pynative.com/python-mysql-database-connection/. Acesso em:</p><p>09 de nov. de 2023.</p><p>The Qt Company Ltd - Qt for Python documentation. Disponível em:</p><p>https://doc.qt.io/qtforpython-6/index.html. Acesso em: 14 de nov. de 2023.</p><p>ORACLE – MySQL Documentation Browser. Disponível em:</p><p>https://dev.mysql.com/doc/. Acesso em: 05 de nov. de 2023.</p><p>SCHIAVANI, Rodrigo. 3 indicadores de estoque para análise e controle do setor.</p><p>SmartHint, 2022. Disponível em: https://www.smarthint.co/indicadores-de-estoque/.</p><p>Acesso em: 21 out. 2023.</p><p>ANDRADE, André. Gráficos - Financeiro Projeção de Faturamento Diário x</p><p>Recebido. ReceitaNet, 2019. Disponível em: https://blog.receitanet.net/graficos-</p><p>financeiro-projecao-de-faturamento-diario-x-recebido/. Acesso em: 31 out. 2023.</p><p>Indústria de A - Z: Faturamento. Portal da Indústria. Disponível em:</p><p>https://www.portaldaindustria.com.br/industria-de-a-z/faturamento/. Acesso em: 31</p><p>out. 2023.</p><p>Estoque Máximo: para que serve e como calcular. TOTVS, 2023. Disponível em:</p><p>https://www.totvs.com/blog/gestao-varejista/estoque-maximo/. Acesso em: 31 out.</p><p>2023.</p><p>O que é CSAT? Para que serve?. Blog da Zendesk, 2023. Disponível em:</p><p>https://www.zendesk.com.br/blog/csat/. Acesso em: 31 out. 2023.</p><p>Como Calcular o preço de venda de um produto. CobreFácil, 2022. Disponível em:</p><p>https://www.cobrefacil.com.br/blog/calcular-preco-venda-produto. Acesso em: 31 out.</p><p>2023.</p><p>Conheça 7 indicadores de estoque e por que utilizá-los. Olist Blog, 2023. Disponível</p><p>em: https://olist.com/blog/pt/gestao-empresarial/operacao-e-logistica/principais-</p><p>indicadores-de-estoque/. Acesso em: 31 out. 2023.</p><p>William Publio. Projeto APS: Stock Virtual Assistant. 2023. Disponível em: URL do</p><p>Repositório. Acesso em: 24/11/2023.</p><p>70</p><p>APÊNDICE A – Tabelas do Banco de Dados e Suas Especificações</p><p>As figuras a seguir contêm os códigos de criação e seus metadados os quais</p><p>foram utilizados no Banco de Dados feito no MySQL.</p><p>Figura A-1 – Códigos para Criação das Tabelas</p><p>/*-------------------------------------------------------------------------</p><p>TABELA DE CLIENTE</p><p>-------------------------------------------------------------------------*/</p><p>CREATE TABLE Cliente(</p><p>ID_Cliente INT NOT NULL AUTO_INCREMENT,</p><p>Nome_Cliente VARCHAR(30) NOT NULL,</p><p>Sexo_Cliente CHAR(1) NOT NULL,</p><p>Email_Cliente VARCHAR(30),</p><p>Telefone_Cliente VARCHAR(13),</p><p>CONSTRAINT cliente_sexo_cliente_ck CHECK (sexo_cliente IN ('F',</p><p>'M')),</p><p>CONSTRAINT cliente_id_cliente_pk PRIMARY KEY (ID_Cliente)</p><p>);</p><p>/*-------------------------------------------------------------------------</p><p>TABELA DE CATEGORIA</p><p>-------------------------------------------------------------------------*/</p><p>CREATE TABLE Categoria(</p><p>ID_categoria INT NOT NULL AUTO_INCREMENT,</p><p>Categoria VARCHAR(30) NOT NULL,</p><p>CONSTRAINT categoria_id_categoria_pk PRIMARY KEY (ID_Categoria)</p><p>);</p><p>/*-------------------------------------------------------------------------</p><p>TABELA DE PROMOÇÕES</p><p>-------------------------------------------------------------------------*/</p><p>CREATE TABLE Promo(</p><p>ID_Promo INT NOT NULL AUTO_INCREMENT,</p><p>Nome_promo VARCHAR(30) NOT NULL,</p><p>Valor_Promo DECIMAL(2,2) NOT NULL,</p><p>CONSTRAINT promo_id_promo_pk PRIMARY KEY (ID_Promo)</p><p>);</p><p>/*-------------------------------------------------------------------------</p><p>TABELA DE LOGIN</p><p>-------------------------------------------------------------------------*/</p><p>CREATE TABLE Login(</p><p>ID_Login INT NOT NULL AUTO_INCREMENT,</p><p>Usuario VARCHAR(20) NOT NULL,</p><p>Senha VARCHAR(8) NOT NULL,</p><p>CONSTRAINT login_id_login_pk PRIMARY KEY (ID_Login),</p><p>CONSTRAINT login_usuario_un UNIQUE (Usuario),</p><p>CONSTRAINT login_senha_un UNIQUE (Senha)</p><p>);</p><p>/*-------------------------------------------------------------------------</p><p>TABELA DE FUNCIONARIO</p><p>-------------------------------------------------------------------------*/</p><p>CREATE TABLE Funcionario(</p><p>ID_Funcionario INT NOT NULL AUTO_INCREMENT,</p><p>Nome_Funcionario VARCHAR(30) NOT NULL,</p><p>CPF_Funcionario CHAR(14) NOT NULL,</p><p>Email_Funcionario VARCHAR(30),</p><p>Telefone_Funcionario VARCHAR(13) NOT NULL,</p><p>ID_Login INT NOT NULL,</p><p>CONSTRAINT funcionario_id_login_fk FOREIGN KEY (id_login) REFERENCES</p><p>71</p><p>login(ID_LOGIN),</p><p>CONSTRAINT funcionario_cpf_funcionario_un UNIQUE (CPF_Funcionario),</p><p>CONSTRAINT funcionario_id_funcionario_pk PRIMARY KEY (ID_Funcionario)</p><p>);</p><p>/*-------------------------------------------------------------------------</p><p>TABELA DE FORNECEDOR</p><p>-------------------------------------------------------------------------*/</p><p>CREATE TABLE Fornecedor(</p><p>ID_Fornecedor INT NOT NULL AUTO_INCREMENT,</p><p>Nome_empresa VARCHAR(30) NOT NULL,</p><p>CNPJ CHAR(18) NOT NULL,</p><p>Nome_Fornecedor VARCHAR(30),</p><p>Telefone_Fornecedor VARCHAR(13),</p><p>Email_Fornecedor VARCHAR(30) NOT NULL,</p><p>Tempo_medio INT,</p><p>ID_Categoria INT NOT NULL,</p><p>CONSTRAINT fornecedor_CNPJ_un UNIQUE (CNPJ),</p><p>CONSTRAINT fornecedor_id_fornecedor_pk PRIMARY KEY (ID_Fornecedor),</p><p>CONSTRAINT fornecedor_id_categoria_fk FOREIGN KEY (ID_Categoria)</p><p>REFERENCES categoria(ID_Categoria)</p><p>);</p><p>/*-------------------------------------------------------------------------</p><p>TABELA DE PRODUTO</p><p>-------------------------------------------------------------------------*/</p><p>CREATE TABLE Produto(</p><p>ID_Produto INT NOT NULL AUTO_INCREMENT,</p><p>Nome_Produto VARCHAR(30) NOT NULL,</p><p>Marca_Produto VARCHAR(30) NOT NULL,</p><p>Base_UOM_cd VARCHAR(10) NOT NULL DEFAULT 'Unidade',</p><p>ID_Categoria INT NOT NULL,</p><p>CONSTRAINT produto_id_produto_pk PRIMARY KEY (ID_Produto),</p><p>CONSTRAINT produto_id_categoria_fk FOREIGN KEY (ID_Categoria)</p><p>REFERENCES categoria(ID_Categoria)</p><p>);</p><p>/*-------------------------------------------------------------------------</p><p>TABELA DE LOTE</p><p>-------------------------------------------------------------------------*/</p><p>CREATE TABLE Lote(</p><p>ID_Lote INT NOT NULL AUTO_INCREMENT,</p><p>Qtd_Lote INT NOT NULL,</p><p>Qtd_Produto INT NOT NULL,</p><p>Custo_Unit DECIMAL(6,2) NOT NULL,</p><p>Data_Entrega DATE NOT NULL,</p><p>Validade_Lote DATE NOT NULL,</p><p>ID_Produto INT NOT NULL,</p><p>ID_Fornecedor INT NOT NULL,</p><p>CONSTRAINT lote_id_lote_pk PRIMARY KEY (ID_Lote),</p><p>CONSTRAINT lote_id_produto_fk FOREIGN KEY (ID_Produto) REFERENCES</p><p>Produto(ID_Produto),</p><p>CONSTRAINT lote_id_fornecedor_fk FOREIGN KEY (ID_Fornecedor)</p><p>REFERENCES Fornecedor(ID_Fornecedor)</p><p>);</p><p>/*-------------------------------------------------------------------------</p><p>TABELA DE ESTOQUE</p><p>-------------------------------------------------------------------------*/</p><p>CREATE TABLE Estoque(</p><p>ID_Estoque INT NOT NULL AUTO_INCREMENT,</p><p>Qtd_Prod_Estoque INT NOT NULL,</p><p>Data_Registro_Estoque DATE NOT NULL,</p><p>ID_Produto INT NOT NULL,</p><p>72</p><p>ID_Lote INT NOT NULL,</p><p>CONSTRAINT estoque_id_estoque_pk PRIMARY KEY (ID_Estoque),</p><p>CONSTRAINT estoque_id_produto_fk FOREIGN KEY (ID_Produto) REFERENCES</p><p>produto(ID_Produto),</p><p>CONSTRAINT estoque_id_lote_fk FOREIGN KEY (ID_Lote) REFERENCES</p><p>LOTE(ID_Lote)</p><p>);</p><p>/*-------------------------------------------------------------------------</p><p>TABELA DE AVALIACAO</p><p>-------------------------------------------------------------------------*/</p><p>CREATE TABLE Avaliacao(</p><p>ID_Avaliacao INT NOT NULL AUTO_INCREMENT,</p><p>Nivel VARCHAR(7) NOT NULL,</p><p>Descricao VARCHAR(400) NOT NULL,</p><p>ID_Funcionario INT NOT NULL,</p><p>ID_Cliente INT NOT NULL,</p><p>CONSTRAINT avaliacao_nivel_ck CHECK(nivel IN ('Pessimo', 'Ruim',</p><p>'Medio')),</p><p>CONSTRAINT avaliacao_id_avaliacao_pk PRIMARY KEY (ID_Avaliacao),</p><p>CONSTRAINT avaliacao_id_funcionario_fk FOREIGN KEY</p><p>(ID_Funcionario)</p><p>REFERENCES funcionario(ID_Funcionario),</p><p>CONSTRAINT avaliacao_id_cliente_fk FOREIGN KEY (ID_Cliente)</p><p>REFERENCES cliente(ID_Cliente)</p><p>);</p><p>/*-------------------------------------------------------------------------</p><p>TABELA DE VENDA</p><p>-------------------------------------------------------------------------*/</p><p>CREATE TABLE Venda(</p><p>ID_Venda INT NOT NULL AUTO_INCREMENT,</p><p>Data_Venda DATE NOT NULL,</p><p>ID_Produto INT NOT NULL,</p><p>Qtd_Venda INT NOT NULL,</p><p>ID_Promo INT,</p><p>ID_Avaliacao INT,</p><p>ID_Funcionario INT NOT NULL,</p><p>ID_Lote INT NOT NULL,</p><p>CONSTRAINT venda_id_lote_fk FOREIGN KEY (ID_Lote) REFERENCES</p><p>LOTE(ID_Lote),</p><p>CONSTRAINT venda_id_venda_pk PRIMARY KEY (ID_Venda),</p><p>CONSTRAINT venda_id_funcionario_fk FOREIGN KEY (ID_Funcionario)</p><p>REFERENCES funcionario(ID_Funcionario),</p><p>CONSTRAINT venda_id_avaliacao_fk FOREIGN KEY (ID_Avaliacao)</p><p>REFERENCES avaliacao(ID_Avaliacao),</p><p>CONSTRAINT venda_id_produto_fk FOREIGN KEY (ID_Produto) REFERENCES</p><p>produto(ID_Produto),</p><p>CONSTRAINT venda_id_promo_fk FOREIGN KEY (ID_Promo) REFERENCES</p><p>promo(ID_Promo)</p><p>);</p><p>/*-------------------------------------------------------------------------</p><p>TABELA DE DESCARTE</p><p>-------------------------------------------------------------------------*/</p><p>CREATE TABLE Descarte(</p><p>ID_Descarte INT NOT NULL AUTO_INCREMENT,</p><p>Qtd_Prod_Descarte INT,</p><p>ID_Estoque INT,</p><p>CONSTRAINT descarte_id_descarte_pk PRIMARY KEY (ID_Descarte),</p><p>CONSTRAINT descarte_id_estoque_fk FOREIGN KEY (ID_Estoque) REFERENCES</p><p>estoque(ID_Estoque)</p><p>)ENGINE=MyISAM;</p><p>Fonte: Autoria própria.</p><p>73</p><p>Abaixo, as figuras de A-2 a A-13 representam os metadados, bem como suas</p><p>chaves primárias e secundárias, além de uma descrição do porquê foram escolhidas</p><p>estas disposições. Entretanto, antes de iniciar, para realizar a identificação e associar</p><p>de forma mais eficiente, foi adotado um identificador (ID) para cada tabela, para assim</p><p>facilitar conexões entre tabelas.</p><p>Na tabela de avaliações (figura A-2) os dados levados em consideração são</p><p>apenas aqueles com avaliações negativas, sendo possíveis apenas os níveis:</p><p>‘Péssimo’, ‘Ruim’ e ‘Médio’, dadas pelos clientes, chave estrangeira, com sua</p><p>descrição e o funcionário que os desapontou.</p><p>Figura A-2 – Metadados da Tabela de Avaliação</p><p>Fonte: Autoria própria.</p><p>Já a tabela categoria (figura A-3), contêm 6 categorias no total, sendo elas:</p><p>Alimentos não perecíveis, Cuidados Pessoais, Produtos Congelados, Alimentos</p><p>Frescos, Cuidados Para o Lar e Bebidas. Assim, cada produto foi encaixado em</p><p>alguma dessas categorias, sendo assim, um dos filtros utilizados para os Dashboards</p><p>Figura A-3 – Metadados da Tabela de Categoria</p><p>Fonte: Autoria própria.</p><p>Na tabela de clientes (figura A-4), possui as informações importantes para</p><p>identificação dos clientes fidelidade do mercado, como seu nome, identidade, sexo e</p><p>contato, sendo bastante utilizada na tabela de avaliações.</p><p>74</p><p>Figura A-4 – Metadados da Tabela de Cliente</p><p>Fonte: Autoria própria.</p><p>Adicionada após análise do banco de dados, a tabela de descarte (figura A-5),</p><p>é onde são armazenados a quantidade de produtos de cada lote que não foram</p><p>possíveis de vender e foram descartados, com validade expirada ou violação de</p><p>produtos, sendo estes ligados a tabela estoque, que será vista posteriormente, onde</p><p>possui mais informações, por conter informações de qual período do estoque que foi</p><p>feito este descarte.</p><p>Figura A-5 – Metadados da Tabela de Descarte</p><p>Fonte: Autoria própria.</p><p>A tabela de estoque (figura A-6) possui os dados de estoque que foram</p><p>registrados, normalmente, ao final de cada mês, fornecidos pelo cliente. Logo, com</p><p>esses dados foi feito uma ligação com o lote que estava no estoque naquele momento</p><p>e a quantidade de produtos no estoque.</p><p>Figura A-6 – Metadados da Tabela de Estoque</p><p>Fonte: Autoria própria.</p><p>A tabela de fornecedores (figura A-7), como citado anteriormente na execução</p><p>do projeto, contêm todos os dados principais dos fornecedores, ligando-os a tabela de</p><p>fornecedor, pois de acordo com os produtos que ele vende há um ramo que será</p><p>empregado, fazendo assim com que haja um filtro também ao se analisar por</p><p>75</p><p>categoria. Além disso, a coluna “tempo_medio” serve para mensurar de acordo com</p><p>o que o CEO nos informou sobre o tempo que o fornecedor demora desde a ligação</p><p>do pedido até a entrega de fato.</p><p>Figura A-7 – Metadados da Tabela de Fornecedor</p><p>Fonte: Autoria própria.</p><p>Para que haja uma análise por dentro do mercado, com as avaliações e</p><p>clientes, deve-se ter uma relação de todos os funcionários do mercado (figura A-8),</p><p>com isso as informações mais importantes, identificação e contato, dos funcionários</p><p>foram armazenados, bem como seu acesso de login que será feito através da tabela</p><p>de login vista posteriormente.</p><p>Figura A-8 – Metadados da Tabela de Funcionário</p><p>Fonte: Autoria própria.</p><p>Assim como dito anteriormente, a tabela de login (figura A-9) é uma parte</p><p>importante do projeto, já que aplica segurança no software ao precisar de uma chave</p><p>de acesso e senha para acessá-lo. Assim, nesta tabela foram adicionados três dados</p><p>de login: o do CEO, dono da empresa; gerente, identificado em funcionário; e</p><p>funcionários. Apenas o CEO possui acesso irrestrito do aplicativo, enquanto os outros</p><p>possuem limitações, para que não haja vazamento de informações e segurança do</p><p>usuário.</p><p>76</p><p>Figura A-9 – Metadados da Tabela de Login</p><p>Fonte: Autoria própria.</p><p>Abaixo, tem-se a tabela de Lote (figura A-10) que possui todas as informações</p><p>sobre os lotes entregues pelos fornecedores, a quantidade de cada produto em cada</p><p>lote, quantos foram comprados, o custo unitário de cada produto, a data de entrega</p><p>de cada lote, sua validade e qual o fornecedor que lhe vendeu o lote.</p><p>Figura A-10 – Metadados da Tabela de Lote</p><p>Fonte: Autoria própria.</p><p>Como dito no texto sobre a tabela produtos (figura A-11), ela contém todas as</p><p>informações principais e inalteráveis dos produtos, sendo um catálogo, tendo seu</p><p>nome, marca e base UOM (Unit Of Measure), sendo essa qual a quantidade</p><p>mensurável do produto (como por exemplo: 1kg), além da sua categoria, sendo essa</p><p>uma chave estrangeira, para que seja possível análises mais abrangentes de acordo</p><p>com cada uma.</p><p>Figura A-11 – Metadados da Tabela de Produto</p><p>Fonte: Autoria própria.</p><p>Uma das tabelas que foi inicialmente pensada para automação foi a tabela de</p><p>promoções (figura A-12), contendo informações sobre o nome da promoção,</p><p>descrição do porquê ela existe e o valor em porcentagem de cada uma, logo, o quanto</p><p>77</p><p>será decrementado de cada produto que a possuir. Esta tabela não era inicialmente</p><p>utilizada pois o mercado Indie não fazia promoções, então ela foi implementada afim</p><p>de fazer com que um dos indicadores principais do mercado melhorem.</p><p>Figura A-12 – Metadados da Tabela de Promoção</p><p>Fonte: Autoria própria.</p><p>Por fim, a tabela de vendas (figura A-13), com informações registrada do caixa,</p><p>possuindo data da venda, quanto do produto foi vendido naquele dia, com algumas</p><p>chaves estrangeiras, como, se aquele produto está em alguma promoção, qual o lote</p><p>que foi vendido, funcionário que realizou a venda e avaliação, pois elas estão ligadas</p><p>as vendas, pois dependem do dia.</p><p>Figura A-13 – Metadados da Tabela de Venda</p><p>Fonte: Autoria própria.</p><p>Ao encerrar este apêndice, é possível determinar quais foram os motivos para</p><p>que cada entidade fosse escolhida, com isso, é possível mensurar diversos índices</p><p>utilizados no ramo da economia, recursos humanos, armazenamento de produtos,</p><p>vendas etc. Para mais deve-se fazer as querys (pesquisas), para assim atribuir valor</p><p>aos dados transformando-os em informações valiosas.</p><p>78</p><p>APÊNDICE B – Consultas Realizadas no Banco de Dados</p><p>Os códigos abaixo foram utilizados para realizar as telas de Dashboard, todas</p><p>elas sujeitas a um filtro de dados, com período (mês e ano) e categorias.</p><p>Inicialmente,</p><p>é demonstrado os códigos para a tela de Estoque, onde foram necessários os</p><p>comandos da figura B-1.</p><p>Figura B-1 – Códigos Query para Dashboards de Estoque</p><p>/*-------------------------------------------------------------------------</p><p>GIRO DE ESTOQUE POR CATEGORIA E ANO</p><p>-------------------------------------------------------------------------*/</p><p>with</p><p>l_in as</p><p>(</p><p>select id_produto, sum(qtd_lote*qtd_produto) qtd_prod_lote from lote</p><p>where year(data_entrega) in (2021) and month(data_entrega) in (12)</p><p>group by id_lote</p><p>),</p><p>l_total as</p><p>(</p><p>select id_produto, sum(qtd_lote*qtd_produto) qtd_prod_lote from lote</p><p>where year(data_entrega) in ('2021', '2022')</p><p>group by id_produto</p><p>),</p><p>v_total as</p><p>(</p><p>select id_produto, sum(qtd_venda) qtd_venda from venda</p><p>where year(data_venda) = '2022'</p><p>group by id_produto</p><p>),</p><p>cat as</p><p>(</p><p>select id_produto, p.id_categoria, categoria from produto as p</p><p>left join categoria as c on p.id_categoria = c.id_categoria</p><p>)</p><p>select cat.categoria,</p><p>round(avg(v_total.qtd_venda/(l_in.qtd_prod_lote+(l_total.qtd_prod_lote-</p><p>v_total.qtd_venda)/2)),2) giro_estoque</p><p>from l_in</p><p>left join l_total on l_in.id_produto = l_total.id_produto</p><p>left join v_total on l_in.id_produto = v_total.id_produto</p><p>left join cat on l_in.id_produto = cat.id_produto</p><p>group by cat.categoria;</p><p>/*-------------------------------------------------------------------------</p><p>PERDAS NO ESTOQUE POR MÊS E ANO</p><p>-------------------------------------------------------------------------*/</p><p>select nome_produto,</p><p>month(data_registro_estoque) mes,</p><p>year(Data_Registro_Estoque) ano,</p><p>round(((Qtd_Prod_Descarte*Custo_Unit)/(((qtd_lote*Qtd_Produto)-</p><p>Qtd_Prod_Descarte)*(custo_unit*1.35)))*100, 2) Perdas_Estoque_Porc</p><p>from descarte as d</p><p>left join estoque as e on d.id_estoque = e.id_estoque</p><p>left join lote as l on e.id_lote = l.id_lote</p><p>left join produto as p on p.id_produto = e.id_produto</p><p>where year(Data_Registro_Estoque) = 2023</p><p>79</p><p>order by perdas_estoque_porc desc</p><p>limit 15;</p><p>/*-------------------------------------------------------------------------</p><p>QUANTIDADE DE PRODUTOS NO ESTOQUE</p><p>-------------------------------------------------------------------------*/</p><p>with</p><p>l as (select id_produto, sum(qtd_lote*qtd_produto) lotes</p><p>from lote group by id_produto),</p><p>v as (select id_produto, sum(qtd_venda) vendas</p><p>from venda group by id_produto),</p><p>d as (select id_produto, sum(Qtd_Prod_Descarte) descartes</p><p>from descarte</p><p>left join estoque on descarte.id_estoque = estoque.id_estoque</p><p>group by id_produto)</p><p>select -- l.id_produto, l.lotes, v.vendas, d.descartes,</p><p>sum(l.lotes-v.vendas-d.descartes) prod_estoque</p><p>from l</p><p>left join v on v.id_produto = l.id_produto</p><p>left join d on d.id_produto = l.id_produto;</p><p>/*-------------------------------------------------------------------------</p><p>RUPTURA DE ESTOQUE</p><p>-------------------------------------------------------------------------*/</p><p>select round(max((</p><p>select count(if(qtd_prod_estoque=qtd_prod_descarte, 1,0)) estoque</p><p>from estoque e left join descarte d on e.id_estoque = d.id_estoque</p><p>where month(Data_registro_estoque) = 5 and</p><p>year(Data_registro_estoque) = 2022</p><p>group by if(qtd_prod_estoque=qtd_prod_descarte, 1,0) limit 1,1)</p><p>/( select count(if(qtd_prod_estoque=qtd_prod_descarte, 1,0)) estoque</p><p>from estoque e left join descarte d on e.id_estoque = d.id_estoque</p><p>where month(Data_registro_estoque) = 5 and</p><p>year(Data_registro_estoque) = 2022</p><p>group by if(qtd_prod_estoque=qtd_prod_descarte, 1,0) limit 0,1)</p><p>)*100,2) ruptura_estoque</p><p>from estoque e</p><p>left join descarte d on e.id_estoque = d.id_estoque;</p><p>/*-------------------------------------------------------------------------</p><p>ESTOQUE MÍNIMO E ESTOQUE MÁXIMO</p><p>-------------------------------------------------------------------------*/</p><p>with</p><p>query1 as</p><p>(</p><p>select id_produto,</p><p>ceiling(sum(qtd_venda)/(365+365/2)) demanda_media</p><p>from venda</p><p>group by id_produto</p><p>),</p><p>query2 as</p><p>(</p><p>select id_produto, ceiling(avg(tempo_medio)) tempo_medio_ent,</p><p>ceiling(avg(Qtd_Produto)) qtd_produto</p><p>from lote as l</p><p>left join fornecedor as f on l.id_fornecedor = f.id_fornecedor</p><p>group by id_produto</p><p>)</p><p>select query1.id_produto,</p><p>(query1.demanda_media*query2.tempo_medio_ent) estoque_minimo,</p><p>ceiling(query1.demanda_media*query2.tempo_medio_ent*1.1)</p><p>estoque_minimo_alerta,</p><p>ceiling((query1.demanda_media*query2.tempo_medio_ent)*1.1+query2.qtd_</p><p>80</p><p>produto) estoque_maximo</p><p>from query1</p><p>left join query2 on query1.id_produto = query2.id_produto</p><p>group by query1.id_produto;</p><p>Fonte: Autoria própria.</p><p>O Giro de Estoque, como pode-se observar no gráfico de pizza, funciona</p><p>demonstrando quantas vezes o estoque foi esvaziado e reabastecido novamente no</p><p>período solicitado. Para a análise no aplicativo os produtos foram agrupados de</p><p>acordo com sua categoria, em um gráfico de pizza, para visualização do todo, já que</p><p>suas datas de vencimento coincidem o bastante.</p><p>Já as Perdas no Estoque, representado em um gráfico de colunas, demonstram</p><p>de forma percentual quais foram as perdas de produtos com relação as vendas, sendo</p><p>um indicador bastante importante para definir a demanda de tais produtos.</p><p>Por fim, tem-se o Estoque Mínimo e Estoque Máximo, que, presentes na tela</p><p>de Catálogo como velocímetro, demonstram qual seria a quantidade de produtos ideal</p><p>para se ter no estoque para que não falte na venda e qual seria o máximo para que</p><p>não haja grandes desperdícios por conter muitos produtos e pouca demanda.</p><p>Com isso, parte-se para a tela de Faturamento, possuindo dois gráficos e dois</p><p>cartões, seus códigos respectivamente foram os encontrados na figura B-2.</p><p>Figura B-2 – Códigos Query para Dashboards de Faturamento</p><p>/*-------------------------------------------------------------------------</p><p>FATURAMENTO BRUTO E LÍQUIDO POR MÊS</p><p>-------------------------------------------------------------------------*/</p><p>select month(Data_Venda),</p><p>sum(Custo_Unit*1.3*qtd_venda) faturamento_bruto,</p><p>-- sum(Custo_Unit*1.3*qtd_venda) faturamento_liquido</p><p>sum(custo_unit*qtd_venda*1.3*0.230769)-13000 faturamento_liquido</p><p>from venda as v</p><p>left join lote as l on l.id_lote = v.id_lote</p><p>left join produto as p on v.id_produto = p.id_produto</p><p>where year(Data_Venda)=2022 group by month(Data_Venda);</p><p>/*-------------------------------------------------------------------------</p><p>FATURAMENTO BRUTO POR CATEGORIA</p><p>-------------------------------------------------------------------------*/</p><p>select c.categoria,</p><p>sum(Custo_Unit*1.50*qtd_venda) faturamento_bruto</p><p>from venda as v</p><p>left join lote as l on l.id_lote = v.id_lote</p><p>left join produto as p on v.id_produto = p.id_produto</p><p>left join categoria as c on c.id_categoria = p.id_categoria</p><p>where year(Data_Venda)=2023 group by c.categoria;</p><p>/*-------------------------------------------------------------------------</p><p>TICKET MÉDIO</p><p>-------------------------------------------------------------------------*/</p><p>select max(year(data_venda)), month(data_venda),</p><p>81</p><p>/*sum(Custo_Unit*1.50*qtd_venda) faturamento_bruto,</p><p>count(id_venda) num_vendas,*/</p><p>round(sum(Custo_Unit*1.50*qtd_venda)/count(id_venda),2) ticket_medio</p><p>from venda as v</p><p>left join lote as l on l.id_lote = v.id_lote</p><p>left join produto as p on v.id_produto = p.id_produto</p><p>left join categoria as c on c.id_categoria = p.id_categoria</p><p>where year(data_venda) = 2022 group by month(data_venda);</p><p>/*-------------------------------------------------------------------------</p><p>QUANTIDADE DE VENDA</p><p>-------------------------------------------------------------------------*/</p><p>select month(data_venda),</p><p>sum(qtd_venda)</p><p>from venda</p><p>where year(data_venda) = 2022</p><p>group by month(data_venda);</p><p>Fonte: Autoria própria.</p><p>O Faturamento por mês foi indicado como um gráfico de barras e linhas, sendo</p><p>eles o faturamento bruto e líquido, respectivamente. Para conhecimento, o</p><p>faturamento bruto</p><p>é aquele que leva em consideração apenas o preço da venda e o</p><p>total de produtos, enquanto, o faturamento líquido considera as deduções em cima do</p><p>faturamento líquido, sendo estes, descontos, impostos, vendas canceladas etc. Após</p><p>esta análise foi feito o Faturamento Bruto por Categoria, onde engloba quais</p><p>categorias vendem mais com um apanhado geral para um gráfico de pizza.</p><p>Por último, tem-se o Ticket Médio, demonstrando qual o valor médio de vendas</p><p>por cliente; e a Quantidade de Vendas, que seria quantas vendas foram feitas no</p><p>período, sendo estas duas informações únicas representadas por um cartão contendo</p><p>o número.</p><p>Concluindo este Apêndice tem-se a figura B-3, que ilustra os códigos para</p><p>Recursos Humanos, ou seja, a relação de como os funcionários estão se</p><p>comportando.</p><p>Figura B-3 – Códigos Query para Dashboards de Recursos Humanos</p><p>/*-------------------------------------------------------------------------</p><p>ÍNDICE DE RECLAMAÇÃO DOS CLIENTES</p><p>-------------------------------------------------------------------------*/</p><p>select nivel,</p><p>round(count(a.id_avaliacao)/</p><p>(select count(a.id_avaliacao)</p><p>from avaliacao as a</p><p>left join venda as v on a.id_avaliacao = v.id_avaliacao</p><p>where month(data_venda) = 9 and</p><p>year(data_venda) = 2022)*100,0) indice_reclamacao</p><p>from avaliacao as a</p><p>left join venda as v on a.id_avaliacao = v.id_avaliacao</p><p>where month(data_venda) = 9 and year(data_venda) = 2022</p><p>group by nivel;</p><p>82</p><p>/*-------------------------------------------------------------------------</p><p>PRODUTIVIDADE DOS FUNCIONÁRIOS</p><p>-------------------------------------------------------------------------*/</p><p>select -- v.id_funcionario,</p><p>f.nome_funcionario,</p><p>-- count(id_venda) vendas, count(a.ID_Avaliacao) reclamacoes,</p><p>if(count(a.id_avaliacao) = 0,</p><p>round(count(id_venda)/100,2),</p><p>round(count(id_venda)/count(a.ID_Avaliacao)/100,2))</p><p>produtividade</p><p>from venda as v</p><p>left join avaliacao as a on a.id_avaliacao = v.id_avaliacao</p><p>left join funcionario as f on f.id_funcionario = v.id_funcionario</p><p>where month(data_venda) = 1 and year(data_venda) = 2022</p><p>group by v.id_funcionario</p><p>order by v.id_funcionario;</p><p>Fonte: Autoria própria.</p><p>Na tela, estão dois gráficos, o de Índice de Reclamação dos Clientes, medido</p><p>utilizando a tabela de avaliações, agrupando-a por funcionário, dividindo esse número</p><p>pelo número total de clientes multiplicado por 100 para ter uma porcentagem; e o de</p><p>Produtividade, sendo esse sobre a quantidade de vendas realizadas dividido pelo</p><p>número total de reclamações por 100.</p><p>Assim, ao receber os códigos de consulta para os dados de cada gráfico, eles</p><p>foram transformados para que os dashboards fossem compatíveis com o código em</p><p>Python integrando-os no sistema, como demonstrado no código-fonte do repositório</p><p>de William Publio (2023) no GitHub.</p><p>1 INTRODUÇÃO</p><p>2 APRESENTAÇÃO DO TRABALHO</p><p>3 OBJETIVO</p><p>3.1 Objetivo Geral</p><p>3.2 Objetivo Específico</p><p>4 Sistema de Apoio à Decisão (SAD)</p><p>4.1 Processo de Construção de Software</p><p>4.1.1 Planejamento</p><p>4.1.2 Análise</p><p>4.1.3 Design</p><p>4.1.4 Implementação</p><p>4.1.5 Testes</p><p>4.1.6 Implantação</p><p>4.1.7 Manutenção</p><p>4.2 Estatística e Dados de um Software SAD</p><p>4.2.1 Dados não estruturados</p><p>4.2.2 Dados Estruturados</p><p>4.2.3 Dados Internos</p><p>4.2.4 Dados Externos</p><p>4.2.5 Dados de Simulação</p><p>4.3 Riscos Gerados em seu Desenvolvimento e Atualização</p><p>4.4 Fases do Processo Decisórios do Sistema</p><p>4.5 Limitações e Deficiências no Uso da Informação para Tomada de Decisões</p><p>5 BANCO DE DADOS</p><p>5.1 Linguagem SQL</p><p>5.2 Sobre o MySQL</p><p>6 METODOS DE ARMAZENAMENTO</p><p>7 SISTEMA GERENCIAMENTO DE BANDO DE DADOS (SGBD)</p><p>7.1 Relacional (SQL)</p><p>7.2 Não Relacional (NoSQL)</p><p>7.3 Hierárquico</p><p>7.4 Orientado a Objeto (SGBDOO)</p><p>8 MODELOS DE DADOS</p><p>8.1 Tipos de Modelos</p><p>8.1.1 Modelo Entidade-Relacionamento (MER)</p><p>8.1.2 Diagrama Entidade-Relacionamento (DER)</p><p>9 MODELOS DE PROCESSO DE DESENVOLVIMENTO DE SOFTWARE</p><p>9.1 Fluxo de Processos</p><p>9.1.1 Requisitos do cliente</p><p>9.1.2 Especificações técnicas</p><p>9.1.3 Desenvolvimento e Reuso</p><p>9.1.4 Validação</p><p>9.1.5 Teste</p><p>9.1.6 Implementação</p><p>9.2 Cascata</p><p>10 FUNCIONAMENTO DE UMA INTERFACE</p><p>10.1 Definição de Interface</p><p>10.2 Interface de um Software</p><p>10.3 Ferramenta CASE Qt Designer</p><p>11 DESIGN DE SISTEMA</p><p>11.1 Ferramenta CASE Canva e Figma</p><p>12 CARACTERÍSTICAS DE RELACIONAMENTO EMPRESARIAL</p><p>12.1 Empresa Desenvolvedora do Software</p><p>12.2 Empresa Fictícia: New Indie</p><p>12.3 Regras de Negócio – Requisitos do Cliente</p><p>13 PROCESSO DE MAPEAMENTO DO BANCO DE DADOS</p><p>13.1 Ferramenta CASE brModelo</p><p>13.2 Metadados do BD</p><p>13.3 Modelo Conceitual</p><p>13.4 Modelo Lógico</p><p>14 BACK-END E FRONT-END DO SISTEMA</p><p>14.1 Definição de Back-end</p><p>14.2 Definição de Front-end</p><p>15 PROJETO</p><p>15.1 Execução do Projeto</p><p>16 APLICATIVO E SUAS FUNCIONALIDADES</p><p>17 CONCLUSÕES</p><p>REFERÊNCIAS</p><p>APÊNDICE A – Tabelas do Banco de Dados e Suas Especificações</p><p>APÊNDICE B – Consultas Realizadas no Banco de Dados</p><p>da Tabela de Estoque .......................................................... 74</p><p>Figura A-7 – Metadados da Tabela de Fornecedor .................................................... 75</p><p>Figura A-8 – Metadados da Tabela de Funcionário .................................................... 75</p><p>Figura A-9 – Metadados da Tabela de Login .............................................................. 76</p><p>Figura A-10 – Metadados da Tabela de Lote .............................................................. 76</p><p>Figura A-11 – Metadados da Tabela de Produto ........................................................ 76</p><p>Figura A-12 – Metadados da Tabela de Promoção .................................................... 77</p><p>Figura A-13 – Metadados da Tabela de Venda .......................................................... 77</p><p>Figura B-1 – Códigos Query para Dashboards de Estoque ....................................... 78</p><p>Figura B-2 – Códigos Query para Dashboards de Faturamento ................................ 80</p><p>Figura B-3 – Códigos Query para Dashboards de Recursos Humanos .................... 81</p><p>LISTA DE TABELAS</p><p>Tabela 1 – Metadados da Tabela de Vendas.............................................................. 44</p><p>Tabela 2 – Metadados da Tabela de Lotes ................................................................. 45</p><p>Tabela 3 – Metadados da Tabela de Produtos ........................................................... 45</p><p>Tabela 4 – Metadados da Tabela de Estoque ............................................................ 45</p><p>Tabela 5 – Metadados da Tabela de Funcionários ..................................................... 45</p><p>Tabela 6 – Metadados da Tabela de Fornecedores ................................................... 45</p><p>Tabela 7 – Metadados da Tabela de Clientes ............................................................. 46</p><p>Tabela 8 – Metadados da Tabela de Avaliações ........................................................ 46</p><p>Tabela 9 – Metadados da Tabela de Nivel de Acesso ................................................ 46</p><p>Tabela 10 – Metadados da Tabela de Categorias ...................................................... 46</p><p>Tabela 11 – Metadados da Tabela de Promoções ..................................................... 46</p><p>SUMÁRIO</p><p>1 INTRODUÇÃO ........................................................................................................ 6</p><p>2 APRESENTAÇÃO DO TRABALHO ....................................................................... 8</p><p>3 OBJETIVO ............................................................................................................. 10</p><p>3.1 Objetivo Geral ................................................................................................. 10</p><p>3.2 Objetivo Específico ......................................................................................... 11</p><p>4 Sistema de Apoio à Decisão (SAD)...................................................................... 12</p><p>4.1 Processo de Construção de Software ............................................................ 12</p><p>4.1.1 Planejamento ........................................................................................... 13</p><p>4.1.2 Análise ...................................................................................................... 13</p><p>4.1.3 Design ....................................................................................................... 13</p><p>4.1.4 Implementação ......................................................................................... 13</p><p>4.1.5 Testes ....................................................................................................... 13</p><p>4.1.6 Implantação .............................................................................................. 13</p><p>4.1.7 Manutenção .............................................................................................. 13</p><p>4.2 Estatística e Dados de um Software SAD...................................................... 14</p><p>4.2.1 Dados não estruturados ........................................................................... 14</p><p>4.2.2 Dados Estruturados ................................................................................. 14</p><p>4.2.3 Dados Internos ......................................................................................... 14</p><p>4.2.4 Dados Externos ........................................................................................ 14</p><p>4.2.5 Dados de Simulação ................................................................................ 15</p><p>4.3 Riscos Gerados em seu Desenvolvimento e Atualização ............................. 15</p><p>4.4 Fases do Processo Decisórios do Sistema ................................................... 16</p><p>4.5 Limitações e Deficiências no Uso da Informação para Tomada de Decisões</p><p>17</p><p>5 BANCO DE DADOS.............................................................................................. 18</p><p>5.1 Linguagem SQL .............................................................................................. 18</p><p>5.2 Sobre o MySQL ............................................................................................... 20</p><p>6 METODOS DE ARMAZENAMENTO ................................................................... 21</p><p>7 SISTEMA GERENCIAMENTO DE BANDO DE DADOS (SGBD) ....................... 23</p><p>7.1 Relacional (SQL) ............................................................................................. 24</p><p>7.2 Não Relacional (NoSQL) ................................................................................ 24</p><p>7.3 Hierárquico ...................................................................................................... 24</p><p>7.4 Orientado a Objeto (SGBDOO) ...................................................................... 24</p><p>8 MODELOS DE DADOS ........................................................................................ 27</p><p>8.1 Tipos de Modelos ............................................................................................ 27</p><p>8.1.1 Modelo Entidade-Relacionamento (MER) ............................................... 27</p><p>8.1.2 Diagrama Entidade-Relacionamento (DER) ........................................... 28</p><p>9 MODELOS DE PROCESSO DE DESENVOLVIMENTO DE SOFTWARE ........ 30</p><p>9.1 Fluxo de Processos ........................................................................................ 30</p><p>9.1.1 Requisitos do cliente ................................................................................ 30</p><p>9.1.2 Especificações técnicas ........................................................................... 30</p><p>9.1.3 Desenvolvimento e Reuso ....................................................................... 31</p><p>9.1.4 Validação .................................................................................................. 31</p><p>9.1.5 Teste ......................................................................................................... 31</p><p>9.1.6 Implementação ......................................................................................... 32</p><p>9.2 Cascata ........................................................................................................... 33</p><p>10 FUNCIONAMENTO DE UMA INTERFACE ......................................................... 35</p><p>10.1 Definição de Interface.................................................................................. 35</p><p>10.2 Interface de um Software ............................................................................ 35</p><p>10.3 Ferramenta CASE Qt Designer................................................................... 36</p><p>11 DESIGN DE SISTEMA ......................................................................................... 38</p><p>11.1 Ferramenta CASE Canva e Figma ............................................................. 39</p><p>12 CARACTERÍSTICAS DE RELACIONAMENTO EMPRESARIAL .......................</p><p>40</p><p>12.1 Empresa Desenvolvedora do Software ...................................................... 40</p><p>12.2 Empresa Fictícia: New Indie ....................................................................... 40</p><p>12.3 Regras de Negócio – Requisitos do Cliente ............................................... 41</p><p>13 PROCESSO DE MAPEAMENTO DO BANCO DE DADOS ................................ 43</p><p>13.1 Ferramenta CASE brModelo ....................................................................... 44</p><p>13.2 Metadados do BD ........................................................................................ 44</p><p>13.3 Modelo Conceitual ....................................................................................... 46</p><p>13.4 Modelo Lógico ............................................................................................. 47</p><p>14 BACK-END E FRONT-END DO SISTEMA .......................................................... 49</p><p>14.1 Definição de Back-end ................................................................................ 49</p><p>14.2 Definição de Front-end ................................................................................ 49</p><p>15 PROJETO.............................................................................................................. 51</p><p>15.1 Execução do Projeto ................................................................................... 51</p><p>16 APLICATIVO E SUAS FUNCIONALIDADES....................................................... 57</p><p>17 CONCLUSÕES ..................................................................................................... 61</p><p>REFERÊNCIAS ............................................................................................................ 64</p><p>APÊNDICE A – Tabelas do Banco de Dados e Suas Especificações ....................... 70</p><p>APÊNDICE B – Consultas Realizadas no Banco de Dados ....................................... 78</p><p>6</p><p>1 INTRODUÇÃO</p><p>Aplicações digitais têm sido criadas em massa ao longo dos últimos anos para</p><p>as mais diversas finalidades, desde a ida a farmácia, aquisição de um bem de</p><p>consumo em um mercado e até a compra de um veículo, todas as áreas de nossa</p><p>vida têm sido marcadas pela presença de ferramentas construídas para convergir o</p><p>real com o digital, transformando tudo que fazemos em dados, depois os ordenando</p><p>e refinando até que atinjam o nível de informação e representem valor de uso.</p><p>Figura 1 – A Convergência Do Mundo Digital Com O Real</p><p>Fonte: MIT Sloan Review Brasil (https://mitsloanreview.com.br/post/por-que-toda-empresa-esta-</p><p>virando-uma-empresa-de-midia).</p><p>A densa quantidade dessas aplicações em múltiplas instâncias do nosso</p><p>cotidiano nos leva a normalização frente a este cenário, muitas vezes fazendo com</p><p>que não reflitamos sobre a origem, o objetivo delas e todo o processo por trás que faz</p><p>com que empresas e negócios de todo porte invistam cada dia mais em soluções</p><p>digitais.</p><p>Em frente aos diferentes fronts de interação com o público, tem se feito</p><p>necessário a criação de Sistemas de Auxílio à Decisão (SAD), isso porque mesmo</p><p>alguém dotado de experiência necessitaria muito tempo para recolher, analisar e</p><p>retirar conhecimento das informações providenciadas internamente e externamente</p><p>pelos dados. Assim o SAD tem desempenhado papel crucial em diversas escalas de</p><p>negócio, tendo seu renome marcado em empresas de grande escala onde se coletam</p><p>dados ao redor de todo o mundo ao mesmo tempo e que seriam impossíveis de serem</p><p>7</p><p>processados somente por mentes humanas, facilitando atividades do dia a dia,</p><p>acelerando e trazendo cada vez mais segurança aos planejamentos orientados ao</p><p>negócio por conta da predição dos acontecimentos futuros e facilitação nas ações do</p><p>presente embasados em dados, fazendo com que em muitos casos já sejam um motor</p><p>que dita os caminhos, possibilidades e dificuldades para que atinjam seus objetivos.</p><p>Com base nessas informações, exploraremos o caminho desde o pedido de um</p><p>software SAD até a integração em um cliente, debruçando sobre as aplicações</p><p>técnicas gerais e em seguida específicas para o desenvolvimento da aplicação</p><p>prevista neste projeto, também trazendo noções de esforço de desenvolvimento,</p><p>gerenciamento de projetos e metodologias que servirão de auxílio para a entrega</p><p>efetiva de um software de pequeno porte, avaliando valores gerados e muitos outros</p><p>fatores de preocupação para a engenharia de software, simulando assim o cenário</p><p>próximo ao que nos cerca.</p><p>8</p><p>2 APRESENTAÇÃO DO TRABALHO</p><p>Já é conhecido que nos dias de hoje os SADs estão presentes em diversos</p><p>contextos, que influenciam fortemente na decisão das companhias, em como elas,</p><p>enquanto entidades não corpóreas compostas por conjuntos de pessoas, interagem</p><p>com cada um de seus até milhares de clientes, provedores, distribuidores e qualquer</p><p>outro tipo de entidade que possua relacionamento direto ou indireto com aquela</p><p>companhia, para muitas dessas interações temos os intermediadores SADs,</p><p>convergindo toneladas de informações em um compilado de fácil analise e resposta</p><p>efetiva e ágil.</p><p>Tendo em vista a importância dos SADs no mercado e no cotidiano das</p><p>pessoas, por meio de análises que levam a diversas tomadas de decisões, focamos</p><p>em distribuir este trabalho de modo a explorar os processos envolvidos na criação de</p><p>um software SAD, com base em requisitos de autoria própria, que guiarão todo o</p><p>caminho para uma entrega de caso específico.</p><p>Iniciando pelo estudo dos fundamentos e definições que cercam um SAD (a</p><p>partir do ponto de vista da engenharia de software), visando a total compreensão do</p><p>que criaremos a priori dos passos de como faremos. Seguido pelas noções básicas</p><p>de banco de dados (BD com enfoque ao relacional) e os sistemas que os gerenciam</p><p>(SGDB), uma vez que são uma base sólida e necessária para a construção da maioria</p><p>dos SADs, construindo sobre esta base sólida conhecimentos das metodologias de</p><p>armazenamento e representação dos objetos do mundo real portados ao digital,</p><p>abordando casos padrões em contraste aos que utilizaremos de fato neste projeto.</p><p>Considerando que um software é composto do produto final somado a</p><p>documentação associada, exporemos informações sobre metodologias de projeto e</p><p>documentação de banco de dados como: MER (Modelo Entidade Relacionamento) e</p><p>DER (Diagrama Entidade Relacionamento), adjunto das informações documentadas</p><p>de análise de risco, qualidade e seus derivados para todas as fases no</p><p>desenvolvimento da aplicação, fases tais que estarão sujeitas ao modelo de processo</p><p>de desenvolvimento de software Cascata ou Waterfall, além de abordar as definições</p><p>por trás deste modelo e sua contribuição quanto aos resultados finais.</p><p>Concluindo o projeto do SAD, debruçaremos sobre o desenvolvimento de uma</p><p>9</p><p>interface para conectar o usuário ao que foi construído até então, juntamente da</p><p>esquematização para o design do sistema, caminhando para o estudo e criação do</p><p>modelo analítico, assim formando o framework que utilizaremos para dar origem ao</p><p>software que atenderá a necessidade descrita nos requisitos inicialmente</p><p>fundamentados.</p><p>10</p><p>3 OBJETIVO</p><p>3.1 Objetivo Geral</p><p>Neste trabalho acadêmico, temos como objetivo específico fundamentar a</p><p>teoria básica dos processos que involucram o desenvolvimento de um SAD, bem</p><p>como prover noções matemáticas mínimas, metodologias, ferramentas e termos</p><p>necessários para a compreensão correta da proposta de implementação apresentada</p><p>no decorrer do trabalho.</p><p>Uma vez estruturado os fundamentos necessários, buscamos aprofundar cada</p><p>tópico desde metodologias de desenvolvimento de software (Frameworks de</p><p>Engenharia de Software), até a criação de interfaces com usuários e modelos</p><p>analíticos, tendo como alvo o que será utilizado para a criação do software, que será</p><p>proposta com base nos requisitos do cliente que serão especificados durante as fases</p><p>de desenvolvimento prevista</p><p>no framework escolhido.</p><p>Além disso, traremos sempre uma visão difundida entre o trabalho realizado a</p><p>mais baixo nível em termos de organização e estrutura de dados, assim como as</p><p>maneiras e metodologias que envolvem modelagem e criação de banco de dados,</p><p>visando obter e prover conhecimentos no tocante às possibilidades de</p><p>armazenamento de dados, dando enfoque na que será aplicada para o caso</p><p>específico.</p><p>Abordaremos também a visão geral da arquitetura do sistema SAD proposto</p><p>neste trabalho, bem como, apresentaremos informações recolhidas em cada fase</p><p>prevista no framework selecionado, permitindo assim acompanhar a criação do</p><p>software em uma visão ponta a ponta, levando ao entendimento de como é realizado</p><p>o desenvolvimento de um software e toda sua documentação associada, para assim</p><p>seguir de fato para a implementação prevista.</p><p>Por fim, objetivamos ao término possuir os conhecimentos necessários para</p><p>gerar um diagrama completo do software em questão, incluindo requisitos, banco de</p><p>dados, metodologias de teste, especificações de interface, objetos, framework e front-</p><p>end, representados em um modelo analítico que proverá informações do desempenho</p><p>e funcionamento do futuro software que será desenvolvido.</p><p>11</p><p>3.2 Objetivo Específico</p><p>Em específico com este trabalho acadêmico, temos como objetivo introduzir</p><p>conceitos teóricos que serão abordados para o nosso projeto final que será da Sistema</p><p>de Auxílio de Decisão, tendo início nas nossas regras de negócios (Requisitos dos</p><p>Cliente) que são a base para construção de qualquer tipo de software, levando em</p><p>consideração os atributos básicos e essenciais sendo eles Funcionalidade,</p><p>Desempenho, Confiabilidade, Usabilidade e Facilidade de Manutenção/Atualização, e</p><p>logo em seguida definimos as tecnologias que serão usadas como o SGBD mySQL e</p><p>também será elaborado ainda neste trabalho uma previa do sistema que será usado,</p><p>além de abordar conceitos gerais sobre o Banco de dados, SAD em geral, SGBD,</p><p>meios de armazenamento e interface seus tipos e suas funcionalidades, realizando</p><p>pesquisas de modo a expor o funcionamento destes componentes e como utilizá-los</p><p>em prol da realização do projeto final.</p><p>12</p><p>4 Sistema de Apoio à Decisão (SAD)</p><p>O Sistema SAD (Sistema de Apoio à Decisão) é uma ferramenta utilizada por</p><p>empresas para auxiliar em processos decisórios. Trata-se de um Conjunto de</p><p>tecnologias e processos que ajudam gestores e funcionários a analisar dados e</p><p>informações relevantes para tomadas de decisões estratégicas.</p><p>Neste tipo de software existem diferentes categorias, como o SAD baseado em</p><p>modelo, que utiliza modelos matemáticos para prever possíveis resultados, e o SAD</p><p>baseado em dados, que aplica informações armazenadas para gerar insights e</p><p>visualizações.</p><p>O uso de um sistema SAD pode trazer diversos benefícios para uma empresa,</p><p>como a redução de custos, aumento da eficiência operacional, melhora na qualidade</p><p>da tomada de decisão e aumento da competitividade no mercado e diversos outros</p><p>benefícios.</p><p>Porém, por outro lado, não utilizar um sistema SAD pode gerar problemas como</p><p>tomada de decisões com base em dados imprecisos, perda de oportunidades e</p><p>dificuldades em manter-se atualizado em relação aos concorrentes.</p><p>Existem também suas desvantagens, como a necessidade de alto investimento</p><p>em tecnologia e treinamento de pessoal especializado, a complexidade na integração</p><p>com sistemas existentes e a dependência do sistema para a tomada de decisão.</p><p>4.1 Processo de Construção de Software</p><p>O processo de construção de um software SAD envolve etapas como análise</p><p>de requisitos, modelagem de dados, desenvolvimento do sistema, testes e</p><p>implementação. É importante considerar estatísticas e tecnologias como algoritmos</p><p>de inteligência artificial, aprendizado de máquina e data mining para gerar insights</p><p>mais precisos.</p><p>As etapas que incluem no desenvolvimento do software SAD são:</p><p>planejamento, análise, design, implementação, testes, implantação e manutenção,</p><p>observados abaixo.</p><p>13</p><p>4.1.1 Planejamento</p><p>São identificados e definidos os requisitos além de um plano geral para o</p><p>software. É importante também que os objetivos do software SAD estejam alinhados</p><p>com as necessidades da organização e que sejam claramente definidos;</p><p>4.1.2 Análise</p><p>É coletado e analisado dados relevantes para implementação do software SAD.</p><p>Os dados podem vir de fontes internas ou externas da organização e é imprescindível</p><p>que a qualidade dos dados seja verificada para não constituir erros;</p><p>4.1.3 Design</p><p>É feito a projeção da arquitetura do software, incluindo a estrutura dos dados,</p><p>as interfaces com o usuário e as funcionalidades. É importante que o design seja</p><p>flexível, organizado e intuitivo, além de ser adaptável para necessidades futuras;</p><p>4.1.4 Implementação</p><p>O software SAD é programado de acordo com as especificações do design e</p><p>nesta etapa é importante que a equipe de desenvolvimento tenha experiência em</p><p>programação com a tecnologia definida pela documentação e que siga boas práticas</p><p>de desenvolvimento de software;</p><p>4.1.5 Testes</p><p>O software SAD é testado para garantir que ele atenda aos requisitos</p><p>específicos e funcione corretamente. Os testes podem ser realizados de várias</p><p>maneiras, incluindo testes manuais e automatizados;</p><p>4.1.6 Implantação</p><p>Após testado e aprovado, o software pode ser implantado na organização. Além</p><p>disso, é instalado o software nos sistemas dos usuários e fornecido treinamento para</p><p>que eles possam usar o software;</p><p>4.1.7 Manutenção</p><p>Depois da implantação do software SAD, deve ser mantido para garantir que</p><p>14</p><p>ele continue a funcionar corretamente. Neste processo pode incluir correções de bugs,</p><p>atualizações de segurança e melhorias de desempenho.</p><p>Após seguir as etapas, os desenvolvedores de software podem criar um</p><p>software SAD eficaz e que atenda aos requisitos pedidos pelo cliente desde a sua</p><p>fase inicial.</p><p>4.2 Estatística e Dados de um Software SAD</p><p>Um sistema SAD pode utilizar diferentes tipos de dados para ajudar</p><p>funcionários da organização a tomar decisões mais informadas e eficazes. Alguns dos</p><p>tipos de dados que podem ser usados na construção de um sistema SAD incluem:</p><p>4.2.1 Dados não estruturados</p><p>Dados que não estão organizados em uma estrutura definida, podendo esses</p><p>dados incluir texto, imagens, vídeo, áudio e outras formas de mídia. Os dados não</p><p>estruturados podem ser usados em análises de sentimento, análises de mídias sociais</p><p>e outras formas de análise de dados baseadas em texto e imagem;</p><p>4.2.2 Dados Estruturados</p><p>Dados que estão organizados em uma estrutura definida, como banco de dados</p><p>relacionais ou planilhas. Esses dados podem incluir informações financeiras, dados</p><p>de vendas, informações de estoque, entre outros;</p><p>4.2.3 Dados Internos</p><p>Dados que provêm de fontes internas da organização, como dados de</p><p>desempenho financeiros, dados de estoque, dados de venda, dados de produção,</p><p>entre outros. O fornecimento desses dados pode contribuir para o software SAD tomar</p><p>decisões com base no desempenho interno da organização e identificar áreas que</p><p>precisam ser melhoradas;</p><p>4.2.4 Dados Externos</p><p>Dados que provêm de fontes externas da organização, como dados de</p><p>concorrentes, dados de mercado, e outros tipos de dados gerados de outras fontes.</p><p>O fornecimento desses dados pode contribuir para o software SAD tomar decisões</p><p>15</p><p>com base nos dados externos da organização e identificar possíveis áreas que</p><p>precisam ser melhoradas;</p><p>4.2.5 Dados de Simulação</p><p>Dados que provêm de modelos matemáticos e simulações. Esses dados</p><p>podem ser usados para prever resultados futuros e contribuir para o software SAD</p><p>projetar e aplicar diferentes decisões.</p><p>Com a coleta dos dados gerados, é possível utilizá-los na aplicação de diversas</p><p>técnicas estatísticas para o software SAD. Tais elas mais comumente utilizadas no</p><p>software SAD incluem:</p><p>• Média;</p><p>• Análise</p><p>de séries temporais;</p><p>• Desvio padrão;</p><p>• Regressão;</p><p>• Análise de cluster;</p><p>• Teste de hipóteses;</p><p>• Análise de correlação;</p><p>• Análise discriminante;</p><p>• Análise de redes sociais.</p><p>Análise de Cluster é uma técnica de agrupamento de dados que busca</p><p>identificar grupos de objetos ou observações com características similares em um</p><p>conjunto de dados.</p><p>4.3 Riscos Gerados em seu Desenvolvimento e Atualização</p><p>Todos os riscos envolvidos no desenvolvimento e utilização de um software</p><p>SAD são semelhantes aos problemas enfrentados por outros softwares, tais como</p><p>segurança de dados, precisão e possíveis falhas, além de custos e dependência</p><p>excessiva do sistema. Além disso, questões de conformidade regulatória podem</p><p>surgir, já que o software pode precisar estar em conformidade com regulamentações</p><p>16</p><p>governamentais ou do setor, como a Lei Geral de Proteção de Dados (LGPD). O não</p><p>cumprimento dessas regulamentações pode resultar em multas e penalidades.</p><p>Para desenvolver um software SAD eficaz e seguro, é importante não apenas</p><p>considerar as funcionalidades e requisitos do sistema, mas também avaliar e suavizar</p><p>os riscos em potencial associados ao uso do software. Dessa forma, o</p><p>desenvolvimento do software SAD deve ser conduzido de forma a minimizar os riscos</p><p>associados e garantir a segurança e eficácia do sistema.</p><p>4.4 Fases do Processo Decisórios do Sistema</p><p>O processo decisório em um software SAD pode ser dividido em várias fases.</p><p>A seguir uma tabela descrevendo algumas de suas fases.</p><p>Quadro 1 – Processos Decisórios de um SAD</p><p>Identificação do</p><p>problema</p><p>É identificado o problema ou oportunidade que necessita</p><p>de uma decisão. Isso envolve a coleta e análise de</p><p>informações relevantes para o problema.</p><p>Seleção de critérios</p><p>Após a identificação do problema, é necessário selecionar</p><p>os critérios que serão usados para avaliar as alternativas</p><p>disponíveis.</p><p>Desenvolvimento de</p><p>alternativas</p><p>É gerada alternativas possíveis para resolver o problema</p><p>ou aproveitar a oportunidade identificada.</p><p>Avaliação das</p><p>alternativas</p><p>As alternativas geradas na fase anterior são avaliadas com</p><p>base nos critérios selecionados. Podendo incluir a</p><p>utilização de modelos matemáticos para prever possíveis</p><p>resultados.</p><p>Escolha da alternativa</p><p>A alternativa escolhida é implementada na organização.</p><p>Isso pode envolver mudanças em processos, sistemas ou</p><p>estruturas organizacionais.</p><p>Implementação</p><p>A implementação da alternativa escolhida é monitorada e</p><p>avaliada para verificar se os resultados esperados estão</p><p>sendo alcançados. Se necessário, ajustes podem ser</p><p>feitos para melhorar a eficácia da decisão tomada.</p><p>Fonte: Autoria própria.</p><p>Além destas fases, é possível identificar outras fases nos processos decisórios</p><p>do Sistema SAD, dependendo do modelo ou metodologia utilizada como o</p><p>monitoramento e controle onde é monitorada e controlada a implementação da</p><p>solução escolhida, a fim de avaliar se ela está sendo eficaz e se está gerando os</p><p>resultados esperado e também a definição dos objetivos onde é nesta fase que se</p><p>define qual objetivo que se deseja alcançar com a tomada de decisão, seja em reduzir</p><p>custos, aumentar lucros, melhorar a eficiência, entre outros.</p><p>17</p><p>4.5 Limitações e Deficiências no Uso da Informação para Tomada de</p><p>Decisões</p><p>Os softwares SAD são ferramentas valiosas para a tomada de decisões em</p><p>empresas e organizações. No entanto, esses sistemas também apresentam algumas</p><p>limitações e deficiências que precisam ser consideradas pelos usuários e</p><p>desenvolvedores.</p><p>Uma das principais limitações dos softwares SAD é a falta de precisão dos</p><p>dados e informações utilizados na tomada de decisão. Os dados podem ser</p><p>imprecisos, incompletos ou desatualizados, o que pode levar a decisões equivocadas.</p><p>Além disso, a interpretação dos dados pode ser subjetiva, dependendo do</p><p>conhecimento e experiência do usuário.</p><p>Outra limitação é a dependência do usuário em relação aos dados e</p><p>informações fornecidos pelo sistema. O usuário pode se tornar excessivamente</p><p>dependente do sistema, deixando de considerar outras fontes de informação e</p><p>conhecimento que poderiam ser relevantes para a tomada de decisão.</p><p>Além disso, os softwares SAD podem ser afetados por vieses e preconceitos</p><p>dos usuários ou do próprio sistema, o que pode levar a decisões com viés. Por</p><p>exemplo, um software SAD pode ser programado para favorecer determinadas</p><p>opções ou soluções prejudicadas por outras, ou o usuário pode ter uma predisposição</p><p>para uma determinada decisão, influenciando o resultado.</p><p>Outra deficiência dos softwares SAD é a falta de flexibilidade e adaptação a</p><p>mudanças. Os sistemas são projetados para lidar com situações específicas e podem</p><p>não ser capazes de se adaptar a mudanças nas condições do ambiente de negócios.</p><p>Isso pode limitar a capacidade do sistema de fornecer informações relevantes e</p><p>atualizadas para a tomada de decisão.</p><p>Por último, os softwares SAD também podem ser afetados por problemas</p><p>técnicos, como falhas de software e hardware, falta de segurança e privacidade, e</p><p>problemas de integração com outros sistemas e processos de negócios.</p><p>18</p><p>5 BANCO DE DADOS</p><p>Banco de dados (BD) são estruturas onde estão armazenados diversos dados</p><p>ou informações, esses dados são armazenados e gerenciados nos softwares de</p><p>computadores. Através desses softwares, os dados podem ser manipulados de</p><p>maneira fácil, e para isso acontecer, os dados serão guardados em modelos com</p><p>linhas e colunas como nas planilhas.</p><p>Muitos perguntam qual a diferença entre banco de dados e planilhas, ambos</p><p>têm pequenas semelhanças, as planilhas são geralmente para manipulação de dados</p><p>com pequenos grupos de usuários que possam utilizar para entrega de relatórios e</p><p>controle de suas atividades. Já o banco de dados é utilizado para armazenamento de</p><p>grandes bases de dados, onde são armazenadas diversas informações, permitindo</p><p>que usuários possam navegar e encontrar dados rapidamente com segurança</p><p>utilizando as linguagens de programação complexas.</p><p>A maior parte dos bancos de dados utilizam uma linguagem de programação</p><p>chamada SQL, essa linguagem foi desenvolvida pela IBM juntamente com a Oracle</p><p>como sua principal contribuinte.</p><p>Existem diversos tipos de bancos de dados, cada um tem uma função diferente</p><p>de outro, alguns dos mais famosos são: Banco de dados orientados a objetos, banco</p><p>de dados relacionais, data Warehouse, banco de dados distribuídos, banco de dados</p><p>em nuvem, entre outros que existem.</p><p>Os softwares de banco de dados são conhecidos como “Sistema de</p><p>Gerenciamento de Banco de Dados” (DBMS ou SGBD). Esses softwares processam,</p><p>armazenam dados, realizam backup e relatórios de controle. Eles são utilizados para</p><p>editar, criar e guardar arquivos.</p><p>A utilização do banco de dados é importante, pois podemos ter uma grande</p><p>escalabilidade com eficiência para armazenamento de bilhões de dados. Dentro das</p><p>estruturas dos bancos temos a integridade dele, pois existem regras e condições</p><p>internas que são criadas pelo usuário para manter os dados de maneiras consistentes.</p><p>5.1 Linguagem SQL</p><p>A sigla SQL significa Structured Query Language que seria Linguagem de</p><p>19</p><p>Consulta Estruturada, esta linguagem foi padronizada pelo órgão internacional, para</p><p>realizar gerenciamento das informações em bancos de dados relacionais, com essa</p><p>linguagem é possível realizar consultas utilizando diversos parâmetros de pesquisas,</p><p>facilitando a inserção e a recuperação das informações no banco.</p><p>Os comandos mais utilizados dessa linguagem são: SELECT, INSERT,</p><p>UPDATE e DELETE, mas além desses existem diversos outros comandos para</p><p>utilização e manuseio dos dados. Ele também pode utilizar operadores de condições</p><p>lógicas como: AND, OR e NOT.</p><p>Além desses comandos eles são divididos em subgrupos que seriam:</p><p>• DML – Linguagem de Manipulação de Dados ou Data Manipulation</p><p>Language (por exemplo: SELECT, DELETE e INSERT);</p><p>• DDL – Linguagem</p><p>de Definição de Dados ou Data Definition Language (por</p><p>exemplo: DROP);</p><p>• DCL – Linguagem de Controle de Dados ou Data Control Language</p><p>(exemplo: GRANT), e DTL – Data Transaction Language (por exemplo:</p><p>COMMIT).</p><p>Existem duas chaves no SQL, a chave primária e a chave estrangeira. A chave</p><p>primária é utilizada como identificador único da tabela e não recebe o mesmo valor.</p><p>Tem algumas características que podem levar em consideração, como: a chave não</p><p>pode ser nula, essas chaves são incrementadas automaticamente na tabela sem</p><p>precisar inseri-las, e cada um dos registrados da tabela podem possuir apenas uma</p><p>chave primária.</p><p>Figura 2 – Exemplo De Metadados</p><p>Fonte: Fernando Amaral, 2016.</p><p>20</p><p>5.2 Sobre o MySQL</p><p>O MySQL é um dos sistemas mais utilizado para gerenciamento do banco de</p><p>dados, o mesmo por ser categorizado como gerenciador de banco de dados relacional</p><p>utilizando a linguagem SQL para manipulação de dados. Ele é um dos bancos mais</p><p>utilizados no mundo inteiro consequentemente sendo usado por diversas empresas</p><p>de grande e pequeno porte.</p><p>Muitas delas o utilizam, pois, é de fácil manuseio já que sua interface é simples,</p><p>tendo ótima compatibilidade com a maioria dos sistemas operacionais como Windows,</p><p>Linux, Unix, FreeBSD e Mac OS X Server, pelo fato dele ser desenvolvido em C e</p><p>C++, e será por esses diversos benefícios que usaremos este SBGD para o</p><p>desenvolvimento do projeto SAD.</p><p>Para seu uso é necessário fazer uma instalação do servidor e através dele é</p><p>realizado o armazenamento dos dados. Podem os manuseá-los via console direto do</p><p>servidor ou usar ferramentas com interface gráfica, uma das mais utilizadas é o</p><p>MySQL Workbeach da empresa Oracle, nele é possível administrar os sistemas e</p><p>modelá-los.</p><p>Figura 3 – MySQL</p><p>Fonte: TechTudo (https://www.techtudo.com.br/noticias/2012/04/o-que-e-e-como-usar-o-mysql.ghtml)</p><p>21</p><p>6 METODOS DE ARMAZENAMENTO</p><p>Na era da informação é de suma importância ter o máximo de recursos ao seu</p><p>alcance para armazenar a maior quantidade possível de conhecimento, elementos,</p><p>ou como também podem ser chamados, os dados. Mas o que são esses dados e por</p><p>que eles devem ser armazenados de forma correta?</p><p>O dado em si pode ser denominado como qualquer tipo de acontecimento ou</p><p>fato que está registrado e com seu acesso não comprometido, como por exemplo uma</p><p>tabela com as informações do ano letivo de um colégio contendo fotos, notas de</p><p>avaliações, carga horária de uma disciplina, entre outros. Essas informações podem</p><p>consideradas dados. Na figura 4 há um exemplo de Banco de Dados com dados</p><p>meramente ilustrativos.</p><p>Figura 4 – Exemplo de Banco De Dados</p><p>Fonte: Imagens de autoria própria.</p><p>Todo o conteúdo produzido com o tempo tem a necessidade de ser guardado,</p><p>já que o armazenamento desses dados assegura muitos benefícios, como por</p><p>exemplo futuras consultas para próximas tomadas de decisões, elaboração das</p><p>informações de forma mais detalhada para análises, entre outros.</p><p>Como podemos armazenar esses dados? Primeiramente são necessários</p><p>alguns requisitos que devem ser seguidos antes de juntá-los, segundo Amaral</p><p>Fernando (2016) são “segurança da informação, integridade, minimização de</p><p>redundância, concorrência, otimização de espaço, entre outros”. Os dados podem ser</p><p>armazenados tanto no estado físico como a RAM e o CD, que são voláteis (funcionam</p><p>com base de energia elétrica), quanto no estado digital como a ROM e o Disco Rígido</p><p>que não são voláteis.</p><p>Existem muitos outros sistemas de gerenciamento de banco de dados (SGDB),</p><p>cada um com o seu uso para a situação desejada. Na figura 5, são listados os 10</p><p>SGDBs mais usados no período entre abril de 2021 até abril de 2022.</p><p>22</p><p>Figura 5 – Ranking dos 10 SGBDs Mais Usados</p><p>Fonte: DB-Engines (http://db-engines.com/en/).</p><p>Para armazenar os dados temos muitas escolhas para banco de dados, como</p><p>o Hierárquico, o Orientado a Objeto, NoSQL (Not Only SQL), mas usaremos o banco</p><p>de dados do tipo relacional, desenvolvido por volta dos anos 70 que tem como objetivo</p><p>guardar os dados por meio de atributos (Colunas da tabela) e tuplas (Linhas da tabela)</p><p>relacionando tabelas entre si. A coluna é a classificação desse dado e a linha é onde</p><p>o dado estará localizado, o SGBD escolhido foi o MySQL.</p><p>23</p><p>7 SISTEMA GERENCIAMENTO DE BANDO DE DADOS (SGBD)</p><p>Você já ouviu falar em SGBD? Esse acrônimo está intimamente relacionado à</p><p>coleta e uso de informações que ajudam as empresas, aplicações e usuários a tomar</p><p>decisões para criar soluções.</p><p>No atual mundo empresarial orientado para a tecnologia, o Sistema de</p><p>Gerenciamento de Banco de Dados (SGBD) é uma ferramenta crucial que ajuda a</p><p>gerenciar os dados com eficiência. Podendo ser usado para criar, gerenciar, consultar,</p><p>alterar, excluir, relacionar, importar e exportar dados das tabelas do BD.</p><p>Figura 6 – Exemplificação do Fluxo de Dados</p><p>FONTE: ResearchGate (https://www.researchgate.net/figure/Figura-2-Interacao-entre-usuarios-</p><p>SGBD-e-banco-de-dados-Fonte-Adaptado-de-Date-1998_fig2_237739960). Acesso em: 20 de março</p><p>de 2023.</p><p>Ao implementar um sistema baseado neste tipo de software, a empresa estará</p><p>equipada para executar diversas tarefas e atividades com base em seus dados. E ter</p><p>esse suporte para o gerenciamento de dados, é fundamental na atualidade pois está</p><p>se tornando cada vez mais crucial para empresas de todos os portes e setores aderir</p><p>a estas novas tecnologias.</p><p>E obviamente que dependendo dos objetivos e das metas da empresa o nosso</p><p>modelo de sistema que será aplicado também irá mudar, pois os dados a serem</p><p>trabalhados também irão ser distintos, de forma que o sistema aplicado irá se adequar</p><p>para melhor desempenho e performance, tendo exemplos como: Relacional, Não</p><p>Relacional, Hierárquico e Orientado a Objetos, que serão explicados posteriormente.</p><p>24</p><p>7.1 Relacional (SQL)</p><p>De forma direta e um sistema com finalidade de conectar dados de origens</p><p>diferentes, sendo também o tipo mais comum de SGBD, este sistema expressa em</p><p>tabelas e relacionamentos através de chaves e utiliza a linguagem de busca SQL</p><p>(Structured Query Language) para relacionar os dados de tabelas, colunas linhas e</p><p>esquemas, além de ser o modelo escolhido para este trabalho.</p><p>Maiormente aplicados em: Oracle SQL, Microsoft SQL Server, PostgreeSQL,</p><p>MySQL, MariaDB.</p><p>7.2 Não Relacional (NoSQL)</p><p>Em comparação ao sistema Relacional, neste modelo não necessariamente</p><p>precisamos predefinir a estrutura de dados, tendo dados mais flexíveis não se</p><p>limitando a tabelas, linhas, colunas ou esquemas, e logo também geralmente não se</p><p>utiliza a linguagem SQL neste tipo.</p><p>Maiormente aplicados em: Cassandra, Redis, MongoDB, CouchDB, Apache</p><p>Hbase, Riak.</p><p>7.3 Hierárquico</p><p>Como o nome sugere é um modelo que toma a forma de hierarquia parecido</p><p>com uma árvore em sua maioria, onde dados “filhos” são ligados a dados “pais”, onde</p><p>os vínculos não estabelecidos entre tabelas como no modelo relacional.</p><p>7.4 Orientado a Objeto (SGBDOO)</p><p>Formato complexo com tipos de dados mistos e de implementação cara devido</p><p>a ser o modelo mais avançado no mercado, seu desenvolvimento de origem na base</p><p>da combinação de ideias de modelos de dados tradicionais e na linguagem de</p><p>programação orientada a objeto, sendo o modelo que junta a programação com a</p><p>engenharia de software.</p><p>Bom agora que já temos a noção de alguns modelos que existem e de como</p><p>funcionam, hora de falarmos sobre as vantagens operacionais e estratégicas que usar</p><p>um SGBD oferece:</p><p>Podemos começar falando pela diminuição do esforço humano durante todo o</p><p>25</p><p>processo, sendo o objetivo principal de um sistema de controle de dados a</p><p>automatização de tarefas trabalhosas que consomem muito tempo para serem</p><p>executadas manualmente, assim um SGBD pode localizar e manipular dados</p><p>rapidamente, substituindo a busca manual por um algoritmo automatizado que pode</p><p>realizar a tarefa em milissegundos,</p><p>poupando o recurso humano para os negócios.</p><p>Outro ponto que podemos levar como vantagem de SGBD é sua customização</p><p>que se adapta a diferentes necessidades devido a ser um software de código fonte</p><p>aberto.</p><p>O armazenamento de dados idênticos ou semelhantes é um problema comum</p><p>ao lidar com dados. Um SGBD pode identificar e eliminar a redundância, resultando</p><p>em dados mais limpos e precisos, para melhores insights.</p><p>E por fim e não menos importante temos que levar em conta uma das principais</p><p>vantagens que grandes empresas tem ao usar o sistema de gerenciamento de BD</p><p>que é a questão de compartilhamento, onde um SGBD garante que todos, não importa</p><p>quantos usuários, tenham acesso aos arquivos, permitindo que compartilhem dados</p><p>de acordo com suas respectivas credenciais.</p><p>Quando se fala de compartilhamento, também e necessário falar um pouco</p><p>sobre o armazenamento que é um detalhe deveras importante, podemos dizer</p><p>facilmente que os três principais métodos de armazenamento são o Armazenamento</p><p>Local, onde o servidor de uma empresa é hospedado na sua própria infraestrutura, e</p><p>é mantido e administrado por uma equipe interna da empresa, em segundo temos o</p><p>tipo de Armazenamento em Nuvem que nada mais é, que a hospedagem de seus</p><p>dados através de um provedor de serviços externos, sendo possível gerenciar a conta</p><p>com os dados através do acesso à internet desde um celular até um desktop, e por</p><p>último temos o mais recente método de armazenamento que é o Data Warehouse,</p><p>que consiste num repositório central de informações, que pode aprimorar os recursos</p><p>de tomada de decisão. Ele recebe dados de sistemas transacionais, bancos de dados</p><p>relacionais e outras fontes, geralmente em intervalos fixos, e os armazena para uso</p><p>posterior, no decorrer deste documento já foi abordado mais sobre o tema de</p><p>armazenamento do BD.</p><p>Em resumo podemos observar que independente dos dados que serão usados,</p><p>26</p><p>se faz necessário um SGBD para sua gestão, pois além de todas as vantagens e sua</p><p>segurança que traz com sigo, esta é uma ferramenta que se adequa a diferentes tipos</p><p>e portes de negócio.</p><p>27</p><p>8 MODELOS DE DADOS</p><p>Os Modelos de Dados são definidos como um conjunto de ferramentas</p><p>conceituais que auxiliam, principalmente, na descrição de dados e em seus</p><p>relacionamentos, transformando-as em informações úteis e deduzindo fatos</p><p>adicionais. A partir disso, um dos principais motivos do uso da modelagem de dados</p><p>é o de reduzir os erros, melhorar a integridade dos dados e auxiliar na entrada de</p><p>dados excessivos, criando uma estrutura que aumenta a colaboração da equipe de</p><p>TI.</p><p>Para iniciar a utilização dos Modelos de Dados é fundamental determinar uma</p><p>organização da base de dados, sendo assim iniciado o Processo de Mapeamento.</p><p>Desse modo, tem-se ao menos duas fases na elaboração de um Banco de Dados, a</p><p>fase lógica e a fase física. Após o levantamento e a análise de dados, a primeira fase</p><p>a se seguir é a lógica, possui a função de representar as relações de forma correta e</p><p>eficaz, a fim de que as operações relacionais funcionem como o esperado, assim, os</p><p>tipos e as dependências entre os dados devem ser mencionados, utilizando de</p><p>esquemas conceituais e lógicos. Já a fase física é, portanto, derivada do projeto lógico,</p><p>focado em eficiência de armazenamento e desempenho, preservando a informação</p><p>entre as duas fases, nesta etapa é feita a aplicação do SQL, por exemplo.</p><p>8.1 Tipos de Modelos</p><p>Na primeira fase, são utilizados os Modelos de Dados, dentre estes há os</p><p>conceituais, modelo abstrato (esboço) dos dados, e os lógicos, estrutura de dados, o</p><p>mais utilizado é o Modelo Entidade-Relacionamento (MER).</p><p>8.1.1 Modelo Entidade-Relacionamento (MER)</p><p>O Modelo Entidade-Relacionamento (MER) é definido como um modelo que</p><p>transforma estruturas do mundo real para dentro de um banco de dados, sendo</p><p>formado por entidades, atributos e relacionamentos. No exemplo a seguir, foi feito um</p><p>esquema utilizando a conta bancária de um cliente de um banco, demonstrado na</p><p>Figura 7.</p><p>28</p><p>Figura 7 – Modelo Entidade-Relacionamento (MER)</p><p>Cliente:</p><p>#Nome</p><p>CPF_Cliente</p><p>Endereço</p><p>Conta:</p><p>#Saldo</p><p>Numero_Conta</p><p>Fonte: Autoria Própria.</p><p>A partir do MER, é feito o Diagrama de Entidade-Relacionamento (DER), porém</p><p>para representá-lo é necessário ter conhecimento dos principais conceitos do MER</p><p>citados anteriormente e explicados a seguir.</p><p>As entidades são um conjunto de dados do qual pretende-se obter informações,</p><p>podendo ser tanto objetos físicos quanto abstratos, representada por retângulos. Já</p><p>os atributos são os dados propriamente ditos, uma propriedade da entidade, ou seja,</p><p>se temos um cliente (entidade) precisaremos de informações acerca deste, como seu</p><p>nome, CPF e endereço (atributos). Por fim, tem-se os relacionamentos, é definido</p><p>como a associação entre entidades, representado através de um losango conectando</p><p>cada entidade.</p><p>8.1.2 Diagrama Entidade-Relacionamento (DER)</p><p>Deste modo, utilizando destes conceitos citados anteriormente e construído o</p><p>DER, que possui como principal função fazer projetos e aprimorar o banco de dados</p><p>relacional, representando visualmente a parte lógica do projeto do banco de dados,</p><p>similar às outras notações que são muito usadas em projetos de software e banco de</p><p>dados, como diagramas de classe, exibição de uma estrutura do banco de dados de</p><p>um sistema, e a notação UML (Linguagem de Modelagem Unificada), uma linguagem</p><p>desenvolvida para especificar, construir, visualizar e documentar software. Assim</p><p>sendo, o DER não define os passos para o desenvolvimento do projeto, mas fornece</p><p>um meio de representação de sistemas de informação que auxilia a documentação e</p><p>comunicação entre os desenvolvedores.</p><p>Abaixo foi elaborado um exemplo de DER com base na figura 1, onde há o</p><p>relacionamento Conta Corrente entre as entidades Cliente e Conta que possuem seus</p><p>respectivos atributos.</p><p>29</p><p>Figura 8 – Diagrama de Entidade de Relacionamento</p><p>Fonte: Autoria Própria.</p><p>30</p><p>9 MODELOS DE PROCESSO DE DESENVOLVIMENTO DE SOFTWARE</p><p>O processo de desenvolvimento de software tem evoluído juntamente com a</p><p>necessidade da sociedade, cada dia mais sendo necessário a criação ou</p><p>aprimoramento de técnicas para reduzir o tempo de desenvolvimento sem perder a</p><p>qualidade e segurança do produto final entregue ao cliente.</p><p>9.1 Fluxo de Processos</p><p>O workflow mais simplificado destes processos segue os seguintes passos:</p><p>Requisitos Do Cliente, Especificações Técnicas, Desenvolvimento / Reuso, Validação,</p><p>Teste e Implementação.</p><p>9.1.1 Requisitos do cliente</p><p>Primeiro e mais importante passo no planejamento do desenvolvimento de um</p><p>software, podemos tratá-lo como a alma da aplicação, por que uma vez incoerente</p><p>com os requisitos apresentados pelo cliente, o software perde o propósito de criação,</p><p>tornando vão todo e qualquer esforço imputado após essa fase.</p><p>De maneira breve, se resume ao primeiro contato com o cliente ou requerente</p><p>da aplicação digital, onde se coleta de maneira rústica e informal os “inputs” ou</p><p>detalhes mais elementares do que será o projeto do software e que deve</p><p>mandatoriamente nortear todas as discussões e planejamentos a seguir, sabendo que</p><p>majoritariamente das vezes ocorrem alterações e aprimoramentos nos planos iniciais.</p><p>Ainda nesta fase realizamos algumas análises de risco e de possibilidades de</p><p>implementação, visando avaliar qualquer implicação legal ou que não seja possível</p><p>de desenvolver, uma vez avaliado e aprovado pode-se seguir para o primeiro</p><p>processo no desenvolvimento do software.</p><p>9.1.2 Especificações técnicas</p><p>Etapa conhecida pela criação das user stories, onde é descrito, de modo ainda</p><p>prévio ao totalmente técnico, o esboço das componentes do sistema e suas</p><p>funcionalidades com uma base técnica e de caráter projetista, já tomando decisões</p><p>referente ao desenvolvimento, divergente da primeira ideia advinda dos requisitos,</p><p>mas totalmente</p><p>alinhada com eles.</p><p>31</p><p>Essa fase é crucial para garantir o desenvolvimento correto do software, pois é</p><p>nela que se gera uma noção em todos os integrantes da equipe do que será feito e</p><p>que deve estar acordada entre os membros de equipe/squad para garantir que não</p><p>haja retrabalho, ou desperdício de recurso temporal, causados pela divergência entre</p><p>os entendimentos transmitidos.</p><p>Vale ressalvar, que esta etapa está alinhada diretamente com a primeira,</p><p>estando sujeita a revisões e alterações em virtude de mudanças nos requisitos, ou</p><p>descoberta de novas necessidades e problemas não previstos no primeiro modelo.</p><p>9.1.3 Desenvolvimento e Reuso</p><p>Após o cumprimento e revisão das fases anteriores, ainda não é chegado a</p><p>hora de desenvolver de fato o software, primeiramente é necessário quebrar a tarefa</p><p>em partes para a distribuição coordenada das peças em desenvolvimento similar a</p><p>uma fábrica, para então definir o método de desenvolvimento coerente e eficiente ao</p><p>projeto em particular.</p><p>Para alguns casos em que o tempo de desenvolvimento é a prioridade,</p><p>podemos utilizar do reuso de partes de softwares já produzidos para acelerar o</p><p>processo, o que é muito famoso em modelos embasados na prototipagem.</p><p>É importante citar que nesta fase já se encontram os primeiros testes, iniciando</p><p>pelos unitários conforme se escolhe ou desenvolve as peças que vão compor o</p><p>software, seguido pelos testes em conjunto conforme integramos um componente ao</p><p>outro, salvando assim tempo nas fases a seguir.</p><p>9.1.4 Validação</p><p>Não é incomum na transição de fases do projeto haver uma compreensão</p><p>errônea causada pela troca de informações ou mudanças no requisito do cliente, por</p><p>conta disso há muita importância nesta fase, uma vez que é nela que se garante que</p><p>o que foi desenvolvido está de acordo com o especificado, que por sua vez, deve-se</p><p>provar alinhado com as especificações do cliente.</p><p>9.1.5 Teste</p><p>Uma vez confirmado que o software se encontra dentro das especificações, é</p><p>32</p><p>necessário assegurar por meio de repetidos testes nos mais diversos cenários de uso,</p><p>isso para garantir que não só foram atendidas as especificações do cliente com suas</p><p>variâncias, como também a eficiência, qualidade, análise de risco do sistema e</p><p>facilidade de uso.</p><p>Pode-se também realizar testes com usuários nesta fase, o que permite um</p><p>maior nível de excelência nas entregas, uma vez que o próprio requerente pode ter</p><p>sofrido alguma mudança no contexto de negócio e a aplicação de algum de seus</p><p>requisitos ter sido comprometida, porém o mesmo não ter reportado esta mudança</p><p>nas especificações, tornando este teste muito útil para uma última validação do</p><p>sistema em relação ao esperado pelo cliente.</p><p>9.1.6 Implementação</p><p>Tendo sido concluídas todas as fases em relação ao desenvolvimento da</p><p>aplicação, é o momento de prover ao cliente manuais e treinamentos para que os</p><p>usuários estejam integrados ao software, levando assim a um retorno em valor para o</p><p>cliente, uma vez que o software somente demonstra seu potencial perante usuários</p><p>capacitados ao uso.</p><p>O suporte integrativo pode vir acompanhado de sessões de treinamento ou</p><p>somente da provisão de manuais, dependendo somente do acordado entre o</p><p>requerente e a companhia desenvolvedora de software, porém é um passo muito</p><p>importante para garantir a excelência de serviço prestado ao cliente e que pode ser</p><p>até mesmo decisivo quanto ao sucesso do software.</p><p>Há diversos outros modelos de desenvolvimento de software, cada um</p><p>contendo mudanças nas fases, com acréscimos ou realocação de tarefas de uma</p><p>etapa para outras visando atender as prioridades do desenvolvimento, seja no caso</p><p>do tempo, segurança, qualidade e assim por diante.</p><p>No entanto, temos acima descrito o que seria a essência para o</p><p>desenvolvimento estruturado, seguro e qualificado de um software e que embasará o</p><p>modelo escolhido para a execução deste trabalho.</p><p>33</p><p>9.2 Cascata</p><p>Um dos modelos de desenvolvimento de software mais tradicionais, porém,</p><p>ainda amplamente utilizado nos dias de hoje, isso porque os modelos consideram</p><p>diversos fatores para determinar o melhor método, como: produto a ser desenvolvido,</p><p>características inerentes a equipe, recursos disponíveis, tempo e assim por diante,</p><p>fazendo com que não exista um modelo ideal, mas sim o que atende melhor às</p><p>necessidades de um dado projeto.</p><p>No tocante à cascata (waterfall), é um modelo bem simplista que consiste em</p><p>uma iniciativa sequencial e sistemática, onde se engaja uma fase logo após o término</p><p>da anterior, garantindo uma significante margem de segurança na implementação das</p><p>interfaces e diminuindo a possibilidade de transmissão incorreta de informação entre</p><p>os times envolvidos, uma vez que somente após completa a fase anterior que se inicia</p><p>a seguinte.</p><p>Há uma grande vantagem em termos de garantia das funcionalidades do</p><p>software, isso porque se prioriza a qualidade e a segurança em um sistema mais</p><p>conservador, garantindo que a entrega esteja alinhada com o definido nas fases</p><p>anteriores e consequentemente com os requisitos do cliente (mesmo quando</p><p>alterados durante o processo).</p><p>Porém, há um demérito principal em relação ao tempo de desenvolvimento,</p><p>dado a logística do modelo que não tem enfoque em economia de tempo, o cliente</p><p>deve ser muito paciente sabendo que só terá a oportunidade de ver os primeiros</p><p>modelos do software nas fases finais, o que incrementa o risco de ter mudanças</p><p>maiores de requisitos próximo ao fim do projeto, dado a impossibilidade do cliente de</p><p>testar e validar a versão primária de seus requisitos.</p><p>É importante citar que há variações do modelo cascata e que sofrem alterações</p><p>para balancear ou alterar o enfoque do modelo original, assim como anteriormente</p><p>descrito não há um modelo correto, mas o que de fato atende a necessidade de</p><p>desenvolvimento de um dado software.</p><p>Dado as características deste modelo e da entrega em questão neste projeto,</p><p>utilizaremos do modelo cascata para realizar a criação do software, juntamente com</p><p>sua documentação associada, garantindo a compreensão das especificações do</p><p>34</p><p>cliente até a etapa final de entrega do projeto.</p><p>As fases padrões conhecidas no modelo cascata são as expostas na figura 9.</p><p>Figura 9 – Exemplificação de um Framework de Cascata</p><p>Fonte: Ian Sommerville, 2011.</p><p>35</p><p>10 FUNCIONAMENTO DE UMA INTERFACE</p><p>10.1 Definição de Interface</p><p>Uma interface pode ser descrita como um dispositivo ou um sistema que faz</p><p>com que entidades que não necessariamente tenham uma relação possam interagir.</p><p>Exemplos dessa definição podem ser vistos como, o controle remoto sendo uma</p><p>interface entre uma pessoa e a televisão, a língua portuguesa sendo a interface entre</p><p>duas pessoas e um protocolo de comportamento é a interface entre pessoas de</p><p>diferentes patentes em alguns serviços.</p><p>10.2 Interface de um Software</p><p>A interface de uma aplicação é a parte de um software que o usuário verá e</p><p>poderá interagir com. Como visto nos exemplos anteriores, isso nada mais é do que</p><p>a forma em que o usuário irá interagir com o sistema. Um bom exemplo disso é o</p><p>desktop do sistema operacional Windows, que trará ao usuário acesso a diversas</p><p>informações e funções para que o usuário possa interagir com o computador.</p><p>Figura 10 – Interface</p><p>Fonte: Dicio (https://www.dicio.com.br/interface/).</p><p>A criação de uma interface para um software é baseada em diversos fatores.</p><p>Primeiramente deve ser visto quais são os requerimentos para qual objetivo o software</p><p>será criado, isso é de importância pois determinará se será possível atender a</p><p>demanda do cliente e a viabilidade. Também deve-se levar em conta o público-alvo</p><p>para determinar alguns fatores como qual o grau de conhecimento do usuário, a</p><p>36</p><p>acessibilidade do software e qual a melhor direção de design que atenda o projeto.</p><p>Então, tudo que seja feito terá que ser levado em consideração um balanço entre</p><p>usabilidade</p><p>e viabilidade.</p><p>Figura 11 – Interface de Usuário</p><p>Fonte: Des1gnON (https://www.des1gnon.com/2013/07/16-dicas-para-uma-boa-interface-de-</p><p>usuario-ui/).</p><p>Para a criação de uma interface de software, teremos múltiplas opções de tipos</p><p>de interface para que se escolha a que melhor atenda aos requisitos. A interface</p><p>gráfica do usuário (GUI), interface de linha de comando (CLI), interface de usuário</p><p>orientada pelo menu, interface de toque do usuário, interface de voz do usuário (VUI),</p><p>interface do usuário baseado em formulário e interface de usuário de linguagem</p><p>natural.</p><p>Figura 12 – Interfaces GUI e CLI</p><p>Fonte: Future Techno India (https://futuretechnoindia.medium.com/graphical-user-interface-</p><p>gui-and-command-line-interface-cli-c1fd7c951c39).</p><p>10.3 Ferramenta CASE Qt Designer</p><p>Pensando em um desenvolvimento mais ágil do sistema, o Qt Designer é uma</p><p>37</p><p>ferramenta que possibilita ter uma interface de usuário do tipo WYSIWYG (What You</p><p>See Is What You Get, traduzindo “O que você vê é o formato final”), com essa</p><p>ferramenta torna-se possível criar diversos componentes gráficos de uma forma mais</p><p>rápida, prática e eficiente, de modo que só é necessário arrastar e soltar o widgets</p><p>(elemento de interação) em formulário vazio para a construção do design da interface.</p><p>A própria ferramenta permite, que os desenvolvedores visualizem as interfaces e</p><p>componentes, usando diferentes estilos e resoluções.</p><p>Uma característica distintiva do Qt Designer é sua capacidade de oferecer</p><p>visualizações flexíveis das interfaces e componentes, possibilitando a exploração de</p><p>diferentes estilos de solução para os requisitos apresentados.</p><p>Além disso, a ferramenta facilita a codificação das interfaces, gerando arquivos</p><p>com extensão própria (.ui) que podem ser subsequentemente traduzidos para códigos</p><p>Python (.py) e aprimorados ainda mais por bibliotecas nativas da linguagem python e</p><p>aplicações irrestritas de alterações no código fonte para elevar ainda mais o nível do</p><p>software em produção, sendo uma ferramenta com baixa limitação já que se</p><p>desvincula do framework por completo uma vez que traduzida.</p><p>Devido a demanda de tempo da equipe, foi decido o uso da Qt Designer para</p><p>agilizar o desenvolvimento da parte de Front-end, além de que a própria plataforma é</p><p>uma ferramenta simples, fácil e eficaz para as funcionalidades que o projeto demanda.</p><p>Na figura 13, há um exemplo de como o Qt Designer é a primeira vista para</p><p>criar uma caixa de diálogo com os botões “OK” e “Cancel”, apenas para visualização</p><p>de como o aplicativo funciona em si.</p><p>Figura 13 – Página do Qt Designer</p><p>Fonte: fman build system (https://build-system.fman.io/qt-designer-download).</p><p>38</p><p>11 DESIGN DE SISTEMA</p><p>Design de Sistema (Design System) é um conjunto de componentes</p><p>reutilizáveis, para um determinado produto, como site ou sistema de web, unificando</p><p>determinado produto, sendo um produto interno de uma empresa, que necessita de</p><p>pessoas que o atualizem enquanto estão desenvolvendo soluções novas, novos</p><p>componentes e novos guias de estilo.</p><p>Como o design system ainda é viva, existem exemplos conhecidos, que</p><p>possuem o seu sistema: O Stack Overflow tem um Design System com os padrões</p><p>que vai de classes CSS, é um exemplo muito conhecido na comunidade de UX e</p><p>Design.</p><p>A funcionalidade do design para sistemas bem planejados, vai além da</p><p>combinação de cores e elementos gráficos. O uso de um sistema, depende de um</p><p>design bem estruturado e com o foco especial, na facilitação e interação do usuário</p><p>com o sistema.</p><p>Com isso podemos pensar em uma interface de um certo sistema, como ocorre</p><p>a sua apresentação e como ele interage com o usuário envolvendo os elementos que</p><p>estão participando da interação, como botões, setas e legendas.</p><p>Nisso o design de interface, pode ser visto como o modelo que se apodera de</p><p>composições de arranjos entre os componentes para localizar resultados para os</p><p>problemas que o usuário pode ter com a interface, ou seja, um sistema como</p><p>operacional de celular, e suas entidades que precisam conversar de modo integrado,</p><p>com isso ficando no centro do processo de design.</p><p>Um bom design de interface necessita ter em consideração os componentes</p><p>que estão envolvidos no seu processo de criação, que são:</p><p>• Arquitetura de Informação: O seu principal objetivo é proporcionar uma</p><p>navegação muito mais simplificada para o seu usuário, independentemente</p><p>de seu navegador usado.</p><p>• Design de Interação: A criação do design deve ser levada em conta, como</p><p>ocorre na interação do usuário com o sistema, analisando os elementos</p><p>gráficos e audiovisuais do sistema, nas cores, fontes e tamanho das letras.</p><p>39</p><p>• Usabilidade: A usabilidade é fundamental quando o assunto é a criação do</p><p>sistema, afinal o sistema deve facilitar o uso do usuário e ser fácil de</p><p>navegar, intuitivo, e seus erros têm que ser levantados para que tenham</p><p>uma solução.</p><p>• Wireframing: Se refere na criação de teste dos recursos disponíveis e da</p><p>sua usabilidade, para certificar que o sistema pode ser iniciado. Esse teste,</p><p>além de ser muito importante, é também uma forma de visualizar como vai</p><p>funcionar o sistema na prática.</p><p>• Design Visual: É como será definida a marca da empresa, por isso tem um</p><p>impacto direto na interação entre o usuário e o sistema.</p><p>11.1 Ferramenta CASE Canva e Figma</p><p>Para desenvolvimento do design do sistema há duas ferramentas que podem</p><p>auxiliar para dar uma visão geral de como o sistema irá funcionar, levando em</p><p>consideração todos os pontos apontados no tópico 11, sendo um local onde pode-se</p><p>desenvolver um design gráfico, ou seja, um desenho, de como seria o seu sistema,</p><p>assim, criando um padrão que pode ser implementado em todas as telas, definindo</p><p>cores, bordas, nomes, ícones e diversos outros tópicos.</p><p>Assim, nos tópicos posteriores pode-se observar o design do sistema</p><p>inicialmente feito no Canva, para determinar um ponto de partida para os</p><p>desenvolvedores, e após isso, os próprios utilizam da ferramenta Figma, que possui</p><p>mesmo propósito do Canva, para implementar um design mais sofisticado para suas</p><p>telas, assim, sendo necessário apenas a codificação das telas.</p><p>40</p><p>12 CARACTERÍSTICAS DE RELACIONAMENTO EMPRESARIAL</p><p>12.1 Empresa Desenvolvedora do Software</p><p>Descrição: Criada com o intuito de redefinir o conceito de software, a Bacelar</p><p>Technology LTDA foi fundada por um grupo de engenheiros universitários em 2023,</p><p>buscando dar vida as mais inovadoras soluções de software para o mundo de</p><p>business.</p><p>Temos como valor o cliente acima de tudo, entendemos a necessidade volátil</p><p>do mundo atual e por isso estamos prontos com nossos modelos de desenvolvimento</p><p>de software, junto de nossos profissionais capacitados, para entregar não um software</p><p>que auxilie um processo, mas uma solução para os problemas de nossos clientes e</p><p>assim como estes mudam todos os dias, estamos prontos para mudar o mundo com</p><p>você.</p><p>Abaixo foram descritas informações pontuais do projeto.</p><p>• Nome: Bacelar Technology LTDA.</p><p>• Área de negócio: Desenvolvedora de softwares.</p><p>• Porte: Pequeno.</p><p>• Localização: Não aplicável.</p><p>• Contato: bacelar.technology@gmail.com</p><p>12.2 Empresa Fictícia: New Indie</p><p>Descrição: A New Indie é a mais nova empresa focada no ramo alimentício, foi</p><p>fundada por um homem com grande ambição em mostrar para o mundo seu talento</p><p>para as vendas e para agradar seus clientes.</p><p>Seu nome é Richard Indie Junior, com 32 anos, apaixonado por música do estilo</p><p>indie abriu um estabelecimento com a temática desse estilo musical, buscando</p><p>fornecer aos seus clientes a melhor experiência ao fazer uma simples compra de</p><p>mercado.</p><p>Preservando muito a experiência desde o momento em que o cliente pisa no</p><p>estabelecimento e escuta suas músicas preferidas. Trazendo os melhores preços da</p><p>41</p><p>região e a melhor experiência possível para todos.</p><p>Abaixo seguiram as informações pontuais da empresa fictícia que iremos</p>

Mais conteúdos dessa disciplina