Sistema de Gerenciamento de Hospitais de Pronto-Socorro Motivação “Com o intuito de facilitar o gerenciamento interno de um hospital, mais especificamente de um pronto-socorro, procuramos desenvolver um software que fosse o mais próximo possível do usuário e, ainda, tivesse uma profunda utilidade no ambiente hospitalar, auxiliando da melhor forma funcionários e administração,[…]” Plano de Projeto – S.G.H.P.S. “O sistema envolve um cadastro de pessoal e setores de maneira a facilitar o acesso a um dos componentes descritos acima e assim agilizar o processo de atendimento e organização departamental.” Plano de Projeto – S.G.H.P.S. Visão Geral do Projeto “Este projeto tem como abordagem um sistema de gerenciamento de um pronto socorro, levando em conta os pacientes, funcionários, diagnósticos, exames, departamentos e outros componentes característicos de um ambiente hospitalar. O sistema envolve um cadastro de pessoal e setores de maneira a facilitar o acesso a um dos componentes descritos acima e assim agilizar o processo de atendimento e organização departamental.” Plano de Projeto – S.G.H.P.S. Planejamento Atividade Primeira reunião com o cliente Entrega da Definição do Projeto Definição/Revisão do plano de Projeto Entrega do Plano de Projeto Duração Início 4 Horas Término 15/3/2008 --------5 Dias 15/3/2008 18/3/2008 24/3/2008 --------- 28/3/2008 3/4/2008 Estudo dos Requisitos e Prioridades 4 Dias 1/4/2008 4/4/2008 Definição do Documento de Requisitos 3 Dias 5/4/2008 7/4/2008 2 Horas 8/4/2008 8/4/2008 Revisão do Documento de Requisitos 2 Dias 8/4/2008 9/4/2008 Entrega do Documento de Requisitos --------- Validação do Documento de Requisitos com o Cliente Elaboração do Primeiro Protótipo em Papel 10/4/2008 2 Dias 10/4/2008 11/4/2008 3 Horas 12/4/2008 12/4/2008 Modelagem da Arquitetura do Sistema 8 Dias 13/4/2008 20/4/2008 Definição/Revisão do Documento de Plano de Testes 2 Dias 21/4/2008 22/4/2008 Definição/Revisão do Documento de Projeto de Testes 2 Dias 23/4/2008 24/4/2008 Validação do Protótipo com o Cliente Entrega do Plano e Projeto de Testes de Sistema/Aceitação --------- 24/4/2008 Definição/Revisão do Documento de Análise 10 Dias 25/4/2008 4/4/2008 Definição/Revisão do Documento de Modelo de Projeto 10 Dias 5/5/2008 14/5/2008 Entrega do Documento de Análise e Projeto Desenvolvimento do Projeto Definição/Revisão do Documento de Projeto de Testes Entrega do Plano e Projeto de Testes de Sistema/Aceitação Definição/Revisão do Documento de Análise --------- 15/5/2008 12 Dias 16/5/2008 27/5/2008 2 Dias 23/4/2008 24/4/2008 --------10 Dias 24/4/2008 25/4/2008 4/4/2008 Análise de Riscos Risco Impacto Probabilidade Atividades Paralelas Não-relacionadas ao Desenvolvimento Alto Elevada Fraco Domínio da Tecnologia de Gerenciamento de Bancos de Dados Alto Moderada Fraco Domínio do Paradigma de Programação Utilizado Alto Baixa Perda de Integrante da Equipe Médio Baixa Mudança de Requisitos Alto Moderada Dificuldades na Integração dos Componentes Alto Moderada Risco Fraco Domínio da Tecnologia de Gerenciamento de Bancos de Dados Mudança de Requisitos Estratégia de Mitigação / Contingência Mitigação: Alocar uma margem de acomodação após a fase de desenvolvimento do sistema de bancos de dados permitindo maior flexibilidade no cronograma de entregas em caso de atraso. Contingência: Re-analizar os requisitos do sistema visando simplificar os casos de uso relacionados a esta tecnologia. Mitigação: Efetuar uma análise de requisitos bem fundamentada, visando minimizar o impacto e freqüência de modificações futuras. Contingência: Analizar a real necessidade das modificações requisitadas e adaptar o cronograma caso se faça necessário. Análise de Requisitos Definição de Siglas Sigla Definição RF-XX Requisito Funcional Número XX RNF-XX Requisito Não-Funcional Número XX UC-XX Caso de Uso Número XX RNF-PROC-XX Requisito Não-Funcional de Processo RNF-SEG-XX Requisito Não-Funcional de Segurança RNF-PER-XX Requisito Não-Funcional de Performance RNF-CON-XX Requisito Não-Funcional de Confiabilidade RNF-MAN-XX Requisito Não-Funcional de Manutenção RNF-DOC-XX Requisito Não-Funcional de Documentação RNF-ECO-XX Requisito Não-Funcional Econômico RNF-LEG-XX Requisito Não-Funcional Legal Análise de Requisitos Requisitos Funcionais Identificação Descrição Prioridade RF-01 Cadastrar Funcionário Essencial RF-02 Descadastrar Funcionário Essencial RF-03 Cadastrar Paciente Essencial RF-04 Descadastrar Paciente (Diagnóstico e Exame) Essencial RF-05 Inserir Departamento Essential RF-06 Remover Departamento Essencial RF-07 Criar Diagnóstico Essencial RF-08 Alterar Diagnóstico (Inserir Exame) Importante RF-09 Efetuar Login Essencial RF-10 Modificar Senha Essencial RF-11 Imprimir Diagnóstico Importante Análise de Requisitos Requisitos Funcionais (Continuação) Identificação Descrição Prioridade RF-12 Imprimir Relatório Importante RF-13 Gerar Relatório de Óbitos Importante RF-14 Gerar Relatório de Médicos em Plantão Importante RF-15 Gerar Relatório de Doenças Frequentes Importante RF-16 Gerar Relatório de Gastos Gerais Importante RF-17 Gerar Relatório de Departamento Cheio Importante RF-18 Consultar Funcionário Essencial RF-19 Consultar Diagnóstico Essencial RF-20 Consultar Paciente Essencial RF-21 Consultar Exame Essencial RF-22 Inserir Foto Desejável Obs: Foram implementados todos os UC de RF Essenciais, assim como grande parte dos Importantes. Análise de Requisitos Requisitos Não-Funcionais: De Processo Identificação Descrição RNF/PROC-01 O sistema deverá funcionar nas plataformas Windows e Unix (Linux). RNF/PROC-02 Deverá ser feita a documentação apropriada durante o andamento do projeto. RNF/PROC-03 Deverá ser feito uso de ferramentas CASE. Requisitos Não-Funcionais: Externos Identificação Descrição RNF/ECO-14 O sistema não poderá utilizar muitos recursos da máquina. RNF/LEG-15 Será de responsabilidade do Hospital inserir informações verídicas no sistema. Análise de Requisitos Requisitos Não-Funcionais: De Produto Identificação Descrição RNF/SEG-04 Todos os usuários que forem usar o sistema necessitarão de um login e uma senha. RNF/SEG-05 Somente o administrador do sistema poderá cadastrar novos usuários. RNF/SEG-06 RNF/PER-07 RNF/PER-08 RNF/CON-09 RNF/USA-10 RNF/MAN-11 O nível de cada usuário será verificasistema do ao efetuar login, o que fará com que o acesso a determinadas partes do dependa do tipo do usuário. O tempo de inserções e consultas no sistema não pode ser maior do que 5 segundos para o caso de texto, e deve ser menor de 30 segundos para conteúdos que envolvam multimídia, como imagens. O tempo de geração de relatórios do sistema não deve ser maior do que 90 segundos. O sistema deve manter a integridade das informações a cada nova inserção e atualização efetuada. Essa integridade pode ser garantida tanto pelo próprio sistema, como pelo Banco de Dados. O sistema deve apresentar uma interface simples e intuitiva. Deste modo, os usuários farão suas atividades com maior eficiência e não serão necessários gastos com treinamentos dos mesmos. A modularização será essencial na manutenção do sistema. Deste modo, apenas as partes necessárias serão modificadas, preservando a integridade dos demais módulos. RNF/MAN-12 Um tratamento de exceções é essencial para facilitar a manutenção do sistema. RNF/DOC-13 O sistema será entregue junto com um manual do usuário. Este manual descreverá as funcionalidades desempenhadas pelo sistema. Análise de Requisitos Atribuição de Casos de Uso Atribuição de Casos de Uso Requisito Caso de Uso Requisito Caso de Uso RF-01 UC-01 RF-12 UC-12 RF-02 UC-02 RF-13 UC-13 RF-03 UC-03 RF-14 UC-14 RF-04 UC-04 RF-15 UC-15 RF-05 UC-05 RF-16 UC-16 RF-06 UC-06 RF-17 UC-17 RF-07 UC-07 RF-18 UC-18 RF-08 UC-08 RF-19 UC-19 RF-09 UC-09 RF-20 UC-20 RF-10 UC-10 RF-21 UC-21 RF-11 UC-11 RF-22 UC-22 Visão Geral dos Casos de Uso Funcionário Efeturar Login Administrador UC-09: Efetuar Login Descrição do Caso de Uso Identificação Nome UC-09 Efetuar Login Referências: RF-09 Autor: Felipe Kühner Criado em: 06/04/2008 Atores: Administrador do Hospital e Funcionário Entradas: Login e senha. Status Validado Revisado em: 16/05/2008 Pré-condições: Sistema inicializado. Fluxo Principal: 1. O usuário insere o cpf de usuário (login) no campo correspondente. 2. O usuário insere sua senha no campo correspondente. 3. O usuário seleciona o tipo de login que está efetuando (por administrador ou funcionário). 4. O usuário é autenticado. Fluxos Secundários: No item 4 do fluxo principal, caso o nome de usuário ou senha não estejam cadastrados no Banco de Dados, uma mensagem de erro é exibida ao usuário. No item 4 do fluxo principal, caso o usuário não possua permissão para logar com o modo de acesso selecionado, uma mensagem de erro é exibida ao usuário. UC-09: Efetuar Login Diagrama de Seqüência UC-09: Efetuar Login Diagrama de Classes UC-09: Efetuar Login Descrição de um Caso de Teste ID CT-003 Tipo de teste Funcional Objetivo Verificar se a funcionalidade de Efetuar Login está funcionando corretamente. Requisito [RF-09] Efetuar Login Pré-condição O usuário não pode estar logado. Nº de Passo Passos Resultados Esperados 1. Selecionar a opção de Efetuar Login. A tela para efetuar login é exibida. 2. Informar dados para login, como “login” e O sistema retorna uma mensagem informando que o login foi senha. realizado com sucesso. 3. Verificar se usuário está realmente logado ao O usuário foi logado com sucesso. sistema. Cenário Descrição Resultado Esperado CN-001 Digitar algum dado inválido. É mostrada uma tela com a mensagem informando que o login não pode ser efetuado com sucesso. UC-03: Cadastrar Paciente Descrição do Caso de Uso Identificação Nome Status UC-03 Cadastrar Paciente Validado Referências: RF-03 Autor: João Rufino Criado em: 06/04/2008 Revisado em: 16/05/2008 Atores: Administrador do Hospital e Funcionário Entradas: Nome, Código (previamente definido pela administração do hospital), Filiação, CPF, Identidade, Tipo Sangüíneo, Fator RH. Pré-condições: O paciente não pode existir. Fluxo Principal: 1. O usuário seleciona a opção de cadastro de pacientes . 2. Feito isso, o usuário terá a sua disposição várias ferramentas (campos de texto) para que insira todos os dados do novo paciente. 3. O sistema mostra uma tela de confirmação. 4. O sistema informa que a operação foi realizada com sucesso. Fluxos Secundários: No fluxo principal 2, caso o usuário digite alguma informação errada, como por exemplo um código interno num formato inválido, o sistema deverá verificar o erro e informar ao usuário, através de uma janela informativa, que retome as atividades anteriores, pois um erro foi detectado. Antes do fluxo principal 3, caso o sistema tenha detectado algum conflito de dados, como paciente já existente, ou até mesmo que o código interno não está disponível (já existe), o sistema deverá avisar ao usuário que ocorra uma nova tentativa, também através de uma janela informativa, com formato semelhante à janela de sucesso. UC-03: Cadastrar Paciente Diagrama de Seqüência UC-03: Cadastrar Paciente Diagrama de Classes UC-03: Cadastrar Paciente Descrição de um Caso de Teste ID CT-003 Tipo de teste Funcional Objetivo Verificar se a funcionalidade de Cadastrar Paciente está funcionando corretamente. Requisito [RF-03] Cadastrar Paciente Pré-condição O paciente não pode estar cadastrado no sistema, não podendo existir algum paciente com dados conflitantes com o novo paciente no banco de dados. Nº do Passo Passos Resultados Esperados 1. Selecionar a opção de Cadastrar Paciente. A tela de cadastro de novo paciente é exibida. 2. O sistema retorna uma mensagem informando que o cadastro foi Informar todos os dados do novo paciente, realizado com sucesso. As funcionalidades relativas a Paciente, como Nome, CPF, RG, etc. como criar um diagnóstico, estarão então disponíveis. 3. Verificar se o paciente está cadastrado no O paciente foi cadastrado com sucesso. banco de dados com os dados corretos. Cenário Descrição CN-001 Digitar algum dado do paciente em formato É mostrada uma mensagem de erro informando o campo inválido, ou não preencher um campo incorreto. obrigatório. Resultado Esperado UC-14: Gerar Relatório de Médicos em Plantão Descrição do Caso de Uso Identificação Nome UC-14 Gerar Relatório de Médicos em Plantão Referências: RF-14 Autor: Paulo Ricardo Criado em: 08/04/2008 Atores: Administrador do Hospital e Funcionário Entradas: Pré-condições: Sistema inicializado. Usuário Autenticado de acordo com o UC-09. Fluxo Principal: 1. O usuário seleciona a opção de gerar relatório. 2. O sistema consulta os dias de plantão de cada médico. 3. O sistema exibe o relatório gerado. Fluxos Secundários: Status Validado Revisado em: 16/05/2008 UC-14: Gerar Relatório de Médicos em Plantão Diagrama de Seqüência UC-14: Gerar Relatório de Médicos em Plantão Diagrama de Classes UC-14: Gerar Relatório de Médicos em Plantão Descrição de um Caso de Teste ID CT-014 Tipo de teste Funcional Objetivo Verificar se a funcionalidade de Gerar Relatório de Médicos em Plantão está funcionando corretamente. Requisito [RF-14] Gerar Relatório de Médicos em Plantão Pré-condição Deve existir quantidade suficiente de dados cadastrados. Nº de Passo Passos 1. Selecionar a opção de Gerar Relatório de A tela de Gerar Relatório de Médicos em Plantão é exibida. Médicos em Plantão. 2. Verificar se o relatório foi realmente gerado. O relatório foi gerado com sucesso. Cenário Descrição Resultado Esperado Resultados Esperados Testes Executados Teste de Integridade de Dados e do Banco de Dados Teste Funcional Teste do Ciclo de Negócios Teste da Interface do Usuário Teste de Performance Teste de Carga Teste de Estresse Teste de Segurança e de Controle de Acesso Teste de Falha/Recuperação Teste de Instalação/Desinstalação Testes de Unidade Com o JUnit Foram executados testes com os métodos das classes básicas e da base de dados. Erros verificados foram devidamentes corrigidos.