Prévia do material em texto
1 UNIVERSIDADE PAULISTA – UNIP EaD Projeto integrado multidisciplinar VI Curso Superior de Tecnologia em Análise e Desenvolvimento de Sistemas NATHALIA BALDIBIA MATHEUS – 2364760 PROJETO INTEGRADO MULTIDISCIPLINAR VI Sistema em c para cadastrar pacientes diagnosticados com Covid-19 SÃO PAULO 2023 2 NATHALIA BALDIBIA MATHEUS – 2364760 PROJETO INTEGRADO MULTIDISCIPLINAR VI SISTEMA EM C PARA CADASTRAR PACIENTES DIAGNOSTICADOS COM COVID-19 Projeto Integrado Multidisciplinar em Análise e Desenvolvimento de Projetos Projeto integrado Multidisciplinar para obtenção do Título de tecnólogo em Análise e Desenvolvimento De Sistemas, apresentado á Universidade Paulista Unip EaD. Orientador: Profa. Ma. Sirley Vitorio SÃO PAULO 2023 3 SUMÁRIO 1. INTRODUÇÃO................................................................................................................................. 6 2. ENGENHARIA DE SOFTWARE....................................................................................................... 7 2.1 Metodologia.................................................................................................................................... 7 2.1.1 Metodologia Cascata................................................................................................................... 7 2.2 Requisitos....................................................................................................................................... 9 2.2.1 Requisitos Funcionais..................................................................................................................9 2.2.2 Requisito não funcional............................................................................................................. 10 3. DESENVOLVIMENTO.................................................................................................................... 11 3.1 Linguagem C................................................................................................................................ 12 3.2 Funcionamento do sistema.......................................................................................................... 12 3.3 Arquivos.........................................................................................................................................17 3.4 Execução do sistema.....................................................................................................................18 3.5 Fluxograma....................................................................................................................................20 4. CONCLUSÃO..................................................................................................................................21 REFERÊNCIAS....................................................................................................................................22 4 RESUMO O principal objetivo deste projeto é criar um sistema em linguagem C que será implementado em hospitais durante uma pandemia. Esse sistema terá a finalidade de registrar informações de pacientes diagnosticados com a COVID-19 que serão entrevistados por cuidados médicos durante sua internação. Devido à pandemia global da COVID-19, surgiu uma demanda crescente por inovação tecnológica em ambientes hospitalares ao redor do mundo. É crucial acompanhar o uso da tecnologia com a situação global para identificar e rastrear pessoas infectadas pelo vírus. Muitos governos em todo o mundo estão recorrendo à tecnologia para coletar informações sobre a propagação do vírus e apoiar os profissionais de saúde no combate a essa doença que afeta o mundo. Para resolver esse desafio e desenvolver o sistema, serão aplicados conhecimentos das disciplinas atuais do bimestre, incluindo Linguagem e Técnicas de Programação, bem como Engenharia de Software I. Palavras-chaves: Linguagem C, Sistema, Covid-19, Monitoramento, Profissionais de Saúde, Pandemia. 5 ABSTRACT The main objective of this project is to create a system in C language that will be implemented in hospitals during a pandemic. This system will have the purpose of recording information from patients diagnosed with COVID-19 who will be interviewed for medical care during their hospitalization. Due to the global COVID-19 pandemic, there has been a growing demand for technological innovation in hospital environments around the world. It is crucial to keep up with the use of technology with the global situation to identify and track people infected with the virus. Many governments around the world are turning to technology to collect information about the spread of the virus and support healthcare professionals in combating this disease that affects the world. To solve this challenge and develop the system, knowledge from current two-month disciplines will be applied, including Language and Programming Techniques, as well as Software Engineering I. Keywords: Language C, System, Covid-19, Monitoring, Health Professionals, Pandemic. 6 1. INTRODUÇÃO Devido à pandemia global da COVID-19 e ao aumento das taxas de infecção, surgiu a necessidade premente de criar um sistema operacional com a finalidade de registrar pacientes apresentados com a COVID-19 que exigem supervisão médica. Além disso, o sistema terá a responsabilidade de transmitir dados e informações desses pacientes para a Secretaria de Saúde, constituindo assim o desafio central deste projeto. Dado o conhecimento limitado sobre a COVID-19, muitos órgãos de saúde em todo o mundo estão adotando a tecnologia como uma ferramenta crucial na coleta de dados, a fim de combater e prevenir a propagação do vírus, dada a rápida propagação da doença. Os primeiros casos registrados datam de dezembro de 2019, na província de Wuhan, na China. Em homenagem a esse marco temporal, o sistema desenvolvido neste projeto foi apelidado de "CAD 19", que combina "CAD" de cadastro com "19" da COVID-19, em referência ao ano de 2019, quando os primeiros casos surgiram em Wuhan , China. Ao longo do desenvolvimento deste projeto, serão apresentadas soluções para abordar a questão em pauta, empregando os princípios da disciplina de Linguagem e Técnicas de Programação. Utilizaremos a linguagem C como base para o desenvolvimento, destacando as características e funções essenciais aplicadas na construção do sistema. Além disso, com o auxílio da disciplina de Engenharia de Software I, estabelecemos uma base sólida para a implementação de uma metodologia na criação deste sistema. O objetivo principal deste projeto é criar um sistema que permita o cadastro, a coleta de dados e o compartilhamento de informações com a central da Secretaria de Saúde, a fim de facilitar o acompanhamento médico de pacientes afetados pela COVID-19 e apoiar os profissionais de saúde no desafio de enfrentar essa pandemia. 7 2. ENGENHARIA DE SOFTWARE A Engenharia de Software é uma disciplina da ciência da computação que se concentra na concepção, desenvolvimento, manutenção e criação de software. Ela envolve a aplicação de tecnologias e práticas de gerenciamento de projetos, bem como a integração de diversas disciplinas, com o objetivo de garantir organização, produtividade e qualidade no ciclo de vida do software. Essas tecnologias e práticas abrangem uma variedade de áreas, como linguagens de programação, bancos de dados, ferramentas, plataformas, bibliotecas, padrões de design de software,processos de desenvolvimento de software e garantia de qualidade. Além disso, a Engenharia de Software desempenha um papel fundamental na capacidade de planejar e gerenciar o processo de desenvolvimento de sistemas computacionais de alta qualidade que atendem às necessidades dos clientes e requisitos de software. Ela ajuda a garantir que os projetos de software sejam entregues no prazo, dentro do orçamento e com os recursos adequados. Em resumo, a Engenharia de Software é essencial para a criação e manutenção de software de qualidade, oferecendo um conjunto de métodos e práticas que tornam o desenvolvimento de software mais eficiente e confiável. 2.1 Metodologia As abordagens para o desenvolvimento de software compreendem o conjunto de métodos disponíveis para a criação de sistemas de processamento de dados. O sucesso de qualquer empreendimento voltado para a produção de software está intimamente ligado à seleção da metodologia mais detalhada. Para garantir maior eficiência em todo o processo de desenvolvimento, é incumbência do líder da equipe familiarizar-se com as diversas metodologias disponíveis e optar porque melhor se adapte ao seu caso. É claro que cada método possui seus pontos positivos e negativos, por isso é crucial compreender as metas, objetivos, prazos e recursos financeiros envolvidos no projeto, a fim de determinar a abordagem mais alinhada. 8 2.1.1 Metodologia cascata Neste projeto, optamos por adotar a Metodologia em Cascata. Desenvolvido por Winston Walker Royce em 1970, o Modelo em Cascata, também conhecido como Modelo Sequencial Linear, é o mais antigo entre todos os processos, e seu nome deriva da sequencialidade em cascata que ocorre de uma fase para a próxima. É considerado o "modelo clássico de desenvolvimento" e é mais indicado para projetos de menor porte. Sua abordagem preconiza que, para que uma fase tenha início, a fase anterior deve estar completamente finalizada. Além disso, em cada etapa, a aprovação de um ou mais documentos é necessária, muitas vezes marcada por "assinaturas" para avançar no processo (ENGHOLM, 2010) (SOMMERVILLE, 2011). IMAGEM 01 – O modelo em Cascata Fonte: https://medium.com/contexto-delimitado/o-modelo-em-cascata-f2418addaf36 Essencialmente, o processo de desenvolvimento é dividido em cinco etapas, que se sucedem à medida que a anterior é concluída: 1. Especificação: Nesta fase, realizamos uma análise das necessidades do cliente e estabelecemos os "requisitos do sistema" junto com suas funcionalidades. https://medium.com/contexto-delimitado/o-modelo-em-cascata-f2418addaf36 9 2. Projeto do software: Aqui, é criado o esboço da arquitetura global do sistema com base nas informações coletadas na etapa anterior. Tudo é desmembrado em componentes chamados "unidades de programa" para agilizar o desenvolvimento, e cada unidade possui seus próprios "requisitos de unidade". 3. Implementação: Durante essa etapa, com o projeto definido, cada "unidade de programa" é renovada, muitas vezes com a capacidade de alocar vários programadores simultaneamente. 4. Teste unitário: Após a implementação, realizamos os "testes de unidade" para garantir que as implementações contenham de acordo com os "requisitos de unidade". 5 Integração: Com as unidades testadas, a próxima etapa envolve a integração de todas elas para formar um sistema completo. 6. Teste de Sistema: Após a integração, é conduzido um teste abrangente para garantir que os "requisitos do sistema" tenham sido cumpridos. Por fim, o software é entregue ao cliente. 7 Operação e manutenção: Durante a operação do sistema, o cliente pode identificar erros ou necessidades que não foram previamente detectadas. Esta fase é responsável por corrigir esses erros e implementar melhorias no sistema (evolução). 2.2 Requisitos Conforme o Dicionário Aurélio, a palavra "requisito" tem como significados as condições necessárias, geralmente obrigatórias, para alcançar um propósito ou obter algo. Com base nesse significado, os requisitos em um software estabelecem as condições essenciais e obrigatórias para que o resultado do software atenda às características solicitadas. É crucial realizar uma análise completa para verificar se o requisito está sendo devidamente cumprido ou respeitado. Os requisitos podem ser classificados em dois tipos: os funcionais e os não funcionais: 2.2.1 Requisito funcional O termo “Requisito Funcional” refere-se à demanda por uma função que um software deve ser capaz de realizar. Em outras palavras, é uma exigência, solicitação, desejo ou necessidade que o software deve concretizar. Na engenharia de software, mais especificamente na área de engenharia de requisitos, comumente chamada de "Análise de Requisitos" ou "Levantamento de Requisitos", essa disciplina desempenha o papel de identificar as necessidades do cliente, diagnosticar sua origem e propor uma solução terapêutica para satisfazê-lo. 10 TABELA 01 – Requisito funcional Fonte: Autoria própria 2.1.2 Requisito não funcional Requisitos não funcionais são aqueles que se referem ao uso da aplicação em termos de desempenho, usabilidade, confiabilidade, segurança, disponibilidade, manutenção e tecnologias envolvidas. Enquanto os requisitos funcionais definem "O QUE" o sistema deve fazer, os requisitos não funcionais especificam "COMO" o sistema deve realizar essas funções, abordando aspectos críticos relacionados à qualidade e ao comportamento do software. Fonte: Autoria própria 11 Neste projeto, abordamos os requisitos de forma superficial, incluindo apenas o identificador, nome do requisito e descrição. É importante destacar que a concepção de software geralmente ocorre de maneira mais abrangente, incluindo informações detalhadas como o nome do autor, dados de criação, versão e categorias, entre outros elementos que fornecem uma visão mais completa e organizada dos requisitos do software. 3. DESENVOLVIMENTO No processo de programação e execução do sistema, utilizamos o IDE Code::Blocks, que emprega a linguagem de programação C. O Code::Blocks, ou C:B, é um ambiente de desenvolvimento integrado de código aberto e multiplataforma. Ele foi desenvolvido em C++, utilizando a biblioteca wxWidgets. A arquitetura do Code::Blocks é orientada para plugins, o que significa que suas funcionalidades são definidas pelos plugins que são incorporados a ele. O Code::Blocks é especialmente voltado para o desenvolvimento em C/C++ e Fortran, mas também pode ser utilizado na criação de programas ou aplicativos em diversas outras linguagens e tecnologias, como ARM, AVR, D (linguagem de programação), DirectX , FLTK, GLFW, GLUT, GTK+, Irrlicht, Lightfeather, MATLAB, OGRE, OpenGL, Qt, SDL, SFML, STL, SmartWin e programas ou aplicativos que fazem uso da biblioteca wx, entre outros. IMAGEM 02 – Interface inicial Code Blocks Fonte: Autoria própria 12 3.1 Linguagem C A linguagem de programação C é uma linguagem compilada de propósito geral, criada em 1972 por Dennis Ritchie na empresa AT&T Bell Labs para o desenvolvimento do sistema operacional UNIX. É uma linguagem imperativa e processual projetada para ser de alto nível, permitindo um maior reaproveitamento de código. No contexto da linguagem C, é necessário gerenciar explicitamente a memória alocada, manipular diretamente direcionado de memória e compreender conceitos como passagem de parâmetros por valor e por referência, além do uso de variáveis de ponteiro, entre outros. Essa base de conhecimento adquirida possibilita a criação de programas corretos e eficientes. Esse conhecimento se torna especialmente importante quando é necessário projetar novas estruturas de dados para atender a requisitos específicos. Embora linguagens de programaçãomais abstratas possam fornecer suporte nativo para estruturas de dados comuns, na linguagem C, é necessário implementá-las manualmente. No entanto, essa abordagem ensina aos desenvolvedores a melhor compreender quando e como utilizar estruturas de dados em uma aplicação específica, a adaptar estruturas existentes conforme necessário e a avaliar a eficiência dos algoritmos que utilizam essas estruturas. Isso confere aos programadores uma compreensão sólida dos aspectos internos da computação e os capacita a criar soluções otimizadas para desafios de programação. 3.2 Funcionamento do sistema O sistema é composto por diversas telas nas quais informações e opções são exibidas. O usuário pode selecionar as opções selecionando a tecla correspondente ao número da opção desejada. Além disso, para avançar para a próxima linha, é necessário pressionar a tecla ENTER. A primeira tela do sistema serve como ponto de partida para os funcionários, permitindo-lhes acessar uma área de cadastros, onde podem criar usuários e senhas, ou sair do sistema. IMAGEM 03 – Tela inicial Fonte: Autoria própria 13 • No primeiro uso do sistema, o funcionário deve selecionar a opção 2 para cadastrar seu usuário e senha. Caso contrário, o acesso não será permitido. IMAGEM 04 – Login e senha não cadastrados Fonte: Autoria própria • Após o cadastro de usuário e senha, o usuário deve voltar ao menu inicial para efetuar o login no sistema. IMAGEM 05 – Tela de cadastro de usuário e senha Fonte: Autoria própria • Escolhendo a opção 1 na tela inicial, o funcionário deverá inserir seu usuário e senha para fazer o login. 14 IMAGEM 06 – Tela de Login Fonte: Autoria própria • Se as credenciais forem corretas, a tela com a opção de cadastrar os dados do paciente estará aberta. Caso contrário, uma mensagem de erro será exibida na tela, acompanhada por um sinal sonoro negativo de que as credenciais estão incorretas. IMAGEM 07 – Tela com opção de cadastrar paciente Fonte: Autoria própria IMAGEM 08 – Login inválido Fonte: Autoria própria 15 • Ao selecionar a opção 1 na tela de cadastro de pacientes, o funcionário terá acesso às telas de preenchimento de dados. O primeiro campo a ser preenchido é o CPF. O campo CPF é responsável por validar e permitir apenas um único cadastro de paciente com a mesma numeração de CPF. Se o sistema verificar que o CPF digitado não existe, ele continuará solicitando os demais dados do paciente. IMAGEM 09 – Cadastro de CPF Fonte: Autoria própria • Se o funcionário tentar cadastrar um novo paciente com um número de CPF que já existe no sistema, será exibida uma mensagem de erro indicando a duplicação de CPF. IMAGEM 10 – Erro ao cadastrar CPF Fonte: Autoria própria • Após o preenchimento do CPF, o funcionário deverá cadastrar os demais dados do paciente, como nome, data de nascimento, e-mail, telefone, endereço, entre outros, conforme necessário. 16 IMAGEM 11 – Preenchimento de dados pessoais Fonte: Autoria própria • Antes de avançar para o preenchimento dos dados de endereço, é essencial fornecer os dados do diagnóstico da COVID-19. IMAGEM 12 – Data de diagnóstico Fonte: Autoria própria IMAGEM 13 – Endereço Fonte: Autoria própria 17 • Após completar o preenchimento dos dados de endereço, o sistema solicitará informações sobre a presença de qualquer morbidade por parte do paciente. O funcionário deverá indicar a morbidade que o paciente possui, ou então o sistema preencherá automaticamente o campo com "NENHUM" caso não haja morbidades registradas. IMAGEM 14 – Informar morbidade Fonte: Autoria própria 3.3 Arquivos Todas as informações inseridas no sistema são armazenadas em arquivos que funcionam como um banco de dados. Esses arquivos contêm dados essenciais dos pacientes e são fundamentais para consultas futuras. Após a primeira execução do sistema, quatro arquivos de texto do tipo "txt" são criados no diretório onde o código-fonte está armazenado: • O arquivo "cadastro.txt" é usado para armazenar as informações de todos os pacientes cadastrados no sistema. • O arquivo "cpf.txt" é reservado para armazenar os CPFs registrados no sistema. • O arquivo "login.txt" é responsável por conter os dados de acesso, incluindo o nome de usuário (login) e senha. A primeira linha representa o nome do usuário e a segunda linha a senha. Para fins de teste, o usuário e senha foram definidos como "teste", mas os funcionários podem cadastrar qualquer nome de usuário e senha, com codificação de letras, números ou símbolos, para acesso ao sistema. • O arquivo risco.txt é onde fica armazenado as informações dos pacientes que fazem para do grupo de risco. 18 IMAGEM 15 – Arquivos Fonte: Autoria própria 3.4 Execução do sistema Para executar o sistema, o usuário deve ter um IDE (Ambiente de Desenvolvimento Integrado) instalado no computador onde pretende utilizar o programa. Com o IDE instalado, siga as instruções passo a passo: 1. Abra seu IDE. Como exemplo, estamos usando o Code::Blocks. 2. Clique em "FILE" (Arquivo) no menu da IDE. 3. Em seguida, clique em "OPEN" (Abrir). 4. Navegue até o local onde o arquivo "cad19.c" está armazenado no seu computador. 5. Selecione o arquivo "cad19.c" e clique em "ABRIR". Isso abrirá o arquivo "cad19.c" em seu IDE permitindo que você compile e execute o sistema. Siga as etapas da compilação e execução específica de seu IDE para rodar o programa com sucesso. 19 IMAGEM 16 – Preparando o sistema para executar e compilar Fonte: Autoria própria Seguindo os passos anteriores, o usuário deve compilar e executar o programa da seguinte forma: • Clique na opção "BUILD" no menu da sua IDE. • Em seguida, selecione "BUILD AND RUN" (Compilar e Executar). Isso fará com que um IDE compile o código do programa e execute. Se não houver erros de compilação, se houver, o IDE fornecerá informações sobre eles para que você possa corrigi-los. Após a compilação bem-sucedida, o programa será executado de acordo com o que foi definido no código. 20 IMAGEM 17 – Compilando e executando o sistema Fonte: Autoria própria 3.5 Fluxograma IMAGEM 18 – Fluxograma do sistema Fonte: Autoria própria 21 4 CONCLUSÃO Com base no conhecimento fornecido nas matérias científicas, foi possível desenvolver um sistema programado em Linguagem C com a finalidade de auxiliares profissionais de saúde no cadastro de pacientes contaminados com COVID-19. Esse sistema permite coletar dados clínicos dos pacientes e especificamente com a Secretaria de Saúde, contribuindo assim para o combate e prevenção do vírus. Para criar o sistema, aplicamos os conceitos envolvidos na disciplina de Linguagem e Técnicas de Programação. Utilizamos ambientes de desenvolvimento como IDEs e o Code::Blocks para escrever o código necessário e implementar os campos exigidos pelo sistema, que vão desde a tela de login até a opção de realizar um novo cadastro. No contexto da disciplina de Engenharia de Software I, avaliamos diversas metodologias de desenvolvimento de software, considerando seus pontos fortes e fracos. Optamos por adotar a Metodologia Cascata, uma abordagem que envolve o desenvolvimento do projeto em etapas bem definidas e sequenciais, pois ela estava alinhada com as necessidades do nosso projeto. Dada a propagação crescente da COVID-19 e a falta de conhecimento abrangente sobre o vírus, a tecnologia desempenha um papel fundamental na coleta de dados dos pacientes, ajudando os profissionais de saúde em um momento crítico para o mundo. Isso permite agilizar o atendimento em hospitais, proporcionando uma resposta mais eficaz. O projeto foi demonstrado viável e, nos testes realizados,o sistema declarado é promissor, confiável e estável, o que é essencial para seu uso eficaz em ambientes hospitalares no combate à pandemia. 22 REFERÊNCIAS ANÁLISE DE REQUISITOS. O que são Requisitos Funcionais e Não Funcionais?. Disponível em: https://analisederequisitos.com.br/requisitos-funcionais-e-naofuncionais/. Acesso em: 19 nov. 2020. DICAS DE PROGRAMAÇÃO. O que são Funções e Procedimentos?. Disponível em: https://dicasdeprogramacao.com.br/o-que-sao-funcoes-e-procedimentos/O que são Funções e Procedimentos?. Acesso em: 20 nov. 2020. DICIO. Requisitos. Disponível em: https://www.dicio.com.br/requisitos/. Acesso em: 19 nov. 2020. MEDIUM. O Modelo em Cascata. Disponível em: https://medium.com/contextodelimitado/o-modelo- em-cascata-f2418addaf36. Acesso em: 20 nov. 2020. MONITORA. As principais metodologias de desenvolvimento de software que você precisa saber. Disponível em: https://www.monitoratec.com.br/blog/metodologias-de-desenvolvimento- desoftware/#:~:text=As%20metodologias%20de%20desenvolvimento%20de,escolha% 20da%20metodologia%20mais%20adequada. Acesso em: 19 nov. 2020. WIKIPÉDIA. C (linguagem de programação). Disponível em: https://pt.wikipedia.org/wiki/C_(linguagem_de_programa%C3%A7%C3%A3o). Acesso em: 19 nov. 2020. WIKIPÉDIA. Code::Blocks. Disponível em: https://pt.wikipedia.org/wiki/Code::Blocks. Acesso em: 18 nov. 2020. WIKIPÉDIA. Engenharia de software. Disponível em: https://pt.wikipedia.org/wiki/Engenharia_de_software. Acesso em: 19 nov. 2020 23 24 25