Professional Documents
Culture Documents
Universidade Paulista
Universidade Paulista
Universidade Paulista
RESUMO
A presente pesquisa tem como propósito o desenvolvimento de um sistema produzido em
linguagem , bem como utilizar conhecimentos básicos de engenharia de software para gerenciar
o ciclo de vida do projeto. O sistema será utilizado por hospitais para o cadastro e monitoramento
de casos positivos de COVID-19, onde os dados dos pacientes cadastrados serão analisados
pelo software e classificados como casos de risco ou não, para que sejam armazenados em
arquivos externos possibilitando assim verificações futuras. O desenvolvimento foi dividido em
três fases. Na primeira fase da pesquisa houve discussão a respeito do peso e classificação de
cada requisito individualmente, onde estes tiveram seu "valor" contabilizado em pontos (métrica
utilizada em algumas metodologias ágeis) e também elaborado um diagrama de caso de uso do
software para documentar ilustrando minimamente a interação do mesmo com o usuário. Na
segunda fase, foi definida como metodologia utilizada na gestão do ciclo de vida do software a XP
(eXtremme Programmin), esta que por sua vez se caracteriza por não possuir um Product Owner
entre os clientes e desenvolvedores, possuir ciclos de vida rápidos e aplicabilidade especialmente
em cenários onde o ciclo de vida do sistema é relativamente curto. Na terceira e última fase
obteve-se o resultado final por meio da codificação, o software desenvolvido contou com as telas
básicas de autenticação e controle de pacientes propostas no escopo geral do mesmo, além disto
também fora elaborado um manual contendo os procedimentos de execução e testes do produto
incorporados neste mesmo documento.
ABSTRACT
The purpose of this research is to develop a system produced in language, as well as to use basic
knowledge of software engineering to manage the project life cycle. The system will be used by
hospitals for the registration and monitoring of positive cases of COVID-19, where the data of
registered patients will be analyzed by the software and classified as risky or not, so that they are
stored in external files, thus enabling future checks. The development was divided into three
phases. In the first phase of the research, there was discussion about the weight and classification
of each requirement individually, where these had their "value" counted in points (metric used in
some agile methodologies) and also a software use case diagram to document illustrating
minimally the same interaction with the user. In the second phase, XP (eXtremme Programmin)
was defined as the methodology used in software lifecycle management, which in turn is
characterized by not having a Product Owner among customers and developers, having fast life
cycles and applicability especially in scenarios where the life cycle of the system is relatively short.
In the third and last phase, the final result was obtained through coding, the software developed
had the basic authentication and patient control screens proposed in the general scope of the
same, in addition to this a manual containing the execution procedures and product tests
incorporated in this same document.
INTRODUÇÃO
A pandemia do novo coronavírus estimulou diversas entidades públicas e privadas a
alavancarem pesquisas relacionadas a inovação tecnológica em prol da saúde popular e no
auxílio do monitoramento de casos e propagação do vírus. Tendo em vista que este se espalha
de forma exponencial, a indústria de software tem papel importante em possibilitar que os
profissionais de saúde e autoridades no geral estejam sempre um passo a frente do vírus para
tomarem providências com antecedência.
Sendo assim espera-se que com a produção desse sistema, será possível obter mais uma
ferramenta no controle do vírus.
Podem ser distinguidos em 3 partes, sendo elas: Erro – Que corrige os bugsBug é um
termo comumento utilizado para se referir a comportamentos inesperados do software. do
sistema, relatados por usuários. - Necessidade Customização – Que implementa algo a mais do
que foi pedido no projeto inicial. Ex: uma integração com outro software. - Solicitações. Melhoria –
São funcionalidades que podem incrementar algo a mais no sistema, como por exemplo uma
coluna a mais em um relatório, um botão a mais e etc. - Desejos.
REQUISITOS FUNCIONAIS E NÃO FUNCIONAIS
Requisitos Funcionais
Importância/Valor
Requisito Classificação
(Em Pontos)
Ao receber o diagnóstico positivo os profissionais da saúde devem realizar o login no sistema (informando 9 Funcional
o usuário e a senha).
informar os dados pessoais do paciente, como Nome, CPF, Telefone, Endereço (Rua, Número, Bairro,
Cidade, Estado e CEP), Data de Nascimento e E-mail, data do diagnóstico e informar alguma morbidade 8 Funcional
do paciente (diabetes, obesidade, hipertensão, tuberculose, outros) .
As informações serão salvas em um Arquivo (a principal vantagem de um arquivo é que as informações Não
7
armazenadas podem ser consultadas a qualquer momento). Funcional
Após o cadastro, o sistema deverá calcular a idade e verificar se o paciente possui alguma morbidade e se
pertence ao grupo de risco (maiores de 65 anos). Caso o paciente pertença ao grupo de risco o sistema
10 Funcional
deverá salvar em um arquivo de texto o CEP e a idade do paciente para que essa informação possa ser
enviada para a central da Secretaria de Saúde da cidade.
Elaborada pelos
autores
Com o passar do tempo, na busca pelo aprimoramento, redução de custos e por aproveitar
cada instante do tempo da melhor forma, as metodologias foram se aprimorando. Até que em
2001, com a criação do Manifesto Ágil (E-ARCHITECTS INC, 2001) , a área da Tecnologia da
Informação passou a ter maior adaptabilidade visando a real necessidade do cliente. No método
ágil o desenvolvimento ganhou uma abordagem em que softwares são criados de uma forma
colaborativa, com equipes multidisciplinares e que têm bom nível de autonomia na execução do
trabalho. A grande e básica diferença entre a metodologia tradicional e o método ágil se encontra
na questão burocrática do mesmo. A metodologia tradicional em cascata se tornou um tanto
quanto pesado, em contraste com as metodologias emergentes que foram chamadas de
metodologias leves ou "em cascata". Veja abaixo um diagrama que demonstra a forma
sequencial como esta opera.
Figura 1 — Ciclo de vida de um software no modelo cascata
Pressman (2008,
p. 60)
Participação
Apenas durante o levantamento de requisitos Envolvido durante todo o clico de vida do software
dos stakeholders
Adaptado de Hoda, Noble e Marshal
DEFINIÇÃO DO EXTREME PROGRAMMING
Pressman (2008)
A imagem acima representa o ciclo de iterações durante as etapas de vida do software que
destacam os aspectos mais notórios do XP. É eminente na figura de que todos os procedimentos
executados passam por validação e feedback diretos do cliente, não carecendo necessariamente
uma figura de negócios intermediária entre a equipe de desenvolvimento e os stakeholders como
no Scrum por exemplo. Desta forma, é um recurso identificável com aplicações que disponham
de requisitos em constante mudança por exigência do cliente, e em detrimento disto, passam por
uma triagem inicial bem menos meticulosa no levantamento destes, onde a arquitetura
comumente não visa escalabilidade mas primordialmente resolver problemas momentâneo.
A XP foi desenvolvida para ser aplicada em projetos com times de dois a dez
programadores que não sejam severamente restringidos pelo ambiente computacional existente e
no qual boa parte da execução de testes possa ser feita em pouco tempo no dia (BECK, 2002).
Através do método, é possível criar sistemas de melhor qualidade, que são produzidos em menos
tempo e de forma mais econômica que o habitual. Tais objetivos são alcançados através de um
pequeno conjunto de valores, princípios e práticas, que diferem substancialmente da forma
tradicional de se desenvolver e criar sistemas de melhor qualidade, que são produzidos em
menos tempo e de forma mais econômica que o habitual (BECK, 2002). É possível alcançar estes
objetivos através de um pequeno conjunto de valores, princípios e práticas, que diferem
substancialmente da forma tradicional de se desenvolver
softwares (FARIAS; PATRONI; PASCUTTI).
Para o desenvolvimento do projeto a equipe contou com seis integrantes em três pares de
programadores, separando assim um grupo de tarefas por meio de um quadro Kanban na
ferramenta Trello para serem pesquisados e adicionados ao projeto antes da escrita do código.
Printscreen
capturado pelos autores. A ferramenta está disponível em: https://trello.com
Optou-se pela utilização do método XP, por ser um método "leve" de desenvolvimento,
trabalhando com equipes pequenas, visando a produção de um software de forma rápida todos
dedicados a entregar um software de qualidade e objetivo. Tornando assim o método ideal para a
obtenção de um resultado satisfatório tendo em vista um grupo de seis pessoas com um curto
prazo de entrega ideal para a proposta do Projeto Integrado Multidisciplinar IV (PIM IV).
Corresponde ao cenário do
Característica do XP Explicação Básica
projeto (Sim/Não)
Menor ênfase em O código não foi elaborado visando boas práticas de arquitetura que possibilitem
Sim
escalabilidade uma expansão ou reutilização do mesmo futuramente
Resolução objetiva de
Sim O software foi desenvolvido para o problema específico ao qual foi proposto
problemas momentâneos
Ausência de um intermediário
Sim Não há nada semelhante a um P.O entre ambos
com o cliente
Pouca ênfase em Não há uma documentação bem específica e elaborada, tendo em vista que o
Sim
documentação resultado não seria visto apenas ao término como nas metodologias tradicionais
Requisitos que mudam Os requisitos do software são fixos, no entanto a ausência deste ponto não
Não
constantemente representa risco á aplicação do XP neste cenário.
PARADIGMA PROCEDURAL
O a codificação do software foi feita por meio do padrão procedural, que pode ser
caracterizado como a forma mais simplista de programação, onde cada verificação, iteração e
entrada de usuário são executadas uma após outra sucessivamente e de maneira síncrona.
Elaborada pelos
autores
O software em questão não requer instalação por parte do usuário, para utilizá-lo basta
navegar até utilizando o explorador de arquivos até o diretório bin/Release onde se encontram os
executáveis instáveis, os mesmos podem ser copiados para uma localização de preferência,
contanto que incluam a pasta data em que estão localizados os arquivos CSV que manipulam os
dados armazenados.
Autenticação do usuário
Elaborada pelos
autores
Menu de Opções
Logo após a tela de Login, serão exibidos no menu as possíveis opções presentes no
sistema que devem ser escolhidas por meio de seu número indicado, bem como uma notificação
em cor vermelha que será exibida apenas quando houverem casos de risco registrados.
Elaborada pelos
autores
Imagem 5 — Inserindo Novos Registros - Exemplo paciente em grupos de risco por idade
avançada
Elaborada pelos
autores
Imagem 6 — Inserindo Novos Registros - Exemplo paciente que não se enquadra em grupos de
risco
Elaborada pelos
autores
Listagem de dados
Tanto pacientes de risco quanto pacientes comuns, podem ser listados por meio das
opções presentes no menu.
Elaborada pelos
autores
Procedimento de Testes
Elaborada pelos
autores
Pressionando o atalho F9, o programa pode ser compilado e logo após executado, além
disto. Podem ser adicionados pontos de interrupção nas linhas do código (representados por um
ponto vermelho na linha correspondente), utilizados para depurar o software passo a passo, desta
forma será mais simples encontrar problemas de lógica conforme o fluxo do código é executado.
0 Elaborada pelos
autores
CONCLUSÃO
Por meio desta pesquisa foi possível atingir o objetivo da aplicação prática de
conhecimento básico a respeito de programação e engenharia de software em prol do bem
popular na saúde pública, em um sistema capaz de autenticar usuários e permiti-los inserir
registros de pacientes com casos positivos de COVID-19, realizando a separação e notificação de
casos de risco para auxiliar no monitoramento. Inicialmente, foram discutidos e classificados os
requisitos que estavam devidamente pré-especificados no escopo da pesquisa, onde foi tomada
como decisão de arquitetura o uso de arquivos CSV para armazenar os dados dos pacientes em
geral, esta visualização facilita o controle destes dados como exportação, sendo estes facilmente
legíveis via Microsoft Excel ou outros grandes sistemas externos que suportem serialização de
dados neste formato. A partir deste ponto fora discorrido os benefícios da utilização de
metodologias ágeis de maneira geral, suplantando a maneira trivial de gestão de projetos que fora
utilizada no passado, bem como escolhida como ideal para o projeto a metodologia conhecida
por eXtremme Programming. O código foi versionado utilizando as
ferramentas Git e GithubCódigo disponível em: https://github.com/MiqueiasGFernandes/covid-
monitoring/tree/windows, a aplicação desenvolvida por meio de exibição em linha de comandos e
tendo como base a Linguagem C. Ao final, os resultados do software e procedimento para testes
manuais foram exemplificados por meio de um guia presente neste documento.
REFERÊNCIAS
BECK, Kent. Extreme Programming: die revolutionäre Methode für Softwareentwicklung in
kleinen Teams ; [das Manifest]. Pearson Deutschland GmbH, v. 1, f. 93, 2002. 186 p.
E-ARCHITECTS INC. Manifesto for Agile Software Development. Agile
Manifesto. 2001. Disponível em: https://agilemanifesto.org/. Acesso em: 22 nov. 2020.
FARIAS, Douglas; PATRONI, Robinson; PASCUTTI, Márcia. CRIANDO SOFTWARE COM
METODOLOGIA XP(EXTREME PROGRAMMING) E DOCUMENTAÇÃO JAVADOC .
In: ENCONTRO INTERNACIONAL DE PRODUÇÃO CIENTÍFICA CESUMAR . 2009, Maringá -
Paraná - Brasil: VI EPCC . Disponível
em: https://www.unicesumar.edu.br/epcc-2009/wp-content/uploads/sites/77/2016/07/
douglas_lopes_farias.pdf. Acesso em: 22 nov. 2020.
HODA, Rashina; NOBLE, James; MARSHAL, Stuart. Agile Project Management.
In: INTERNATIONAL CONFERENCE ON EXTREME PROGRAMMING AND AGILE
PROCESSES IN SOFTWARE ENGINEERING. 2008.
PRESSMAN, Roger S.. Engenharia de Software - 7.ed.. AMGH Editora, f. 1006, 2008. 2011 p.
SOMMERVILLE, Ian. Engenharia de software (8a. ed.)., f. 286. 2007. 572 p.