SlideShare uma empresa Scribd logo
1 de 41
Baixar para ler offline
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
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 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 atual
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
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
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
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
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 Empresa de Cartão de Crédito
Início
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
Realiza cadastro
Registra ou atualiza
dados do cliente
Cliente
novo?
Informa login e senha e
atualiza cadastro
Informa dados do cartão
de crédito
Env ia dados para
prestadora de cartão
Processa cartão
Venda
bem
sucedida
Apresenta resumo do
pedido
Registra ingressos e
fornece número do
protocolo
Pagamento aceito?
Informa ao usuário negativa
da prestadora de cartão
Venda cancelada
[Não]
[Sim]
[Nao]
[Sim]
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
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)
custom 2.1 Requisitos Funcionais
Módulo CinemaMódulo Cliente
RF03 - O sistema deve permitir a aquisição de diversos
ingressos em uma mesma compra.
RF02 - O sistema deve permitir a escolha da sessão de
cinema para a qual o cliente deseja adquirir ingressos.
RF01 - O sistema deve permitir a compra de ingressos de
cinema através da web.
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.
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.
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
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
Requisitos não funcionais associados aos funcionais
Requisitos não funcionais gerais do sistema
NF03 - As senhas de acesso ao sistema não devem
estar diretamente visíveis no banco de dados e sim de
algum modo criptografado.
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.
NF02 - O sistema para consulta deve permitir o acesso a
no mínimo 100 usuários simultaneamente.
NF04 - A interface disponível para o cliente deve ser
simples de forma que um usuário inexperiente possa
operá-lo
NF13 - O sistema será desenvolvido no banco de dados
MySQL
NF14 - O sistema será desenvolvido em Java
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.
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.
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.
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.
Alguns autores
denominam esses
requisitos como
Regras de
Negócio,
associadas aos
requisitos
funcionais.
NF15 - O Container Servlet adotado será o TomCat
Apesar de não
explícito na entrevista,
cabe ao projetista
especificar a
arquitetura completa
do aplicativo.
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 02 - Emissão ingresso
+ Funcionario
+ UC02.02 Emite ingresso
+ UC 02.01 Loga no Sistema
Pacote 01 - Venda de ingresso web
+ Prestadora de Cartão de Crédito
+ Cliente
+ UC01.01 Compra ingressos
+ 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...
Cliente
UC01.01 Compra
ingressos
Prestadora de Cartão de
Crédito
UC01.02 Cadastra cliente
(from Pacote 02 - Emissão ingresso)
UC 02.01 Loga no
Sistema
«extend»
«extend»
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
Funcionario
UC 02.01 Loga no
Sistema
UC02.02 Emite
ingresso
Cliente
(from Pacote 01 - Venda de ingresso web)
Número do protoco
«flow»
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
CtrlConsulta :
CtrlConsultaProgramacao
Programacao :
FormProgramacao
Filme :FilmeProgramacao :
Programacao
Sala :Sala Sessao :SessaoSite :CtrlSite CtrlCompraIngresso
:
CtrlCompraIngresso
alt Seleção de outra data
[Cliente seleciona outra data]
Continua no diagrama
SQ01.01 - Informa
quantidades
CompraIngresso()
CompraIngresso()
IniciaCompra()
ListaProgramacao()
GetProgramacao(int)
GetFilme(char)
GetSala(char)
GetSessao(data)
New()
ShowProgramacao()
SelecionaData()
ListaProgramacao()
SelecionaSessao()
CompraIngresso()
CompraIngresso()
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
(from SQ01.01 - Seleciona sessão)
CtrlCompraIngresso
:
CtrlCompraIngresso
(from SQ01.01 - Seleciona sessão)
FormIngressos :
FormIngresso
TiposIngressos :
PrecoIngresso
Sala :Sala Sessao :Sessao Taxa :TaxaServico
alt UC02.01
[Cliente já cadastrado]
alt UC01.02
[Cliente novo]
alt Identificação do cliente
[Cliente já cadastrado]
[Primeira compra]
Continua no SQ01.01 -
Confirma Compra (cartão)
GetTiposIngresso()
New()
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()
Informa login e senha()
Primeira compra()
ConfirmaCompra()
[Login efetuado]:
ConfirmaCompra()
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
(from SQ01.01 - Seleciona sessão)
CtrlCompraIngresso
:
CtrlCompraIngresso
(from SQ01.01 - Seleciona sessão)
FormCartao :
FormFinalizacao
WebService :
WebService
Prestadora Cartão CtrlCartao :
CtrlCartao
Ingresso :Ingresso IngressosComprados
:
IngressoComprado
Sessao :Sessao
New()
Informa dados cartao()
ProcessaCartao()
ProcessaCartao()
SolicitaServico()
SubmeteRequisicao()
RetornaProcessamento()
[Pagamento negado]:
CancelaCompra()
Msg(Pagamento não foi confirmado)
[Pagamento efetuado]:
ConfirmaPagamento()
InsereIngresso(int) :protocolo
Para cada tipo de ingresso
*InsereIngressos()
AtualizaIngressosVendidos()
Msg(O número do protocolo de retirada de ingressos é
<<nnn>>.)
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
Diagrama de Estados para a Classe Ingresso
Compra ingresso
Ingresso comprado
Ingresso emitido
Emitido
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
Usuario
- nomePessoa: char
- telefone: char
- email: char
- senha: char
- ValidaUsuario(Integer, Integer) : Boolean
Cliente
- endereco: char
- dataNascimento: date
- CPF: char
- CEP: char
- Bairro: char
- RG: char
- sexo: char
+ ValidaLogin() : boolean
Cidade
- nomeCidade: char
- Estado: char
Filme
- Titulo: char
- siteOficial: char
- Sinopse: char
+ GetFilme(char) : void
Sala
- nomeSala: char
- capacidade: int
+ GetSala(char) : void
+ GetCapacidade() : void
Programacao
- periodoExibicaoInicial: date
- periodoExibicaoFinal: date
+ GetProgramacao(int) : void
Sessao
- data: date
- hora: char
- IngressosVendidos: int
+ GetSessao(int) : void
+ GetIngressosVendidos() : void
+ AtualizaIngressosVendidos() : void
Ingresso
- numeroProtocolo: int
- valorTotal: double
- cartaoCredito: char
- validadeCartao: date
- statusIngresso: char
+ InsereIngresso(int) : void
PrecoIngresso
- tipoIngresso: char
- precoIngresso: double
+ GetTiposIngresso() : void
IngressoComprado
- quantidade: int
+ InsereIngressos() : void
TaxaServico
- valorTaxa: double
+ GetTaxa() : void
Funcionario
0..*
1
0..*
1
1
1..*
0..*
1
0..*
1
0..*1
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
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
Modelo
Controle
Visão
Site
+ CompraIngresso() : void
FormProgramacao
+ New() : void
+ ShowProgramacao() : void
+ SelecionaSessao() : void
+ SelecionaData() : void
CtrlSite
+ CompraIngresso() : void
CtrlCompraIngresso
+ IniciaCompra() : void
+ CompraIngresso() : void
+ ConfirmaIngressos() : void
+ CalculaTotal() : void
+ VerificaDisponibilidade() : void
+ ConfirmaCompra() : void
+ ProcessaCartao() : void
+ ConfirmaPagamento() : void
+ CancelaCompra() : void
CtrlConsultaProgramacao
+ ListaProgramacao() : void
+ CompraIngresso() : void
Programacao
- periodoExibicaoInicial: date
- periodoExibicaoFinal: date
+ GetProgramacao(int) : void
Filme
- Titulo: char
- siteOficial: char
- Sinopse: char
+ GetFilme(char) : void
Sala
- nomeSala: char
- capacidade: int
+ GetSala(char) : void
+ GetCapacidade() : void
Sessao
- data: date
- hora: char
- IngressosVendidos: int
+ GetSessao(int) : void
+ GetIngressosVendidos() : void
+ AtualizaIngressosVendidos() : void
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
Modelo
Controle
Visão
FormIngresso
+ New() : void
+ ConfirmaIngressos() : void
+ Msg(char) : void
+ ApresentaTotal() : void
+ ConfirmaCompra() : void
CtrlCompraIngresso
+ IniciaCompra() : void
+ CompraIngresso() : void
+ ConfirmaIngressos() : void
+ CalculaTotal() : void
+ VerificaDisponibilidade() : void
+ ConfirmaCompra() : void
+ ProcessaCartao() : void
+ ConfirmaPagamento() : void
+ CancelaCompra() : void
Sala
- nomeSala: char
- capacidade: int
+ GetSala(char) : void
+ GetCapacidade() : void
Sessao
- data: date
- hora: char
- IngressosVendidos: int
+ GetSessao(int) : void
+ GetIngressosVendidos() : void
+ AtualizaIngressosVendidos() : void
PrecoIngresso
- tipoIngresso: char
- precoIngresso: double
+ GetTiposIngresso() : void
TaxaServ ico
- valorTaxa: double
+ GetTaxa() : void
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)
Modelo
Controle
Visão
FormFinalizacao
+ New() : void
+ Msg(char) : void
WebService
+ SolicitaServico() : void
CtrlCompraIngresso
+ IniciaCompra() : void
+ CompraIngresso() : void
+ ConfirmaIngressos() : void
+ CalculaTotal() : void
+ VerificaDisponibilidade() : void
+ ConfirmaCompra() : void
+ ProcessaCartao() : void
+ ConfirmaPagamento() : void
+ CancelaCompra() : void
CtrlCartao
+ ProcessaCartao() : void
Ingresso
- numeroProtocolo: int
- valorTotal: double
- cartaoCredito: char
- validadeCartao: date
- statusIngresso: char
+ InsereIngresso(int) : void
IngressoComprado
- quantidade: int
+ InsereIngressos() : void
Sessao
- data: date
- hora: char
- IngressosVendidos: int
+ GetSessao(int) : void
+ GetIngressosVendidos() : 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
Programacao
«Chave Primária»
*PK idProgramacao: INTEGER
«column»
FK idFilme: INTEGER
FK idSala: INTEGER
periodoExibicaoInicial: DATE
periodoExibicaoFinal: DATE
Sessao
«Chave Primária»
*pfK idProgramacao: INTEGER
*PK dataHora: DATETIME
FK_Sessao_Programacao
PK_Programacao
FK_Programacao_Sala
PK_Sala
FK_Programacao_Filme
PK_Filme
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...
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
Programacao
«Chave Primária»
*PK idProgramacao: INTEGER
«column»
FK idFilme: INTEGER
FK idSala: INTEGER
periodoExibicaoInicial: DATE
periodoExibicaoFinal: DATE
Sessao
«Chave Primária»
*pfK idProgramacao: INTEGER
*PK dataHora: DATETIME
«column»
ingressosVendidos: INTEGER
Cidade
«Chave Primária, column»
*PK cidadeID: INTEGER
«column»
nomeCidade: VARCHAR(50)
Estado: CHAR(2)
Cliente
«Chave Primária, column»
*pfK clienteID: INTEGER
«column»
FK cidadeID: INTEGER
endereco: VARCHAR(100)
dataNascimento: DATETIME
CPF: CHAR(11)
CEP: CHAR(8)
Bairro: CHAR(20)
RG: CHAR(20)
sexo: CHAR(1)
Ingresso
«Chave Primária, column»
*PK ingressoID: INTEGER
«column»
FK clienteID: INTEGER
FK idProgramacao: INTEGER
FK dataHoraSessao: DATETIME
numeroProtocolo: INTEGER
statusIngresso: CHAR(1)
IngressoComprado
«Chave Primária, column»
*pfK ingressoID: INTEGER
«Chave Primária»
*pfK precoIngressoID: INTEGER
«column»
quantidade: int
PrecoIngresso
«Chave Primária, column»
*PK precoIngressoID: INTEGER
«column»
tipoIngresso: CHAR(1)
precoIngresso: DOUBLE
TaxaServ ico
«Chave Primária, column»
*PK taxaServicoID: INTEGER
«column»
valorTaxa: double
Usuario
«Chave Primária, column»
*PK usuarioID: INTEGER
«column»
nomePessoa: VARCHAR(50)
telefone: CHAR(10)
email: VARCHAR(70)
senha: CHAR(30)
Funcionario: BOOL
Por segurança, os
dados do cartão de
crédito não são
armazenados no banco
de dados.
Acrescentado o
atributo
ingressosVendidos.
FK_IngressoComprado_PrecoIngresso
PK_PrecoIngresso
FK_IngressoComprado_Ingresso P
PK_Ingresso
FK_Ingresso_Sessao
PK_Sessao
FK_Ingresso_Cliente
PK_Cliente
FK_Cliente_Usuario Z
PK_Usuario
FK_Cliente_Cidade
PK_Cidade
FK_Sessao_Programacao
PK_Programacao
FK_Programacao_Sala
PK_Sala
FK_Programacao_Filme
PK_Filme
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
Banco de dados
MySQL
TomCat
Web Serv ice
(serv idor)
Web Service
(cliente)
Nav egador
«file»
Cinema.war
«library»
JDBC
HTTP
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
Arquitetura Cinema
Servidor BancoServidor WEB
Banco de dados
MySQL
TomCat
Prestadora Cartão Crédito
Web Service
(servidor)
Web Service
(cliente)
Computador cliente
Navegador
Computador funcionário
Navegador
«file»
Cinema.war
«library»
JDBC
HTTP
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
Type
Current
Status
Description Input Acceptance
Criteria
Last Run Result
Details
1. Compra
ingresso de
cinema
Standar
d
Not Run
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
1) O cliente clica no
link Ingressos
2) O cliente escolhe
o filme "Queime
depois de ler" e a
sessão das "19:00"
3) O cliente informa
a quantidade 2
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
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
No passo 4 do
Input, verificar se
o total está
correto: (valor dos
ingressos
apresentados +
taxa de serviço) *
2
Após passo 5 do
Input, é
apresentado o
número do
protocolo de
compra dos
ingressos.
09/12/2008
Sistema de Venda de Ingressos de Cinema
via Internet
Documento de projeto do software Página:38
Name Test
Type
Current
Status
Description Input Acceptance
Criteria
Last Run Result
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
2 do fluxo 1, re-apresentando
as sessões para a data
informada.
1) O cliente clica no
link Ingressos
2) O cliente escolhe
o filme "Queime
depois de ler", uma
data diferente da
data corrente
(hoje), e a sessão
das "19:00"
3) O cliente informa
a quantidade 2
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
No passo 4 do
Input, verificar se
o total está
correto: (valor dos
ingressos
apresentados +
taxa de serviço) *
2
Após passo 5 do
Input, é
apresentado o
número do
protocolo de
compra dos
ingressos para a
data selecionada
no passo 2 do
Input.
09/12/2008
3.
Cancelamento
da compra
Not Run
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.
1) O cliente clica no
link Ingressos
2) O cliente escolhe
o filme "Queime
depois de ler" e a
sessão das "19:00"
3) O cliente informa
a quantidade 2
A compra do
ingresso foi
interrompida
(cancelada).
Retornou à página
principal do site
da empresa de
cinema.
09/12/2008
Sistema de Venda de Ingressos de Cinema
via Internet
Documento de projeto do software Página:39
Name Test
Type
Current
Status
Description Input Acceptance
Criteria
Last Run Result
Details
para o tipo de
ingresso inteira.
4) O cliente clica
em Cancelar.
4. Cadastra
cliente
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
5. Sessão
lotada
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.
1) O cliente clica no
link Ingressos
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
6. Ingressos
indisponíveis
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 filme "Queime
depois de ler" e a
sessão das "19:00"
3) O cliente informa
a quantidade 20
para o tipo de
ingresso inteira, 50
para o tipo meia e
200 para o tipo
senior.
O sistema
apresenta
mensagem
informando que o
total de ingressos
ultrapassa a
quantidade
disponível para a
sessão escolhida.
O sistema
mantém-se na
tela para entrada
de quantidades de
ingressos.
09/12/2008
3. Cliente já
cadastrado
Standar
d
Not Run
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.
1) O cliente informa
os dados:
nome completo:
Maria da Silva
e-mail:
maria@brasil.com.
br
senha: 4321
CPF: 767.657.400-
58 (Obtido em
O sistema informa
que o cliente já é
cadastrado. Não
permite seu
cadastro.
09/12/2008
Sistema de Venda de Ingressos de Cinema
via Internet
Documento de projeto do software Página:40
Name Test
Type
Current
Status
Description Input Acceptance
Criteria
Last Run Result
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
obrigatórios
Standar
d
Not Run 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
1) O cliente informa
os dados:
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
O sistema informa
que o campo
senha é
obrigatório e não
deixa prosseguir
na compra do
ingresso.
09/12/2008
Sistema de Venda de Ingressos de Cinema
via Internet
Documento de projeto do software Página:41
Name Test
Type
Current
Status
Description Input Acceptance
Criteria
Last Run Result
Details
UF: SC e;
telefone: (47)
99550088
1. Cadastra
cliente
Standar
d
Not Run
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
1) O cliente informa
os dados:
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:
20/09/1975
sexo: F
endereço
completo: Rua
Itajaí, 230
CEP: 88300-800
bairro: Centro
cidade: Brusque
UF: SC e;
telefone: (47)
99887766
O cliente foi
cadastrado com
sucesso e o
usuário consegue
prosseguir na
compra do
ingresso.
09/12/2008

Mais conteúdo relacionado

Mais procurados

Analise de Requisitos
Analise de RequisitosAnalise de Requisitos
Analise de Requisitoselliando dias
 
Aula 03 - Introdução aos Diagramas de Atividade
Aula 03 - Introdução aos Diagramas de AtividadeAula 03 - Introdução aos Diagramas de Atividade
Aula 03 - Introdução aos Diagramas de AtividadeAlberto Simões
 
Apostilas - cliente servidor - aula 1 - fabiula
Apostilas - cliente servidor - aula 1 - fabiulaApostilas - cliente servidor - aula 1 - fabiula
Apostilas - cliente servidor - aula 1 - fabiulaDaniel Silveira
 
JAD e levantamento de requisitos
JAD e levantamento de requisitosJAD e levantamento de requisitos
JAD e levantamento de requisitosEduardo Castro
 
Aps lista de exercícios
Aps lista de exercíciosAps lista de exercícios
Aps lista de exercíciosGuilherme
 
Engenharia Requisitos - Aula4 06 03 2006
Engenharia Requisitos - Aula4 06 03 2006Engenharia Requisitos - Aula4 06 03 2006
Engenharia Requisitos - Aula4 06 03 2006Luís Fernando Richter
 
Análise e Projeto de Sistemas
Análise e Projeto de SistemasAnálise e Projeto de Sistemas
Análise e Projeto de SistemasGuilherme
 
Exemplo de documento de requisitos
Exemplo de documento de requisitosExemplo de documento de requisitos
Exemplo de documento de requisitosLeandro Rodrigues
 
Arquitetura Cliente-Servidor
Arquitetura Cliente-ServidorArquitetura Cliente-Servidor
Arquitetura Cliente-ServidorIsrael Messias
 
Projeto de Banco de Dados: Gerenciamento de Locadora de Vídeo (parte escrita)
Projeto de Banco de Dados: Gerenciamento de Locadora de Vídeo (parte escrita)Projeto de Banco de Dados: Gerenciamento de Locadora de Vídeo (parte escrita)
Projeto de Banco de Dados: Gerenciamento de Locadora de Vídeo (parte escrita)Gleyciana Garrido
 
Especificação de Requisitos de Software
Especificação de Requisitos de SoftwareEspecificação de Requisitos de Software
Especificação de Requisitos de SoftwareRalph Rassweiler
 
Aula 4 - Sistemas Gerenciadores de Banco de Dados
Aula 4 - Sistemas Gerenciadores de Banco de DadosAula 4 - Sistemas Gerenciadores de Banco de Dados
Aula 4 - Sistemas Gerenciadores de Banco de DadosVitor Hugo Melo Araújo
 
Arquitetura de Software
Arquitetura de SoftwareArquitetura de Software
Arquitetura de Softwareeros.viggiano
 
Apostila Informática Básica - Completa.pdf
Apostila Informática  Básica - Completa.pdfApostila Informática  Básica - Completa.pdf
Apostila Informática Básica - Completa.pdfJonalvoAbsairLopesLo
 

Mais procurados (20)

Caso De Uso
Caso De UsoCaso De Uso
Caso De Uso
 
Fundamentos da Engenharia de Software
Fundamentos da Engenharia de SoftwareFundamentos da Engenharia de Software
Fundamentos da Engenharia de Software
 
Analise de Requisitos
Analise de RequisitosAnalise de Requisitos
Analise de Requisitos
 
Aula 7 - Modelagem de Software
Aula 7 - Modelagem de SoftwareAula 7 - Modelagem de Software
Aula 7 - Modelagem de Software
 
Aula 03 - Introdução aos Diagramas de Atividade
Aula 03 - Introdução aos Diagramas de AtividadeAula 03 - Introdução aos Diagramas de Atividade
Aula 03 - Introdução aos Diagramas de Atividade
 
Apostilas - cliente servidor - aula 1 - fabiula
Apostilas - cliente servidor - aula 1 - fabiulaApostilas - cliente servidor - aula 1 - fabiula
Apostilas - cliente servidor - aula 1 - fabiula
 
JAD e levantamento de requisitos
JAD e levantamento de requisitosJAD e levantamento de requisitos
JAD e levantamento de requisitos
 
Aps lista de exercícios
Aps lista de exercíciosAps lista de exercícios
Aps lista de exercícios
 
Engenharia Requisitos - Aula4 06 03 2006
Engenharia Requisitos - Aula4 06 03 2006Engenharia Requisitos - Aula4 06 03 2006
Engenharia Requisitos - Aula4 06 03 2006
 
Modelagem de Dados
Modelagem de DadosModelagem de Dados
Modelagem de Dados
 
Análise e Projeto de Sistemas
Análise e Projeto de SistemasAnálise e Projeto de Sistemas
Análise e Projeto de Sistemas
 
Exemplo de documento de requisitos
Exemplo de documento de requisitosExemplo de documento de requisitos
Exemplo de documento de requisitos
 
Arquitetura Cliente-Servidor
Arquitetura Cliente-ServidorArquitetura Cliente-Servidor
Arquitetura Cliente-Servidor
 
Sistemas Operativos
Sistemas OperativosSistemas Operativos
Sistemas Operativos
 
Projeto de Banco de Dados: Gerenciamento de Locadora de Vídeo (parte escrita)
Projeto de Banco de Dados: Gerenciamento de Locadora de Vídeo (parte escrita)Projeto de Banco de Dados: Gerenciamento de Locadora de Vídeo (parte escrita)
Projeto de Banco de Dados: Gerenciamento de Locadora de Vídeo (parte escrita)
 
Especificação de Requisitos de Software
Especificação de Requisitos de SoftwareEspecificação de Requisitos de Software
Especificação de Requisitos de Software
 
Aula 4 - Sistemas Gerenciadores de Banco de Dados
Aula 4 - Sistemas Gerenciadores de Banco de DadosAula 4 - Sistemas Gerenciadores de Banco de Dados
Aula 4 - Sistemas Gerenciadores de Banco de Dados
 
Arquitetura de Software
Arquitetura de SoftwareArquitetura de Software
Arquitetura de Software
 
Apostila Informática Básica - Completa.pdf
Apostila Informática  Básica - Completa.pdfApostila Informática  Básica - Completa.pdf
Apostila Informática Básica - Completa.pdf
 
Paradigmas de programação
Paradigmas de programaçãoParadigmas de programação
Paradigmas de programação
 

Semelhante a Cinema levantamento de requisitos 42756538

Teste de usabilidade - Cinemark
Teste de usabilidade - CinemarkTeste de usabilidade - Cinemark
Teste de usabilidade - CinemarkLuiz Agner
 
Dicas diagrama de casos de uso
Dicas diagrama de casos de usoDicas diagrama de casos de uso
Dicas diagrama de casos de usoRita Almeida
 
Estudo de caso_com_modelagem_de_software_halan
Estudo de caso_com_modelagem_de_software_halanEstudo de caso_com_modelagem_de_software_halan
Estudo de caso_com_modelagem_de_software_halanHalan Ridolphi
 
Workshop de Introdução ao BDD
Workshop de Introdução ao BDDWorkshop de Introdução ao BDD
Workshop de Introdução ao BDDinovacaoDBServer
 
[GUTS-RS] Workshop de Introdução ao Behaviour-Driven Development
[GUTS-RS] Workshop de Introdução ao Behaviour-Driven Development[GUTS-RS] Workshop de Introdução ao Behaviour-Driven Development
[GUTS-RS] Workshop de Introdução ao Behaviour-Driven DevelopmentGUTS-RS
 
Apresentacao south
Apresentacao southApresentacao south
Apresentacao southJean Junior
 
Es 02 desenvolvimento de software dirigido por casos de uso - parte i
Es 02   desenvolvimento de software dirigido por casos de uso - parte iEs 02   desenvolvimento de software dirigido por casos de uso - parte i
Es 02 desenvolvimento de software dirigido por casos de uso - parte iRodrigo Gomes da Silva
 
Trabalho Mkt Digital - SARAIVA
Trabalho Mkt Digital - SARAIVATrabalho Mkt Digital - SARAIVA
Trabalho Mkt Digital - SARAIVABianca Furtado
 
Analisando Dados de Streaming em Tempo Real com Amazon Kinesis - BDA303 - Sa...
Analisando Dados de Streaming em Tempo Real com Amazon Kinesis -  BDA303 - Sa...Analisando Dados de Streaming em Tempo Real com Amazon Kinesis -  BDA303 - Sa...
Analisando Dados de Streaming em Tempo Real com Amazon Kinesis - BDA303 - Sa...Amazon Web Services
 
Sistema de Credenciamento e Gestão de Eventos
Sistema de Credenciamento e Gestão de EventosSistema de Credenciamento e Gestão de Eventos
Sistema de Credenciamento e Gestão de EventosFazendo Mais
 
Fundamentos de Sistemas de Informacao - Aula #9_2009_2
Fundamentos de Sistemas de Informacao - Aula #9_2009_2Fundamentos de Sistemas de Informacao - Aula #9_2009_2
Fundamentos de Sistemas de Informacao - Aula #9_2009_2Ismar Silveira
 
Introdução ao BDD com BDD Warriors
Introdução ao BDD com BDD WarriorsIntrodução ao BDD com BDD Warriors
Introdução ao BDD com BDD WarriorsinovacaoDBServer
 
Trabalho de computação aplicada versão final
Trabalho de computação aplicada   versão finalTrabalho de computação aplicada   versão final
Trabalho de computação aplicada versão finalAdemir Amaral
 
Portifolio segundo semestre UNOPAR
Portifolio segundo semestre UNOPARPortifolio segundo semestre UNOPAR
Portifolio segundo semestre UNOPARgelolima
 
Proposta de Sites Para Imobiliárias - Venda Seu Imóvel Facil
Proposta de Sites Para Imobiliárias - Venda Seu Imóvel FacilProposta de Sites Para Imobiliárias - Venda Seu Imóvel Facil
Proposta de Sites Para Imobiliárias - Venda Seu Imóvel FacilSignativa Desing & Tecnologia
 

Semelhante a Cinema levantamento de requisitos 42756538 (20)

Teste de usabilidade - Cinemark
Teste de usabilidade - CinemarkTeste de usabilidade - Cinemark
Teste de usabilidade - Cinemark
 
Dicas diagrama de casos de uso
Dicas diagrama de casos de usoDicas diagrama de casos de uso
Dicas diagrama de casos de uso
 
Estudo de caso_com_modelagem_de_software_halan
Estudo de caso_com_modelagem_de_software_halanEstudo de caso_com_modelagem_de_software_halan
Estudo de caso_com_modelagem_de_software_halan
 
Workshop de Introdução ao BDD
Workshop de Introdução ao BDDWorkshop de Introdução ao BDD
Workshop de Introdução ao BDD
 
[GUTS-RS] Workshop de Introdução ao Behaviour-Driven Development
[GUTS-RS] Workshop de Introdução ao Behaviour-Driven Development[GUTS-RS] Workshop de Introdução ao Behaviour-Driven Development
[GUTS-RS] Workshop de Introdução ao Behaviour-Driven Development
 
Apresentacao south
Apresentacao southApresentacao south
Apresentacao south
 
Es 02 desenvolvimento de software dirigido por casos de uso - parte i
Es 02   desenvolvimento de software dirigido por casos de uso - parte iEs 02   desenvolvimento de software dirigido por casos de uso - parte i
Es 02 desenvolvimento de software dirigido por casos de uso - parte i
 
Trabalho Mkt Digital - SARAIVA
Trabalho Mkt Digital - SARAIVATrabalho Mkt Digital - SARAIVA
Trabalho Mkt Digital - SARAIVA
 
jean carlos strapasson
jean carlos strapassonjean carlos strapasson
jean carlos strapasson
 
Analisando Dados de Streaming em Tempo Real com Amazon Kinesis - BDA303 - Sa...
Analisando Dados de Streaming em Tempo Real com Amazon Kinesis -  BDA303 - Sa...Analisando Dados de Streaming em Tempo Real com Amazon Kinesis -  BDA303 - Sa...
Analisando Dados de Streaming em Tempo Real com Amazon Kinesis - BDA303 - Sa...
 
Cinema
CinemaCinema
Cinema
 
Sistema de Credenciamento e Gestão de Eventos
Sistema de Credenciamento e Gestão de EventosSistema de Credenciamento e Gestão de Eventos
Sistema de Credenciamento e Gestão de Eventos
 
Fundamentos de Sistemas de Informacao - Aula #9_2009_2
Fundamentos de Sistemas de Informacao - Aula #9_2009_2Fundamentos de Sistemas de Informacao - Aula #9_2009_2
Fundamentos de Sistemas de Informacao - Aula #9_2009_2
 
Introdução ao BDD com BDD Warriors
Introdução ao BDD com BDD WarriorsIntrodução ao BDD com BDD Warriors
Introdução ao BDD com BDD Warriors
 
Trabalho de computação aplicada versão final
Trabalho de computação aplicada   versão finalTrabalho de computação aplicada   versão final
Trabalho de computação aplicada versão final
 
Portifolio segundo semestre UNOPAR
Portifolio segundo semestre UNOPARPortifolio segundo semestre UNOPAR
Portifolio segundo semestre UNOPAR
 
Proposta ImobiliáRia ConcessãO
Proposta ImobiliáRia   ConcessãOProposta ImobiliáRia   ConcessãO
Proposta ImobiliáRia ConcessãO
 
Proposta de Sites Para Imobiliárias - Venda Seu Imóvel Facil
Proposta de Sites Para Imobiliárias - Venda Seu Imóvel FacilProposta de Sites Para Imobiliárias - Venda Seu Imóvel Facil
Proposta de Sites Para Imobiliárias - Venda Seu Imóvel Facil
 
Locadora web
Locadora webLocadora web
Locadora web
 
Tcc
TccTcc
Tcc
 

Cinema levantamento de requisitos 42756538

  • 1. 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
  • 2. 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
  • 3. 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
  • 4. 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 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 atual 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)
  • 5. 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 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
  • 6. 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 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
  • 7. 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 Empresa de Cartão de Crédito Início 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 Realiza cadastro Registra ou atualiza dados do cliente Cliente novo? Informa login e senha e atualiza cadastro Informa dados do cartão de crédito Env ia dados para prestadora de cartão Processa cartão Venda bem sucedida Apresenta resumo do pedido Registra ingressos e fornece número do protocolo Pagamento aceito? Informa ao usuário negativa da prestadora de cartão Venda cancelada [Não] [Sim] [Nao] [Sim] Figura: 5 Diagrama de atividades
  • 8. 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 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
  • 9. 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) custom 2.1 Requisitos Funcionais Módulo CinemaMódulo Cliente RF03 - O sistema deve permitir a aquisição de diversos ingressos em uma mesma compra. RF02 - O sistema deve permitir a escolha da sessão de cinema para a qual o cliente deseja adquirir ingressos. RF01 - O sistema deve permitir a compra de ingressos de cinema através da web. 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. 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. 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)
  • 10. 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.
  • 11. 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.
  • 12. 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 Requisitos não funcionais associados aos funcionais Requisitos não funcionais gerais do sistema NF03 - As senhas de acesso ao sistema não devem estar diretamente visíveis no banco de dados e sim de algum modo criptografado. 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. NF02 - O sistema para consulta deve permitir o acesso a no mínimo 100 usuários simultaneamente. NF04 - A interface disponível para o cliente deve ser simples de forma que um usuário inexperiente possa operá-lo NF13 - O sistema será desenvolvido no banco de dados MySQL NF14 - O sistema será desenvolvido em Java 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. 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. 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. 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. Alguns autores denominam esses requisitos como Regras de Negócio, associadas aos requisitos funcionais. NF15 - O Container Servlet adotado será o TomCat Apesar de não explícito na entrevista, cabe ao projetista especificar a arquitetura completa do aplicativo. Figura: 8 Requisitos não funcionais NF01 - O sistema deve possuir um mecanismo de segurança para evitar que pessoas
  • 13. 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
  • 14. 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)
  • 15. 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
  • 16. 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 02 - Emissão ingresso + Funcionario + UC02.02 Emite ingresso + UC 02.01 Loga no Sistema Pacote 01 - Venda de ingresso web + Prestadora de Cartão de Crédito + Cliente + UC01.01 Compra ingressos + UC01.02 Cadastra cliente Figura: 9 Pacotes de casos de uso
  • 17. 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... Cliente UC01.01 Compra ingressos Prestadora de Cartão de Crédito UC01.02 Cadastra cliente (from Pacote 02 - Emissão ingresso) UC 02.01 Loga no Sistema «extend» «extend» 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.
  • 18. 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.
  • 19. 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.
  • 20. 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)
  • 21. Sistema de Venda de Ingressos de Cinema via Internet Documento de projeto do software Página:21 uc Pacote 02 - Emissão ingresso Funcionario UC 02.01 Loga no Sistema UC02.02 Emite ingresso Cliente (from Pacote 01 - Venda de ingresso web) Número do protoco «flow» 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)
  • 22. 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.
  • 23. 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.
  • 24. 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 CtrlConsulta : CtrlConsultaProgramacao Programacao : FormProgramacao Filme :FilmeProgramacao : Programacao Sala :Sala Sessao :SessaoSite :CtrlSite CtrlCompraIngresso : CtrlCompraIngresso alt Seleção de outra data [Cliente seleciona outra data] Continua no diagrama SQ01.01 - Informa quantidades CompraIngresso() CompraIngresso() IniciaCompra() ListaProgramacao() GetProgramacao(int) GetFilme(char) GetSala(char) GetSessao(data) New() ShowProgramacao() SelecionaData() ListaProgramacao() SelecionaSessao() CompraIngresso() CompraIngresso() Figura: 12 Compra ingresso
  • 25. 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 (from SQ01.01 - Seleciona sessão) CtrlCompraIngresso : CtrlCompraIngresso (from SQ01.01 - Seleciona sessão) FormIngressos : FormIngresso TiposIngressos : PrecoIngresso Sala :Sala Sessao :Sessao Taxa :TaxaServico alt UC02.01 [Cliente já cadastrado] alt UC01.02 [Cliente novo] alt Identificação do cliente [Cliente já cadastrado] [Primeira compra] Continua no SQ01.01 - Confirma Compra (cartão) GetTiposIngresso() New() 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() Informa login e senha() Primeira compra() ConfirmaCompra() [Login efetuado]: ConfirmaCompra() Figura: 13 Informa quantidade
  • 26. 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 (from SQ01.01 - Seleciona sessão) CtrlCompraIngresso : CtrlCompraIngresso (from SQ01.01 - Seleciona sessão) FormCartao : FormFinalizacao WebService : WebService Prestadora Cartão CtrlCartao : CtrlCartao Ingresso :Ingresso IngressosComprados : IngressoComprado Sessao :Sessao New() Informa dados cartao() ProcessaCartao() ProcessaCartao() SolicitaServico() SubmeteRequisicao() RetornaProcessamento() [Pagamento negado]: CancelaCompra() Msg(Pagamento não foi confirmado) [Pagamento efetuado]: ConfirmaPagamento() InsereIngresso(int) :protocolo Para cada tipo de ingresso *InsereIngressos() AtualizaIngressosVendidos() Msg(O número do protocolo de retirada de ingressos é <<nnn>>.) Figura: 14 Confirma compra
  • 27. 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 Diagrama de Estados para a Classe Ingresso Compra ingresso Ingresso comprado Ingresso emitido Emitido 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
  • 28. 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 Usuario - nomePessoa: char - telefone: char - email: char - senha: char - ValidaUsuario(Integer, Integer) : Boolean Cliente - endereco: char - dataNascimento: date - CPF: char - CEP: char - Bairro: char - RG: char - sexo: char + ValidaLogin() : boolean Cidade - nomeCidade: char - Estado: char Filme - Titulo: char - siteOficial: char - Sinopse: char + GetFilme(char) : void Sala - nomeSala: char - capacidade: int + GetSala(char) : void + GetCapacidade() : void Programacao - periodoExibicaoInicial: date - periodoExibicaoFinal: date + GetProgramacao(int) : void Sessao - data: date - hora: char - IngressosVendidos: int + GetSessao(int) : void + GetIngressosVendidos() : void + AtualizaIngressosVendidos() : void Ingresso - numeroProtocolo: int - valorTotal: double - cartaoCredito: char - validadeCartao: date - statusIngresso: char + InsereIngresso(int) : void PrecoIngresso - tipoIngresso: char - precoIngresso: double + GetTiposIngresso() : void IngressoComprado - quantidade: int + InsereIngressos() : void TaxaServico - valorTaxa: double + GetTaxa() : void Funcionario 0..* 1 0..* 1 1 1..* 0..* 1 0..* 1 0..*1 Figura: 16 Classes de domínio
  • 29. 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 CE01.01 - Seleciona sessão CE01.01 - Informa quantidades CE01.01 - Confirma compra (cartão) Figura: 17 Pacotes classes de especificação
  • 30. 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 Modelo Controle Visão Site + CompraIngresso() : void FormProgramacao + New() : void + ShowProgramacao() : void + SelecionaSessao() : void + SelecionaData() : void CtrlSite + CompraIngresso() : void CtrlCompraIngresso + IniciaCompra() : void + CompraIngresso() : void + ConfirmaIngressos() : void + CalculaTotal() : void + VerificaDisponibilidade() : void + ConfirmaCompra() : void + ProcessaCartao() : void + ConfirmaPagamento() : void + CancelaCompra() : void CtrlConsultaProgramacao + ListaProgramacao() : void + CompraIngresso() : void Programacao - periodoExibicaoInicial: date - periodoExibicaoFinal: date + GetProgramacao(int) : void Filme - Titulo: char - siteOficial: char - Sinopse: char + GetFilme(char) : void Sala - nomeSala: char - capacidade: int + GetSala(char) : void + GetCapacidade() : void Sessao - data: date - hora: char - IngressosVendidos: int + GetSessao(int) : void + GetIngressosVendidos() : void + AtualizaIngressosVendidos() : void Figura: 18 Seleciona sessão
  • 31. 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 Modelo Controle Visão FormIngresso + New() : void + ConfirmaIngressos() : void + Msg(char) : void + ApresentaTotal() : void + ConfirmaCompra() : void CtrlCompraIngresso + IniciaCompra() : void + CompraIngresso() : void + ConfirmaIngressos() : void + CalculaTotal() : void + VerificaDisponibilidade() : void + ConfirmaCompra() : void + ProcessaCartao() : void + ConfirmaPagamento() : void + CancelaCompra() : void Sala - nomeSala: char - capacidade: int + GetSala(char) : void + GetCapacidade() : void Sessao - data: date - hora: char - IngressosVendidos: int + GetSessao(int) : void + GetIngressosVendidos() : void + AtualizaIngressosVendidos() : void PrecoIngresso - tipoIngresso: char - precoIngresso: double + GetTiposIngresso() : void TaxaServ ico - valorTaxa: double + GetTaxa() : void Figura: 19 Informa quantidades
  • 32. 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) Modelo Controle Visão FormFinalizacao + New() : void + Msg(char) : void WebService + SolicitaServico() : void CtrlCompraIngresso + IniciaCompra() : void + CompraIngresso() : void + ConfirmaIngressos() : void + CalculaTotal() : void + VerificaDisponibilidade() : void + ConfirmaCompra() : void + ProcessaCartao() : void + ConfirmaPagamento() : void + CancelaCompra() : void CtrlCartao + ProcessaCartao() : void Ingresso - numeroProtocolo: int - valorTotal: double - cartaoCredito: char - validadeCartao: date - statusIngresso: char + InsereIngresso(int) : void IngressoComprado - quantidade: int + InsereIngressos() : void Sessao - data: date - hora: char - IngressosVendidos: int + GetSessao(int) : void + GetIngressosVendidos() : void + AtualizaIngressosVendidos() : void Figura: 20 Confirma compra
  • 33. 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 Programacao «Chave Primária» *PK idProgramacao: INTEGER «column» FK idFilme: INTEGER FK idSala: INTEGER periodoExibicaoInicial: DATE periodoExibicaoFinal: DATE Sessao «Chave Primária» *pfK idProgramacao: INTEGER *PK dataHora: DATETIME FK_Sessao_Programacao PK_Programacao FK_Programacao_Sala PK_Sala FK_Programacao_Filme PK_Filme Figura: 21 Banco de dados atual
  • 34. 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... 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 Programacao «Chave Primária» *PK idProgramacao: INTEGER «column» FK idFilme: INTEGER FK idSala: INTEGER periodoExibicaoInicial: DATE periodoExibicaoFinal: DATE Sessao «Chave Primária» *pfK idProgramacao: INTEGER *PK dataHora: DATETIME «column» ingressosVendidos: INTEGER Cidade «Chave Primária, column» *PK cidadeID: INTEGER «column» nomeCidade: VARCHAR(50) Estado: CHAR(2) Cliente «Chave Primária, column» *pfK clienteID: INTEGER «column» FK cidadeID: INTEGER endereco: VARCHAR(100) dataNascimento: DATETIME CPF: CHAR(11) CEP: CHAR(8) Bairro: CHAR(20) RG: CHAR(20) sexo: CHAR(1) Ingresso «Chave Primária, column» *PK ingressoID: INTEGER «column» FK clienteID: INTEGER FK idProgramacao: INTEGER FK dataHoraSessao: DATETIME numeroProtocolo: INTEGER statusIngresso: CHAR(1) IngressoComprado «Chave Primária, column» *pfK ingressoID: INTEGER «Chave Primária» *pfK precoIngressoID: INTEGER «column» quantidade: int PrecoIngresso «Chave Primária, column» *PK precoIngressoID: INTEGER «column» tipoIngresso: CHAR(1) precoIngresso: DOUBLE TaxaServ ico «Chave Primária, column» *PK taxaServicoID: INTEGER «column» valorTaxa: double Usuario «Chave Primária, column» *PK usuarioID: INTEGER «column» nomePessoa: VARCHAR(50) telefone: CHAR(10) email: VARCHAR(70) senha: CHAR(30) Funcionario: BOOL Por segurança, os dados do cartão de crédito não são armazenados no banco de dados. Acrescentado o atributo ingressosVendidos. FK_IngressoComprado_PrecoIngresso PK_PrecoIngresso FK_IngressoComprado_Ingresso P PK_Ingresso FK_Ingresso_Sessao PK_Sessao FK_Ingresso_Cliente PK_Cliente FK_Cliente_Usuario Z PK_Usuario FK_Cliente_Cidade PK_Cidade FK_Sessao_Programacao PK_Programacao FK_Programacao_Sala PK_Sala FK_Programacao_Filme PK_Filme Figura: 22 Banco de dados proposto
  • 35. 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 Banco de dados MySQL TomCat Web Serv ice (serv idor) Web Service (cliente) Nav egador «file» Cinema.war «library» JDBC HTTP Figura: 23 Componentes
  • 36. 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 Arquitetura Cinema Servidor BancoServidor WEB Banco de dados MySQL TomCat Prestadora Cartão Crédito Web Service (servidor) Web Service (cliente) Computador cliente Navegador Computador funcionário Navegador «file» Cinema.war «library» JDBC HTTP Figura: 24 Modelo implantação
  • 37. 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 Type Current Status Description Input Acceptance Criteria Last Run Result Details 1. Compra ingresso de cinema Standar d Not Run 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 1) O cliente clica no link Ingressos 2) O cliente escolhe o filme "Queime depois de ler" e a sessão das "19:00" 3) O cliente informa a quantidade 2 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 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 No passo 4 do Input, verificar se o total está correto: (valor dos ingressos apresentados + taxa de serviço) * 2 Após passo 5 do Input, é apresentado o número do protocolo de compra dos ingressos. 09/12/2008
  • 38. Sistema de Venda de Ingressos de Cinema via Internet Documento de projeto do software Página:38 Name Test Type Current Status Description Input Acceptance Criteria Last Run Result 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 2 do fluxo 1, re-apresentando as sessões para a data informada. 1) O cliente clica no link Ingressos 2) O cliente escolhe o filme "Queime depois de ler", uma data diferente da data corrente (hoje), e a sessão das "19:00" 3) O cliente informa a quantidade 2 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 No passo 4 do Input, verificar se o total está correto: (valor dos ingressos apresentados + taxa de serviço) * 2 Após passo 5 do Input, é apresentado o número do protocolo de compra dos ingressos para a data selecionada no passo 2 do Input. 09/12/2008 3. Cancelamento da compra Not Run 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. 1) O cliente clica no link Ingressos 2) O cliente escolhe o filme "Queime depois de ler" e a sessão das "19:00" 3) O cliente informa a quantidade 2 A compra do ingresso foi interrompida (cancelada). Retornou à página principal do site da empresa de cinema. 09/12/2008
  • 39. Sistema de Venda de Ingressos de Cinema via Internet Documento de projeto do software Página:39 Name Test Type Current Status Description Input Acceptance Criteria Last Run Result Details para o tipo de ingresso inteira. 4) O cliente clica em Cancelar. 4. Cadastra cliente 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 5. Sessão lotada 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. 1) O cliente clica no link Ingressos 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 6. Ingressos indisponíveis 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 filme "Queime depois de ler" e a sessão das "19:00" 3) O cliente informa a quantidade 20 para o tipo de ingresso inteira, 50 para o tipo meia e 200 para o tipo senior. O sistema apresenta mensagem informando que o total de ingressos ultrapassa a quantidade disponível para a sessão escolhida. O sistema mantém-se na tela para entrada de quantidades de ingressos. 09/12/2008 3. Cliente já cadastrado Standar d Not Run 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. 1) O cliente informa os dados: nome completo: Maria da Silva e-mail: maria@brasil.com. br senha: 4321 CPF: 767.657.400- 58 (Obtido em O sistema informa que o cliente já é cadastrado. Não permite seu cadastro. 09/12/2008
  • 40. Sistema de Venda de Ingressos de Cinema via Internet Documento de projeto do software Página:40 Name Test Type Current Status Description Input Acceptance Criteria Last Run Result 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 obrigatórios Standar d Not Run 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 1) O cliente informa os dados: 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 O sistema informa que o campo senha é obrigatório e não deixa prosseguir na compra do ingresso. 09/12/2008
  • 41. Sistema de Venda de Ingressos de Cinema via Internet Documento de projeto do software Página:41 Name Test Type Current Status Description Input Acceptance Criteria Last Run Result Details UF: SC e; telefone: (47) 99550088 1. Cadastra cliente Standar d Not Run 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 1) O cliente informa os dados: 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: 20/09/1975 sexo: F endereço completo: Rua Itajaí, 230 CEP: 88300-800 bairro: Centro cidade: Brusque UF: SC e; telefone: (47) 99887766 O cliente foi cadastrado com sucesso e o usuário consegue prosseguir na compra do ingresso. 09/12/2008