passo 1. Requisitos Relacionados: RF03, RN09, RNF05 Classes Relacionadas: Pagamento, Cheque, AutorizacaoCartao, Locacao, Devolucao Descrição de Caso de Uso Projeto: Vídeo Locadora Passatempo Subsistema: atendimentoCliente Caso de Uso: Efetuar Reserva Descrição Sucinta: Este caso de uso é responsável pela realização de uma nova reserva, consulta e cancelamento de uma reserva existente. Fluxos de Eventos Normais Nome do Fluxo de Eventos Normal Precondição Descrição Efetuar Nova Reserva 1. O atendente informa o cliente que deseja efetuar a reserva. 2. O atendente informa os dados para reserva, a saber: o filme e o tipo de mídia. 3. A reserva é registrada, com a data e a hora do sistema, além das informações de cliente, filme e tipo de mídia solicitados. Consultar Dados de Reserva 1. O atendente informa a reserva que deseja consultar os dados. 2. Os dados da reserva são apresentados. Cancelar Reserva 1. O atendente informa a reserva que deseja cancelar. 2. Os dados da reserva são apresentados e é solicitada confirmação. 3. Se a exclusão for confirmada, a reserva é excluída. 4. Para o item que estava reservado, incluir Verificar Existência de Reserva Pendente. Cancelar Reserva Automaticamente 1. Diariamente, o sistema verifica que reservas já expiraram (ver RN15). 2. Para cada reserva expirada, 2.a - O sistema a registra como cancelada. A reserva não é efetivamente excluída, mas apenas marcada como cancelada. 2.b. - Incluir Verificar Existência de Reserva Pendente. Fluxos de Eventos de Exceção Nome do Fluxo de Eventos Normal Relacionado Condição de Exceção Descrição Efetuar Nova Reserva 1 – Cliente está em atraso. 1a - Uma mensagem de erro é exibida, informando que há itens locados pelo cliente em atraso e apresentando dados desses itens. O fluxo de eventos é abortado. Efetuar Nova Reserva 2 - Há itens que atendem à reserva (filme e tipo de mídia solicitados) disponíveis para locação 2a - Uma mensagem é exibida, informando que não é possível efetuar a reserva, pois há itens que atendem à reserva disponíveis na locadora. O fluxo de eventos é abortado. Cancelar Reserva 1 – Reserva informada já foi cancelada automaticamente. 1a - Uma mensagem de erro é exibida, informando que a reserva já foi cancelada automaticamente pelo sistema por ter expirado seu prazo. O fluxo de eventos é abortado. Requisitos Relacionados: RF04, RF05, RN03, RN10, RN15, RN16, RN17, RNF01, RNF04 Classes Relacionadas: Cliente, Filme, TipoMidia, Item, Locacao, ItemLocado Descrição de Caso de Uso Projeto: Vídeo Locadora Passatempo Subsistema: atendimentoCliente Caso de Uso: Verificar Existência de Reserva Pendente Descrição Sucinta: Este caso de uso é responsável por verificar se existe uma reserva pendente para um filme em um certo tipo de mídia. Fluxos de Eventos Normais Nome do Fluxo de Eventos Normal Precondição Descrição Verificar Existência de Reserva Pendente 1. De posse de um item, o sistema verifica se há um reserva pendente para o filme do item, no tipo de mídia do item. 2. Se não há reserva pendente, o sistema torna o item disponível. 3. Se há reserva pendente: 3a. O sistema envia um email para o cliente da próxima reserva pendente, indicando que há um item disponível para locação e que, a partir daquele momento, ele tem 24 horas para efetuar a locação. 3b. Registrar a próxima reserva como tendo sido comunicada ao cliente. Requisitos Relacionados: RF12, RN10, RNF04, RNF06 Classes Relacionadas: Item, Filme, Reserva, Cliente 4. Modelo Estrutural O modelo conceitual estrutural visa capturar e descrever as informações (classes, associações e atributos) que o sistema deve representar para prover as funcionalidades descritas na seção anterior. A seguir, são apresentados os diagramas de classes de cada um dos subsistemas identificados no contexto deste projeto. Na seção 6 – Dicionário de Projeto – são apresentadas as descrições das classes e atributos presentes nos diagramas apresentados nesta seção. 4.1 - Subsistema controleAcervo A Figura 3 apresenta o diagrama de classes do subsistema controleAcervo. Figura 3 – Diagrama de Classes do Subsistema controleAcervo. 4.2 - Subsistema atendimentoCliente A Figura 4 apresenta o diagrama de classes do subsistema atendimentoCliente. Nesse diagrama, as restrições de integridade abaixo têm de ser garantidas. Restrições de Integridade • Um cliente titular só pode possuir até três dependentes ativos. Figura 4 – Diagrama de Classes do Subsistema atendimentoCliente. 5. Modelo Dinâmico O modelo dinâmico visa capturar o comportamento dinâmico do sistema. A seguir, são apresentados os diagramas de estados e o diagrama de atividades elaborados no contexto deste projeto. 5.1 – Diagramas de Estados A Figura 5 apresenta o diagrama de estados da classe Item do subsistema controleAcervo. Figura 5 – Diagrama de Estados da Classe Item. A Figura 6 apresenta o diagrama de estados da classe Reserva do subsistema atendimentoCliente. Figura 6 – Diagrama de Estados da Classe Reserva. 5.2 – Diagrama de Atividades A Figura 7 apresenta o diagrama de atividades para o fluxo de eventos Efetuar Nova Reserva do caso de uso Efetuar Reserva do subsistema atendimentoCliente. A Figura 8 apresenta o diagrama de atividades para o fluxo de eventos Efetuar Nova Locação do caso de uso Efetuar Locação do subsistema atendimentoCliente. Figura 7 – Diagrama de Atividades: Efetuar Nova Reserva. Figura 8 – Diagrama de Atividades: Efetuar Nova Locação. 6. Dicionário de Projeto Esta seção apresenta as definições das classes (e seus atributos e operações), servindo como um glossário do projeto. As definições são organizadas por subsistema. Vale destacar que operações básicas (operações get e set, construtoras e destrutoras de objetos) não são listadas e descritas. 6.1 - Subsistema controleAcervo • Distribuidora: Empresas responsáveis pela distribuição de filmes para a locadora. • razaoSocial: razão social da distribuidora • cnpj: CNPJ da distribuidora • endereco: endereço da distribuidora • telefone: telefone para contato com a distribuidora • pessoaContato: nome de uma pessoa para contato com a distribuidora • ativa: indica se a distribuidora está (V) ou não (F) fornecendo filmes para a locadora • Filme: Filmes do acervo da locadora • tituloOriginal: título original do filme, em sua língua de origem • títuloPortugues: título do filme em língua portuguesa, definido pela distribuidora • paises: países onde o filme foi produzido. Devem ser vários quando o filme for uma co-produção • ano: ano de lançamento do filme • diretores: nomes dos diretores responsáveis pela direção do filme • atores: nomes dos atores que compõem o elenco do filme • sinopse: sinopse, fazendo um resumo do filme • duracao: duração do filme em minutos • genero: gênero do filme (ver tipo de dados enumerado Genero para ver possíveis valores) • ehLancamento: indicador de se o filme é lançamento (V) ou não (F) • existeItemDisponivel(tpMidia: TipoMidia): boolean - verifica dentre os itens de um filme se há algum deles do tipo de mídia tpMidia disponível na locadora. Caso haja, retorna verdadeiro (V); caso contrário, retorna falso (F). • Item: os objetos físicos (Dvds, fitas VHS etc.) que têm os filmes gravados e que são efetivamente locados. • numeroSerie: número de série do item no formato de código de barras • dtAquisicao: data de aquisição do item pela locadora • estado: estado corrente do item (ver diagrama de estados da classe Item e tipo de dados enumerado correspondente) • obterProximaReservaPendente: Reserva - retorna a próxima reserva pendente que indique o filme e o tipo de mídia do item. • TipoMidia: tipos de mídias com os quais a locadora trabalha (p.ex., DVD, Fita VHS etc.), i.e., que a locadora possui itens desse tipo. • nome: nome do