Olá estudante, tudo bem? Na lição anterior lhe apresentei os conceitos e as práticas sobre o projeto de navegação, ou seja, toda a jornada do usuário através de estruturas de menus e arquitetura da informação. Como prometido, agora irei aprofundar no assunto de projeto de entrada – ou entrada de dados – realizada no sistema, e já te dando um spoiler da próxima lição, vamos finalizar o assunto falando sobre o projeto de saída. Mas, o que será que é o “projeto de entrada”, ou se preferir assim chamar, “projeto de entrada de dados”?
Vamos nos aprofundar nesse assunto no decorrer da lição, porém de forma geral, esse projeto diz respeito à definição de como esses dados serão coletados, validados, armazenados e utilizados pelo sistema em questão. Portanto, é uma parte fundamental do processo de concepção e desenvolvimento de um sistema de informação, pois a qualidade e confiabilidade dos dados de entrada afetam diretamente a eficiência e precisão das operações realizadas pelo sistema.
Nesta lição, você ainda verá alguns aspectos como: coleta de dados, validação e verificação, formato e estrutura, segurança, integração, escalabilidade e documentação desses dados de entrada. Ou seja, o projeto de entrada é uma etapa crucial para garantir que um sistema funcione corretamente, pois ao definir como os dados serão tratados e utilizados, você pode afetar o seu processamento e, consequentemente, a saída destes dados.
Considere um sistema de controle de estoque de uma loja de varejo que tenha sido mal projetado em relação à entrada de dados de quantidade de produtos em estoque. Pense em quantos problemas significativos podem aparecer devido a isso! Por exemplo, suponha que o sistema permite aos funcionários da loja atualizar manualmente a quantidade de produtos em estoque através de um formulário de entrada. No entanto, o projeto de entrada não possui validações adequadas para garantir que os dados inseridos sejam precisos e válidos.
Estas validações são fundamentais para evitar uma série de problemas, como os erros de digitação (digitar acidentalmente 1000 em vez de 100 para um determinado item, por exemplo), os erros de comunicação, onde dois colaboradores atualizam o estoque de um mesmo produto e ao mesmo tempo, e, o mais grave na minha opinião: Falta de validação! O sistema não verifica se a quantidade inserida é maior do que o limite máximo de estoque permitido, levanto a quantidades irreais e incompatíveis com a capacidade real da loja.
Esse tipo de problema é facilmente evitado na maioria das vezes com o planejamento do projeto de entrada para que assim, seja personalizado cada aspecto desses dados de entrada, bem como validados e melhorando novamente a qualidade das informações geradas através destes dados.
Portanto, ressalta-se a importância estratégica da entrada de dados e a relevância da qualidade da informação para subsidiar e apoiar as decisões e sucesso dos negócios.
Nesta lição irei apresentar um case fictício de uma rede de restaurantes renomada que decidiu modernizar seus sistemas de pedidos, migrando de um sistema telefônico tradicional para um sistema de pedidos online. O objetivo era oferecer aos clientes uma experiência mais conveniente e personalizada, além de otimizar o processo interno do gerenciamento de pedidos e estoque. O principal desafio para os profissionais que iriam criar este sistema era garantir que os pedidos fossem recebidos e processados de forma eficiente, com precisão e sem problemas de comunicação entre a plataforma online e a equipe da cozinha. A entrada de dados precisava ser cuidadosamente projetada para garantir que as informações dos pedidos fossem transmitidas corretamente em tempo real.
Para isso acontecer de forma eficaz, um projeto de entrada dos dados detalhados foi desenvolvido como parte do sistema de gerenciamento de pedidos online com uma interface intuitiva para os cliente, onde eles pudessem navegar facilmente pelo menu, selecionar os itens desejados e personalizá-los conforme suas preferências, o que minimizaria os erros de seleção. Uma validação e confirmação de pedidos também foi implementada, no sentido de garantir que os pedidos fossem corretos e completos antes de serem confirmados, incluindo a verificação de horários de funcionamento do restaurante, disponibilidade dos itens escolhidos e cálculo do tempo estimado de entrega.
A interface intuitiva traz facilidade no momento de escolha do cliente – por exemplo, ao invés de digitar quantidades, selecionar a quantidade. Isso faz toda a diferença para uma boa entrada de dados em um sistema de pedidos, seja ele em qualquer área, pois reduz drasticamente a probabilidade de erros. Sendo assim, nesse exemplo conseguimos observar como a aplicação destes “cuidados” na hora de desenvolver o projeto são importantes. Eles fazem com que um novo sistema de gerenciamento de pedidos online se torne um sucesso, proporcionando uma experiência aprimorada para os clientes e melhorando a eficiência operacional do restaurante com um todo.
Conforme mencionado anteriormente, um projeto de entrada de dados abrange o planejamento de como os dados serão coletados, validados, armazenados e posteriormente utilizados pelo sistema em questão. Essa etapa é de extrema importância no processo de concepção e desenvolvimento de um sistema de informação, uma vez que a qualidade e a confiabilidade dos dados de entrada desempenham um papel crucial na eficiência e na precisão das operações executadas pelo sistema.
Agora, vamos explorar alguns aspectos essenciais a serem considerados ao elaborar um projeto de entrada de dados, identificando quais informações são cruciais para o correto funcionamento do sistema.
Consiste em identificar quais informações são necessárias para o funcionamento do sistema e como elas serão obtidas. Isso pode envolver formulários de entrada, interfaces com outros sistemas, sensores, importação de arquivos, entre outros. Segundo MDN WEB DOCS (2023) o que geralmente é mais utilizado, principalmente em sistemas web, são os HTML forms, pois são ferramentas poderosas para interagir com usuários, contudo, por razões técnicas e históricas, nem sempre é óbvio como usá-los em seu pleno potencial. Porém, mesmo os HTML forms sendo os mais utilizados, eles não são o único meio de coleta de dados, existem outras formas, inclusive mais “seguras”, por exemplo:
Entrada manual de usuários: Neste método, os usuários inserem os dados diretamente no software através de formulários ou campos de entrada. É uma forma amplamente conhecida pela maioria dos usuários.
Integração com fontes de dados externas: Muitos softwares precisam se integrar com outras fontes de dados externas, como banco de dados, APIs (Interfaces de Programação de Aplicativos) ou serviços da web. Através dessa integração, o software pode coletar informações atualizadas e relevantes de outras aplicações ou sistemas.
Sensores e dispositivos: Em sistemas que lidam com IoT (Internet das Coisas) ou automação, os dados podem ser coletados diretamente de sensores e dispositivos físicos, como leitores de código de barras, sensores de temperatura, GPS (Global Positioning System), entre outros.
Importação de dados: O software pode permitir a importação de dados a partir de arquivos, como planilhas ou formatos específicos, para atualizar ou complementar os dados já existentes no sistema.
Captura de dados automática: Alguns softwares podem ser configurados para capturar dados automaticamente em intervalos definidos ou quando determinados eventos ocorrem. Por exemplo, um sistema de monitoramento pode coletar automaticamente dados de desempenho de servidores.
Interação com outros softwares: Através de integrações com outros softwares ou sistemas, o software pode receber informações de aplicativos complementares ou provedores de serviços externos.
Questionários e pesquisas: Em alguns casos, o software pode incluir recursos para coletar dados através de questionários ou pesquisas respondidas pelos usuários.
Monitoramento de logs e eventos: Em sistemas complexos, os logs e eventos gerados pelo próprio software podem ser utilizados para coletar informações relevantes para monitoramento, análise de problemas e otimização do sistema.
Independentemente do método utilizado para a coleta de dados dentro de um software, é importante garantir a segurança e a privacidade das informações coletadas, além de implementar validações e tratamentos adequados para evitar erros e inconsistências nos dados. Tudo isso, sempre alinhado com o que foi levantado de requisitos do sistema e as necessidades do negócio, para garantir que as informações coletadas sejam relevantes e úteis para os usuários do software.
Um erro frequentemente observado em softwares que negligenciam a entrada de dados é quando um cliente espera que um relatório contenha informações específicas, mas nunca considerou de onde esses dados cruciais seriam obtidos para gerar o relatório desejado. Em outras palavras, espera-se um relatório contendo informações que nunca tiveram os dados necessários coletados.
Consiste em definir as regras e os mecanismos para garantir que os dados inseridos no sistema sejam válidos, completos e consistentes. Isso ajuda a evitar erros e inconsistências nos dados. Conheça alguns métodos comuns de validação e verificação no projeto de entrada:
Validação de formatos: Garantir que os dados estejam no formato correto, como números inteiros, datas, endereços de e-mail válidos etc.
Validação de intervalos: Verificar se os valores inseridos estão dentro dos intervalos esperados. Por exemplo, quantidades não negativas, valores monetários válidos, ou limites específicos para campos de data.
Validação de relacionamentos: Verifica a consistência dos dados em relação a outras informações já presentes no sistema. Por exemplo, em um sistema de vendas, garantir que o produto selecionado pertença à categoria escolhida.
Validação de duplicidades: Verificar se os dados inseridos não estão duplicados, evitando informações redundantes e possíveis problemas de integridade.
Validação de regras de negócio: Implementar regras de negócio específicas do domínio do sistema para garantir que os dados estejam de acordo com as políticas da organização ou as especificações do projeto.
Validação de tamanho de campos: Garantir que os campos de entrada não excedam o tamanho máximo definido para evitar problemas de estouro de buffer ou armazenamento inadequado.
Verificação de integridade referencial: Assegurar que chaves estrangeiras e relacionamentos com outras tabelas estejam corretamente preenchidos e apontam para registros válidos.
Validação de segurança: Implementar mecanismos para evitar a entrada de dados maliciosos ou inválidos, como proteção contra injeção de SQL, ataques de cross-site scripting (XSS) ou injeção de código
Visa especificar como os dados serão apresentados e organizados dentro do sistema, isso inclui o tipo/formato dos dados (texto, números, datas etc.) e a estrutura de armazenamento (banco de dados, arquivos etc.). O formato e estrutura do projeto de entrada são elementos essenciais para garantir que os dados inseridos no sistema sejam corretos, consistentes e adequados para o processamento.
Neste processo há etapas e considerações importantes, como por exemplo, requisitos do sistema, identificação dos campos de dados, tipos de dados, relacionamentos entre campos, sequência de entrada, formulários e interfaces, feedbacks e mensagens de erro, segurança e privacidade e documentação. Todas essas medidas ajudarão a garantir que o sistema receba as informações corretas e esteja preparado para fornecer uma experiência eficiente e confiável para os usuários.
Segundo IBM (2023), quando os dados da sua organização se estendem por diversos ambientes, parceiros, integrações e endpoints, seu cenário de ameaças também se estende. Por isso é muito importante garantir a proteção dos dados de entrada contra acessos não autorizados e prevenir problemas de segurança, como ataques de injeção de código ou roubo de informações sensíveis.
Um ponto importante que ainda não foi dito nos tópicos anteriores a respeito de segurança é a sanitização dos dados, ou seja, é preciso realizar a remoção ou tratamento de caracteres especiais e códigos potencialmente perigosos antes de processar os dados. Além é claro, de um bom controle de acesso, que defina regras e permissões de acesso adequadas para diferentes tipos de usuários e criptografia, especialmente para proteger dados como senhas e informações pessoais dos usuários.
Se o sistema precisar se comunicar com outros sistemas, é necessário planejar a integração entre eles para garantir uma troca eficiente e confiável de dados. Você deve verificar as formas de integração consideradas no projeto como APIs de terceiros, ou o uso de planilhas para importar ou exportar dados entre sistemas. O importante é que estejam definidos quais os tipos de integração e que outros passos como validação e verificação já vistos nesta lição sejam aplicados na integração.
Envolve considerar a capacidade do sistema de lidar com grandes volumes de dados, especialmente se houver previsão de crescimento futuro da demanda. Tenha em mente, se o sistema for receber grandes volumes de dados será necessário o planejamento da arquitetura, uso de APIs, cache de dados e monitoramento, e análise para verificar a melhor forma para escalar a capacidade de processamento do sistema
É necessário registrar todas as decisões relacionadas ao projeto de entrada de dados para facilitar o entendimento e manutenção do sistema ao longo do tempo. Esse registro poderá elucidar no futuro o que porque certas decisões foram tomadas e com isso validar e ajudar nas possíveis mudanças que sempre ocorrem ao longo da vida de um sistema.
E quando chegar a hora de documentar o seu projeto, lembre-se do que já aprendemos sobre UML e documentações de projetos, em momentos anteriores desta disciplina.
Este conteúdo que você aprendeu nesta lição é de extrema importância para você estudante do curso técnico em análise e desenvolvimento de sistemas, pois fornece uma compreensão fundamental sobre como coletar dados de usuários de forma eficaz e segura em sistemas web. Saber planejar a coleta de dados ajuda a garantir a qualidade das informações obtidas, proteger a privacidade dos usuários e cumprir regulamentos de proteção de dados.
Para finalizar nossa lição, vamos ver como funciona o planejamento de coleta de dados para cadastro do usuário em um sistema web? Por se tratar de um cadastro em um sistema web, os dados serão coletados através de um formulário html, para isso iremos definir quais os dados serão solicitados:
Nome completo.
E-mail.
Celular.
Senha.
Confirmação de senha.
A validação e verificação bem como o formato e estrutura serão as seguintes:
Nome completo: deverá ser do tipo texto com no mínimo 7 caracteres e no máximo 100 caracteres.
E- mail: deverá ter um formato de e-mail válido com o símbolo @.
Celular: deverá ser do tipo texto e ser armazenado com o seguinte formato (41) 99999-9999 com exatos 14 caracteres.
Senha: deverá ter no mínimo 8 caracteres sendo pelo menos um caractere de cada tipo (número, especial, letra maiúscula, letra minúscula).
Confirmação de Senha: deverá ser idêntica ao campo Senha.
A segurança será implementada fazendo com o que o formulário seja submetido usando o método http post assim como a senha deverá ser criptografada usando o sistema SHA1. A parte de Documentação será feita através do uso de uma planilha do Excel para escrita do uso do formulário de cadastro e todos os dados que foram relatados neste item.
Agora, o céu é o limite, você pode a partir destes dados explorar outras formas de coleta de dados, ou outros formulários para que você possa tratar o projeto de entrada de dados a contento em seus futuros projetos como técnico em desenvolvimento de sistemas.
IBM. Soluções de segurança e proteção de dados. Disponível em: https://www.ibm.com/br-pt/data-security?utm_content=SRCWW&p1=Search&p4=43700075674345928&p5=p&gclid=Cj0KCQjw5f2lBhCkARIsAHeTvli_E1JDepF7MP67FBjMiRxsd-DYQdotxcv30iaj2Lz6d32F414C5OsaAvvREALw_wcB&gclsrc=aw.ds. Acesso em: 25 jul. 2023.
MDN WEB DOCS. Formulários da Web - trabalhando com dados do usuário. Disponível em: https://developer.mozilla.org/pt-BR/docs/Learn/Forms. Acesso em: 25 jul. 2023.