Você está na página 1de 41
Sistema de Venda de Ingressos de Cinema via Internet Documento de especificação de requisitos e
Sistema de Venda de Ingressos de Cinema via Internet Documento de especificação de requisitos e

Sistema de Venda de Ingressos de Cinema via Internet

Documento de especificação de requisitos e projeto do sistema

Este documento contém a especificação dos requisitos para um sistema de vendas de ingressos de cinema via internet, apresentando a situação atual e a pretendida, além da modelagem necessária à sua implementação. Trata-se de um projeto hipotético utilizado para a disciplina de Prática em Análise e Projeto de Sistemas.

Profa. Adriana Gomes Alves

10/03/2009

utilizado para a disciplina de Prática em Análise e Projeto de Sistemas. Profa. Adriana Gomes Alves

Controle de versões

Versão

Data

Observações

1.0

09/12/2008

Primeira versão publicada para os alunos

1.1

28/01/2009

Alterado iagram de casos de uso, onde as associações corretas devem ser de “Extend” (Figura 10).

1.2

10/03/2009

Alterado plano de testes

Sumário

1. Visão de Negócio

4

2. Requisitos

9

Visão Use

3. Case

16

4. Modelagem Dinâmica

24

5. Modelos de classes

28

6. Visão de Implantação

33

Sistema de Venda de Ingressos de Cinema via Internet

Documento de projeto do software

Página:4

1. Visão de Negócio

Escopo do sistema:

Neste projeto o sistema abrange aplicativo para venda de ingressos de cinema através da web e sua emissão nos guichês da empresa de cinema.

1.1 Objetivo

Objetivo - (Custom diagram)

custom Objetivo Sistema para Venda de Ingressos de Cinema via Inter net Objetivo do sistema:
custom Objetivo
Sistema para Venda de Ingressos de Cinema via Inter net
Objetivo do sistema:
O Sistema para Venda de Ingressos de Cinema via Internet tem por objetivo a implantação de um sistema de informação que
possibilite a venda de ingressos de cinema através da Web.
Figura: 1
Objetivo

1.2 Situação atual

Situação atual - (Custom diagram)

custom Situação atual

atual - (Custom diagram) custom Situação atual Situação atual: Atualmente a venda de ingressos é

Situação atual:

Atualmente a venda de ingressos é realizada apenas nos guichês do cinema, de forma presencial.

A empresa de cinema possui um website que disponibiliza de forma dinâmica toda programação de cinema, a qual é cadastrada num banco de dados MySQL.

A empresa tem o objetivo de ampliar suas vendas através da venda de ingressos pela Web e para tanto deseja que seja desenvolvido um sistema de informação para atender às suas necessidades.

Para a elaboração do projeto de software, foi realizada entrevista com o gerente da empresa de cinema, a qual encontra-se em anexo. Nessa entrevista foi fornecido o modelo de banco de dados atual do sistema, para que sejam reaproveitados os cadastros já existentes.

Figura: 2 Situação atual

Documentação de levantamentos

Os documentos apresentados neste item foram coletados durante o levantamento dos requisitos do sistema, através de reuniões com o proprietário e funcionários da livraria. Documentação de levantamentos - (Custom diagram)

Sistema de Venda de Ingressos de Cinema via Internet

Documento de projeto do software

Página:5

custom Documentaçã Memórias de Reunião MemóriaReunião1
custom Documentaçã
Memórias de Reunião
MemóriaReunião1

MemóriaReunião1

Figura: 3 Documentação

Sistema: Sistema de Venda de Ingressos de Cinema via Internet

 

Versão: 1.0

 

MEMÓRIA DE REUNIÃO

 

Código: 1

Data: 20/11/2008

Hora início: 09:00

Hora término: 11:00

Entrevistador(es): Adriana Gomes Alves/Engenheira de requisitos

 

Entrevistado(s): Roberto Silva/Gerente

 

Assunto: Definição dos requisitos do sistema

 

Descrição:

O cinema atualmente oferece venda de ingressos apenas presencial, porém deseja-se que se possam vender ingressos pela internet, aumentando as vendas, diminuindo as filas,

oferecendo desta forma um conforto aos seus clientes.

 

A empresa já possui um website para divulgação da programação. Todos os filmes e

programação são cadastrados em um banco de dados (MySQL), sendo a geração da informações dinâmica. O modelo de banco de dados atual é apresentado no item 6.1.1. O

cadastro da programação do cinema não faz parte do escopo deste projeto, uma vez que já é contemplado pelo sistema que atualiza dinamicamente o website da empresa.

Pretende-se que o cliente acesse uma área de compra de ingressos, onde serão listados os filmes em cartaz e os horários disponíveis no dia, os quais são obtidos do banco de dados

existente da empresa de cinema. Caso o cliente queira comprar ingresso para outro dia, o sistema deverá disponibilizar esta possibilidade.

Após escolher o filme, data e horário, o cliente também informará o número de ingressos que deseja comprar e o tipo de ingresso: inteira, meia, sênior ou menor de 12 anos. Os preços são

diferenciados por tipo.

 

Não será considerada a venda de ingressos promocionais, ou seja, o preço é diferenciado

somente por tipo, independente do horário e dia da semana.

 

Não é realizada a venda de poltronas numeradas.

Ao preço de cada ingresso é acrescida uma taxa de serviço, a qual será definida pelo gerente

Sistema de Venda de Ingressos de Cinema via Internet

Documento de projeto do software

Página:6

do cinema, ou seja, não é um valor fixo.

O pagamento será somente realizado por cartão de crédito.

Para realizar a compra o cliente deverá se cadastrar (primeira compra) ou fornecer e-mail e senha, caso já seja cadastrado no sistema (a partir da segunda compra). No momento do

cadastro, deverá informar: nome completo, e-mail, senha, CPF, RG, data de nascimento, sexo, endereço completo (rua, número, bairro, cidade, UF) e telefone.

Após efetuar o pagamento via cartão de crédito, o cliente recebe um recibo para retirar os ingressos na bilheteria do cinema. Porém, também será possível retirar os ingressos caso o

cliente apresente documento de identificação que possibilite conferir o cadastro no sistema.

O sistema deve controlar a quantidade de ingressos vendidos para uma mesma sessão. Para

tanto, deve ser informada, para cada sala de exibição, o número de poltronas disponíveis. Considera-se uma sessão um filme exibido em uma determinada sala, horário e data.

Ao retirar os bilhetes no cinema, o cliente deverá apresentar documentos para comprovar o desconto obtido: meia deve apresentar carteira de estudante, sênior deve apresentar

documento de identidade e menor de 12 anos algum documento que comprove sua idade.

Não será permitido cancelar a compra do ingresso após a efetivação da compra pela

prestadora de cartão de crédito.

Depois de emitidos na bilheteria, os ingressos não poderão ser re-emitidos, para evitar fraudes.

Espera-se que este sistema aumente substancialmente a venda de ingressos do cinema, ampliando os lucros e a área de atuação do mesmo.

1.3 Situação proposta

Situação proposta - (Custom diagram)

custom Situação proposta

   
custom Situação proposta       Situação proposta: Pretende-se desenvolver e implantar um sistema
 

Situação proposta:

Pretende-se desenvolver e implantar um sistema para a venda de ingressos de cinema através da Internet . Neste projeto não se pretende alterar o sistema atual para vendas presencial, o qual está em pleno funcionamento, nem os procedimentos adotados para tal fim.

Para o novo sistema, pretende-se utilizar toda a ba se de dados já existente na empresa de cinema, não sendo necessário implementar cadastro para a programação do cinema.

Dentre as principais funcionalidades a serem implementadas, destacam-se:

Criação de uma interface web para venda de ingressos de cinema pela Internet;

Cadastro de clientes, com login, para realizar a venda;

Integração com prestadoras de cartão de crédito para concretizar a venda;

Emissão dos ingressos nos guichês.

 

O diagrama de atividade a seguir apresenta a situação pretendida para a venda de ingressos.

Figura: 4 Situação proposta

Sistema de Venda de Ingressos de Cinema via Internet

Documento de projeto do software

Página:7

1.3.1 Diagrama de atividades para venda de ingresso

1.3.1 Diagrama de atividades para venda de ingresso - (Activity diagram)

act 1.3.1 Diagrama de atividades para venda de ingresso

Cliente web

Sistema Env ia dados para prestadora de cartão Pagamento aceito? [Nao] [Sim] Registra ingressos e
Sistema
Env ia dados para
prestadora de cartão
Pagamento aceito?
[Nao]
[Sim]
Registra ingressos e
fornece número do
protocolo
Informa ao usuário negativa
da prestadora de cartão
Venda
Venda cancelada
bem
sucedida

Empresa de Cartão de Crédito

Início
Início
Seleciona no site opção de compra de ingresso Apresenta filmes em cartaz e sessões Seleciona
Seleciona no site opção
de compra de ingresso
Apresenta filmes em
cartaz e sessões
Seleciona filme, data e
sessão
Solicita a quantidade de
ingressos por tipo
Informa quantidade de
ingressos por tipo
Apresenta resumo do
pedido
Cliente
novo?
[Não]
[Sim]
Realiza cadastro
Informa login e senha e
atualiza cadastro
Registra ou atualiza
dados do cliente
Informa dados do cartão de crédito
Informa dados do cartão
de crédito
Processa cartão
Processa cartão

Figura: 5 Diagrama de atividades

Sistema de Venda de Ingressos de Cinema via Internet

Documento de projeto do software

Página:8

1.4 Escopo e restrições

Escopo e restrições - (Custom diagram)

custom Escopo e restrições

custom Escopo e restrições
 

Escopo do sistema:

Neste projeto o sistema abrange aplicativo para venda de ingressos de cinema através da web e sua emissão nos guichês da empresa de cinema.

Restrições:

- Não faz parte do escopo deste projeto o cadastro da programação do cinema, já existente no atual sistema da empresa.

- Como o sistema é para fins didáticos, não serão considerados controles mais complexos, tais como:

Ingressos promocionais.

 

Poltronas numeradas

Cancelamento de ingressos

Re-emissão de ingressos

Reserva de lugares em sessões

Figura: 6

Escopo e restrições

Sistema de Venda de Ingressos de Cinema via Internet

Documento de projeto do software

Página:9

2. Requisitos

2.1 Requisitos Funcionais

2.1 Requisitos Funcionais - (Custom diagram)

Módulo Cliente RF01 - O sistema deve permitir a compra de ingressos de cinema através
Módulo Cliente
RF01 - O sistema deve permitir a compra de ingressos de
cinema através da web.
RF02 - O sistema deve permitir a escolha da sessão de
cinema para a qual o cliente deseja adquirir ingressos.
RF03 - O sistema deve permitir a aquisição de diversos
ingressos em uma mesma compra.
RF04 - O sistema deve possibilitar o auto-cadastro de
cliente no momento da compra, caso o mesmo ainda não
esteja cadastrado.
RF05 - O sistema deve permitir a venda de ingressos
através de cartão de crédito.
RF06 - O sistema deve calcular o valor total da compra,
considerando a taxa de serviço por ingresso.
RF07 - O sistema deve emitir um recibo com número de
protocolo para retirada dos ingressos na bilheteria.
RF08 - O sistema deve controlar a quantidade de
ingressos vendidos para uma mesma sessão.
RF09 - O sistema não permitirá o cancelamento de compra
de ingresso após sua efetivação junto à prestadora de
cartão de crédito.

custom 2.1 Requisitos Funcionais

Módulo Cinema RF10 - O sistema deve permitir a retirada dos ingressos pelo cliente na
Módulo Cinema
RF10 - O sistema deve permitir a retirada dos ingressos
pelo cliente na bilheteria do cinema.
RF11 - O sistema deve permitir ao funcionário do cinema
localizar os ingressos através do número do protocolo ou
documento de identificação do cliente.

Figura: 7 Requisitos funcionais

RF01 - O sistema deve permitir a compra de ingressos de cinema através da web.

O sistema deve permitir que o cliente realize a compra de ingressos de cinema através da web, permitindo que antecipadamente o cliente adquira os ingressos para a sessão desejada. Responsabilidades (requisitos externos)

Sistema de Venda de Ingressos de Cinema via Internet

Documento de projeto do software

Página:10

Responsabilidades (requisitos externos) NF01 - O sistema deve possuir um mecanismo de segurança para evitar que pessoas não autorizadas tenham acesso ao sistema ou a dados privados. (Proposed, Low difficulty)

NF02 - O sistema para consulta deve permitir o acesso a no mínimo 100 usuários simultaneamente. (Proposed, Low difficulty)

NF03 - As senhas de acesso ao sistema não devem estar diretamente visíveis no banco de dados e sim de algum modo criptografado. (Proposed, Medium difficulty)

NF04 - A interface disponível para o cliente deve ser simples de forma que um usuário inexperiente possa

operá-lo

(Proposed, Low difficulty)

NF06 - Somente clientes cadastrados podem efetivar a compra de ingressos. (Proposed, Medium difficulty)

RF02 - O sistema deve permitir a escolha da sessão de cinema para a qual o cliente deseja adquirir ingressos.

O sistema deve permitir que o cliente selecione uma sessão de cinema, optando por filme, data e horário.

Responsabilidades (requisitos externos) NF08 - Somente os filmes em cartaz poderão ser selecionados para compra de ingressos. (Proposed, Medium difficulty) Considera-se filme em cartaz aqueles que possuem sessão cadastrada para a data corrente e datas futuras próximas. NF09 - Por padrão, o sistema apresenta as sessões da data corrente, permitindo ao cliente selecionar outra data. (Proposed, Medium difficulty)

NF11 - A compra de ingressos deve ser feita para uma única sessão de cinema. (Proposed, Medium difficulty)

O usuário somente pode selecionar um filme e sessão (horário, data e sala). Caso queira adquirir ingressos

para outros filmes, deverá realizar outra compra.

RF03 - O sistema deve permitir a aquisição de diversos ingressos em uma mesma compra.

O sistema deve permitir que o cliente adquira diversos ingressos em uma mesma compra.

Responsabilidades (requisitos externos) NF05 - Os tipos de ingressos considerados serão: inteira, meia (estudantes), sênior e menor de 12 anos. (Proposed, Medium difficulty)

NF10 - A quantidade de ingressos deve ser informada separadamente para cada tipo de ingresso. (Proposed, Medium difficulty)

NF11 - A compra de ingressos deve ser feita para uma única sessão de cinema. (Proposed, Medium difficulty)

O usuário somente pode selecionar um filme e sessão (horário, data e sala). Caso queira adquirir ingressos

para outros filmes, deverá realizar outra compra.

RF04 - O sistema deve possibilitar o auto-cadastro de cliente no momento da compra, caso o mesmo ainda não esteja cadastrado.

Sistema de Venda de Ingressos de Cinema via Internet

Documento de projeto do software

Página:11

O sistema deve permitir a um cliente não cadastrado seu auto-cadastro.

Caso já seja cadastrado, deve informar e-mail e senha e acessar seus dados cadastrais. Responsabilidades (requisitos externos) NF01 - O sistema deve possuir um mecanismo de segurança para evitar que pessoas não autorizadas tenham acesso ao sistema ou a dados privados. (Proposed, Low difficulty)

NF02 - O sistema para consulta deve permitir o acesso a no mínimo 100 usuários simultaneamente. (Proposed, Low difficulty)

NF03 - As senhas de acesso ao sistema não devem estar diretamente visíveis no banco de dados e sim de algum modo criptografado. (Proposed, Medium difficulty)

NF04 - A interface disponível para o cliente deve ser simples de forma que um usuário inexperiente possa

operá-lo

(Proposed, Low difficulty)

NF06 - Somente clientes cadastrados podem efetivar a compra de ingressos. (Proposed, Medium difficulty)

RF05 - O sistema deve permitir a venda de ingressos através de cartão de crédito.

O pagamento dos ingressos será realizado através dos cartões de crédito conveniados com a empresa de cinema.

RF06 - O sistema deve calcular o valor total da compra, considerando a taxa de serviço por ingresso.

Após selecionar as quantidades e tipos de ingresso, o sistema deverá aplicar uma taxa de serviço por ingresso e calcular o valor total da compra.

RF07 - O sistema deve emitir um recibo com número de protocolo para retirada dos ingressos na bilheteria.

Para que o cliente retire seus ingressos, o sistema vai informar um número de protocolo associado à compra dos ingressos efetivada.

RF08 - O sistema deve controlar a quantidade de ingressos vendidos para uma mesma sessão.

O sistema deve ter um mecanismo que controle o número de ingressos vendidos para uma sessão, levando em conta

o número de poltronas disponíveis na sala de exibição. Responsabilidades (requisitos externos) NF07 - A cada venda de ingresso o sistema deve atualizar o número de ingressos vendidos para uma sessão. (Proposed, Medium difficulty) Para cada ingresso vendido para uma sessão, o sistema deve atualizar a quantidade disponível para aquela sessão. NF12 - Apenas podem ser vendidos ingressos para uma sessão se existirem poltronas disponíveis. (Proposed, Medium difficulty) O sistema vai verificar se a sessão escolhida tem poltronas disponíveis para o número total de ingressos que o cliente pretende adquirir.

RF09 - O sistema não permitirá o cancelamento de compra de ingresso após sua efetivação junto à prestadora de cartão de crédito.

Sistema de Venda de Ingressos de Cinema via Internet

Documento de projeto do software

Página:12

RF10 - O sistema deve permitir a retirada dos ingressos pelo cliente na bilheteria do cinema.

O sistema deverá permitir que o cliente retire seu ingresso na bilheteria do cinema.

RF11 - O sistema deve permitir ao funcionário do cinema localizar os ingressos através do número do protocolo ou documento de identificação do cliente.

O sistema vai permitir que o funcionário do cinema pesquise os ingressos através do número do protocolo ou de um

documento de identificação (RG ou CPF), no caso do cliente esquecer ou perder o número do protocolo.

2.2 Requisitos Não Funcionais

2.2 Requisitos Não Funcionais - (Requirements diagram)

req 2.2 Requisitos Não Funcionais NF01 - O sistema deve possuir um mecanismo de segurança
req 2.2 Requisitos Não Funcionais NF01 - O sistema deve possuir um mecanismo de segurança

req 2.2 Requisitos Não Funcionais

NF01 - O sistema deve possuir um mecanismo de segurança para evitar que pessoas não

NF01 - O sistema deve possuir um mecanismo de segurança para evitar que pessoas não autorizadas tenham acesso ao sistema ou a dados privados.

NF04 - A interface disponível para o cliente deve ser simples de forma que um usuário inexperiente possa operá-lo

de forma que um usuário inexperiente possa operá-lo NF07 - A cada venda de ingresso o
de forma que um usuário inexperiente possa operá-lo NF07 - A cada venda de ingresso o
NF07 - A cada venda de ingresso o sistema deve atualizar o número de ingressos
NF07 - A cada venda de ingresso o sistema deve
atualizar o número de ingressos vendidos para uma
sessão.
NF08 - Somente os filmes em cartaz poderão ser selecionados para compra de ingressos.
NF08 - Somente os filmes em cartaz poderão ser
selecionados para compra de ingressos.
NF09 - Por padrão, o sistema apresenta as sessões da data corrente, permitindo ao cliente
NF09 - Por padrão, o sistema apresenta as sessões da
data corrente, permitindo ao cliente selecionar outra
data.
NF10 - A quantidade de ingressos deve ser informada separadamente para cada tipo de ingresso.
NF10 - A quantidade de ingressos deve ser informada
separadamente para cada tipo de ingresso.
NF11 - A compra de ingressos deve ser feita para uma única sessão de cinema.
NF11 - A compra de ingressos deve ser feita para uma
única sessão de cinema.
NF12 - Apenas podem ser vendidos ingressos para uma sessão se existirem poltronas disponíveis.
NF12 - Apenas podem ser vendidos ingressos para uma
sessão se existirem poltronas disponíveis.
sessão de cinema. NF12 - Apenas podem ser vendidos ingressos para uma sessão se existirem poltronas
Apesar de não explícito na entrevista, cabe ao projetista especificar a arquitetura completa do aplicativo.
Apesar de não explícito na entrevista, cabe ao projetista especificar a arquitetura completa do aplicativo.

Apesar de não explícito na entrevista, cabe ao projetista especificar a arquitetura completa do aplicativo.

 

Requisitos não funcionais associados aos funcionais

  Requisitos não funcionais associados aos funcionais NF02 - O sistema para consulta deve permitir o
NF02 - O sistema para consulta deve permitir o acesso a no mínimo 100 usuários
NF02 - O sistema para consulta deve permitir o acesso a
no mínimo 100 usuários simultaneamente.
NF03 - As senhas de acesso ao sistema não devem estar diretamente visíveis no banco
NF03 - As senhas de acesso ao sistema não devem
estar diretamente visíveis no banco de dados e sim de
algum modo criptografado.
no banco de dados e sim de algum modo criptografado. NF05 - Os tipos de ingressos
NF05 - Os tipos de ingressos considerados serão: inteira, meia (estudantes), sênior e menor de
NF05 - Os tipos de ingressos considerados serão: inteira,
meia (estudantes), sênior e menor de 12 anos.
NF06 - Somente clientes cadastrados podem efetivar a compra de ingressos.
NF06 - Somente clientes cadastrados podem efetivar a
compra de ingressos.

Requisitos não funcionais gerais do sistema

NF14 - O sistema será desenvolvido em Java

NF15 - O Container Servlet adotado será o TomCat

NF13 - O sistema será desenvolvido no banco de dados MySQL
NF13 - O sistema será desenvolvido no banco de dados
MySQL

Figura: 8 Requisitos não funcionais

NF01 - O sistema deve possuir um mecanismo de segurança para evitar que pessoas

Sistema de Venda de Ingressos de Cinema via Internet

Documento de projeto do software

Página:13

não autorizadas tenham acesso ao sistema ou a dados privados.

Responsabilidades (requisitos externos) RF01 - O sistema deve permitir a compra de ingressos de cinema através da web. (Proposed, Medium difficulty)

O sistema deve permitir que o cliente realize a compra de ingressos de cinema através da web, permitindo

que antecipadamente o cliente adquira os ingressos para a sessão desejada.

RF04 - O sistema deve possibilitar o auto-cadastro de cliente no momento da compra, caso o mesmo ainda não esteja cadastrado. (Proposed, Medium difficulty)

O sistema deve permitir a um cliente não cadastrado seu auto-cadastro.

Caso já seja cadastrado, deve informar e-mail e senha e acessar seus dados cadastrais.

NF02 - O sistema para consulta deve permitir o acesso a no mínimo 100 usuários simultaneamente.

Responsabilidades (requisitos externos) RF01 - O sistema deve permitir a compra de ingressos de cinema através da web. (Proposed, Medium difficulty)

O sistema deve permitir que o cliente realize a compra de ingressos de cinema através da web, permitindo

que antecipadamente o cliente adquira os ingressos para a sessão desejada.

RF04 - O sistema deve possibilitar o auto-cadastro de cliente no momento da compra, caso o mesmo ainda não esteja cadastrado. (Proposed, Medium difficulty)

O sistema deve permitir a um cliente não cadastrado seu auto-cadastro.

Caso já seja cadastrado, deve informar e-mail e senha e acessar seus dados cadastrais.

NF03 - As senhas de acesso ao sistema não devem estar diretamente visíveis no banco de dados e sim de algum modo criptografado.

Responsabilidades (requisitos externos) RF01 - O sistema deve permitir a compra de ingressos de cinema através da web. (Proposed, Medium difficulty)

O sistema deve permitir que o cliente realize a compra de ingressos de cinema através da web, permitindo

que antecipadamente o cliente adquira os ingressos para a sessão desejada. RF04 - O sistema deve possibilitar o auto-cadastro de cliente no momento da compra, caso o mesmo ainda não esteja cadastrado. (Proposed, Medium difficulty)

O sistema deve permitir a um cliente não cadastrado seu auto-cadastro.

Caso já seja cadastrado, deve informar e-mail e senha e acessar seus dados cadastrais.

NF04 - A interface disponível para o cliente deve ser simples de forma que um usuário inexperiente possa operá-lo

Responsabilidades (requisitos externos) RF01 - O sistema deve permitir a compra de ingressos de cinema através da web. (Proposed, Medium difficulty)

O sistema deve permitir que o cliente realize a compra de ingressos de cinema através da web, permitindo

que antecipadamente o cliente adquira os ingressos para a sessão desejada.

RF04 - O sistema deve possibilitar o auto-cadastro de cliente no momento da compra, caso o mesmo ainda não esteja cadastrado. (Proposed, Medium difficulty)

O sistema deve permitir a um cliente não cadastrado seu auto-cadastro.

Caso já seja cadastrado, deve informar e-mail e senha e acessar seus dados cadastrais.

NF05 - Os tipos de ingressos considerados serão: inteira, meia (estudantes), sênior e

Sistema de Venda de Ingressos de Cinema via Internet

Documento de projeto do software

Página:14

menor de 12 anos.

Responsabilidades (requisitos externos) RF03 - O sistema deve permitir a aquisição de diversos ingressos em uma mesma compra. (Proposed, Medium difficulty)

O sistema deve permitir que o cliente adquira diversos ingressos em uma mesma compra.

NF06 - Somente clientes cadastrados podem efetivar a compra de ingressos.

Responsabilidades (requisitos externos) RF01 - O sistema deve permitir a compra de ingressos de cinema através da web. (Proposed, Medium difficulty)

O sistema deve permitir que o cliente realize a compra de ingressos de cinema através da web, permitindo

que antecipadamente o cliente adquira os ingressos para a sessão desejada.

RF04 - O sistema deve possibilitar o auto-cadastro de cliente no momento da compra, caso o mesmo ainda não esteja cadastrado. (Proposed, Medium difficulty)

O sistema deve permitir a um cliente não cadastrado seu auto-cadastro.

Caso já seja cadastrado, deve informar e-mail e senha e acessar seus dados cadastrais.

NF07 - A cada venda de ingresso o sistema deve atualizar o número de ingressos vendidos para uma sessão.

Para cada ingresso vendido para uma sessão, o sistema deve atualizar a quantidade disponível para aquela sessão. Responsabilidades (requisitos externos) RF08 - O sistema deve controlar a quantidade de ingressos vendidos para uma mesma sessão. (Proposed, Medium difficulty)

O sistema deve ter um mecanismo que controle o número de ingressos vendidos para uma sessão, levando

em conta o número de poltronas disponíveis na sala de exibição.

NF08 - Somente os filmes em cartaz poderão ser selecionados para compra de ingressos.

Considera-se filme em cartaz aqueles que possuem sessão cadastrada para a data corrente e datas futuras próximas. Responsabilidades (requisitos externos) RF02 - O sistema deve permitir a escolha da sessão de cinema para a qual o cliente deseja adquirir ingressos. (Proposed, Low difficulty)

O sistema deve permitir que o cliente selecione uma sessão de cinema, optando por filme, data e horário.

NF09 - Por padrão, o sistema apresenta as sessões da data corrente, permitindo ao cliente selecionar outra data.

Responsabilidades (requisitos externos) RF02 - O sistema deve permitir a escolha da sessão de cinema para a qual o cliente deseja adquirir ingressos. (Proposed, Low difficulty)

O sistema deve permitir que o cliente selecione uma sessão de cinema, optando por filme, data e horário.

NF10 - A quantidade de ingressos deve ser informada separadamente para cada tipo de ingresso.

Responsabilidades (requisitos externos)

Sistema de Venda de Ingressos de Cinema via Internet

Documento de projeto do software

Página:15

Responsabilidades (requisitos externos) RF03 - O sistema deve permitir a aquisição de diversos ingressos em uma mesma compra. (Proposed, Medium difficulty)

O sistema deve permitir que o cliente adquira diversos ingressos em uma mesma compra.

NF11 - A compra de ingressos deve ser feita para uma única sessão de cinema.

O usuário somente pode selecionar um filme e sessão (horário, data e sala). Caso queira adquirir ingressos para

outros filmes, deverá realizar outra compra.

Responsabilidades (requisitos externos) RF02 - O sistema deve permitir a escolha da sessão de cinema para a qual o cliente deseja adquirir ingressos. (Proposed, Low difficulty)

O sistema deve permitir que o cliente selecione uma sessão de cinema, optando por filme, data e horário.

RF03 - O sistema deve permitir a aquisição de diversos ingressos em uma mesma compra. (Proposed, Medium difficulty)

O sistema deve permitir que o cliente adquira diversos ingressos em uma mesma compra.

NF12 - Apenas podem ser vendidos ingressos para uma sessão se existirem poltronas disponíveis.

O sistema vai verificar se a sessão escolhida tem poltronas disponíveis para o número total de ingressos que o cliente

pretende adquirir.

Responsabilidades (requisitos externos) RF08 - O sistema deve controlar a quantidade de ingressos vendidos para uma mesma sessão. (Proposed, Medium difficulty)

O sistema deve ter um mecanismo que controle o número de ingressos vendidos para uma sessão, levando

em conta o número de poltronas disponíveis na sala de exibição.

NF13 - O sistema será desenvolvido no banco de dados MySQL

NF14 - O sistema será desenvolvido em Java

NF15 - O Container Servlet adotado será o TomCat

Sistema de Venda de Ingressos de Cinema via Internet

Documento de projeto do software

Página:16

3. Visão Use Case

Modelo de Casos de Uso

Os casos de uso podem ser descritos de duas formas, o modelo casual ou o caso de uso detalhado.

O formato casual, apresenta uma descrição em alto nível que consiste em explicar sucintamente o objetivo e o funcionamento do caso de uso, indicando algumas exceções importantes, mas não necessariamente todas (WAZLAWICK, 2004, p. 64-65).

O formato detalhado contempla a descrição dos cenários, sendo eles: principal, alternativo e de exceção. O cenário principal descreve o que normalmente acontece quando um caso de uso é realizado. Os cenários alternativos descrevem o que acontece quando o ator faz uma escolha alternativa, diferente da descrita no fluxo principal, para alcançar o seu objetivo. Os cenários de exceção descrevem o que acontece quando algo inesperado ocorre na interação entre ator e casos de uso (BEZERRA, 2002, p. 66-67).

Neste projeto foram adotados os dois modelos, a título de exemplificação. A descrição casual será adotada para casos de uso básicos, enquanto que o formato detalhado será aplicado aos casos de uso essenciais do negócio.

Os planos de teste são baseados nos cenários dos casos de uso. Deve-se prever pelo menos um teste para cada cenário descrito, incluindo cenários alternativos e de exceção.

É importante lembrar que para a execução dos testes, faz-se necessária a preparação da base de dados. Todo dado informado nos testes que supõem-se já existentes, precisam ser previamente inseridos no banco de dados, caso contrário, podem ser detectados erros referentes à falta de dados, e não do aplicativo.

Testes mais sofisticados ou automatizados também podem ser planejados para o sistema, porém os mesmos fogem ao escopo do nosso curso. Organização dos pacotes - (Analysis diagram)

analysis Organização dos pacotes Pacote 01 - Venda de ingresso web Pacote 02 - Emissão
analysis Organização dos pacotes
Pacote 01 - Venda de
ingresso
web
Pacote 02 - Emissão
ingresso
+ Prestadora de Cartão de Crédito
+ Funcionario
+ Cliente
+ UC02.02 Emite ingresso
+ UC01.01 Compra ingressos
+ UC 02.01 Loga no Sistema
+ UC01.02 Cadastra cliente

Figura: 9 Pacotes de casos de uso

Sistema de Venda de Ingressos de Cinema via Internet

Documento de projeto do software

Página:17

Pacote 01 - Venda de ingresso web

Pacote 01 - Venda de ingresso web - (Use Case diagram)

uc Pacote 01 - Venda de ingresso w

- (Use Case diagram) uc Pacote 01 - Venda de ingresso w Cliente UC01.02 Cadastra cliente
Cliente
Cliente
UC01.02 Cadastra cliente
UC01.02 Cadastra cliente
UC 02.01 Loga no Sistema
UC 02.01 Loga no
Sistema
UC01.01 Compra ingressos
UC01.01 Compra
ingressos

«extend» cliente UC 02.01 Loga no Sistema UC01.01 Compra ingressos «extend» (from Pacote 02 - Emissão ingresso)

«extend»02.01 Loga no Sistema UC01.01 Compra ingressos «extend» (from Pacote 02 - Emissão ingresso) Prestadora de

(from Pacote 02 - Emissão ingresso)

«extend» «extend» (from Pacote 02 - Emissão ingresso) Prestadora de Cartão de Crédito Figura: 10 Casos

Prestadora de Cartão de Crédito

Figura: 10 Casos de uso venda de ingressos web

Cliente

Este ator representa os clientes que acessam o site do cinema.

Prestadora de Cartão de Crédito

Este ator refere-se ao software de comunicação entre o site do cinema e a prestadora de cartão de crédito, através de um webservice para efetuar pagamento.

UC01.01 Compra ingressos

Neste caso de uso o cliente realiza a compra de ingressos. Inicia selecionando a sessão desejada, em seguida informa para cada tipo de ingresso, a quantidade que quer adquirir.

O sistema calcula o total a pagar, incluindo a taxa de serviço.

O usuário deverá identificar-se para concretizar a compra, que será efetivada através de cartão de crédito. Responsabilidades (requisitos externos) RF01 - O sistema deve permitir a compra de ingressos de cinema através da web. (Proposed, Medium difficulty) O sistema deve permitir que o cliente realize a compra de ingressos de cinema através da web, permitindo que antecipadamente o cliente adquira os ingressos para a sessão desejada.

Sistema de Venda de Ingressos de Cinema via Internet

Documento de projeto do software

Página:18

Responsabilidades (requisitos externos) RF02 - O sistema deve permitir a escolha da sessão de cinema para a qual o cliente deseja adquirir ingressos. (Proposed, Low difficulty)

O sistema deve permitir que o cliente selecione uma sessão de cinema, optando por filme, data e horário.

RF03 - O sistema deve permitir a aquisição de diversos ingressos em uma mesma compra. (Proposed, Medium difficulty)

O sistema deve permitir que o cliente adquira diversos ingressos em uma mesma compra.

RF05 - O sistema deve permitir a venda de ingressos através de cartão de crédito. (Proposed, Low difficulty)

O pagamento dos ingressos será realizado através dos cartões de crédito conveniados com a empresa de

cinema. RF06 - O sistema deve calcular o valor total da compra, considerando a taxa de serviço por ingresso. (Proposed, Medium difficulty) Após selecionar as quantidades e tipos de ingresso, o sistema deverá aplicar uma taxa de serviço por ingresso e calcular o valor total da compra. RF07 - O sistema deve emitir um recibo com número de protocolo para retirada dos ingressos na bilheteria. (Proposed, Medium difficulty) Para que o cliente retire seus ingressos, o sistema vai informar um número de protocolo associado à compra dos ingressos efetivada. RF08 - O sistema deve controlar a quantidade de ingressos vendidos para uma mesma sessão. (Proposed, Medium difficulty)

O sistema deve ter um mecanismo que controle o número de ingressos vendidos para uma sessão, levando

em conta o número de poltronas disponíveis na sala de exibição. Restrições O cliente tem acesso à internet: (Pré-condição, Status is Approved)

Um ou mais ingressos foram adquiridos: (Pós-condição, Status is Proposed)

Cenários

1. Compra ingresso de cinema - Principal

1. O cliente acessa o link "Compra Ingresso" na página inicial do cinema

2. O sistema apresenta os filmes em cartaz, listando também as sessões disponíveis no dia para cada filme.

3. O cliente seleciona o filme e sessão que deseja assistir

4. O sistema apresenta página para informação das quantidades de ingressos

5. O cliente informa, para cada tipo de ingresso, a quantidade que deseja adquirir

6. O sistema apresenta o total da compra, incluindo a taxa de serviço por ingresso

7. O cliente informa login e senha (UC02.01)

8. O sistema solicita dados do cartão de crédito

9. O cliente informa dados do cartão de crédito (bandeira, número e validade)

10. O sistema valida a venda junto à prestadora de cartão de crédito

11. O sistema salva os dados do ingresso e atualiza a quantidade de ingressos vendidos da sessão.

12. O sistema emite número de protocolo da compra para retirada de ingressos.

13. O caso de uso é encerrado.

2. Seleçao de outra data - Alternativo

1. No passo 3 do fluxo 1, caso o cliente queira outra data, deverá selecionar uma nova data na tela.

2. O sistema retorna ao passo 2 do fluxo 1, re-apresentando as sessões para a data informada.

Sistema de Venda de Ingressos de Cinema via Internet

Documento de projeto do software

Página:19

Responsabilidades (requisitos externos)

3. Cancelamento da compra - Alternativo

1. A qualquer momento, antes que seja efetuada a compra (passo 10 do fluxo 1), o cliente pode cancelar o procedimento de compra.

2. O sistema retornar ao passo 1 do fluxo 1.

4. Cadastra cliente - Alternativo

1.

No passo 7 do fluxo 1, caso o cliente ainda não seja cadastrado, deverá realizar seu cadastro para prosseguir na compra (UC01.02)

5. Sessão lotada - Exceção

1.

No passo 2 do fluxo 1, para cada sessão, caso todos os ingressos já tenham sido vendidos, o sistema desabilita sua seleção, apresentando ao lado a informação de que a mesma está lotada.

6. Ingressos indisponíveis - Exceção

1. Após o passo 5 do fluxo 1, o sistema verifica se a quantidade de ingressos solicitados ultrapassa a quantidade disponível para a sessão escolhida. Caso afirmativo, informa ao cliente que a quantidade desejada não está disponível.

2. Retorna ao passo 5 do fluxo 1 para informar novamente as quantidades.

UC01.02 Cadastra cliente

Neste caso de uso o cliente realizará seu auto-cadastro, informando seus dados pessoais e endereço. Responsabilidades (requisitos externos) RF04 - O sistema deve possibilitar o auto-cadastro de cliente no momento da compra, caso o mesmo ainda não esteja cadastrado. (Proposed, Medium difficulty) O sistema deve permitir a um cliente não cadastrado seu auto-cadastro. Caso já seja cadastrado, deve informar e-mail e senha e acessar seus dados cadastrais. Restrições

Cliente ainda não tem registro: (Pré-condição, Status is Proposed)

Um cliente foi cadastrado: (Pós-condição, Status is Proposed)

Cenários

1. Cadastra cliente - Principal

1. O sistema apresenta formulário para cadastro do cliente, contendo: nome completo, e-mail, senha, CPF, RG, data de nascimento, sexo, endereço completo (rua, número, CEP, bairro, cidade, UF) e telefone.

Sistema de Venda de Ingressos de Cinema via Internet

Documento de projeto do software

Página:20

Responsabilidades (requisitos externos)

2. O cliente informa seus dados

3. O sistema salva os dados no banco de dados

4. O caso de uso é encerrado

2. Campos obrigatórios - Exceção

1. No passo 2 do fluxo 1, o sistema verifica se todos os campos obrigatórios foram preenchidos. Caso negativo, solicita o preenchimento do cliente. São considerados obrigatórios: nome completo, e- mail, senha, CPF, RG, data de nascimento e telefone

3. Cliente já cadastrado - Exceção

1. No passo 3 do fluxo 1, o sistema verifica antes de salvar se já existe cliente com mesmo e-mail, CPF ou RG informados. Caso afirmativo, avisa ao cliente e impede o cadastro.

Pacote 02 - Emissão ingresso

Pacote 02 - Emissão ingresso - (Use Case diagram)

Sistema de Venda de Ingressos de Cinema via Internet

Documento de projeto do software

Página:21

uc Pacote 02 - Emissão ingresso

UC 02.01 Loga no Sistema
UC 02.01 Loga no
Sistema
UC02.02 Emite ingresso
UC02.02 Emite
ingresso
ingresso UC 02.01 Loga no Sistema UC02.02 Emite ingresso Funcionario «flow» Número do protoco Cliente (from

Funcionario

«flow»
«flow»

Número do protoco

Cliente
Cliente

(from Pacote 01 - Venda de ingresso web)

Figura: 11 Emissão de ingresso

Funcionario

Este ator representa a(s) pessoa(s) que trabalham no cinema.

UC 02.01 Loga no Sistema

Este caso de uso permite que um usuário (cliente ou funcionário) faça o login no sistema. Para tanto, informa seu e- mail e senha, habilitando as funcionalidades desejadas. Este cenário permite conferir ao sistema segurança da informação, bem como auferir responsabilidade de uso do sistema. Caso o e-mail ou senha informada sejam incorretas, o sistema emitir um aviso ao usuário. Responsabilidades (requisitos externos) NF01 - O sistema deve possuir um mecanismo de segurança para evitar que pessoas não autorizadas tenham acesso ao sistema ou a dados privados. (Proposed, Low difficulty)

Sistema de Venda de Ingressos de Cinema via Internet

Documento de projeto do software

Página:22

Responsabilidades (requisitos externos) RF04 - O sistema deve possibilitar o auto-cadastro de cliente no momento da compra, caso o mesmo ainda não esteja cadastrado. (Proposed, Medium difficulty)

O sistema deve permitir a um cliente não cadastrado seu auto-cadastro.

Caso já seja cadastrado, deve informar e-mail e senha e acessar seus dados cadastrais. RF10 - O sistema deve permitir a retirada dos ingressos pelo cliente na bilheteria do cinema. (Proposed, Low difficulty)

O sistema deverá permitir que o cliente retire seu ingresso na bilheteria do cinema.

RF11 - O sistema deve permitir ao funcionário do cinema localizar os ingressos através do número do protocolo ou documento de identificação do cliente. (Proposed, Medium difficulty)

O sistema vai permitir que o funcionário do cinema pesquise os ingressos através do número do protocolo

ou de um documento de identificação (RG ou CPF), no caso do cliente esquecer ou perder o número do

protocolo. Restrições O usuário acessou uma área restrita do sistema: (Pré-condição, Status is Proposed)

O usuário foi autenticado no sistema: (Pós-condição, Status is Proposed)

UC02.02 Emite ingresso

Este caso de uso permite que o funcionário emita os ingressos adquiridos pelo cliente através da web. Responsabilidades (requisitos externos) RF10 - O sistema deve permitir a retirada dos ingressos pelo cliente na bilheteria do cinema. (Proposed, Low difficulty) O sistema deverá permitir que o cliente retire seu ingresso na bilheteria do cinema.

RF11 - O sistema deve permitir ao funcionário do cinema localizar os ingressos através do número do protocolo ou documento de identificação do cliente. (Proposed, Medium difficulty)

O sistema vai permitir que o funcionário do cinema pesquise os ingressos através do número do protocolo

ou de um documento de identificação (RG ou CPF), no caso do cliente esquecer ou perder o número do protocolo.

Restrições O funcionário deve estar logado no sistema: (Pré-condição, Status is Proposed)

Um ou mais ingressos foram emitidos: (Pós-condição, Status is Proposed)

Cenários 1. Emite ingressos - Principal

1. O Funcionário informa o número do protocolo dos ingressos, fornecido pelo cliente.

2. O sistema verifica o número do protocolo e emite os ingressos.

3. O Funcionário entrega os ingressos impressos ao Cliente.

4. O caso de uso é encerrado.

2. Pesquisa ingressos através de documentos - Alternativo

1. No passo 1 do fluxo 1, caso o Cliente tenha extraviado o número do protocolo, o Funcionário informará o número do CPF ou RG do Cliente para pesquisar seus ingressos.

2. O sistema localiza os ingressos adquiridos pelo cliente e apresenta na tela.

3. O Funcionário seleciona e emite os ingressos.

4. Retorna ao passo 3 do fluxo 1.

Sistema de Venda de Ingressos de Cinema via Internet

Documento de projeto do software

Página:23

Responsabilidades (requisitos externos)

3. Número de protocolo inválido - Exceção

1. No passo 2 do fluxo 1, caso o número do protocolo seja inválido, sistema emite aviso informando a inexistência do protocolo informado.

2. Retorna ao passo 4 do fluxo 1.

4. Ingressos inexistentes - Exceção

1. No passo 1 do fluxo 2, caso o Cliente não seja localizado ou não existam ingressos comprados para o mesmo, o sistema emite mensagem informando ao funcionário esta situação.

2. Retorna ao passo 4 do fluxo 1.

Sistema de Venda de Ingressos de Cinema via Internet

Documento de projeto do software

Página:24

4. Modelagem Dinâmica

4.1 Diagrama de Sequencia

SQ01.01 - Compra ingressos

SQ01.01 - Seleciona sessão

SQ01.01 - Compra ingressos - (Sequence diagram)

sd SQ01.01 - Compra ingressos Cliente Site do Cinema : Site :CtrlSite CtrlCompraIngresso CtrlConsulta :
sd SQ01.01 - Compra ingressos
Cliente
Site do Cinema :
Site :CtrlSite
CtrlCompraIngresso
CtrlConsulta :
Programacao :
Filme :Filme
Sala :Sala
Sessao :Sessao
Site
: CtrlConsultaProgramacao
Programacao
CompraIngresso()
CtrlCompraIngresso
CompraIngresso()
IniciaCompra()
ListaProgramacao()
GetProgramacao(int)
GetFilme(char)
GetSala(char)
GetSessao(data)
New()
Programacao :
FormProgramacao
ShowProgramacao()
alt
Seleção de
outra
data
[Cliente seleciona outra data]
SelecionaData()
ListaProgramacao()
SelecionaSessao()
CompraIngresso()
CompraIngresso()
Continua no diagrama
SQ01.01 - Informa
quantidades
Figura: 12 Compra ingresso

Sistema de Venda de Ingressos de Cinema via Internet

Documento de projeto do software

Página:25

SQ01.01 - Informa quantidades - (Sequence diagram)

sd SQ01.01 - Informa quantidades Cliente CtrlCompraIngresso TiposIngressos : Sala :Sala Sessao :Sessao Taxa
sd SQ01.01 - Informa quantidades
Cliente
CtrlCompraIngresso
TiposIngressos :
Sala :Sala
Sessao :Sessao
Taxa :TaxaServico
:
PrecoIngresso
CtrlCompraIngresso
GetTiposIngresso()
New()
FormIngressos :
FormIngresso
Informa quantidades de
ingressos()
ConfirmaIngressos()
ConfirmaIngressos()
VerificaDisponibilidade()
GetCapacidade()
GetIngressosVendidos()
[IngressosVendidos+TotalIngressos > Capacidade]:Msg(Não
há poltronas disponíveis para a quantidade de ingressos
solicitados)
[Ingressos
disponíveis]:
CalculaTotal()
GetTaxa()
ApresentaTotal()
alt Identificação
do
cliente
alt UC02.01
[Cliente já cadastrado]
Informa login e senha()
[Cliente já cadastrado]
[Primeira compra]
Primeira compra()
alt UC01.02
[Cliente novo]
ConfirmaCompra()
[Login efetuado]:
ConfirmaCompra()
Continua no SQ01.01 -
Confirma Compra (cartão)
(from SQ01.01 - Seleciona sessão)
(from SQ01.01 - Seleciona sessão)

Figura: 13 Informa quantidade

Sistema de Venda de Ingressos de Cinema via Internet

Documento de projeto do software

Página:26

SQ01.01 - Confirma Compra (cartão) - (Sequence diagram)

sd SQ01.01 - Confirma Compra (cartão) Cliente Prestadora Cartão WebService : CtrlCompraIngresso CtrlCartao :
sd SQ01.01 - Confirma Compra (cartão)
Cliente
Prestadora Cartão
WebService :
CtrlCompraIngresso
CtrlCartao :
Ingresso :Ingresso
IngressosComprados
Sessao :Sessao
WebService
:
CtrlCartao
:
CtrlCompraIngresso
IngressoComprado
New()
FormCartao :
FormFinalizacao
Informa dados cartao()
ProcessaCartao()
ProcessaCartao()
SolicitaServico()
SubmeteRequisicao()
RetornaProcessamento()
[Pagamento negado]:
CancelaCompra()
Msg(Pagamento não foi confirmado)
[Pagamento efetuado]:
ConfirmaPagamento()
InsereIngresso(int) :protocolo
*InsereIngressos()
Para cada tipo de ingresso
AtualizaIngressosVendidos()
Msg(O número do protocolo de retirada de ingressos é
<<nnn>>.)
(from SQ01.01 - Seleciona sessão)
(from SQ01.01 - Seleciona sessão)

Figura: 14 Confirma compra

Sistema de Venda de Ingressos de Cinema via Internet

Documento de projeto do software

Página:27

4.2 Diagramas de Estados

Estados do ingresso - (StateMachine diagram)

stm Estados do ingresso

ingresso - (StateMachine diagram) stm Estados do ingresso Diagrama de Estados para a Classe Ingresso Compra

Diagrama de Estados para a Classe Ingresso

Compra ingresso Ingresso comprado Ingresso emitido
Compra ingresso
Ingresso comprado
Ingresso emitido

Emitido

Por apresentar apenas dois estados possíveis, não é necessário elaborar o diagrama de estados para

Por apresentar apenas dois estados possíveis, não é necessário elaborar o diagrama de estados para a compra de ingressos. Caso o sistema permitisse reservar, cancelar ou re-emitir os ingressos, tornar-se-ia

fundamental elaborar este diagrama.

Figura: 15 Estados do ingresso

Sistema de Venda de Ingressos de Cinema via Internet

Documento de projeto do software

Página:28

5. Modelos de classes

5.1 Modelo Classes de Domínio

Modelo Lógico - (Logical diagram)

class Modelo Lógico Filme Usuario - Titulo: char - siteOficial: char - nomePessoa: char -
class Modelo Lógico
Filme
Usuario
- Titulo: char
- siteOficial: char
-
nomePessoa: char
- Sinopse: char
-
telefone: char
-
email: char
+ GetFilme(char) : void
-
senha: char
1
Funcionario
-
ValidaUsuario(Integer, Integer) : Boolean
0
*
Programacao
-
periodoExibicaoInicial: date
Cliente
-
periodoExibicaoFinal: date
- endereco: char
- dataNascimento: date
+
GetProgramacao(int) : void
- CPF: char
Cidade
- CEP: char
0
*
1
- nomeCidade: char
- Bairro: char
1
0
*
- Estado: char
- RG: char
- sexo: char
1
1
*
+ ValidaLogin() : boolean
Sala
Sessao
- nomeSala: char
1
- capacidade: int
-
data: date
-
hora: char
+ GetSala(char) : void
-
IngressosVendidos: int
+ GetCapacidade() : void
TaxaServ ico
+
GetSessao(int) : void
+
GetIngressosVendidos() : void
- valorTaxa: double
+
AtualizaIngressosVendidos() : void
+ GetTaxa() : void
1
0
*
Ingresso
PrecoIngresso
numeroProtocolo: int
- 0
*
- valorTotal: double
-
tipoIngresso: char
- cartaoCredito: char
-
precoIngresso: double
- validadeCartao: date
- statusIngresso: char
+
GetTiposIngresso() : void
+ InsereIngresso(int) : void
IngressoComprado
- quantidade: int
+ InsereIngressos() : void

Figura: 16 Classes de domínio

Sistema de Venda de Ingressos de Cinema via Internet

Documento de projeto do software

Página:29

5.2 Modelo Classes Especificação

CE01.01 - Compra ingressos

CE01.01 - Compra ingressos - (Logical diagram)

class CE01.01 - Compra ingressos

class CE01.01 - Compra ingressos CE01.01 - Seleciona sessão CE01.01 - Informa quantidades CE01.01 - Confirma
class CE01.01 - Compra ingressos CE01.01 - Seleciona sessão CE01.01 - Informa quantidades CE01.01 - Confirma
CE01.01 - Seleciona sessão CE01.01 - Informa quantidades CE01.01 - Confirma compra (cartão)
CE01.01 - Seleciona
sessão
CE01.01 - Informa
quantidades
CE01.01 - Confirma
compra
(cartão)

Figura: 17 Pacotes classes de especificação

Sistema de Venda de Ingressos de Cinema via Internet

Documento de projeto do software

Página:30

CE01.01 - Seleciona sessão - (Logical diagram)

class CE01.01 - Seleciona sessão

- (Logical diagram) class CE01.01 - Seleciona sessão Visão FormProgramacao Site + New() : void +
Visão FormProgramacao Site + New() : void + CompraIngresso() : void + ShowProgramacao() : void
Visão
FormProgramacao
Site
+ New() : void
+ CompraIngresso() : void
+ ShowProgramacao() : void
+ SelecionaSessao() : void
+ SelecionaData() : void
Controle
CtrlCompraIngresso CtrlConsultaProgramacao + IniciaCompra() : void + CompraIngresso() : void CtrlSite +
CtrlCompraIngresso
CtrlConsultaProgramacao
+ IniciaCompra()
: void
+ CompraIngresso()
: void
CtrlSite
+ ListaProgramacao() : void
+ ConfirmaIngressos()
: void
+ CompraIngresso() : void
+ CalculaTotal()
: void
+ CompraIngresso() : void
+ VerificaDisponibilidade()
: void
+ ConfirmaCompra()
: void
+ ProcessaCartao()
: void
+ ConfirmaPagamento()
: void
+ CancelaCompra()
: void
Modelo
Sessao
Sala
- data: date
- nomeSala: char
- hora: char
- capacidade: int
Filme
- IngressosVendidos: int
Programacao
- Titulo: char
+ GetSala(char) : void
+ GetSessao(int) : void
- siteOficial: char
+ GetCapacidade() : void
- periodoExibicaoInicial: date
+ GetIngressosVendidos() : void
- Sinopse: char
- periodoExibicaoFinal: date
+ AtualizaIngressosVendidos() : void
+ GetFilme(char) : void
+ GetProgramacao(int) : void
+ AtualizaIngressosVendidos() : void + GetFilme(char) : void + GetProgramacao(int) : void Figura: 18 Seleciona sessão

Figura: 18 Seleciona sessão

Sistema de Venda de Ingressos de Cinema via Internet

Documento de projeto do software

Página:31

CE01.01 - Informa quantidades - (Logical diagram)

class CE01.01 - Informa quantidades

- (Logical diagram) class CE01.01 - Informa quantidades Visão FormIngresso + New() : void + ConfirmaIngressos()
Visão FormIngresso + New() : void + ConfirmaIngressos() : void + Msg(char) : void +
Visão
FormIngresso
+ New() : void
+ ConfirmaIngressos() : void
+ Msg(char) : void
+ ApresentaTotal() : void
+ ConfirmaCompra() : void
Controle
CtrlCompraIngresso
+
IniciaCompra()
: void
+
CompraIngresso()
: void
+
ConfirmaIngressos()
: void
+
CalculaTotal()
: void
+
VerificaDisponibilidade()
: void
+
ConfirmaCompra()
: void
+
ProcessaCartao()
: void
+
ConfirmaPagamento()
: void
+
CancelaCompra()
: void
+ ConfirmaPagamento() : void + CancelaCompra() : void - tipoIngresso: char - precoIngresso: double +
+ ConfirmaPagamento() : void + CancelaCompra() : void - tipoIngresso: char - precoIngresso: double +
+ ConfirmaPagamento() : void + CancelaCompra() : void - tipoIngresso: char - precoIngresso: double +

- tipoIngresso: char

- precoIngresso: double

+ GetTiposIngresso() : void

- nomeSala: char

- capacidade: int

+ GetSala(char) : void

+ GetCapacidade() : void

Modelo

- data: date

- hora: char

- IngressosVendidos: int

+ GetSessao(int) : void

+ GetIngressosVendidos() : void

+ AtualizaIngressosVendidos() : void

- valorTaxa: double

+ GetTaxa() : void

PrecoIngresso

Sala

Sessao

TaxaServ ico

Figura: 19 Informa quantidades

Sistema de Venda de Ingressos de Cinema via Internet

Documento de projeto do software

Página:32

CE01.01 - Confirma compra (cartão) - (Logical diagram)

class CE01.01 - Confirma compra (cartão)

(Logical diagram) class CE01.01 - Confirma compra (cartão) Visão WebService FormFinalizacao + SolicitaServico() :
Visão WebService FormFinalizacao + SolicitaServico() : void + New() : void + Msg(char) : void
Visão
WebService
FormFinalizacao
+ SolicitaServico() : void
+ New()
:
void
+ Msg(char)
:
void
Controle
CtrlCompraIngresso
+ IniciaCompra()
:
void
+ CompraIngresso()
:
void
CtrlCartao
+ ConfirmaIngressos()
:
void
+ CalculaTotal()
:
void
+ ProcessaCartao() : void
+ VerificaDisponibilidade()
:
void
+ ConfirmaCompra()
:
void
+ ProcessaCartao()
:
void
+ ConfirmaPagamento()
:
void
+ CancelaCompra()
:
void
Modelo
IngressoComprado
Ingresso
Sessao
- quantidade: int
-
numeroProtocolo:
int
- data: date
-
valorTotal:
double
- hora: char
+ InsereIngressos() : void
-
cartaoCredito:
char
- IngressosVendidos:
int
-
validadeCartao:
date
-
statusIngresso:
char
+ GetSessao(int) :
void
+ GetIngressosVendidos()
:
void
+
InsereIngresso(int)
:
void
+ AtualizaIngressosVendidos()
:
void

Figura: 20 Confirma compra

Sistema de Venda de Ingressos de Cinema via Internet

Documento de projeto do software

Página:33

6. Visão de Implantação

6.1. Modelos de Banco de Dados

6.1.1 Modelo de Banco de Dados Atual

6.1.1 Modelo de Banco de Dados Atual - (Logical diagram)

class 6.1.1 Modelo de Banco de Dados At

Filme

«Chave Primaria»

*PK idFilme: INTEGER

«column»

Titulo: CHAR(100)

siteOficial: CHAR(200)

Sinopse: TEXT

Sala «Chave Primária» *PK idSala: INTEGER «column» nomeSala: CHAR(20) capacidade: INTEGER
Sala
«Chave Primária»
*PK idSala: INTEGER
«column»
nomeSala: CHAR(20)
capacidade: INTEGER

PK_Filme

PK_Sala

CHAR(20) capacidade: INTEGER PK_Filme PK_Sala   Programacao «Chave Primária»   *PK
CHAR(20) capacidade: INTEGER PK_Filme PK_Sala   Programacao «Chave Primária»   *PK
  Programacao
 

Programacao

  Programacao

«Chave Primária»

 

*PK idProgramacao:

INTEGER

«column»

 

FK

idFilme: INTEGER

 
FK idSala: INTEGER

FK

idSala: INTEGER

 

periodoExibicaoInicial:

DATE

periodoExibicaoFinal:

DATE

Sessao «Chave Primária» *pfK idProgramacao: INTEGER *PK dataHora: DATETIME
Sessao
«Chave Primária»
*pfK idProgramacao: INTEGER
*PK dataHora: DATETIME

PK_Programacao

FK_Sessao_Programacao

FK_Programacao_Filme
FK_Programacao_Filme

FK_Programacao_Sala

INTEGER *PK dataHora: DATETIME PK_Programacao FK_Sessao_Programacao FK_Programacao_Filme FK_Programacao_Sala

Figura: 21 Banco de dados atual

Sistema de Venda de Ingressos de Cinema via Internet

Documento de projeto do software

Página:34

6.1.2 Modelo de Banco de Dados Proposto

6.1.2 Modelo de Banco de Dados Proposto - (Data Modeling diagram)

dm 6.1.2 Modelo de Banco de Dados Propo

Modeling diagram) dm 6.1.2 Modelo de Banco de Dados Propo Filme «Chave Primaria» *PK idFilme: INTEGER
Filme «Chave Primaria» *PK idFilme: INTEGER PK_Filme «column» Titulo: CHAR(100) Programacao siteOficial:
Filme
«Chave Primaria»
*PK idFilme: INTEGER
PK_Filme
«column»
Titulo: CHAR(100)
Programacao
siteOficial: CHAR(200)
Sinopse: TEXT
FK_Programacao_Filme
«Chave Primária»
*PK idProgramacao: INTEGER
«column»
FK_Programacao_Sala
FK
idFilme: INTEGER
FK
idSala: INTEGER
periodoExibicaoInicial: DATE
Sala
periodoExibicaoFinal: DATE
PK_Sala
PK_Programacao
«Chave Primária»
*PK idSala: INTEGER
«column»
nomeSala: CHAR(20)
capacidade: INTEGER
FK_Sessao_Programacao
Sessao
«Chave Primária»
Ingresso
*pfK idProgramacao: INTEGER
*PK dataHora: DATETIME
PK_Sessao
«Chave Primária, column»
«column»
*PK ingressoID: INTEGER
FK_Ingresso_Sessao
ingressosVendidos: INTEGER
«column»
FK
clienteID: INTEGER
FK
idProgramacao: INTEGER
FK
dataHoraSessao: DATETIME
Acrescentado o
numeroProtocolo: INTEGER
atributo
statusIngresso: CHAR(1)
ingressosVendidos.
TaxaServ ico «Chave Primária, column» *PK taxaServicoID: INTEGER «column» valorTaxa: double
TaxaServ ico
«Chave Primária, column»
*PK taxaServicoID: INTEGER
«column»
valorTaxa: double
Cidade «Chave Primária, column» *PK cidadeID: INTEGER «column» nomeCidade: VARCHAR(50) Estado: CHAR(2)
Cidade
«Chave Primária, column»
*PK cidadeID: INTEGER
«column»
nomeCidade: VARCHAR(50)
Estado: CHAR(2)
PK_Cidade
FK_Cliente_Cidade
Cliente
«Chave Primária, column»
*pfK clienteID: INTEGER
«column»
FK
cidadeID: INTEGER
endereco: VARCHAR(100)
dataNascimento: DATETIME
PK_Cliente
CPF: CHAR(11)
CEP: CHAR(8)
Bairro: CHAR(20)
RG: CHAR(20)
sexo: CHAR(1)
FK_Ingresso_Cliente
FK_Cliente_Usuario
PK_Usuario
Por segurança, os
dados do cartão de
crédito não são
armazenados no banco
de dados.
Usuario
«Chave Primária, column»
*PK usuarioID: INTEGER
«column»
PK_Ingresso
nomePessoa: VARCHAR(50)
telefone: CHAR(10)
P
email: VARCHAR(70)
senha: CHAR(30)
Funcionario: BOOL
IngressoComprado
«Chave Primária, column»
*pfK ingressoID: INTEGER
FK_IngressoComprado_PrecoIngresso
PrecoIngresso
«Chave Primária»
*pfK precoIngressoID: INTEGER
PK_PrecoIngresso
«Chave Primária, column»
«column»
*PK precoIngressoID: INTEGER
quantidade: int
«column»
tipoIngresso: CHAR(1)
precoIngresso: DOUBLE

FK_IngressoComprado_Ingresso

Z

Figura: 22 Banco de dados proposto

Sistema de Venda de Ingressos de Cinema via Internet

Documento de projeto do software

Página:35

6.2 Modelo de Componentes

Component Model - (Component diagram)

cmp Component Model «file» «library» Banco de dados MySQL Cinema.war JDBC TomCat Web Serv ice
cmp Component Model
«file»
«library»
Banco de dados
MySQL
Cinema.war
JDBC
TomCat
Web Serv ice
(serv idor)
Web Service
(cliente)
HTTP
Nav egador

Figura: 23 Componentes

Sistema de Venda de Ingressos de Cinema via Internet

Documento de projeto do software

Página:36

6.3 Modelo de Implantação

6.3 Modelo de Implantação - (Component diagram)

cmp 6.3 Modelo de Implantação

- (Component diagram) cmp 6.3 Modelo de Implantação Arquitetura Cinema Serv idor WEB Serv idor Banco
Arquitetura Cinema Serv idor WEB Serv idor Banco Web Serv ice (cliente) «file» Cinema.war Banco
Arquitetura Cinema
Serv idor
WEB
Serv idor Banco
Web Serv ice
(cliente)
«file»
Cinema.war
Banco de
dados
MySQL
Prestadora Cartão Crédito
TomCat
Web Serv ice
(serv idor)
«library»
JDBC
HTTP
Computador cliente
Computador funcionário
Nav egador
Nav egador

Figura: 24 Modelo implantação

Sistema de Venda de Ingressos de Cinema via Internet

Documento de projeto do software

Página:37

7. Planos de testes

UC01.01 Compra ingressos

Name

Test

Current

Description

Input

Acceptance

Last Run

Result

Type

Status

Criteria

Details

1. Compra

Standar

Not Run

 

1) O cliente clica no link Ingressos 2) O cliente escolhe

No passo 4 do Input, verificar se o total está

09/12/2008

 

ingresso de

d

1) O cliente acessa o link "Compra Ingresso" na página inicial do cinema 2) O sistema apresenta os filmes em cartaz, listando também as sessões disponíveis no dia para cada filme. 3) O cliente seleciona o filme e sessão que deseja assistir 4) O sistema apresenta página para informação das quantidades de ingressos 5) O cliente informa, para cada tipo de ingresso, a quantidade que deseja adquirir 6) O sistema apresenta o total da compra, incluindo a taxa de serviço por ingresso 7) O cliente informa login e senha (UC02.01) 8) O sistema solicita dados do cartão de crédito 9) O cliente informa dados do cartão de crédito (bandeira, número e validade) 10) O sistema valida a venda junto à prestadora de cartão de crédito 11) O sistema salva os dados

cinema

o

filme "Queime

correto: (valor dos ingressos apresentados + taxa de serviço) *

depois de ler" e a sessão das "19:00" 3) O cliente informa

a

quantidade 2

2

para o tipo de ingresso inteira. 4) Após verificar o total, o cliente informa login:

Após passo 5 do Input, é apresentado o número do protocolo de compra dos ingressos.

maria@brasil.com. br e senha: 1234 5) Informa a bandeira do cartão:

Visa, o número do cartão : 12345678

 

e

validade: 10/10

Obs.: As

informações do

Input são oferecidas para facilitar os testes, aplicando valores que se esperam ser válidos ou não. O

passo-a-passo

Sistema de Venda de Ingressos de Cinema via Internet

Documento de projeto do software

Página:38

Name

Test

Current

Description

Input

Acceptance

Last Run

Result

Type

Status

Criteria

Details

     

do ingresso e atualiza a quantidade de ingressos vendidos da sessão. 12) O sistema emite número de protocolo da compra para retirada de ingressos. 13) O caso de uso é encerrado.

deve ser seguido através da Descrição do cenário. Deverá haver uma preparação da base de dados para efetivar os testes.

     

2. Seleçao de outra data

 

Not Run

1) No passo 3 do fluxo 1, caso o cliente queira outra data, deverá selecionar uma nova data na tela. 2) O sistema retorna ao passo

1) O cliente clica no link Ingressos 2) O cliente escolhe

No passo 4 do

09/12/2008

 

Input, verificar se

 

o

total está

o

filme "Queime

correto: (valor dos

depois de ler", uma

ingressos

do fluxo 1, re-apresentando as sessões para a data informada.

2

data diferente da data corrente (hoje), e a sessão das "19:00"

3) O cliente informa

apresentados +

taxa de serviço) *

2

 

Após passo 5 do Input, é

a

quantidade 2

apresentado o número do protocolo de compra dos ingressos para a data selecionada no passo 2 do Input.

para o tipo de

ingresso inteira. 4) Após verificar o total, o cliente informa login:

maria@brasil.com. br e senha: 1234 5) Informa a bandeira do cartão:

Visa, o número do cartão : 12345678

 

e

validade: 10/10

3.

 

Not Run

 

1) O cliente clica no link Ingressos 2) O cliente escolhe

A

compra do

09/12/2008

 

Cancelamento

1) A qualquer momento, antes que seja efetuada a compra (passo 10 do fluxo 1), o cliente pode cancelar o procedimento de compra. 2) O sistema retornar ao passo

ingresso foi

da compra

interrompida

o

filme "Queime

(cancelada). Retornou à página principal do site da empresa de

depois de ler" e a sessão das "19:00"

3) O cliente informa

1

do fluxo 1.

a

quantidade 2

cinema.

Sistema de Venda de Ingressos de Cinema via Internet

Documento de projeto do software

Página:39

Name

Test

Current

Description

Input

Acceptance

Last Run

Result

Type

Status

Criteria

Details

       

para o tipo de ingresso inteira. 4) O cliente clica em Cancelar.

     

4.

Cadastra

 

Not Run

1) No passo 7 do fluxo 1, caso o cliente ainda não seja cadastrado, deverá realizar seu cadastro para prosseguir na compra (UC01.02)

Este teste deve ser descrito no UC01.02 Cadastra

Cliente

 

09/12/2008

 

cliente

5.

Sessão

 

Not Run

1) No passo 2 do fluxo 1, para cada sessão, caso todos os ingressos já tenham sido vendidos, o sistema desabilita sua seleção, apresentando ao lado a informação de que a mesma está lotada.

 

Na listagem dos filmes em cartaz, o filme "007 - Quantum Of Solace" deve aparecer com todas as sessões desabilitadas, por estarem lotadas.

09/12/2008

 

lotada

1) O cliente clica no link Ingressos

6.

Ingressos

 

Not Run

1) Após o passo 5 do fluxo 1, o sistema verifica se a quantidade de ingressos solicitados ultrapassa a quantidade disponível para a sessão escolhida. Caso afirmativo, informa ao cliente que a quantidade desejada não está disponível. 2) Retorna ao passo 5 do fluxo 1 para informar novamente as quantidades.

1) O cliente clica no link Ingressos 2) O cliente escolhe

O

sistema

09/12/2008

 

indisponíveis

apresenta

mensagem

o

filme "Queime

informando que o total de ingressos ultrapassa a

quantidade

depois de ler" e a sessão das "19:00" 3) O cliente informa

a

quantidade 20

disponível para a

para o tipo de ingresso inteira, 50 para o tipo meia e

200 para o tipo senior.

sessão escolhida.

O

sistema

mantém-se na tela para entrada de quantidades de ingressos.

3.

Cliente já

Standar

Not Run

 

1) O cliente informa os dados:

O

sistema informa

09/12/2008

 

cadastrado

d

1) No passo 3 do fluxo 1, o sistema verifica antes de salvar se já existe cliente com mesmo e-mail, CPF ou RG informados. Caso afirmativo, avisa ao cliente e impede o cadastro.

que o cliente já é cadastrado. Não permite seu

cadastro.

nome completo:

Maria da Silva e-mail:

maria@brasil.com.

 

br

senha: 4321 CPF: 767.657.400- 58 (Obtido em

Sistema de Venda de Ingressos de Cinema via Internet

Documento de projeto do software

Página:40

Name

Test

Current

Description

Input

Acceptance

Last Run

Result

Type

Status

Criteria

Details

       

http://www.gerador cpf.com/, gerador de CPF para testes) RG: 9876543 data de nascimento:

     

28/07/1990

sexo: F

endereço

completo: Rua Florianopolis, 300 CEP: 88300-800 bairro: Centro cidade: Itajai UF: SC e; telefone: (47)

99774433

2. Campos

Standar

Not Run

1) No passo 2 do fluxo 1, o

1) O cliente informa os dados:

O sistema informa que o campo senha é obrigatório e não deixa prosseguir na compra do ingresso.

09/12/2008

 

obrigatórios

d

sistema verifica se todos os campos obrigatórios foram preenchidos. Caso negativo, solicita o preenchimento do cliente. São considerados obrigatórios: nome completo, e-mail, senha, CPF, RG, data de nascimento e telefone

nome completo:

Joao de Souza e-mail:

senha: AB444 CPF: 675.632.276- 10 (Obtido em http://www.gerador cpf.com/, gerador de CPF para testes) RG: 987456 data de nascimento:

 

22/08/1980

 

sexo: F

endereço

completo: Rua

Brusque, 1230

CEP: 88700-800

bairro: Centro

cidade: Itajai

Sistema de Venda de Ingressos de Cinema via Internet

Documento de projeto do software

Página:41

Name

Test

Current

Description

Input

Acceptance

Last Run

Result

Type

Status

Criteria

Details

       

UF: SC e; telefone: (47)

     

99550088

1. Cadastra

Standar

Not Run

 

1) O cliente informa os dados:

O cliente foi cadastrado com

09/12/2008

 

cliente

d

1) O sistema apresenta formulário para cadastro do cliente, contendo: nome completo, e-mail, senha, CPF, RG, data de nascimento, sexo, endereço completo (rua, número, bairro, CEP, cidade, UF) e telefone. 2) O cliente informa seus dados 3) O sistema salva os dados no banco de dados 4) O caso de uso é encerrado

nome completo:

Maria de Souza e-mail:

maria@servidor.co m.br senha: AA321 CPF: 372.812.451- 65 (Obtido em http://www.gerador cpf.com/, gerador de CPF para testes) RG: 1234567 data de nascimento:

sucesso e o usuário consegue

prosseguir na compra do ingresso.

 

20/09/1975

sexo: F endereço completo: Rua Itajaí, 230 CEP: 88300-800 bairro: Centro cidade: Brusque UF: SC e; telefone: (47)

99887766