ViajarFácil Sistema de Reserva de Viagens Modelagem Estática UNICAMP - Universidade Estadual de Campinas Especialização Engenharia de Software - INF318/2011 Equipe Aline Gomes André Rodrigues Fonseca Diego Bolognesi Juliana Maria Silva Leandro dos Santos Thiago Domingues Considerações Iniciais Analisando a documentação SRV-casos-de-uso-eq7.doc foram encontrados alguns problemas na delimitação do escopo dos casos de uso e criamos outros termos para deixar claro determinados estados do sistema. Abaixo seguem as nossas considerações: 1. No caso Efetuar Pagamento, nós julgamos que seria mais interessante esse caso de uso cuidar de Confirmar Pagamento. Chegamos a essa conclusão, pois o Cliente não efetua o pagamento do seu pacote via sistema. Na verdade ele apenas informa o modo de pagamento, e posteriormente o Sistema Financeiro confirma se o pagamento foi efetuado. 2. Adotamos o termo pré-reserva para indicar que um pacote foi reservado, mas ainda está pendente a confirmação de pagamento. Detalhamento dos Casos de Uso ID #1 Reservar Pacotes (Leandro dos Santos) Atores Cliente Descrição Esse é o método pelo qual o sistema ViajarFácil efetua uma préreserva para o pacote do cliente. O processo de escolha envolve a consulta e definição do tipo de transporte e a consulta e definição do hotel. Opcionalmente o pacote de viagem pode ser customizado contratando um guia turístico e/ou passeios extras. Em seguida deve verificar eventuais informações relacionadas à viagem e realizar o pagamento. Pré-condições ● ● ● Cliente cadastrado no Sistema Cliente autenticado no Sistema Cliente escolheu um pacote de viagem. Pós-condições ● ● Cliente terá o pacote escolhido com todas as pré-reservas efetuadas em seu nome. Sistema Financeiro aguardará o pagamento da reserva. Requisitos não-funcionais ● ● ● ● Segurança (RNF001) Usabilidade (RNF002) Performance (RNF003) Disponibilidade de Guia Turístico (RNF004) Requisitos funcionais ● ● ● ● ● Consultar Pacotes (RF001) Consultar Hotéis (RF002) Contratar Guia Turístico (RF005) Contratar Passeios Extras (RF006) Comprar Pacotes (RF004) Fluxo de Eventos 1. Cliente seleciona um pacote de viagem. 2. Se o pacote de viagem é do tipo pacote aéreo a. Cliente consulta uma lista de hotéis disponíveis para o pacote e escolhe um considerando os critérios de faixa de preço e/ou categoria (UC#5). 3. Cliente consulta uma lista de transportes disponíveis para o pacote e escolhe para fazer a reserva (UC#4). 4. Se o pacote escolhido permitir customização para contratar um guia turístico a. O sistema oferece ao cliente uma lista de guias que podem ser escolhidos por idioma e o número de dias que ele acompanhará o grupo. 5. Se o pacote escolhido permitir customização para contratar passeios extras a. O sistema oferece ao cliente uma lista de passeios que podem ser feitos na localidade escolhida. 6. Cliente confirma a escolha do pacote com suas customizações. 7. Cliente escolhe a forma de pagamento. 8. O Sistema registra a pré-reserva do pacote, transporte e hotel. Fluxo Alternativo (1) Em 1, se o cliente escolheu um pacote que não possui disponibilidade de transporte e/ou hotel, ele será informado no ato da escolha. Optando por cancelar, ele será obrigado a procurar por outro pacote. Fluxo Alternativo (2) Em 2.a., se o cliente não concordar com a lista de hotéis oferecidos, ele pode cancelar a operação. Optando por cancelar, ele será obrigado a procurar por outro pacote. Fluxo Alternativo (3) Em 2, se o cliente escolheu um pacote do tipo marítimo, as opções de hotéis não devem ser exibidas. Ir direto para 3. Fluxo Alternativo (4) Em 3, se o cliente não concordar com a lista de transportes oferecidos, ele pode cancelar a operação. Optando por cancelar, ele será obrigado a procurar por outro pacote. Fluxo Alternativo (5) Em 6, se o cliente não concordar com o pacote e suas customizações, ele pode cancelar a operação. Optando por cancelar, ele será obrigado a procurar por outro pacote. ID #2 Contratação passeios extras (Aline Gomes) Atores Cliente Descrição Durante o processo de reserva de pacote, o cliente pode optar pela contratação de passeios extras que estão disponíveis para a localidade destino. O sistema lista os passeios extras da localidade destino e o cliente escolhe quais deseja fazer. Pré-condições ● ● ● Cliente cadastrado no Sistema Cliente autenticado no Sistema O pacote de viagem escolhido Pós-condições ● Passeios extras associados ao pacote escolhido. Requisitos não-funcionais ● ● Segurança (RNF001) Performance (RNF003) Requisitos funcionais ● Contratar passeios extras (RF006) Fluxo de Eventos 1. O cliente decide contratar passeios extras. 2. O sistema verifica localidade destino do pacote escolhido pelo cliente, e verifica os passeios extras disponíveis para o local. 3. O sistema apresenta a lista de passeios extras disponíveis 4. O cliente escolhe os passeios desejados. 5. O sistema associa os passeios selecionados com o pacote. Fluxo Alternativo (1) Em 3, se o cliente desiste da contratação ou não seleciona nenhum passeio extra, o caso de uso termina. ID #3 Contratar guia turístico (Thiago Bueno) Atores Cliente Descrição Durante o processo de escolha do pacote de viagem, ele também pode contratar um guia turístico que esteja disponível para o pacote em questão. Pré-condições ● ● ● Cliente cadastrado no Sistema Cliente autenticado no Sistema Cliente tem que ter comprado um pacote aéreo. Pós-condições ● Cliente deve ter o guia turístico contratado junto com o pacote. Requisitos não-funcionais ● ● ● Segurança (RNF001) Usabilidade (RNF002) Performance (RNF003) Requisitos funcionais ● Comprar Pacotes (RF004) Fluxo de Eventos 1. O cliente efetua a compra de pacote aéreo. 2. O cliente escolhe contratar o guia turístico. 3. O cliente insere o período desejado para contratação e idioma que o guia deve falar. Caso o cliente não escolha o idioma, o mesmo será setado com o idioma nacional. 4. O sistema verifica a localidade destino do pacote, período disponível idioma e apresenta uma lista com os guias que se enquadram nestas características solicitadas pelo cliente. 5. O cliente seleciona o guia turístico 6. O Sistema associa o guia com o pacote. Fluxo Alternativo (1) Em 2, se o cliente não efetuou a compra do pacote, não será permitido a contratação do guia turístico. ID #4 Reservar Transporte (Juliana Maria) Atores Sistema ViajarFácil, Sistema de Transportes Descrição Este é o processo pelo qual o sistema ViajarFácil fará a pré-reserva do transporte (passagem aérea ou cruzeiro) escolhido pelo cliente. A pré-reserva será realizada através de um sistema parceiro com base na informação “tipo de transporte” e se inicia após a confirmação de reserva de pacote. O caso de uso é finalizado quando a pré-reserva de transporte estiver devidamente efetuada. Pré-condições ● Cliente ter selecionado o tipo de transporte na reserva de pacote de viagem (UC#1). Pós-condições ● Pré-reserva do transporte efetuada. Requisitos não-funcionais ● ● ● Segurança (RNF001) Usabilidade (RNF002) Performance (RNF003) Requisitos funcionais ● ● Consultar Pacotes (RF001) Comprar Pacotes (RF004) Fluxo de Eventos 1. O sistema Viajar Fácil obtém o “tipo de transporte” selecionado pelo cliente na reserva do pacote (UC#1). 2. Se o tipo de transporte igual a aéreo: a. O sistema de Transporte efetua a pré-reserva de passagens aéreas. 3. O sistema de Transporte retorna uma mensagem de sucesso. Fluxo Alternativo (1) Em 1, caso o sistema não consiga obter a informação “tipo de transporte”, uma mensagem de erro é exibida informando a impossibilidade de realizar a pré-reserva. Fluxo Alternativo (2) Em 2, caso o tipo de transporte seja igual a marítimo, o sistema de Transporte realiza a pré-reserva do cruzeiro correspondente. ID #5 Reservar Hotel (André Rodrigues) Atores Sistema ViajarFácil, Sistema Hoteleiro Descrição Este é o processo pelo qual o sistema ViajarFácil fará a pré-reserva do hotel escolhido pelo cliente. A pré-reserva será realizada através de um sistema parceiro com base na informação “hotel” e se inicia após a confirmação de reserva de pacote aéreo. O caso de uso é finalizado quando a pré-reserva do hotel estiver devidamente efetuada. Pré-condições ● ● Cliente ter selecionado o hotel na reserva de pacote de viagem (UC#1). Cliente ter informado a quantidade de pessoas que se hospedarão na reserva de pacote de viagem (UC#1). Pós-condições ● Pré-reserva do hotel efetuada. Requisitos não-funcionais ● ● ● Segurança (RF001) Usabilidade (RF002) Performance (RNF003) Requisitos funcionais Consultar Pacote (RF001) , Consultar Hóteis (RF002), Comprar Pacotes (RF004), Contratar Guia Turístico(RF005), Contratar Passeios Extras(RF006) Fluxo de Eventos 1. O sistema ViajarFácil obtém o hotel escolhido pelo cliente na reserva do pacote aéreo (UC#1). 2. O sistema ViajarFácil obtém a quantidade de pessoas informada pelo cliente na reserva do pacote aéreo(UC#1). 3. O sistema efetua a pré-reserva do hotel escolhido. 4. O sistema retorna uma mensagem de sucesso. Fluxo Alternativo (1) Em 1, caso o sistema não consiga obter a informação hotel escolhido, uma mensagem de erro é exibida informando a impossibilidade de realizar a pré-reserva. Fluxo Alternativo (2) Em 2, caso o sistema não consiga obter a quantidade de pessoas a se hospedarem, uma mensagem de erro é exibida informando a impossibilidade de realizar a pré-reserva. ID #6 Cancelar Reserva (Diego Bolognesi) Atores Cliente, Tempo, Sistema Transporte, Sistema Hotelaria Descrição Após solicitado o cancelamento pelo cliente ou pelo tempo, o sistema cancela a reserva do hotel e/ou do transporte. Após o cancelamento os dados da reserva permanecem no sistema, mas com o status de cancelado. Pré-condições ● ● ● Cliente cadastrado no Sistema Cliente autenticado no Sistema Cliente tem que ter cadastrado pelo menos uma reserva e não ter efetuado o pagamento. Pós-condições ● ● ● Cliente terá a reserva cancelada com status de cancelado. Sistema Financeiro não aguardara o pagamento da reserva. O sistema terá como informar um histórico de reservas canceladas. O cliente não terá como reativar esta reserva, se necessário terá que refazê-la. ● Requisitos não-funcionais ● ● ● Segurança (RNF001) Usabilidade (RNF002) Performance (RNF003) Requisitos funcionais ● ● ● ● ● Consultar Pacotes (RF001) Consultar Hotéis (RF002) Contratar Guia Turístico (RF005) Contratar Passeios Extras (RF006) Comprar Pacotes (RF004) Fluxo de Eventos 1. O cliente solicita o cancelamento da reserva ou o prazo máximo de espera para efetuar o pagamento foi atingido. 2. Se a reserva do cliente inclui hotel: a. O sistema solicita o cancelamento da reserva da hospedagem para o Sistema de Hotelaria; 3. Se a reserva do cliente possui transporte: a. O sistema solicita o cancelamento da reserva do transporte para o Sistema de Transporte; 4. Se a reserva do cliente possui guia turístico: a. O sistema atualiza o status do guia turístico, deixando apto a fazer parte de qualquer outro pacote. 5. O sistema finaliza o cancelamento da reserva do cliente, deixando o status como cancelado. Fluxo Alternativo (1) Em 2, se o cliente escolheu um pacote que não possui reserva de hospedagem, não será necessário entrar em contato com o sistema de Hotelaria para cancelar a reserva. Fluxo Alternativo (2) Em 3, se o cliente escolheu um pacote que não possui reserva de transporte, não será necessário entrar em contato com o sistema de Transporte para cancelar a reserva. Fluxo Alternativo (3) Em 4, se o cliente escolheu um pacote que não possui reserva de guia turístico, não será necessário editar o status do guia turístico. Diagramas de Sequência Segue abaixo os diagramas de sequência baseados no fluxo principal dos casos de uso. Figura 1: Diagrama de sequência do caso de uso #1 - Reservar pacote. Figura 2: Diagrama de sequência do caso de uso #2 - Contratar passeios extras. Figura 3: Diagrama de sequência do caso de uso #3 - Contratar guia turístico. Figura 4: Diagrama de sequência do caso de uso #4 - Reservar Transporte. Figura 5: Diagrama de sequência do caso de uso #5 - Reservar Hotel. Figura 6: Diagrama de sequência do caso de uso #6 - Cancelar reserva. Análise de Classes Candidatas A tabela a seguir apresenta o dicionário de substantivos levantados a partir dos casos de uso. Em negrito estão as entidades selecionadas para compor o diagrama de classes. Os substantivos que não estão classificados como atributo, operação ou termo vago não representaram uma classe. Candidatos Classificação Definição Categoria Atributo Atributo da classe Hotel Cliente Entidade Representa um cliente dentro do sistema ViajarFácil. (Vale lembrar que esse não é o ator). Confirmação Operação Confirmação do pacote de viagem escolhido pelo cliente. Consulta Operação Inserida no contexto quando o cliente quer visualizar as opções para o seu pacote de viagem. Definição Operação Inserida no contexto quando o cliente está fazendo a escolha do transporte, hotel, guia turístico e passeios extras. Dias Atributo Atributo de guia turístico. Guia turístico Entidade Armazenará todas as informações escolhidas pelo cliente que estão relacionadas a guia turístico. Hotel Entidade Armazenará todas as informações escolhidas pelo cliente que estão relacionadas a hotel. Idioma Atributo Atributo de guia turístico Informações Atributo Dados relevantes do pacote de viagem, como, vacina, taxas, passaportes, etc. Localidade Atributo Atributo de passeio extra. Marítimo Entidade Tipo de pacote de viagem (PacoteMarítimo). Mensagem Termo vago. Está inserida no contexto onde o sistema informa ao cliente o resultado das operações. Pacote Termo vago. Fica melhor inserido em pacote de viagem. Pacote aéreo Entidade Trata-se de um tipo de pacote de viagem que relaciona passeios com estadia em hotel. Pacote de viagem Entidade Armazenará todas as informações referentes ao pacote de viagem e suas customizações. Pacote do cliente É o próprio pacote de viagem. Pagamento Entidade Armazenará a forma de pagamento escolhida pelo cliente, data de vencimento e data de pagamento. Passagem aérea Entidade Tipo de transporte Passeio extra Entidade Armazenará todos os passeior extras que o cliente adicionou ao seu pacote de viagem. Processo de escolha Operação Trata-se de uma operação onde o cliente está customizando o seu pacote de viagem. Reserva Entidade Classe que agrega as informações de cliente, pacote de viagem, hotel e transporte. A préreserva, que é citada algumas vezes nos casos de uso, indica que a reserva está com o pagamento pendente. Sistema Entidade Representação do sistema como um todo (ViajarFácil). Sistema Financeiro Controle Controle responsável pelo controle dos pagamentos. Sistema Hoteleiro Controle Controle responsável por gerenciar as reservas dos hotéis. Gerenciar engloba reserva (pré-reserva), confirmação, pagamento e cancelamento. Sistema Parceiro Controle Nome genérico dado para os sistemas que auxiliam o Sistema ViajarFácil. No caso, os sistemas parceiros são Sistema Financeiro, Sistema Hoteleiro e Sistema Transporte. Não precisa ser representado no diagrama. Sistema Transporte Controle Controle responsável por gerenciar as reservas dos transportes. Gerenciar engloba reserva (pré-reserva), confirmação, pagamento e cancelamento. Temporizador Entidade Reponsável por informar se o pagamento de um determinado pacote de viagem está pendente ou não. Tipo de transporte Atributo Atributo de Transporte Transporte Entidade Representa o transporte que o cliente associou ao seu pacote de viagem. Viagem Vago Termo vago. Fica melhor representado por pacote de viagem. Diagrama de classes Figura 7: Diagrama de classes retirado da análise contextual.