Licenciatura em Engenharia Informática e Computação - Laboratório de Informática Avançada Gestão de beneficiários Relatório de Projecto Detalhado Grupo de Trabalho: Ana Mota, [email protected] Ana Tavares, [email protected] João Belo, [email protected] João Charruadas, [email protected] Gestão de Beneficiários – Relatório de Projecto Detalhado 1/32 Índice Índice ................................................................................ 2 1. Descrição de componentes................................................ 3 1.1 1.2 1.3 1.4 – – – – Especificação ............................................................................ 3 Implementação ......................................................................... 5 Testes ................................................................................... 18 Aplicações .............................................................................. 20 2. Realização de casos de utilização ..................................... 25 2.1 – Parte Estática ......................................................................... 25 2.2 – Parte Dinâmica ....................................................................... 28 3. Informação sobre testes de integração ............................. 30 4. Estado da implementação ............................................... 31 ANEXO I ........................................................................... 32 Gestão de Beneficiários – Relatório de Projecto Detalhado 2/32 1 – Descrição de Componentes 1.1 - Especificação O seguinte diagrama de componentes especifica os componentes do projecto que foram implementados: Componentes Internos Administração Componentes Externos Utilizadores Adição Utilizador Alteração Password Login Administradores Logout Utilizadores Consulta Conta Corrente Beneficiário Login Utilizadores Consulta Reembolsos Adição Reembolsos Consulta Contribuições Adição Contribuições Consulta Despesas Adição Beneficiários Consulta Relatório de Resultados Alteração Beneficiários Consulta Beneficiários APACHE AXIS WebService para Efectuar Transferencia bancária Remoção Utilizadores Remoção Beneficiários WebServices Verificação de Sessão Consulta Transferências Notificadas Efectuar transferência bancária (UTILIZADO) Notificação de transferencia bancária (FORNECIDO) Adição de despesas para contabilidade (FORNECIDO) É possível então listar os componentes a partir do diagrama: 1.1.1 – Componentes Internos Componentes de administração: - Adição Utilizador (CADM1); - Alteração Password (CADM2); - Login Administrador (CADM3); - Remoção Utilizadores (CADM4). Componentes de utilização: - Logout de Utilizadores (CUTIL1); - Login de Utilizadores (CUTIL2); - Adição de Reembolsos (CUTIL3); Gestão de Beneficiários – Relatório de Projecto Detalhado 3/32 - Adição de Contribuições (CUTIL4); - Adição de Beneficiários (CUTIL5); - Alteração de Beneficiários (CUTIL6); - Remoção de Beneficiários (CUTIL7); - Consulta de Beneficiários (CUTIL8); - Consulta de Conta Corrente de Beneficiários (CUTIL9); - Consulta de Reembolsos (CUTIL10); - Consulta de Contribuições (CUTIL11); - Consulta de Despesas (CUTIL12); - Consulta de Relatório de Resultados (CUTIL13); - Verificação de Sessão (CUTIL14); - Consulta de Transferências Notificadas (CUTIL15). Componentes de WebServices: - Efectuar transferência bancária (Componente utilizado) (CWS1); - Notificação de transferência bancária (Componente fornecido) (CWS2); - Adição de despesas para contabilidade (Componente fornecido) (CWS3). 1.1.2 – Componentes Externos Apache Tomcat WebServer: (CEX1) - AXIS. (CEX1.1) WebService para efectuar transferência bancária. (CEX2) Gestão de Beneficiários – Relatório de Projecto Detalhado 4/32 1.2 – Implementação 1.2.1 – Componentes Internos De seguida é descrita a implementação de cada componente individualmente do sistema, utilizando diagramas de componentes e de actividades. Componentes de administração: CADM1 – Adição Utilizador header_admin.jsp checksession.jsp add_user.jsp CADM1 - Adição Utilizador indexloginadmin.jsp menu_admin.jsp new_user.jsp adminUtil.java adminConn.java É chamado o método newUser(String, String) Gestão de Beneficiários – Relatório de Projecto Detalhado 5/32 CADM2 – Alteração Password checksession.jsp header_admin.jsp change_pass.jsp CADM2 - Alteração Password indexloginadmin.jsp new_pass.jsp menu_admin.jsp adminUtil.java adminConn.java É chamado o método changePass(String, String, String) CADM3 – Login Administrador setUserPass(String, String) indexloginadmin.jsp Password Correcta liga() login-errado_admin.jsp A password está correcta? Password Incorrecta CADM3 - Login Administrador login_admin.jsp CUTIL2 - Login de Utilizadores adminConn.java adminUtil.java Gestão de Beneficiários – Relatório de Projecto Detalhado É chamado o método setUserPass(String, String) É chamado o método liga() 6/32 CADM4 – Remoção de Utilizadores checksession.jsp header_admin.jsp del_user.jsp CADM4 - Remoção Utilizadores indexloginadmin.jsp drop_user.jsp menu_admin.jsp adminUtil.java adminConn.java É chamado o método delUser(String) Componentes de utilização: CUTIL1 – Logout utilizadores sair.jsp Os parâmetros da sessão são invalidados. CUTIL1 - Logout de Utilizadores index.jsp Gestão de Beneficiários – Relatório de Projecto Detalhado 7/32 CUTIL2 – Login de Utilizadores Atributos da sessão validados login(String, String) indexlogin.jsp Password Correcta liga() login-errado.jsp A password está correcta? Password Incorrecta CUTIL2 - Login de Utilizadores login.jsp Ligacao.java regUtil.java É chamado o método liga() É chamado o método login(String, String) Gestão de Beneficiários – Relatório de Projecto Detalhado 8/32 CUTIL3 - Adição de Reembolsos checksession.jsp header.jsp CWS1 - Efectuar Transferência Bancária cc_reemb_form.jsp CUTIL3 - Adição de Reembolsos indexlogin.jsp menu.jsp WebService OK cc_reemb.jsp Erro WebService regUtil.java É chamado o método insReemb(String, String, String, String, String) É chamado o método getConta(String) banco-error.htm ServicosServiceTestCase.java É chamado o método test3ServicosEfectuarTransferencia(String, String, String, String, int, String) CUTIL4 - Adição de Contribuições header.jsp checksession.jsp CWS1 - Efectuar Transferência Bancária cc_contrib_form.jsp CUTIL4 - Adição de Contribuições indexlogin.jsp menu.jsp cc_contrib.jsp WebService OK regUtil.java Erro WebService É chamado o método insContrib(String, String, String) É chamado o método getConta(String) banco-error.htm ServicosServiceTestCase.java É chamado o método test3ServicosEfectuarTransferencia(String, String, String, String, int, String) Gestão de Beneficiários – Relatório de Projecto Detalhado 9/32 CUTIL5 - Adição de Beneficiários checksession.jsp header.jsp ins_benef_form.jsp CUTIL5 - Adição de Beneficiários ins_benef.jsp menu.jsp indexlogin.jsp regUtil.java É chamado o método insBenef(String, String, String, String, String, String, String, String) CUTIL6 - Alteração de Beneficiários checksession.jsp indexlogin.jsp act_benef.jsp CUTIL8 - Consulta de Beneficiários CUTIL6 - Alteração de Beneficiários regUtil.java É chamado o método actualizaBenef(String, String, String, String, String, String, String, String) Gestão de Beneficiários – Relatório de Projecto Detalhado 10/32 CUTIL7 - Remoção de Beneficiários checksession.jsp indexlogin.jsp CUTIL8 - Consulta de Beneficiários act_benef.jsp CUTIL7 - Remoção de Beneficiários regUtil.java É chamado o método removerBenef(String) CUTIL8 - Consulta de Beneficiários header.jsp checksession.jsp consul_benef_form.jsp menu.jsp CUTIL8 - Consulta de Beneficiários consul_benef.jsp beneficiario.jsp regUtil.java É chamado o método getBenef(String) Gestão de Beneficiários – Relatório de Projecto Detalhado 11/32 CUTIL9 - Consulta de Conta Corrente de Beneficiários regUtil.java É chamado o método getCCBeneficiario(String, String, String) É chamado o método getBenef(String) header.jsp conta_corrente_beneficiario.jsp checksession.jsp CUTIL8 - Consulta de Beneficiários ccb_cc_form.jsp CUTIL9 - Consulta de Conta Corrente de Beneficiários menu.jsp CUTIL10 - Consulta de Reembolsos regUtil.java É chamado o método getReembCC(String, String) header.jsp showReemb.jsp checksession.jsp reemb_cc_form.jsp CUTIL10 - Consulta de Reembolsos menu.jsp Gestão de Beneficiários – Relatório de Projecto Detalhado 12/32 CUTIL11 - Consulta de Contribuições regUtil.java É chamado o método getContCC(String, String) header.jsp showContrib.jsp checksession.jsp contrib_cc_form.jsp CUTIL11 - Consulta de Contribuições menu.jsp CUTIL12 - Consulta de Despesas regUtil.java É chamado o método getDespCC(String, String) header.jsp showDesp.jsp checksession.jsp desp_cc_form.jsp CUTIL12 - Consulta de Despesas menu.jsp Gestão de Beneficiários – Relatório de Projecto Detalhado 13/32 CUTIL13 - Consulta de Relatório de Resultados regUtil.java É chamado o método getTotalMes(String, String) header.jsp total.jsp checksession.jsp total_form.jsp CUTIL13 - Consulta de Relatório de Resultados menu.jsp CUTIL14 – Verificação de Sessão Sessão válida index.jsp Sessão inválida checksession.jsp CUTIL14 - Verificação de Sessão Gestão de Beneficiários – Relatório de Projecto Detalhado 14/32 CUTIL15 – Consulta de Transferências Notificadas regUtil.java É chamado o método getTransMes(String, String) header.jsp transferencias.jsp checksession.jsp trans_form.jsp CUTIL15 - Consulta de Transferências Notificadas menu.jsp Componentes de WebServices: CWS1 – Efectuar transferência bancária CEX2 - WebService para Efectuar Transferência Bancária CWS1 - Efectuar Transferência Bancária ServicosServiceTestCase.java É chamado o método test3ServicosEfectuarTransferencia(String, String, String, String, int, String) Localiza WebService Obtém serviços do WebService Termina com valor de retorno Efectua Transferência Gestão de Beneficiários – Relatório de Projecto Detalhado 15/32 CWS2 – Notificação de transferência bancária CWS2 - Notificação de Transferência Bancária Servicos.jws É chamado o método notificarTransferencia(String, String, String, String, String) Abre ligação à base de dados Insere transferência confirmada na tabela transferencias CWS3 – Adição de despesas para contabilidade CWS3 - Adição de despesas para contabilidade Servicos.jws É chamado o método insDespesa(String, String, String, String, String, String) Abre ligação à base de dados Obtém o maior código inserido na tabela contabilidades Gestão de Beneficiários – Relatório de Projecto Detalhado Insere despesa na base de dados 16/32 1.2.2 – Componentes Externos Como a implementação dos componentes externos não é conhecida, descrevemse os serviços disponibilizados por estes. CEX1 - Apache Tomcat WebServer O Apache Tomcat é um servidor web que permite correr JavaServer Pages e outros scripts “server-side”. É utilizado para disponibilizar os WebServices a partir da porta HTTP do computador onde o sistema está instalado. CEX1.1 – AXIS O AXIS é um módulo que se integra no Apache Tomcat que, além de ajudar na construção de WebServices, permite a sua execução através dos vários submódulos que possui para este tipo de serviços. CEX2 - WebService para efectuar transferência bancária Este WebService permite que se efectuem ligações para pedir a execução de transferências bancárias. O componente interno que se liga a este componente é o CWS1 (Efectuar Transferência Bancária). O interface disponibilizado por este componente é o seguinte: boolean efectuarTransferencia(string login, string password, NIBContaOrigem, string NIBContaDestino, decimal valor, string descricao) Gestão de Beneficiários – Relatório de Projecto Detalhado string 17/32 1.3 – Testes O procedimento utilizado para os testes é baseado num uso extensivo do componente, tanto separadamente como em conjunto com outros componentes (internos e externos), de modo a permitir descobrir eventuais falhas nessa mesma implementação. 1.3.1 – Componentes Internos Os seguintes testes foram efectuados: Componente Resultado dos Testes CADM1 Passou CADM2 Passou CADM3 Passou CADM4 Passou CUTIL1 Passou CUTIL2 Passou CUTIL3 Passou CUTIL4 Passou CUTIL5 Passou CUTIL6 Passou CUTIL7 Passou CUTIL8 Passou CUTIL9 Passou CUTIL10 Passou CUTIL11 Passou CUTIL12 Passou CUTIL13 Passou CUTIL14 Passou CUTIL15 Passou CWS1 Passou CWS2 Passou CWS3 Passou Gestão de Beneficiários – Relatório de Projecto Detalhado 18/32 1.3.2 – Componentes Externos Os seguintes testes foram efectuados: Componente Resultado dos Testes CEX1 Passou CEX1.1 Passou CEX2 Passou Gestão de Beneficiários – Relatório de Projecto Detalhado 19/32 1.4 – Aplicações De seguida apresenta-se a correspondência entre componentes e requisitos, assim como as respectivas funcionalidades que permitem os requisitos apresentados. Ver Anexo I – Requisitos do Sistema Revistos. 1.4.1 – Requisitos Funcionais RFS1 – O sistema tem que permitir a inserção, actualização e remoção de dados de beneficiários. Componentes que implementam este requisito: CUTIL5 - Adição de Beneficiários; CUTIL6 - Alteração de Beneficiários; CUTIL7 - Remoção de Beneficiários; CUTIL8 - Consulta de Beneficiários. É possível inserir um novo beneficiário directamente a partir do menu principal do utilizador do sistema. Através de uma consulta posterior de beneficiários, é possível fazer a alteração dos dados de um beneficiário ou a sua remoção. RFS2 – O sistema tem que permitir registar o recebimento das contribuições de beneficiários. Componente que implementa este requisito: CUTIL4 - Adição de Contribuições. Através de um formulário simples, acedido a partir do menu principal, adiciona-se uma contribuição referente a um dado beneficiário. RFS2.1 – O sistema tem que permitir uma ligação com o banco para o recebimento das contribuições de beneficiários. Componente que implementa este requisito: CWS1 – Efectuar transferência bancária. Quando se adiciona uma contribuição, é efectuada uma ligação através do WebService disponibilizado externamente (componente CEX2 – WebService para efectuar transferência bancária). A transferência é então efectuada. Gestão de Beneficiários – Relatório de Projecto Detalhado 20/32 RFS3 – O sistema tem que permitir registar o pagamento de reembolsos aos beneficiários. Componente que implementa este requisito: CUTIL3 - Adição de Reembolsos. Através de um formulário simples, acedido a partir do menu principal, adiciona-se um reembolso referente a um dado beneficiário. RFS3.1 – O sistema tem que permitir uma ligação com o banco para o pagamento de reembolsos aos beneficiários. Componente que implementa este requisito: CWS1 – Efectuar transferência bancária. Quando se adiciona um reembolso, é efectuada uma ligação através do WebService disponibilizado externamente (componente CEX2 – WebService para efectuar transferência bancária). A transferência é então efectuada. Como se pode ver, o componente CWS1 funciona de forma indiferente tanto para transferências relativas a reembolsos como contribuições. RFS4 – O sistema tem que disponibilizar uma ligação que permita à gestão de acordos inserir despesas na contabilidade. Componente que implementa este requisito: CWS3 – Adição de despesas para contabilidade. O sistema disponibiliza um WebService através deste componente, permitindo uma ligação ao mesmo a partir da Gestão de Acordos, que irá inserir despesas na base de dados, permitindo a sua integração na contabilidade. RFS5 – O sistema tem que permitir visualizar o registo dos pagamentos, recebimentos e despesas para contabilização, tanto a nível de contabilização geral, como de contabilização individual por beneficiário ou por datas. Componentes que implementam este requisito: CUTIL8 - Consulta de Beneficiários; CUTIL9 - Consulta de Conta Corrente de Beneficiários; CUTIL10 - Consulta de Reembolsos; CUTIL11 - Consulta de Contribuições; CUTIL12 - Consulta de Despesas. Gestão de Beneficiários – Relatório de Projecto Detalhado 21/32 Através de uma consulta de um beneficiário, é possível obter a sua conta corrente por mês, com a informação de todas as contribuições, despesas e reembolsos associados. Também disponível, mas desta vez directamente a partir do menu principal do utilizador, é possível efectuar consultas, separadamente e por mês, para as contribuições, despesas ou reembolsos efectuadas nesse mês pelos vários beneficiários. RFS6 – O sistema tem que poder gerar e visualizar relatórios de resultados a partir do registo dos pagamentos, recebimentos e despesas. Componente que implementa este requisito: CUTIL13 – Consulta de Relatório de Resultados. Directamente a partir do menu principal do utilizador é possível obter, por mês, o relatório de resultados que inclui, em conjunto, todas as contribuições, despesas ou reembolsos efectuados nesse mês pelos vários beneficiários. RFS7 – O sistema tem que estar preparado para vários utilizadores diferentes. Componentes que implementam este requisito: CUTIL1 - Logout de Utilizadores; CUTIL2 - Login de Utilizadores. É possível um utilizador autenticado entrar no sistema e, após a sua saída ou alternativamente a partir de outro terminal, entrar outro utilizador autenticado, havendo então várias contas de utilizadores. RFS8 – O sistema tem que permitir uma gestão de utilizadores. Componentes que implementam este requisito: CADM1 - Adição Utilizador; CADM2 - Alteração Password; CADM3 - Login Administrador; CADM4 - Remoção Utilizadores. As ferramentas de administração do sistema, acessíveis com o nome de utilizador e password da base de dados que tem as tabelas do sistema (correspondendo ao login de administrador), permitem adicionar utilizadores, alterar a password de um utilizador ou remover utilizadores. Gestão de Beneficiários – Relatório de Projecto Detalhado 22/32 RFS9 – O sistema tem que disponibilizar uma ligação ao banco que permita receber notificações quando as transferências são efectuadas, assim como permitir visualizar essas transferências. Componentes que implementam este requisito: CUTIL15 – Consulta de Transferências Notificadas; CWS2 – Notificação de Transferência Bancária. É disponibilizado um WebService para ser utilizado pelo banco, de modo a que este possa notificar o sistema quando uma transferência pedida é executada, e está portanto confirmada. A confirmação destas transferências pode ser consultada directamente através do menu principal de utilizador. 1.4.2 – Requisitos Não Funcionais RNFS1 – O sistema deve permitir uma autenticação dos utilizadores. Componentes que se relacionam com este requisito: CADM1 - Adição Utilizador; CADM2 - Alteração Password; CUTIL2 - Login de Utilizadores. O login de um utilizador implica que este tenha associada uma password. Seguindo o mesmo raciocínio, ao adicionar um utilizador novo é necessário que se crie uma password. É possível a qualquer altura a mudança de password através das ferramentas de administração. RNFS2 – A comunicação entre sistemas deve utilizar uma plataforma segura. Componentes que se relacionam com este requisito: CWS1 - Efectuar transferência bancária; CWS2 - Notificação de transferência bancária; CWS3 - Adição de despesas para contabilidade. Todas as comunicações entre sistemas são através de WebServices e funcionam através de ligações por TCP/IP não encriptadas. Devido à reduzida informação enviada, a probabilidade desta ser interceptada é significativamente baixa, pelo que se pode assumir que há alguma segurança nesta utilização. No entanto, a intercepção destes pacotes de informação não-encriptada é possível, não se podendo assumir que se trata de uma plataforma segura. Gestão de Beneficiários – Relatório de Projecto Detalhado 23/32 RNFS3 – O sistema deve ter um tempo de resposta rápido. Todos os componentes internos ao sistema relacionam-se com este requisito, visto que pelos testes efectuados todos têm esse tempo de resposta rápido. RNFS4 – A comunicação entre sistemas deverá ter um tempo de resposta rápido. Componentes que se relacionam este requisito: CWS1 - Efectuar transferência bancária; CWS2 - Notificação de transferência bancária; CWS3 - Adição de despesas para contabilidade. Os testes efectuados às comunicações através dos WebServices provaram que não há qualquer tipo de dificuldade que impeça uma comunicação rápida entre sistemas. O tamanho dos pacotes enviados é muito pequeno, o que não requer muita largura de banda, mas há que ter em conta que numa rede muito congestionada esse tempo de resposta pode ser mais lento. Gestão de Beneficiários – Relatório de Projecto Detalhado 24/32 2 – Realização de casos de utilização 2.1 – Parte Estática 2.1.1 – Modelo de Domínio Parcial de Alto Nível Apresenta-se de seguida o diagrama com o modelo de domínio parcial de alto nível, demonstrando a interligação com os outros sistemas. A Gestão de Beneficiários necessita do Banco para efectuar transferências bancárias Banco O Banco necessita da Gestão de Beneficiários para notificar quando as transferências são executadas Gestão de Beneficiários Gestão de Acordos A Gestão de Acordos necessita de enviar as despesas para serem inseridas na contabilidade da Gestão de Beneficiários Através deste diagrama é possível observar as dependências que correspondem exactamente aos WebServices que fazem a interligação entre sistemas. Tanto a Gestão de Acordos como o Banco dependem da Gestão de Beneficiários, correspondendo aos dois WebServices que são fornecidos. A Gestão de Beneficiários depende, por sua vez, do Banco, o que corresponde ao WebService que este lhe fornece. Gestão de Beneficiários – Relatório de Projecto Detalhado 25/32 2.1.2 – Diagrama de classes Apresenta-se o renovado diagrama de classes: Contribuição Beneficiário -NIF : long -Nome : String -Morada : String -Telefone : long -Outros Contactos : String -Sexo : char -Nº Conta : long -Tipo de Quota : String 1..* * -Data : Date -Valor : float -Nº Factura : int 1 Transferência Bancária 1 -Nº Conta Bancária origem : long -Nº Conta Bancária destino : long -Valor : float -Descrição : String 1 Pagamento * * 0..* Despesa -Prestador Saúde : String -Tratamento : String 0..* Reembolso 1 Deste diagrama observa-se que todos os dados referente à contabilidade de Despesas e Reembolsos são consideradas classes que herdam os atributos da classe Pagamento, que por sua vez herda os atributos que todos os tipos de contabilidade (Reembolsos, Despesas e Contribuições) têm. 2.1.3 – Estrutura do Interface gráfico O interface gráfico apresenta-se sob a forma de HTML gerado a partir de JSP, segundo o seguinte esquema: Gestão de Beneficiários – Relatório de Projecto Detalhado 26/32 O HTML é então gerado a partir do JSP, que por sua vez interligam com os JavaBeans (que fazem a ligação a baixo nível com a base de dados e componentes externos). Todos os HTML importam uma folha de estilos (style.css). O utilizador limita-se a ver HTML gerado (ou algumas vezes nãodinâmico), não tendo acesso ao código fonte que se encontra no servidor. Gestão de Beneficiários – Relatório de Projecto Detalhado 27/32 2.2 – Parte Dinâmica 2.1.1 – Diagrama de actividades entrando como utilizador Este diagrama mostra os percursos possíveis de utilização do sistema entrando como utilizador registado: Página Inicial de Utilizador Adicionar Beneficiário Alterar Beneficiário Consulta Beneficiário Remover Beneficiário Consulta Reembolsos Consulta Despesas Consulta Contribuições Consulta Relatório Resultados Adicionar Reembolso Adicionar Contribuição Podemos ver a ligação forte entre páginas, normalmente recorrendo aos botões de navegação do “browser”. A partir de qualquer página é possível sair do sistema (fechando o “browser”). Fazendo logout, o sistema vai para a página principal, que não está representada neste diagrama. Para a correspondência entre estes estados e as páginas a que se referem, ver o ponto 1 do relatório, visto que aos estados correspondem directamente componentes. Gestão de Beneficiários – Relatório de Projecto Detalhado 28/32 2.1.2 – Diagrama de actividades entrando como administrador Este diagrama mostra os percursos possíveis de utilização do sistema entrando como administrador: Entrada Página Inicial Sair Login - Administrador Sair Página Inicial - Administrador Sair Sair Inserir Util. Util. Removido Aterar Password Password Alterada Util. Inserido Pág. Inserção de Utilizadores Remover Utli. Pág. Alteração de Password Pág. Remoção de Utilizadores Fechar o Browse Entrando como administrador a partir da página inicial do sistema, é possível aceder às funções de inserção ou remoção de utilizadores, assim como a alteração de password. Tal como no ponto anterior, pode-se observar o ponto 1 deste relatório para uma descrição mais pormenorizada da relação entre estes estados e os componentes que os implementam. Gestão de Beneficiários – Relatório de Projecto Detalhado 29/32 3 – Informação sobre testes de integração Os testes aos casos de utilização (requisitos do sistema) são efectuados do ponto de vista global do funcionamento do sistema (ao contrário dos testes efectuados por componentes, referidos no ponto 1.3 deste relatório. Estes testes são efectuados através de uma tentativa de exploração dos casos possíveis dentro de um dado requisito do sistema, tentando encontrar falhas. Os testes apenas foram efectuados aos requisitos funcionais, visto que o objectivo era encontrar falhas na implementação e não em factores secundários. A lista de requisitos do sistema encontra-se em anexo a este relatório. Estes foram os resultados dos testes efectuados: Requisito Resultado dos Testes RFS1 Passou RFS2 Passou RFS2.1 Passou RFS3 Passou RFS3.1 Passou RFS4 Passou RFS5 Passou RFS6 Passou RFS7 Passou RFS8 Passou RFS9 Passou Gestão de Beneficiários – Relatório de Projecto Detalhado 30/32 4 – Estado da Implementação O estado da implementação do sistema é considerado final. De seguida apresenta-se uma tabela com os requisitos (funcionais e não-funcionais) que o sistema cumpre. Requisito Estado RFS1 Cumpre RFS2 Cumpre RFS2.1 Cumpre RFS3 Cumpre RFS3.1 Cumpre RFS4 Cumpre RFS5 Cumpre RFS6 Cumpre RFS7 Cumpre RFS8 Cumpre RFS9 Cumpre RNFS1 Cumpre RNFS2 Utiliza plataforma não encriptada RNFS3 Cumpre RNFS4 Cumpre O requisito não funcional RNFS2 não se pode considerar cumprido visto que utiliza uma plataforma de comunicações não encriptada. (Ver ponto 1.4.2 do relatório) Todos os outros requisitos são cumpridos pelo sistema. No momento da escrita deste relatório não há bugs conhecidos. Gestão de Beneficiários – Relatório de Projecto Detalhado 31/32 ANEXO I – Requisitos do sistema revistos Requisitos do sistema Requisitos Funcionais RFS1 – O sistema tem que permitir a inserção, actualização e remoção de dados de beneficiários. RFS2 – O sistema tem que permitir registar o recebimento das contribuições de beneficiários. RFS2.1 – O sistema tem que permitir uma ligação com o banco para o recebimento das contribuições de beneficiários. RFS3 – O sistema tem que permitir registar o pagamento de reembolsos aos beneficiários. RFS3.1 – O sistema tem que permitir uma ligação com o banco para o pagamento de reembolsos aos beneficiários. RFS4 – O sistema tem que disponibilizar uma ligação que permita à gestão de acordos inserir despesas na contabilidade. RFS5 – O sistema tem que permitir visualizar o registo dos pagamentos, recebimentos e despesas para contabilização, tanto a nível de contabilização geral, como de contabilização individual por beneficiário ou por datas. RFS6 – O sistema tem que poder gerar e visualizar relatórios de resultados a partir do registo dos pagamentos, recebimentos e despesas. RFS7 – O sistema tem que estar preparado para vários utilizadores diferentes. RFS8 – O sistema tem que permitir uma gestão de utilizadores. RFS9 – O sistema tem que disponibilizar uma ligação ao banco que permita receber notificações quando as transferências são efectuadas, assim como permitir visualizar essas transferências. Requisitos Não Funcionais RNFS1 – O sistema deve permitir uma autenticação dos utilizadores. RNFS2 – A comunicação entre sistemas deve utilizar uma plataforma segura. RNFS3 – O sistema deve ter um tempo de resposta rápido. RNFS4 – A comunicação entre sistemas deverá ter um tempo de resposta rápido. Gestão de Beneficiários – Relatório de Projecto Detalhado 32/32