Anda di halaman 1dari 41

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
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
3. Visão Use 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 Documento de projeto do software Página:4
via Internet

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 O bje tivo


Sistema para Venda de Ingressos de Cinema via Internet

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 a tua l


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 Documento de projeto do software Página:5
via Internet

custom D ocume nta çã ...


Memórias de Reunião

MemóriaReunião1

Figura: 3 Documentação

MemóriaReunião1

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 Documento de projeto do software Página:6
via Internet

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


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 base 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 Documento de projeto do software Página:7
via Internet

1.3.1 Diagrama de atividades para venda de ingresso

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

a ct 1.3.1 D ia gra ma de a tivida de s pa ra ve nda de ingre sso


Cliente web Sistema Empresa de Cartão de Crédito

Início

Seleciona no site opção Apresenta filmes em


de compra de ingresso cartaz e sessões

Seleciona filme, data e Solicita a quantidade de


sessão ingressos por tipo

Informa quantidade de Apresenta resumo do


ingressos por tipo 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 Env ia dados para Processa cartão


de crédito prestadora de cartão

Pagamento aceito?

[Nao]
[Sim]

Registra ingressos e Informa ao usuário negativ a


fornece número do da prestadora de cartão
protocolo

Venda Venda cancelada


bem
sucedida

Figura: 5 Diagrama de atividades


Sistema de Venda de Ingressos de Cinema Documento de projeto do software Página:8
via Internet

1.4 Escopo e restrições


Escopo e restrições - (Custom diagram)

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 Documento de projeto do software Página:9
via Internet

2. Requisitos

2.1 Requisitos Funcionais


2.1 Requisitos Funcionais - (Custom diagram)

custom 2.1 Re quisitos Funciona is


Módulo Cliente Módulo Cinema

RF01 - O sistema deve permitir a compra de ingressos de RF10 - O sistema deve permitir a retirada dos ingressos
cinema através da web. pelo cliente na bilheteria do cinema.

RF02 - O sistema deve permitir a escolha da sessão de RF11 - O sistema deve permitir ao funcionário do cinema
cinema para a qual o cliente deseja adquirir ingressos. localizar os ingressos através do número do protocolo ou
documento de identificação do cliente.

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.

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 Documento de projeto do software Página:10
via Internet

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 Documento de projeto do software Página:11
via Internet

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 Documento de projeto do software Página:12
via Internet

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)

re q 2.2 Re quisitos Nã o Funciona is


Requisitos não funcionais associados aos funcionais

NF01 - O sistema deve possuir um mecanismo de NF07 - A cada venda de ingresso o sistema deve Alguns autores
segurança para evitar que pessoas não autorizadas atualizar o número de ingressos vendidos para uma denominam esses
tenham acesso ao sistema ou a dados privados. sessão. requisitos como
Regras de
Negócio,
associadas aos
NF02 - O sistema para consulta deve permitir o acesso a NF08 - Somente os filmes em cartaz poderão ser
requisitos
no mínimo 100 usuários simultaneamente. selecionados para compra de ingressos.
funcionais.

NF03 - As senhas de acesso ao sistema não devem NF09 - Por padrão, o sistema apresenta as sessões da
estar diretamente visíveis no banco de dados e sim de data corrente, permitindo ao cliente selecionar outra
algum modo criptografado. data.

NF04 - A interface disponível para o cliente deve ser NF10 - A quantidade de ingressos deve ser informada
simples de forma que um usuário inexperiente possa separadamente para cada tipo de ingresso.
operá-lo

NF05 - Os tipos de ingressos considerados serão: inteira, NF11 - A compra de ingressos deve ser feita para uma
meia (estudantes), sênior e menor de 12 anos. única sessão de cinema.

NF06 - Somente clientes cadastrados podem efetivar a NF12 - Apenas podem ser vendidos ingressos para uma
compra de ingressos. sessão se existirem poltronas disponíveis.

Requisitos não funcionais gerais do sistema

NF13 - O sistema será desenvolvido no banco de dados


MySQL

Apesar de não
NF14 - O sistema será desenvolvido em Java
explícito na entrevista,
cabe ao projetista
especificar a
arquitetura completa
do aplicativo.
NF15 - O Container Servlet adotado será o T omCat

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 Documento de projeto do software Página:13
via Internet

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 Documento de projeto do software Página:14
via Internet

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 Documento de projeto do software Página:15
via Internet

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 Documento de projeto do software Página:16
via Internet

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)

a na lysis O rga niza çã o dos pa cote s


Pacote 01 - Venda de ingresso w eb
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 Documento de projeto do software Página:17
via Internet

Pacote 01 - Venda de ingresso web

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

uc Pacote 01 - Venda de ingresso w ...

UC01.02 Cadastra cliente

«extend»
Cliente

UC01.01 Compra
ingressos
«extend» UC 02.01 Loga no
Sistema

(from Pacote 02 - Emissão ingresso)

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 Documento de projeto do software Página:18
via Internet

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 Documento de projeto do software Página:19
via Internet

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 Documento de projeto do software Página:20
via Internet

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 Documento de projeto do software Página:21
via Internet

uc Pa cote 02 - Emissã o ingre sso

UC 02.01 Loga no
Sistema

Funcionario
UC02.02 Emite
ingresso

Número do protoco
«flow»

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 Documento de projeto do software Página:22
via Internet

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 Documento de projeto do software Página:23
via Internet

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 Documento de projeto do software Página:24
via Internet

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 : 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 seleci ona 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 Documento de projeto do software Página:25
via Internet

SQ01.01 - Informa quantidades - (Sequence diagram)

sd SQ01.01 - Informa quantidades

Cliente CtrlCompraIngresso TiposIngressos : Sala :Sala Sessao :Sessao T axa :TaxaServico


: PrecoIngresso
CtrlCompraIngresso

GetT iposIngresso()

New()

FormIngressos :
FormIngresso
Informa quantidades de
ingressos()

ConfirmaIngressos()

ConfirmaIngressos()

VerificaDisponibilidade()
GetCapacidade()

[IngressosVendidos+TotalIngressos > Capacidade]:Msg(Não GetIngressosVendidos()


há poltronas disponíveis para a quantidade de ingressos
solicitados)
[Ingressos
disponíveis]:
CalculaT otal()

GetTaxa()

ApresentaT otal()

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 Documento de projeto do software Página:26
via Internet

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


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 Documento de projeto do software Página:27
via Internet

4.2 Diagramas de Estados


Estados do ingresso - (StateMachine diagram)

stm Estados do ingresso

Diagrama de Estados para a Classe Ingresso

Compra ingresso

Por apresentar apenas


dois estados possíveis,
Ingresso comprado 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
Ingresso emitido
este diagrama.

Emitido

Figura: 15 Estados do ingresso


Sistema de Venda de Ingressos de Cinema Documento de projeto do software Página:28
via Internet

5. Modelos de classes

5.1 Modelo Classes de Domínio


Modelo Lógico - (Logical diagram)

cla ss M ode lo 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

Cliente - periodoExibicaoInicial: date


- periodoExibicaoFinal: date
- endereco: char
- dataNascimento: date + GetProgramacao(int) : void
Cidade - CPF: char
- CEP: char 0..* 1
- nomeCidade: char 1 0..* - Bairro: char
- Estado: char - RG: char
- sexo: char 1
1..*
+ ValidaLogin() : boolean
Sala
Sessao
- nomeSala: char
1
- capacidade: i nt - data: date
- hora: char
+ GetSala(char) : void - IngressosVendidos: int
+ GetCapacidade() : void
TaxaServ ico
+ GetSessao(int) : void
- valorTaxa: double + GetIngressosVendidos() : void
+ 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 Documento de projeto do software Página:29
via Internet

5.2 Modelo Classes Especificação

CE01.01 - Compra ingressos

CE01.01 - Compra ingressos - (Logical diagram)

class CE01.01 - Compra ingressos

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 Documento de projeto do software Página:30
via Internet

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

class CE01.01 - Seleciona sessão

Visão

Site FormProgramacao

+ CompraIngresso() : void + New() : void


+ ShowProgramacao() : void
+ SelecionaSessao() : void
+ SelecionaData() : void

Controle

CtrlCompraIngresso
CtrlConsultaProgramacao
+ IniciaCompra() : void
CtrlSite + CompraIngresso() : void
+ ListaProgramacao() : void
+ ConfirmaIngressos() : void
+ CompraIngresso() : void
+ CompraIngresso() : void + CalculaT otal() : void
+ VerificaDisponibilidade() : void
+ ConfirmaCompra() : void
+ ProcessaCartao() : void
+ ConfirmaPagamento() : void
+ CancelaCompra() : void

Modelo

Sessao Sala

- data: date - nomeSala: char


- hora: char Filme - capacidade: int
- IngressosVendidos: int
Programacao - T itulo: char + GetSala(char) : void
+ GetSessao(int) : void - siteOficial: char + GetCapacidade() : void
+ GetIngressosVendidos() : void - periodoExibicaoInicial: date - Sinopse: char
+ AtualizaIngressosVendidos() : void - periodoExibicaoFinal: date
+ GetFilme(char) : void
+ GetProgramacao(int) : void

Figura: 18 Seleciona sessão


Sistema de Venda de Ingressos de Cinema Documento de projeto do software Página:31
via Internet

CE01.01 - Informa quantidades - (Logical diagram)

class CE01.01 - Informa quantidades

Visão

FormIngresso

+ New() : void
+ ConfirmaIngressos() : void
+ Msg(char) : void
+ ApresentaTotal() : void
+ ConfirmaCompra() : void

Controle

CtrlCompraIngresso

+ IniciaCompra() : void
+ CompraIngresso() : void
+ ConfirmaIngressos() : void
+ CalculaT otal() : void
+ VerificaDisponibilidade() : void
+ ConfirmaCompra() : void
+ ProcessaCartao() : void
+ ConfirmaPagamento() : void
+ CancelaCompra() : void

Modelo

PrecoIngresso Sala TaxaServ ico


Sessao
- tipoIngresso: char - nomeSala: char - valorTaxa: double
- data: date
- precoIngresso: double - capacidade: int
- hora: char
+ GetTaxa() : void
- IngressosVendidos: int
+ GetT iposIngresso() : void + GetSala(char) : void
+ GetCapacidade() : void
+ GetSessao(int) : void
+ GetIngressosVendidos() : void
+ AtualizaIngressosVendidos() : void

Figura: 19 Informa quantidades


Sistema de Venda de Ingressos de Cinema Documento de projeto do software Página:32
via Internet

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

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

Visão

WebServ ice
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 Documento de projeto do software Página:33
via Internet

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) PK_Filme
siteOficial: CHAR(200)
Sinopse: TEXT

FK_Programacao_Filme
Programacao

«Chave Primária»
*PK idProgramacao: INTEGER
«column»
FK idFilme: INTEGER
FK_Programacao_Sala FK idSala: INTEGER
periodoExibicaoInicial: DATE
periodoExibicaoFinal: DATE

Sala PK_Sala
PK_Programacao

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

«Chave Primária»
*pfK idProgramacao: INT EGER
*PK dataHora: DATETIME

Figura: 21 Banco de dados atual


Sistema de Venda de Ingressos de Cinema Documento de projeto do software Página:34
via Internet

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...

Filme Cidade

«Chave Primaria» «Chave Primária, column»


*PK idFilme: INTEGER *PK cidadeID: INTEGER
PK_Filme «column»
«column»
nomeCidade: VARCHAR(50)
Titulo: CHAR(100) Programacao
siteOficial: CHAR(200) Estado: CHAR(2)
Sinopse: TEXT FK_Programacao_Filme «Chave Primária»
*PK idProgramacao: INTEGER
PK_Cidade
«column»
FK_Programacao_Sala FK idFilme: INTEGER
FK idSala: INTEGER
Sala periodoExibicaoInicial: DATE
periodoExibicaoFinal: DATE
PK_Sala PK_Programacao FK_Cliente_Cidade
«Chave Primária»
*PK idSala: INTEGER
«column» Cliente
nomeSala: CHAR(20)
capacidade: INTEGER «Chave Primária, column»
*pfK clienteID: INTEGER
«column»
FK cidadeID: INTEGER
FK_Sessao_Programacao endereco: VARCHAR(100)
dataNascimento: DATETIME
PK_Cliente
CPF: CHAR(11)
Sessao CEP: CHAR(8)
Bairro: CHAR(20)
«Chave Primária» Ingresso RG: CHAR(20)
*pfK idProgramacao: INTEGER sexo: CHAR(1)
*PK dataHora: DATETIME PK_Sessao
«Chave Primária, column» FK_Ingresso_Cliente
«column» *PK ingressoID: INTEGER
FK_Ingresso_Sessao FK_Cliente_Usuario Z
ingressosVendidos: INTEGER «column»
FK clienteID: INTEGER
FK idProgramacao: INTEGER
PK_Usuario
FK dataHoraSessao: DATETIME
Acrescentado o numeroProtocolo: INTEGER
atributo statusIngresso: CHAR(1) Por segurança, os
ingressosVendidos. Usuario
dados do cartão de
crédito não são «Chave Primária, column»
armazenados no banco *PK usuarioID: INTEGER
de dados.
«column»
TaxaServ ico PK_Ingresso nomePessoa: VARCHAR(50)
telefone: CHAR(10)
«Chave Primária, column» P
FK_IngressoComprado_Ingresso email: VARCHAR(70)
*PK taxaServicoID: INTEGER
senha: CHAR(30)
«column» Funcionario: BOOL
valorTaxa: double 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

Figura: 22 Banco de dados proposto


Sistema de Venda de Ingressos de Cinema Documento de projeto do software Página:35
via Internet

6.2 Modelo de Componentes


Component Model - (Component diagram)

cmp Compone nt M ode l

«file» «library» Banco de dados


Cinema.w ar JDBC MySQL

TomCat

Web Serv ice Web Serv ice


(serv idor) (cliente)

HTTP

Nav egador

Figura: 23 Componentes
Sistema de Venda de Ingressos de Cinema Documento de projeto do software Página:36
via Internet

6.3 Modelo de Implantação


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

cmp 6.3 M ode lo de Impla nta çã o


Arquitetura Cinema

Serv idor WEB Serv idor Banco

Web Serv ice


«file»
(cliente)
Cinema.w ar Banco de dados
MySQL

Prestadora Cartão Crédito

Web Serv ice TomCat «library»


(serv idor) JDBC

HTTP

Computador cliente Computador funcionário

Nav egador
Nav egador

Figura: 24 Modelo implantação


Sistema de Venda de Ingressos de Cinema Documento de projeto do software Página:37
via Internet

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 No passo 4 do 09/12/2008
ingresso de d 1) O cliente acessa o link link Ingressos Input, verificar se
cinema "Compra Ingresso" na página 2) O cliente escolhe o total está
inicial do cinema o filme "Queime correto: (valor dos
2) O sistema apresenta os depois de ler" e a ingressos
filmes em cartaz, listando sessão das "19:00" apresentados +
também as sessões 3) O cliente informa taxa de serviço) *
disponíveis no dia para cada a quantidade 2 2
filme. para o tipo de Após passo 5 do
3) O cliente seleciona o filme e ingresso inteira. Input, é
sessão que deseja assistir 4) Após verificar o apresentado o
4) O sistema apresenta página total, o cliente número do
para informação das informa login: protocolo de
quantidades de ingressos maria@brasil.com. compra dos
5) O cliente informa, para cada br e senha: 1234 ingressos.
tipo de ingresso, a quantidade 5) Informa a
que deseja adquirir bandeira do cartão:
6) O sistema apresenta o total Visa, o número do
da compra, incluindo a taxa de cartão : 12345678
serviço por ingresso e validade: 10/10
7) O cliente informa login e
senha (UC02.01)
8) O sistema solicita dados do Obs.: As
cartão de crédito informações do
9) O cliente informa dados do Input são
cartão de crédito (bandeira, oferecidas para
número e validade) facilitar os testes,
10) O sistema valida a venda aplicando valores
junto à prestadora de cartão de que se esperam ser
crédito válidos ou não. O
11) O sistema salva os dados passo-a-passo
Sistema de Venda de Ingressos de Cinema Documento de projeto do software Página:38
via Internet

Name Test Current Description Input Acceptance Last Run Result


Type Status Criteria Details
do ingresso e atualiza a deve ser seguido
quantidade de ingressos através da
vendidos da sessão. Descrição do
12) O sistema emite número cenário.
de protocolo da compra para Deverá haver uma
retirada de ingressos. preparação da
13) O caso de uso é base de dados para
encerrado. efetivar os testes.

2. Seleçao de Not Run 1) No passo 3 do fluxo 1, caso 1) O cliente clica no No passo 4 do 09/12/2008
outra data o cliente queira outra data, link Ingressos Input, verificar se
deverá selecionar uma nova 2) O cliente escolhe o total está
data na tela. o filme "Queime correto: (valor dos
2) O sistema retorna ao passo depois de ler", uma ingressos
2 do fluxo 1, re-apresentando data diferente da apresentados +
as sessões para a data data corrente taxa de serviço) *
informada. (hoje), e a sessão 2
das "19:00" Após passo 5 do
3) O cliente informa Input, é
a quantidade 2 apresentado o
para o tipo de número do
ingresso inteira. protocolo de
4) Após verificar o compra dos
total, o cliente ingressos para a
informa login: data selecionada
maria@brasil.com. no passo 2 do
br e senha: 1234 Input.
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 A compra do 09/12/2008


Cancelamento 1) A qualquer momento, antes link Ingressos ingresso foi
da compra que seja efetuada a compra 2) O cliente escolhe interrompida
(passo 10 do fluxo 1), o cliente o filme "Queime (cancelada).
pode cancelar o procedimento depois de ler" e a Retornou à página
de compra. sessão das "19:00" principal do site
2) O sistema retornar ao passo 3) O cliente informa da empresa de
1 do fluxo 1. a quantidade 2 cinema.
Sistema de Venda de Ingressos de Cinema Documento de projeto do software Página:39
via Internet

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 Este teste deve ser 09/12/2008
cliente o cliente ainda não seja descrito no
cadastrado, deverá realizar UC01.02 Cadastra
seu cadastro para prosseguir Cliente
na compra (UC01.02)
5. Sessão Not Run 1) No passo 2 do fluxo 1, para 1) O cliente clica no Na listagem dos 09/12/2008
lotada cada sessão, caso todos os link Ingressos filmes em cartaz,
ingressos já tenham sido o filme "007 -
vendidos, o sistema desabilita Quantum Of
sua seleção, apresentando ao Solace" deve
lado a informação de que a aparecer com
mesma está lotada. todas as sessões
desabilitadas, por
estarem lotadas.
6. Ingressos Not Run 1) Após o passo 5 do fluxo 1, o 1) O cliente clica no O sistema 09/12/2008
indisponíveis sistema verifica se a link Ingressos apresenta
quantidade de ingressos 2) O cliente escolhe mensagem
solicitados ultrapassa a o filme "Queime informando que o
quantidade disponível para a depois de ler" e a total de ingressos
sessão escolhida. Caso sessão das "19:00" ultrapassa a
afirmativo, informa ao cliente 3) O cliente informa quantidade
que a quantidade desejada a quantidade 20 disponível para a
não está disponível. para o tipo de sessão escolhida.
2) Retorna ao passo 5 do fluxo ingresso inteira, 50 O sistema
1 para informar novamente as para o tipo meia e mantém-se na
quantidades. 200 para o tipo tela para entrada
senior. de quantidades de
ingressos.
3. Cliente já Standar Not Run 1) O cliente informa O sistema informa 09/12/2008
cadastrado d 1) No passo 3 do fluxo 1, o os dados: que o cliente já é
sistema verifica antes de nome completo: cadastrado. Não
salvar se já existe cliente com Maria da Silva permite seu
mesmo e-mail, CPF ou RG e-mail: cadastro.
informados. Caso afirmativo, maria@brasil.com.
avisa ao cliente e impede o br
cadastro. senha: 4321
CPF: 767.657.400-
58 (Obtido em
Sistema de Venda de Ingressos de Cinema Documento de projeto do software Página:40
via Internet

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 O sistema informa 09/12/2008
obrigatórios d sistema verifica se todos os os dados: que o campo
campos obrigatórios foram nome completo: senha é
preenchidos. Caso negativo, Joao de Souza obrigatório e não
solicita o preenchimento do e-mail: deixa prosseguir
cliente. São considerados senha: AB444 na compra do
obrigatórios: nome completo, CPF: 675.632.276- ingresso.
e-mail, senha, CPF, RG, data 10 (Obtido em
de nascimento e telefone 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 Documento de projeto do software Página:41
via Internet

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 O cliente foi 09/12/2008


cliente d 1) O sistema apresenta os dados: cadastrado com
formulário para cadastro do nome completo: sucesso e o
cliente, contendo: nome Maria de Souza usuário consegue
completo, e-mail, senha, CPF, e-mail: prosseguir na
RG, data de nascimento, sexo, maria@servidor.co compra do
endereço completo (rua, m.br ingresso.
número, bairro, CEP, cidade, senha: AA321
UF) e telefone. CPF: 372.812.451-
2) O cliente informa seus 65 (Obtido em
dados http://www.gerador
3) O sistema salva os dados cpf.com/, gerador
no banco de dados de CPF para
4) O caso de uso é encerrado testes)
RG: 1234567
data de
nascimento:
20/09/1975
sexo: F
endereço
completo: Rua
Itajaí, 230
CEP: 88300-800
bairro: Centro
cidade: Brusque
UF: SC e;
telefone: (47)
99887766