SISTEMA TYR Processo de Engenharia de Requisitos Empresa: Academia Universitária Processo e Engenharia de Software II(PES II) 4º Ano do Curso de Bacharelado em Informática Cascavel 2009 Pedro Patitucci Finamore Daniel Bordignon Cassanelli Marco Antonio da Rosa ESPECIFICAÇÃO DE REQUISITOS E MODELAGEM ORIENTADA A OBJETOS Especificação de requisitos e modelagem orientada a objetos do sistema TYR, proposto pela disciplina de Projeto e Engenharia de Software II Professor: Victor Francisco Araya Santander Cascavel 2009 2 ÍNDICE 1- Motivação............................................................................................. 04 2- Introdução............................................................................................. 04 3- Metodologia.......................................................................................... 05 4- Cronograma.......................................................................................... 05 5- Requisitos Funcionais.......................................................................... 08 6- Modelagem Organizacional i*............................................................. 12 6.1 Diagrama SD............................................................................ 12 6.2 Diagrama SR............................................................................ 14 7- Requisitos Não-Funcionais.................................................................. 16 7.1 Grafo SIG ............................................................................... 18 8- Diagrama de Casos de Uso................................................................. 20 9- Diagrama de Classes........................................................................... 28 10- Conclusão......................................................................................... 31 Apêndice A............................................................................................. 32 3 1. Motivação Atualmente, academias de musculação, quase sempre, possuem um sistema de controle de treinamentos escasso, muitas vezes feito manualmente e sem qualquer acompanhamento. Além disso, não é raro encontrar academias que não possuem qualquer sistema de informatização, gerenciando cadastros manualmente, por meio de planilhas eletrônicas ou, em raras exceções, por meio de sistemas privados de muitas funcionalidades. Visto isso, o objetivo deste trabalho é a implementação de um sistema que possibilite aos instrutores um maior controle de clientes, assim como um melhor acompanhamento dos treinamentos, entre outras funcionalidades. 2. Introdução O projeto em estudo foi baseado na Academia Universitária, que se encontra na Rua Universitária, nº1462, bairro Faculdade, CEP 85819110, na cidade de Cascavel, interior do Estado do Paraná, por saber das deficiências tecnológicas da mesma e pelo desafio proporcionado aos integrantes da equipe. A empresa em questão não possui qualquer sistema de informação, exceto planilhas eletrônicas, e faz o controle de seus clientes por meio destas. Além do problema supracitado, o treinamento dos clientes é feito em fichas de papel, com um treino único para todos os clientes da academia, sem qualquer alteração no decorrer do treinamento. Outro problema encontrado foi a precariedade do sistema de arquivamento de dados dos clientes, que é feito manualmente e não guarda nada além dos dados básicos de cada cliente. Sendo assim, após entrevistas com os instrutores da academia, propôs-se a implantação do sistema TYR, que fará o controle de clientes, mensalidades e treinamentos. Os detalhes das entrevistas se encontram no Apêndice A. Neste documento será apresentado um estudo dos requisitos funcionais, não funcionais e modelagem organizacional do sistema. Assim como os diagramas de casos de uso e classes. 4 3. Metodologia Como o projeto escolhido é um projeto de pequeno/médio porte, não foi necessária a escolha de uma metodologia para sistemas robustos, como a metodologia RUP. Visto isso, a metodologia escolhida pela equipe foi baseada na escolha de uma metodologia ágil, para que todos trabalhassem de forma igualitária e que o cliente também participasse do desenvolvimento do sistema. Portanto, a metodologia adotada pela equipe é a metodologia SCRUM. Como o projeto é de pequeno porte e a equipe é pequena, fica viável a realização das Daily Meetings. Além disso, visamos entregar um protótipo em curto espaço de tempo, a fim de obter um feedback do cliente, possibilitando a integração do cliente no time de desenvolvimento. 4. Cronograma Os módulos do sistema foram divididos em Sprints, conforme especificação da metodologia SCRUM. A partir do Sprint 04 será entregue um protótipo utilizável para o cliente, em Sprints anteriores o cliente apenas participará da implementação do software, não sendo entregue protótipos utilizáveis. O cronograma a seguir foi feito após primeiro contato com o cliente e definição de requisitos do sistema e todos os módulos serão introduzidos ao cliente, assim como um treinamento para o uso de cada módulo. O papel de Scrum Master ficará a cargo do senhor Daniel Bordignon Cassanelli, pelo simples fato do mesmo já ter tido contato, no passado, com este tipo de implementação. As Daily Meetings (ou Stand Up Meetings) ocorrerão normalmente durante o desenvolvimento do sistema, onde serão discutidos os detalhes da implementação de cada Sprint, bem como o andamento do Sprint corrente. A implementação do sistema se dará a partir do dia 28 de abril de 2009 e o cronograma será explicitado a seguir: [SPRINT01] Política de Login e senha - Módulo fundamental para o funcionamento do sistema, todos os outros dependem dele, neste módulo serão implementadas as políticas de login e senha para o acesso ao banco de dados; -Uma semana para a implementação do Sprint, a partir da definição de requisitos, se iniciando no dia 18 de maio de 2009 e; término no dia 01 de junho de 2009; [SPRINT02] Semana de Adequação do Cronograma - Semana dedicada a adequação do cronograma, avaliação do ritmo de trabalho e retrospectiva do Sprint anterior. 5 [SPRINT03] Controle de Usuários; - Módulo fundamental para o funcionamento do sistema, todos os outros dependem dele; - Para o controle de usuários, será necessário uma semana de implementação, a partir do término do Sprint 01, se iniciando no dia 08 de junho de 2009 e término no dia 22 de junho de 2009. [SPRINT04] Semana de Adequação do Cronograma - Semana dedicada a adequação do cronograma, avaliação do ritmo de trabalho e retrospectiva do Sprint anterior [SPRINT05] Controle de Serviços; - Módulo fundamental para o funcionamento do sistema: mensalidade, relatórios e treinamento dependem dele. - Para o controle de usuários, será necessário uma semana de implementação, a partir do término do Sprint 02, se iniciando no dia 29 de junho de 2009 e término no dia 6 de julho de 2009. [SPRINT06] Semana de Adequação do Cronograma - Semana dedicada a adequação do cronograma, avaliação do ritmo de trabalho e retrospectiva do Sprint anterior. [SPRINT07] Controle de Clientes; - Módulo fundamental para o funcionamento do sistema: mensalidade e relatório dependem dele. - Para o controle de usuários, serão necessárias três semanas de implementação, a partir do término do Sprint 03, se iniciando no dia 13 de julho de 2009 e término no dia 27 de julho de 2009. [SPRINT09] Controle de Mensalidade; - Módulo fundamental para o funcionamento do sistema: relatório e cliente dependem dele. - Para o controle de usuários, serão necessárias duas semanas de implementação, a partir do término do Sprint 04, iniciando-se no dia 03 de agosto de 2009 e término no dia 17 de agosto de 2009. [SPRINT10] Semana de Adequação do Cronograma 6 - Semana dedicada a adequação do cronograma, avaliação do ritmo de trabalho e retrospectiva do Sprint anterior. [SPRINT011] Controle de Relatórios; - Módulo essencial para o controle interno da academia; - Duas semanas extras para estudo da ferramenta iReport, iniciando-se no dia 24 de agosto de 2009 e término no dia 07 de setembro de 2009. - Para o controle de usuários, serão necessárias duas semanas de implementação, a partir do término do Sprint 05, com inicio no dia 24 de agosto de 2009 e término no dia 07 de setembro de 2009. [SPRINT12] Semana de Adequação do Cronograma - Semana dedicada a adequação do cronograma, avaliação do ritmo de trabalho e retrospectiva do Sprint anterior. [SPRINT13] Controle de Avaliação; - Módulo essencial para o controle de treinamento; - Uma semana extra para estudo de fórmulas básicas da anamnese, com inicio no dia 14 de setembro de 2009 e término no dia 28 de setembro de 2009; - Para o controle de usuários, serão necessárias duas semanas de implementação, a partir do término do Sprint 06, com inicio na data de 14 de setembro de 2009 e término no dia 28 de setembro de 2009; [SPRINT14] Semana de Adequação do Cronograma - Semana dedicada a adequação do cronograma, avaliação do ritmo de trabalho e retrospectiva do Sprint anterior. [SPRINT15] Controle de Treinamento; - Módulo essencial para o Instrutor; - Para o controle de usuários, serão necessárias duas semanas de implementação, a partir do término do Sprint 07, com inicio no dia 05 de outubro de 2009 e término no dia 19 de outubro de 2009. [SPRINT16] Semana de Adequação do Cronograma 7 - Semana dedicada a adequação do cronograma, avaliação do ritmo de trabalho e retrospectiva do Sprint anterior. [SPRINT17] Implantação do Sistema de Treinamento dos Usuários do Sistema; - Módulo não fundamental para o funcionamento do sistema; - Após a implantação do sistema, será iniciado o processo de treinamento. O treinamento será administrado, pelo menos, duas vezes por semana, com os dias a serem definidos, com o intervalo de tempo entre os dias 26 de outubro de 2009 e o dia 09 de novembro de 2009. [SPRINT18] Semana de Adequação do Cronograma - Semana dedicada a adequação do cronograma, avaliação do ritmo de trabalho e retrospectiva do Sprint anterior. [SPRINT19] Validação dos Requisitos Software pelo Cliente; - Após o treinamento dado aos usuários do sistema e a implantação do sistema, o gerente da academia validará os requisitos do sistema. - Após a validação dos requisitos, o sistema será entregue à academia para testes e possíveis suportes. Caso hajam mudanças durante o percurso do desenvolvimento, novos sprints serão gerados, conforme especificação da metodologia SCRUM. - Este é o Sprint final e usará o tempo restante do projeto. Após a validação dos requisitos, o sistema será entregue à academia para testes e possíveis suportes. Caso haja mudanças durante o percurso do desenvolvimento, novos sprints serão gerados, conforme especificação da metodologia SCRUM. 5. Requisitos Funcionais do Sistema Requisitos funcionais nada mais são do que as funcionalidades do sistema, ou seja, tudo o que o sistema faz e executa. Nesta parte do trabalho serão mostrados todos os requisitos do sistema, bem como uma explicação breve de suas funcionalidades. [RF-01] Cadastrar Cliente O sistema deve permitir o cadastro de cliente através dos seguintes dados: 8 - Nome; - Idade; - CPF; - RG; - Endereço; - Telefone (Fixo e/ou Celular); - Data de Vencimento da Mensalidade; - Data de Nascimento; - Serviço; [RF-02] Gerar Número de Matrícula para o Cliente Após cadastrar um cliente, o sistema deve gerar um número de matrícula que deve ser feito seqüencialmente. Caso o cliente já esteja cadastrado no sistema, uma mensagem de alerta aparecerá informando a existência do cadastro. [RF-03] Buscar Cliente O sistema deve permitir a busca de um cliente pelo número da matrícula ou pelo nome do mesmo. O resultado da busca deverá aparecer na tela, caso o cliente não exista dentro do banco de cadastros, uma mensagem de alerta aparecerá. [RF-04] Excluir Cliente O sistema deve permitir a exclusão de um cliente, que é feita após uma busca pelo nome do mesmo. Ao excluir um cliente uma mensagem aparecerá, para a confirmação da exclusão. Ao ser excluído, o número de matrícula anteriormente ocupado pelo cadastro, ficará disponibilizado. [RF-05] Alterar Dados do Cliente O sistema deve permitir a alteração de um cadastro, porém, primeiramente uma busca deverá ser feita. Qualquer campo do cadastro poderá ser alterado. Uma mensagem aparecerá para a confirmação da alteração e outra indicando sucesso na tarefa. [RF-06] Adicionar Treinamento 9 O sistema deve disponibilizar a adição de novos treinamentos específicos, previamente feitos pelos instrutores. [RF-07] Imprimir Treinamento do Cliente O sistema deve permitir a impressão do treinamento do cliente, para melhor acompanhamento do cliente. [RF-08] Política de Login e Senha Alguns privilégios serão requeridos para acessar determinadas partes do sistema. Para isso, o sistema deve adicionar um item de segurança essencial ao sistema, tal item é a política de login e senha. [RF-09] Cadastrar Instrutor Um instrutor só poderá ser cadastrado pelo gerente da academia. Para o cadastro ser realizado, o sistema deve coletar os seguintes dados: - Nome; - RG; - CPF; - Telefone (fixo e/ou celular); - Endereço; Após o cadastramento do instrutor, será gerado para ele um login e senha para o uso do sistema. [RF-10] Buscar Instrutor O sistema deve permitir que se busque um instrutor através do nome ou do CPF do mesmo. O resultado da busca deverá ser exibido na tela. [RF-11] Excluir Instrutor O sistema deve permitir que o cadastro de um instrutor seja excluído imediatamente após ser efetuada uma busca pelo mesmo. [RF-12] Alterar Dados do Instrutor Alterações como novo endereço ou número de telefone deverão ser efetuados após uma busca. As mensagens para confirmar a 10 alteração de dados do instrutor e o sucesso ou falha ao completar a alteração serão exibidas. [RF-13] Alterar Treinamento do Cliente Um cronograma de treinamento deverá ser planejado pelo instrutor e os treinos deverão seguir este cronograma, porém, somente o instrutor poderá mudar o treinamento. O sistema TYR deverá oferecer a possibilidade de o treinamento ser mudado. [RF-14] Consultar Mensalidades O sistema deve permitir que uma consulta às mensalidades seja feita, para que as alterações no treinamento do cliente sejam possíveis. Caso haja mensalidades pendentes, um aviso deverá ser mostrado na tela e as alterações deverão ser bloqueadas. [RF-15] Gerar Relatório O sistema deverá gerar um relatório de mensalidades, que poderá ser impresso ou visualizado na tela. O relatório só poderá ser solicitado pelo gerente. [RF-16] Dar Baixa em Mensalidades O sistema deve permitir que o instrutor ou o gerente dê baixa na mensalidade dos clientes da academia. [RF-17] Aplicar Descontos O sistema deve permitir que descontos sejam aplicados nas mensalidades dos aniversariantes do mês e também nas mensalidades daqueles que pagam adiantado. Este requisito poderá ser desativado somente pelo gerente. [RF-18] Aplicar Multas O sistema deve implementar a aplicação de multas, para clientes que não pagam a mensalidade em dia, automaticamente. Este recurso só poderá ser desativado pelo gerente da academia. [RF-19] Criar Avaliação Física O sistema deve permitir que sejam criadas avaliações físicas para os clientes da academia. Para tanto, uma verificação de existência do cadastro é efetuada. A partir disso, os seguintes dados serão coletados: - Peso; 11 - Altura; - Medidas: braço, pernas, glúteos, peitoral, ombros, coxas e abdômen; - Medicação; - Atividade física; - Objetivos; - Observações. Após a coleta de dados, um treinamento específico será designado. [RF–20] Refazer Avaliação Física Depois de verificada a existência de avaliação prévia, o sistema deve garantir que uma nova avaliação seja feita. [RF–21] Buscar Avaliação Física O sistema deve permitir que a busca de uma avaliação física seja feita pelo nome ou pelo número da matrícula do cliente. O resultado da busca deverá ser exibido na tela. [RF–22] Criar Serviço O sistema deve permitir que o gerente crie um novo serviço na base de dados de Serviços. A criação de um novo serviço só poderá ser realizada pelo gerente. Ao criar um serviço, um código será atribuído ao mesmo. [RF–23] Editar Serviço O sistema deve permitir a edição de um serviço oferecido pela academia. Consiste, basicamente, na edição do preço, descrição e status do serviço. A edição de um serviço só poderá ser realizada pelo gerente. 6. Modelagem Organizacional i* Serão apresentados nesta seção os diagramas SD e SR, componentes da modelagem organizacional, assim como a descrição dos mesmos. 6.1. Diagrama SD Na página a seguir é apresentado o diagrama SD (Strategic Dependency) que envolve o sistema TYR: 12 Figura 1: Diagrama de Dependências Estratégicas 13 O diagrama SD é composto por 05 atores, a saber: Cliente, Instrutor, Gerente, Sistema e SGBD. A utilização do sistema fica restrita ao Instrutor e ao Gerente, como se pode verificar pelas dependências. Os clientes, por sua vez, interagem com o instrutor, requisitando avaliações físicas e solicitando cadastro. O ator Instrutor precisa estar cadastrado no sistema para poder utilizá-lo. Isso é feito pelo ator gerente que recolhe os dados do instrutor, o cadastra e gera um nome de usuário e senha para o ator Instrutor utilizar o sistema. Após o cadastramento do Instrutor na base de dados, ele estará apto a usar o sistema, podendo realizar as operações gerenciamento de clientes, gerenciamento de treinamento e gerenciamento de avaliação física. Para que o instrutor consiga fazer estas operações de modo prático e dinâmico, o sistema deverá ser rápido e fácil de usar, de modo que o Instrutor não encontre dificuldades ao utilizar os comandos disponibilizados pelo sistema. Além de oferecer um nome de usuário e senha para o Instrutor, o gerente será responsável pelas demais operações no gerenciamento de dados do instrutor, além de coordenar a empresa cadastrando novos serviços e gerando relatórios de clientes. Para que o instrutor possa gerenciar um cliente, este deve coletar os dados do cliente. Coletados os dados, o Instrutor estará livre para operar tanto sobre o gerenciamento de clientes quanto o gerenciamento de avaliações. O Gerente também depende de um sistema rápido para suas operações, além de oferecer um custo que compense a implantação. Finalmente, para que o sistema seja íntegro, rápido e confiável, dependerá da qualidade do banco de dados em que ele será implementado. 6.2. Diagrama SR O único ator escolhido para a expansão foi o ator Sistema. O diagrama SR (Strategic Rationale) segue na próxima página. 14 Figura 2: Modelo de Razões Estratégicas 15 O modelo SR, também conhecido como modelo de Razões Estratégicas, complementa o modelo SD, pois expande os atores e permite que estes sejam definidos mais detalhadamente. Como dito anteriormente, o ator expandido foi o ator Sistema. Pode ser visto no diagrama que os gerenciamentos de clientes e instrutores possuem as mesmas subdivisões, a saber: cadastrar, buscar, excluir e alterar. A tarefa Logar no Sistema depende que sejam fornecidos um nome de usuário (Login) e uma senha (Senha). O modo de geração de relatórios é explicitado dentro da razão do sistema, em forma de recursos, podendo ser gerado um documento impresso ou visualizado na tela. As operações de gerenciar serviço e treinamento, apesar de terem nomes diferentes, subdividem-se de maneira igual: através da criação ou da edição. No caso do treinamento, a edição será específica para cada cliente. O gerenciamento de avaliação física possui as divisões criar e buscar. A criação de um cadastro, seja ele de cliente ou de instrutor, deve seguir uma série de passos, a saber: os dados são coletados, é feita a inserção e atualização dos dados no banco de dados, verifica-se se os dados inseridos já não estão presentes na tabela e o cadastro é validado. 7. Requisitos Não-Funcionais O projeto do sistema TYR conta com uma série de requisitos não funcionais, sendo eles divididos em requisitos de processo e requisitos de produto. Segue abaixo a especificação de cada um deles e, posteriormente, o diagrama NFR Requisitos do Processo: [RNF 01] O sistema deverá ser implementado utilizando-se a tecnologia Java de modo a ser compatível com o sistema operacional Windows. [RNF-02] O sistema deverá ser implementado utilizando-se o MySQL como sistema gerenciador de banco de dados. [RNF-03] O sistema deverá ser implementado utilizando-se o padrão de camadas MVC (Model-view-controller). Requisitos do Produto: 16 Quanto à Usabilidade [RNF-01] A interface com o usuário do sistema será amigável, simples e objetiva. Para isto, serão utilizados componentes GUI (Graphic User Interface) do Java. [RNF-02] O sistema deverá ter botões intuitivos, contendo dicas de uso sobre suas funcionalidades. [RNF-03] Os módulos do sistema deverão ser divididos em abas. Este conceito facilita o acesso a cada funcionalidade do sistema, pois todas as funcionalidades estarão visíveis ao usuário, tornando o sistema mais produtivo. [RNF-04] Mensagens de erro ou mensagens de confirmação deverão ser mostradas ao usuário. Mensagens de confirmação deverão aparecer quando uma determinada operação for considerada arriscada e as mensagens de erro deverão aparecer quando uma operação for feita de modo inadequado, de modo explicativo para melhor orientação do usuário. Quanto ao Desempenho [RNF-01] O sistema deverá disponibilizar que vários acessos sejam feitos no banco de dados ao mesmo tempo, porém limitando o número de conexões, deste jeito tornando o tempo de resposta mais rápido. Este requisito fere a usabilidade do sistema, pois pode tornar o sistema indisponível caso todas as conexões estejam sendo usadas. Quanto à Segurança dos Dados [RNF-01] A integridade dos dados será mantida pela utilização do banco de dados MySQL. [RNF-02] A disponibilidade de dados se dá através de um banco de dados compartilhado, permitindo que usuários distintos do sistema operem sobre o mesmo banco de dados. [RNF-03] A confidencialidade dos dados do sistema será garantida através de uma política de permissões. Quanto à Segurança do Sistema [RNF-01] A confidencialidade do sistema será garantida pela política de login e senha. [RNF-02] A integridade e a disponibilidade do sistema serão garantidos pelo uso da tecnologia Java e do SGBD MySQL. 17 Quanto à Portabilidade [RNF-01] O sistema poderá executar em qualquer plataforma, desde que exista uma máquina virtual Java para a arquitetura e um SGBD MySQL. Requisitos Externos: [RNF-01] Como o propósito do sistema é acadêmico, não gerará custos para os clientes. 7.1. Grafo SIG O grafo SIG tem como objetivo uma ilustração para facilitar o entendimento de como os requisitos não-funcionais são decompostos e operacionalizados. O modelo pode ser conferido na próxima página: 18 Figura 03: Diagrama SIG de Requisitos Não-Funcionais 19 Os requisitos não-funcionais foram validados pelo cliente de acordo com suas necessidades. Alguns requisitos foram aceitos, tais como: a interface baseada em abas, que melhora a navegabilidade do sistema; as mensagens de erro, para que indique aos novos usuários do sistema e até mesmo aos mais experientes os erros que estão sendo cometidos e o porquê deles estarem acontecendo; a implementação efetuada na linguagem Java, que soma de forma positiva o requisito de portabilidade; dicas de uso, que devem ser implementadas a fim de instruir o usuário nas decisões a serem tomadas; o uso de um SGBD robusto, que armazena os dados com integridade, no caso específico o escolhido foi o SGBD MySQL; um controle significativo de transações, para que um usuário, no caso de um banco de dados compartilhado, alterar um dado do sistema ao mesmo tempo que outro; definir um número limitado de conexões com o banco de dados, para que não o sobrecarregue; políticas de permissão definidas pelo gerente da academia, para que este atribua a um usuário do sistema, determinadas responsabilidades de acordo com seu nível de confiança; uma política de login e senha, previamente explanada; um sistema tolerante a falhas, implementado em uma linguagem confiável e certificada. Apenas o requisito de backup diário foi rejeitado: o cliente não achou necessária a inclusão de backups diários por não se tratar de um sistema crítico. Todos estes requisitos foram validados pelo cliente de acordo com suas necessidades. 8. Diagrama dos Casos de Uso Casos de Uso são utilizados para descrever o uso de um sistema por atores. Um caso de uso descreve uma seqüência de passos/operações que um usuário realiza quando interage com um sistema, visando realizar uma determinada tarefa ou alcançar um objetivo. Dessa forma, o aspecto comportamental de um sistema a ser desenvolvido pode ser descrito através de casos de uso, porém, estas descrições não tratam da questão de como as interações entre o usuário e o sistema serão implementadas. Serão apresentados na próxima página os casos de uso do sistema, através de um diagrama e de descrições detalhadas de cada caso de uso. 20 Figura 04: Diagrama de Casos de Uso Caso de Uso 01: Cadastrar Cliente Objetivo: Realizar a inserção de um novo cliente Pré-Condições: Funcionário logado no sistema Pós-Condições: Cadastro do novo cliente inserido no banco de dados Ator: Funcionário Cenário Principal: 1. O funcionário insere os dados do novo cliente. 2. O sistema insere o novo cadastro no banco de dados. 3. O sistema mostra uma mensagem de cadastro efetuado com sucesso. Extensões: 21 2a. Cliente já cadastrado: O sistema cancela o cadastro e informa ao funcionário que o cadastro já existe. Caso de Uso 02: Atualizar Cadastro do Cliente Objetivo: Alterar os dados cadastrais do cliente Pré-Condições: Funcionário logado no sistema e cliente previamente cadastrado Pós-Condições: Cadastro do cliente atualizado no banco de dados Ator: Funcionário Cenário Principal: 1. O funcionário busca o cliente (O caso de uso Buscar Cliente é incluído <<include>>). 2. O funcionário altera os dados que desejar. 3. O funcionário confirma a alteração dos dados. 4. O sistema atualiza o cadastro do cliente no banco de dados. 5. O sistema mostra uma mensagem de atualização efetuada com sucesso. Extensões: Caso de Uso 03: Excluir Cliente Objetivo: Realizar a exclusão de um cliente Pré-Condições: Funcionário logado no sistema e cliente previamente cadastrado Pós-Condições: Cadastro do cliente excluído do banco de dados Ator: Funcionário Cenário Principal: 1. O funcionário busca o cliente (O caso de uso Buscar Cliente é incluído <<include>>). 2. O funcionário confirma a exclusão do cadastro. 3. O sistema remove o cadastro do cliente no banco de dados. 4. O sistema mostra uma mensagem de exclusão efetuada com sucesso. Extensões: Caso de Uso 04: Buscar Cliente Objetivo: Realizar a busca do cadastro de um cliente Pré-Condições: Funcionário logado no sistema Pós-Condições: Sistema exibe o cadastro do cliente Ator: Funcionário Cenário Principal: 1. O funcionário entra com o nome do cliente ou o número da sua matrícula. 2. O sistema mostra uma lista com o nome completo dos clientes encontrados. 3. O funcionário escolhe o cliente desejado. 4. O sistema exibe o cadastro do cliente na tela. Extensões: 2a. Cliente não cadastrado: O sistema informa ao funcionário que o cliente não foi encontrado. 22 Caso de Uso 05: Login Objetivo: Realizar o login no sistema e obter acesso adequado Pré-Condições: Funcionário cadastrado Pós-Condições: Funcionário logado com acesso autorizado Ator: Funcionário Cenário Principal: 1. O funcionário insere seu login e senha. 2. O sistema autentica o funcionário e atribui nível de acesso. 3. O sistema permite ao usuário utilizar as funcionalidades de acordo com o nível de acesso. Extensões: 2a. Login ou senha incorretos: O sistema informa ao funcionário que o login ou a senha estão incorretos, e permite que ele entre com os dados novamente. Caso de Uso 06: Cadastrar Instrutor Objetivo: Realizar a inserção de um novo instrutor Pré-Condições: Gerente logado no sistema Pós-Condições: Cadastro do novo instrutor inserido no banco de dados Ator: Gerente Cenário Principal: 1. O gerente insere os dados do novo instrutor. 2. O sistema insere o cadastro do novo instrutor no banco de dados. 3. O sistema mostra uma mensagem de cadastro efetuado com sucesso. Extensões: 2a. Instrutor já cadastrado: O sistema cancela o cadastro e informa ao gerente que o instrutor já esta cadastrado. Caso de Uso 07: Atualizar Cadastro do Instrutor Objetivo: Alterar os dados cadastrais do instrutor Pré-Condições: Gerente logado no sistema e instrutor previamente cadastrado Pós-Condições: Cadastro do instrutor atualizado no banco de dados Ator: Gerente Cenário Principal: 1. O gerente busca o instrutor (O caso de uso Buscar Instrutor é incluído <<include>>). 2. O gerente altera os dados que desejar. 3. O gerente confirma a alteração dos dados. 4. O sistema atualiza o cadastro do instrutor no banco de dados. 5. O sistema mostra uma mensagem de atualização efetuada com sucesso. Extensões: Caso de Uso 08: Excluir Instrutor Objetivo: Realizar a exclusão de um instrutor 23 Pré-Condições: Gerente logado no sistema e instrutor previamente cadastrado Pós-Condições: Cadastro do instrutor excluído do banco de dados Ator: Gerente Cenário Principal: 1. O gerente busca o instrutor (O caso de uso Buscar Instrutor é incluído <<include>>). 2. O gerente confirma a exclusão do cadastro. 3. O sistema remove o cadastro do instrutor no banco de dados. 4. O sistema mostra uma mensagem de exclusão efetuada com sucesso. Extensões: Caso de Uso 09: Buscar Instrutor Objetivo: Realizar a busca do cadastro de um instrutor Pré-Condições: Gerente logado no sistema Pós-Condições: Sistema exibe o cadastro do instrutor Ator: Gerente Cenário Principal: 1. O gerente insere os dados do instrutor a ser buscado. 2. O sistema mostra uma lista com o nome completo dos instrutores encontrados. 3. O gerente escolhe o instrutor desejado. 4. O sistema exibe o cadastro do instrutor na tela. Extensões: 2a. Instrutor não cadastrado: O sistema informa ao gerente que o instrutor não foi encontrado. Caso de Uso 10: Criar Serviço Objetivo: Disponibilizar para os clientes um novo serviço oferecido pela academia Pré-Condições: Gerente logado no sistema Pós-Condições: Novo serviço inserido no banco de dados Ator: Gerente Cenário Principal: 1. O gerente insere os dados do novo serviço. 2. O sistema insere o novo serviço no banco de dados. 3. O sistema mostra uma mensagem de sucesso. Extensões: 2a. Serviço já cadastrado: O sistema cancela o cadastro e informa ao gerente que o serviço já esta cadastrado. Caso de Uso 11: Editar Serviço Objetivo: Alterar um serviço cadastrado no sistema Pré-Condições: Gerente logado no sistema e serviço previamente cadastrado Pós-Condições: Serviço atualizado no banco de dados Ator: Gerente 24 Cenário Principal: 1. O sistema exibe uma lista com todos os serviços cadastrados. 2. O gerente escolhe o serviço desejado. 3. O sistema exibe os detalhes do serviço. 4. O gerente altera os dados. 5. O gerente confirma a alteração dos dados. 6. O sistema atualiza o cadastro do serviço no banco de dados. 7. O sistema mostra uma mensagem de sucesso. Extensões: Caso de Uso 12: Gerar Relatório Objetivo: Gerar um relatório contendo todos os clientes da academia e o histórico de mensalidades dos respectivos clientes Pré-Condições: Gerente logado no sistema Pós-Condições: O relatório é gerado pelo sistema Ator: Gerente Cenário Principal: 1. O gerente solicita a geração do relatório. 2. O sistema exibe o relatório na tela. 3. O gerente tem a possibilidade de imprimir o relatório. Extensões: Caso de Uso 13: Adicionar Treinamento Objetivo: Realizar a inclusão de um treinamento para o cliente Pré-Condições: Instrutor logado no sistema e cliente previamente cadastrado Pós-Condições: Treinamento adicionado ao cadastro do cliente no banco de dados Ator: Instrutor Cenário Principal: 1. O instrutor busca o cliente (O caso de uso Buscar Cliente é incluído <<include>>). 2. O instrutor entra com a descrição do treino para cada dia da semana. 3. O sistema insere o treinamento no banco de dados. 4. O sistema mostra uma mensagem de sucesso. Extensões: Caso de Uso 14: Alterar Treinamento Objetivo: Realizar a alteração do treinamento de um cliente Pré-Condições: Instrutor logado no sistema Pós-Condições: Treinamento atualizado no cadastro do cliente no banco de dados Ator: Instrutor Cenário Principal: 1. O instrutor busca o cliente (O caso de uso Buscar Cliente é incluído <<include>>). 2. O sistema exibe o treinamento do cliente na tela. 3. O instrutor altera os dados que forem necessários. 25 4. O sistema atualiza o treinamento no banco de dados e mostra uma mensagem de sucesso. Extensões: Caso de Uso 15: Dar Baixa na Mensalidade Objetivo: Dar baixa nos débitos de um cliente Pré-Condições: Gerente logado no sistema e cliente cadastrado Pós-Condições: Atualizado os débitos no cadastro do cliente no banco de dados Ator: Gerente Cenário Principal: 1. O gerente busca o cliente (O caso de uso Buscar Cliente é incluído <<include>>). 2. O sistema exibe as mensalidades do cliente e o total de débitos. 3. O gerente confirma o pagamento. 4. O sistema atualiza os débitos do cliente no banco de dados e mostra uma mensagem de sucesso. Extensões: 2a. Pagamento adiantado ou cliente de aniversário: Caso de uso Aplicar Desconto <<extend>>. 2b. Pagamento atrasado: Caso de uso Aplicar Multa <<extend>>. Caso de Uso 16: Aplicar Multa Objetivo: Aplicar multa numa mensalidade que esteja sendo paga com atraso. Pré-Condições: Gerente logado no sistema e cliente cadastrado Pós-Condições: A multa é aplicada à mensalidade do cliente Ator: Gerente Cenário Principal: 1. O gerente entra com o cliente desejado. 2. O sistema verifica o tempo de atraso. 3. O sistema calcula o valor da multa. 4. O sistema aplica a multa à mensalidade. Extensões: Caso de Uso 17: Aplicar Desconto Objetivo: Aplicar desconto na mensalidade de um cliente que esteja pagando adiantado, ou o cliente seja um aniversariante no mês. Pré-Condições: Gerente logado no sistema e cliente cadastrado Pós-Condições: O desconto é aplicado à mensalidade do cliente Ator: Gerente Cenário Principal: 1. O gerente entra com o cliente desejado. 2. O sistema verifica se a mensalidade esta sendo paga adiantada ou o cliente é um aniversariante do mês. 3. O sistema calcula o valor do desconto. 26 4. O sistema aplica o desconto à mensalidade. Extensões: Caso de Uso 18: Criar Avaliação Física Objetivo: Gerar uma avaliação física do cliente Pré-Condições: Instrutor logado no sistema e cliente cadastrado no sistema Pós-Condições: Avaliação física criada e inserida no banco de dados Ator: Instrutor Cenário Principal: 1. O instrutor busca o cliente (O caso de uso Buscar Cliente é incluído <<include>>). 2. O instrutor insere os dados coletados do cliente. 3. O sistema insere a avaliação física no banco de dados. 4. O sistema exibe uma mensagem de sucesso. Extensões: Caso de Uso 19: Alterar Avaliação Física Objetivo: Atualizar uma avaliação física Pré-Condições: Instrutor logado no sistema e avaliação física já criada Pós-Condições: A avaliação física será alterada e atualizada no banco de dados Ator: Instrutor Cenário Principal: 1. O instrutor busca a avaliação física do cliente (O caso de uso Buscar Avaliação Física é incluído <<include>>). 2. O instrutor insere os novos dados do cliente. 3. O sistema atualiza a avaliação física no banco de dados. 4. O sistema exibe uma mensagem de sucesso. Extensões: Caso de Uso 20: Buscar Avaliação Física Objetivo: Realizar a busca da avaliação física de um cliente Pré-Condições: Instrutor logado no sistema e avaliação física já criada Pós-Condições: O sistema exibe a avaliação física do cliente na tela Ator: Instrutor Cenário Principal: 1. O instrutor entra com o nome do cliente ou o número da sua matrícula. 2. O sistema mostra uma lista com o nome completo dos clientes encontrados. 3. O funcionário escolhe o cliente desejado. 4. O sistema exibe a avaliação física do cliente na tela. Extensões: 2a. Avaliação física inexistente: O sistema informa ao instrutor que a avaliação física do cliente ainda não foi criada. 27 9. Diagrama de Classes Concebido preliminarmente para estabelecer a relação entre os atores e os requisitos, mostra a relação das classes levantadas nos passos anteriores. A completude tende a variar durante o desenvolvimento. Classe Pessoa Os atores descendem dela e carregam suas características. Trata de dados do indivíduo: nome, cpf, rg, telefone, endereço e data de nascimento. As classes que descendem de pessoa são a Cliente e Usuário. Classe Cliente Representa o cliente da academia. Possui atributos mensalidade, treinamento e avaliação, além dos presentes na classe pessoa. Classe Usuario Representa os usuários do sistema: Instrutor e Gerente. A diferenciação se dá pelos atributos de permissão presentes nessa classe. Classe Mensalidade Responsável por representar a mensalidade do cliente. Possui atributos que registram data de início, data de vencimento e serviços do cliente. O cálculo da mensalidade será feito por uma classe de controle ainda em desenvolvimento. Classe Treinamento A classe cliente usa para registrar o treinamento gerado pelo Instrutor. É única para cada cliente. Classe Avaliação A classe cliente usa para registrar as avaliações geradas pelo Instrutor. Podem haver várias avaliações, sendo usadas futuramente para acompanhamento do progresso do cliente. Classe Serviço Responsável por representar os serviços prestados pela academia. Possui atributos que registram a descição e o valor do mesmo. Esta classe é usada pela classe Mensalidade para registro dos serviços contratodos pelo cliente. Classe Endereço Classe especializada para tratamento de dados referentes ao endereco de uma instância da classe Pessoa. Registra rua, número, cep, cidade, estado. Classe Telefone Classe especializada para tratamento de dados referentes ao Telefone de uma instância da classe Pessoa. Registra número e DDD. O diagrama de classes será apresentado na próxima página. 28 Figura 05: Diagrama de Classes 29 10. Conclusão Neste momento do projeto, após finalizada a elicitação de requisitos, tem-se mais clareza sobre o que o cliente realmente precise e como isto deverá ser alcançado.A partir da elaboração deste documento de requisitos em conjunto com os diagramas, além de entrevistas com os clientes interessados, conclui-se que há uma melhor interpretação do problema, possibilitando o inicio da parte de implementação do projeto. Com base nos protótipos gerados, esperamos o surgimento de requisitos baseados em necessidades emergentes. Acreditamos que a metodologia escolhida seja acertada para esse tipo de desafio, contribuindo para a completude e comprimento de prazo do projeto. A partir da elaboração deste documento de requisitos em conjunto com os diagramas, além de entrevistas com os clientes interessados, concluise que há uma melhor interpretação do problema, tornando a implementação significativamente mais simples, já que não é necessário “tatear” à procura de requisitos. 30 Apêndice A O primeiro contato ocorreu de maneira informal, onde foi proposto o sistema de gerenciamento de clientes e treinamentos e várias idéias foram levadas em conta. A entrevista se deu com a instrutora Lucila Donassolo e ficou acertado que em uma próxima ocasião os requisitos seriam elicitados. A elicitação de requisitos também se deu de maneira informal: foram levantados os problemas encontrados pela falta de um sistema de informação para controle de clientes e treinamento e após isto, cliente e desenvolvedores participaram em conjunto para a elicitação dos requisitos funcionais e não-funcionais do sistema. Uma próxima reunião foi marcada para a validação dos requisitos não-funcionais. Após o planejamento e diagramação dos requisitos não-funcionais, uma nova reunião ocorreu informalmente, onde foram validados ou rejeitados os requisitos definidos pelo sistema. 31 Formulário do Relatório da Equipe Após a elaboração das alternativas em conjunto, cada integrante teve maior participação no estudo de viabilidade de uma delas, sempre com a ajuda dos outros da equipe. Então, o grupo pôde fazer um estudo comparativo entre as possibilidades, de modo que a melhor delas pudesse ser escolhida. Nome % de esforço na equipe ______________________________________ Pedro Patitucci Finamore 33,3% ______________________________________ Marco Antonio da Rosa 33,3% ______________________________________ Daniel Bordignon Cassanelli 33,3% 32