sistema de vendas on-line da bookstorecin.ufpe.br/~eng_soft/eti901/notasdeaulas/livraria.pdf ·...
TRANSCRIPT
UNIVERSIDADE FEDERAL DE PERNAMBUCO Centro de Informática
Sistema de Vendas On-line da BookStore Especificação e Projeto do Sistema
Curso de Especialização Tecnologia da Informação
Engenharia de Software
Gilberto Amado de Azevedo Cysneiros Filho
2002
Índice
1. Apresentação ................................................................................................................. 1 2. Introdução.......................................................................................................................... 2
2.1 Glossário...................................................................................................................... 4 3. Requisitos ...................................................................................................................... 5
3.1 Descrição dos Requisitos Funcionais .......................................................................... 5 3.2 Requisitos Não Funcionais.................................................................................... 6 3.3 Atores .................................................................................................................... 6 3.4 Casos de Uso ......................................................................................................... 7
UC1 – LogOnCliente .................................................................................................... 7 UC2 – Criar Novo Cliente............................................................................................. 8 UC3 – Atualizar Cliente ................................................................................................ 8 UC4 – Remover Cliente ................................................................................................ 9 UC5 – Encontrar Produtos ............................................................................................ 9 UC6 – Encontrar Livros .............................................................................................. 10 UC7 – Encontrar CDs ................................................................................................. 10 UC8 – Navegar nos Produtos ...................................................................................... 10 UC9 – Navegar nos Livros.......................................................................................... 11 UC10 – Navegar nos CDs ........................................................................................... 11 UC11 – Gerenciar Carrinho de Compra...................................................................... 11 UC12 – Exibir Carrinho de Compra ........................................................................... 12 UC13 – Efetivar Pedido .............................................................................................. 12 UC14 – Aceitar Pagamento por Cartão....................................................................... 13 UC15 – Exibir Pedido ................................................................................................. 14 UC16 – Cancelar Pedido ............................................................................................. 14 UC17 – Adicionar Item para o Carrinho de Compra .................................................. 15 UC18 – Fechar Pedido ................................................................................................ 15 UC19 – Adicionar Produto ao Catálogo ..................................................................... 15 UC20 – Atualizar Catálogo ......................................................................................... 16 UC21 – Remover Produto do Catálogo....................................................................... 16 UC22 – Novo Usuário................................................................................................. 17 UC23 – Atualizar Usuário........................................................................................... 17 UC24 – Remover Usuário ........................................................................................... 17 UC25 – LogOnUsuario ............................................................................................... 18
4. Diagramas de Seqüência ................................................................................................. 19 4.1 Diagrama de Seqüência – LogonOnCliente ............................................................. 19 4.2 Diagrama de Seqüência – Criar Novo Cliente .......................................................... 20 4.3 Diagrama de Seqüência – Atualizar Cliente ............................................................. 21 4.4 Diagrama de Seqüência – Remover Cliente.............................................................. 22
5. Diagramas de Classes...................................................................................................... 22 5.1 Pacote Loja................................................................................................................ 23 5.2 Pacote Produto........................................................................................................... 24 5.3 Pacote Pedido ............................................................................................................ 24 5.4 Pacote Cliente............................................................................................................ 25 5.5 Pacote Seguranca....................................................................................................... 26
Apêndice A – Protótipo da Interface................................................................................... 27 A1. Tela Principal ........................................................................................................... 27
A2. Tela de Livros ........................................................................................................... 28 A3. Tela de Navegação de Livros por Categoria............................................................. 29 A4. Tela de Carrinho de Compra..................................................................................... 30 A5. Tela de Efetivar Pedido ............................................................................................ 31 A6. Tela de Pedido Finalizado ........................................................................................ 32 A7. Tela de Seleção de um livro...................................................................................... 33
1
1. Apresentação Este documento tem o objetivo de apresentar a especificação e o projeto do sistema de
vendas on-line de uma livraria fictícia denominada de BookStore. O exemplo escolhido foi
baseado no estudo de caso do livro UML and the Unified Process – Practical Object-
Oriented Analysis & Design de Jim Arlow e Ila Neustadt
(www.umlandtheunifiedprocess.com).
A modelagem do sistema foi desenvolvida utilizando a linguagem de modelagem
unificada (UML). O documento é dividido em três seções:
• Introdução – que descreve o problema que o sistema pretende solucionar, quem
é afetado pelo problema, qual é o impacto do problema e os principais
benefícios que o sistema irá proporcionar.
• Requisitos – descreve as características de alto nível do sistema, restrições que o
sistema deve atender e os casos de uso do sistema.
• Projeto de Sistema – são mostrados os diagramas de interação do sistema, o
diagrama de classes e o dicionário de dados das classes.
2
2. Introdução O sistema de vendas on-line da BookStore é um novo canal de vendas da livraria. O
objetivo do sistema é permitir que os clientes façam seus pedidos via Internet a partir de
um catálogo on-line.
O sistema deve se integrar com os sistemas de estoque e entrega existente e deve
também comunicar a informação de cartão de crédito para a companhia de
processamento de cartão de crédito para validação antes de um pedido ser aceito.
O sistema deve operar de acordo com o paradigma de carrinho de compra (“shopping
basket”) que outras lojas na web utilizam com sucesso, como a Amazon.com. Nesse
modelo um catálogo de produtos é exibido e os usuários podem clicar sobre “Adicionar
para o Carrinho” para colocar um produto no seu carrinho de compra. Esse idéia é
demonstrado no protótipo da interface do usuário em anexo.
Atualmente, a BookStore some pretende vender livros e CDs através de seu sistema de
vendas on-line.
Os livros são categorizados por assunto. Essas categorias incluem, mas não são limitadas
a:
Administração
Arquitetura
Arte
Biografias
Casa & Jardim
Ciência
Computação
Cozinha, comida e vinhos
Esportes
Ficção Científica
Financeiros
História
Humor
Idioma
Infantil
Literatura e Ficção
Livros Infantis
Marketing
Medicina
Política
Profissionais e Técnicos
Religião & Espiritualidade
Sexo
Viagem
Cada livro é identificado por seu número de ISBN.
Os Clientes podem navegar no catálogo de livros por categoria ou encontrar um
determinado livro baseado sobre o critério de pesquisa:
3
• Título
• Autor
• ISBN
• Editora
Os CDs são categorizados por estilo musical. Essas categorias incluem, mas não são
limitadas a:
Blues
Clássico
Coletânea
Dance
Eletrônica
Forró
Infantil
Jazz
MPB/Samba
Pagode/Axé
Pop
Reggae
Religioso
Rock
Sertanejo/Country
Soul/Funk/Rap
Trilhas Sonoras
Os clientes podem navegar no catálogo de CDs ou buscar um CD específico baseado
nos seguintes critérios:
• Artista
• Título
• Estilo Musical
• Número de catálogo
Cada CD é identificado por um número de catálogo.
O Catálogo de Produtos deve permitir que o cliente faça a escolha de livro ou CD. De
acordo com a escolha deve ser exibida a lista de categorias. A partir daí o cliente pode
escolher uma categoria ou pesquisar por um produto específico.
O resultado da escolha de uma categoria ou de uma pesquisa específica é a mesma,
uma lista resumida de produtos:
• Para livros, essa lista resumida deve conter pelo menos o autor, o título, a editora,
o ISBN e o preço.
• Para CDs, essa lista resumida deve conter pelo menos o artista, o título, o número
de catálogo e o preço.
4
Clicando sobre qualquer produto da lista resumida irá trazer a descrição completa que
inclui toda a informação do produto, preço e uma figura opcional. Próximo ao preço há
um botão “Adicionar no Carrinho”.
Quando um item é adicionado ao carrinho de compra, o cliente e levado para a tela de
carrinho de compra que mostra a lista de todos os produtos correntemente no carrinho.
Sobre essa tela o cliente pode:
• Remover um item da lista
• Mudar a quantidade de um item
• Efetivar o pedido
Quando o cliente escolhe a opção de efetivar o pedido, o sistema apresenta ao cliente
um resumo de seu pedido. Se ele clicar em “confirmar” o pedido será confirmado e em
seguida o sistema irá solicitar que o usuário se registre (log in) se ele ainda não o fez. Para
se registrar o cliente deve entrar o seu nome de usuário e sua senha.
Clientes novos devem preencher um formulário que solicita os seguintes detalhes:
• Nome
• Endereço
• Endereço de entrega (se diferente)
• Número de telefone
• Número de fax
• Detalhes do cartão de crédito
Quando da submissão desse formulário, o cliente deve ser questionado com um nome do
usuário (de que deve ser provavelmente seu endereço de e-mail) e solicitado para entrar
uma senha.
2.1 Glossário
Termo Definição Carrinho de Compra Uma analogia eletrônica de um carrinho de compra do mundo
real. Um lugar onde os clientes podem armazenar seus itens de produto antes da compra.
Catálogo Uma lista de todos os produtos que a BookStore oferece atualmente para venda.
Sistema de Estoque Um sistema de informação que a BookStore usa para gerenciar o estoque de produtos.
5
3. Requisitos Nesta seção serão descritas as características do sistema de vendas on-line da BookStore.
3.1 Descrição dos Requisitos Funcionais
Id Descrição Prioridade
RF1 O sistema deve mostrar uma lista de todos os produtos oferecidos pela BookStore. Alta
RF2 O sistema deve organizar a lista de produtos por categoria de produto. Alta
RF3 O sistema deve exibir a descrição detalhada do produto consistindo de seu nome, fotografia, preço e descrição. Alta
RF4 O sistema deve aceitar todos os principais cartões de crédito. Média
RF5 O sistema deve validar o pagamento com a companhia de processamento de cartão de crédito. Média
RF6 O sistema deve calcular e adicionar a taxa de entrega automaticamente para o pedido. Média
RF7 O sistema deve permitir que os clientes coloquem itens para o “carrinho de compras”. Alta
RF8 O sistema deve permitir que os clientes removam itens de seu “carrinho de compras”. Alta
RF9 O sistema deve permitir que os clientes confirmem o pedido e paguem por seus produtos. Alta
RF10 O sistema deve notificar o departamento de entrega uma vez que os pedidos tem sido pagos Média
RF11 O sistema deve enviar uma cópia do pedido para o cliente quando o pagamento for aceito e o pedido confirmado. Alta
RF12 O sistema deve permitir aos clientes visualizarem a história do seu pedido. Média
RF14 O sistema deve permitir que um cliente cancele um pedido que ainda não tenha sido despachado. Alta
RF15 O sistema deve notificar o departamento de entrega quando um pedido for cancelado. Alta
RF16 O sistema deve permitir o departamento de entrega ver todos os pedidos. Alta
RF17 O sistema deve permitir o cliente se registrar. Alta
RF18 O sistema deve usar o endereço de email do cliente como nome de usuário para propósitos de login. Alta
RF19 O sistema deve requerer que o cliente defina uma senha Alta
RF20 O sistema deve coletar informação do cliente consistindo do nome, endereço de email, telefone, fax, informação de cartão de crédito. Alta
RF21 O sistema deve permitir os clientes visualizarem e editarem suas informações de cliente Alta
RF22 O sistema deve autenticar todos os clientes antes de fazer o pagamento, visualizar pedidos ou visualizar informação de cliente. Alta
6
3.2 Requisitos Não Funcionais RNF1 O sistema deve suportar 100.000 transações por dia. Média RNF2 O sistema deve suportar um pico de 10 transações por segundo Média RNF3 O sistema deve suportar 10.000 seções concorrentes Alta
RNF4 O sistema deve estar disponível 24 horas por dia, 360 dias por ano. Alta
RNF5 O sistema não deve perder qualquer dado de uma transação Alta
RNF6
O sistema deve aceitar um pagamento e lançar um pedido dentro de 5 segundos em 95% dos casos. Isso pode nem sempre ser alcançado devido a latência da Internet e atrasos na autorização do pagamento pela companhia de cartão de crédito.
Média
RNF7 O sistema deve efetuar o login do cliente dentro de 5 segundos. Média
RNF8 O sistema deve usar um navegador (browser) como sua interface de usuário. Alta
RNF9 O sistema deve suportar as últimas versões dos navegadores Internet Explorer e Netscape. Alta
RNF10 O sistema deve suportar as versões antigas do Internet Explorer e Netscape. Alta
RNF11 O sistema deve ser escrito usando o padrão Java para executar sobre Unix e Windows. Média
RNF12 O sistema deve usar um serviço de autenticação de usuário Alta
3.3 Atores Cliente – Alguém que compra produtos da BookStore.
Usuário – Alguém que não é um cliente e que usa o sistema.
Gerente de Loja – Um usuário do sistema que é responsável pelo gerenciamento do
catálogo de produtos.
Administrador do Sistema – Um usuário especial do sistema que pode definir os direitos de
acesso de outros usuários.
Entregador – Esse ator representa um trabalhador do departamento de entrega da
BookStore.
Sistema de Estoque – Esse ator representa o Sistema de Estoque da BookStore.
Companhia de Processamento de Cartão – Esse ator representa uma companhia externa
que processa as transações da BookStore.
7
3.4 Casos de Uso
Cancelar Pedido
Adicionar Item para o Carrinho de Compra
Navegar nos Livros Navegar nos CDs
Encontrar Livros
Encontrar CDs
LogOnCliente Atualizar Cliente
Criar Novo Cliente
Exibir Pedido
<<extend>>
Exibir Carrinho de Compra <<include>>
Encontrar Produtos
Navegar nos Produtos
<<extend>>
Cliente
<<extend>>
Atualizar Catálogo
<<include>>
Adicionar Produto ao CatálogoRemover Produto do Catálogo
Remover ClienteGerente de Loja
Novo Usuário
Atualizar Usuário
Remover UsuárioAdministrador do Sistema
Efetivarr Pedido
<<extend>>
Companhia de Processamento ...
Sistema de Estoque
Fechar Pedido
Aceitar Pagamento por Cartão
<<extend>>
Entregador
LogonOnUsuario
Usuário
Gerenciar Carrinho de Compra
<<extend>>
Figura 1- Diagrama de Casos de Uso da BookStore
UC1 – LogOnCliente
Descrição: Este caso de uso descreve como um Cliente efetua um login no sistema de vendas on-line da livraria Bookstore
Ator: Cliente Pré-Condição: O Cliente não estar logado no sistema. Fluxo Principal
1. O caso de uso inicia quando o Cliente selecionar “Log On” 2. O sistema solicita ao Cliente por seu nome de usuário e senha.
8
3. O Cliente entra o seu nome e a sua senha. 4. O sistema valida o usuário.
Fluxo Secundário • Nome do Usuário/Senha Inválidos
Pós-condição: O Cliente está logado no sistema.
UC2 – Criar Novo Cliente Descrição: Este caso de uso o processo de cadastramento de um novo cliente. Ator: Cliente Pré-Condição: O Cliente não está logado no sistema. Fluxo Principal
1. O caso de uso começa quando o Cliente seleciona “Novo Cliente”. 2. O sistema solicita que o Cliente entre o nome de usuário e a senha. 3. O Cliente entra a informação requerida. 4. O sistema verifica para ver se o nome de usuário está disponível e a senha é valida. 5. O sistema solicita ao Cliente as seguintes informações: nome (obrigatório),
endereço (obrigatório), endereço de entrega (opcional), endereço de e-mail (obrigatório), telefone (opcional), fax (opcional), detalhes de cartão de crédito (obrigatório).
6. O Cliente entra a informação solicitada. 7. O sistema confirma que a informação do cliente tem sido aceita. 8. O sistema atribui um identificador único para o Cliente.
Fluxo Secundário • Nome do Usuário Não Disponível ou Senha Inválida
1. No passo 4 do Fluxo principal enquanto o nome do usuário não estiver disponível ou a senha estiver inválida.
1.1 O sistema solicita um novo nome de usuário e/ou senha. 1.2 O Cliente entra a informação solicitada.
• Informação Obrigatória Faltando 1. No passo 6 do Fluxo principal enquanto a informação obrigatória está faltando 1.1 O sistema solicita à informação que está faltando 1.2 O Cliente entra a informação que está faltando.
Pós-condições: - Um novo registro de Cliente tem sido criado
- O Cliente é atribuído um nome de usuário e a senha. - O Cliente é atribuído um identificador único.
UC3 – Atualizar Cliente Descrição: Este caso de uso atualiza os dados de um cliente cadastrado na livraria. Ator: Cliente Pré-Condição: O Cliente está logado sobre o sistema. Fluxo Principal
1. O caso de uso começa quando o Cliente seleciona “Atualizar Detalhes do Cliente”. 2. O sistema mostra os detalhes do Cliente incluindo nome (obrigatório), endereço
(obrigatório), endereço entrega (opcional), email (obrigatório), telefone (opcional),
9
fax (opcional), detalhes de cartão de crédito (obrigatório). Os elementos opcionais podem estar vazios se o Cliente não tiver entrado anteriormente eles.
3. Enquanto as mudanças não tiverem sido concluídas o Cliente seleciona um campo e muda seu valor.
4. O sistema pergunta o Cliente para confirmar as mudanças 5. O Cliente seleciona OK.
Pós-condições: Os detalhes do cliente têm sido atualizados.
UC4 – Remover Cliente Descrição: Este caso de uso permite que o Gerente de Loja remova um cliente da base de dados de clientes da livraria. Atores: Gerente de Loja Pré-condição: O Gerente de Loja deve estar logado sobre o sistema. Fluxo Principal
1. O Gerente de Loja seleciona “Remover Cliente”. 2. O sistema solicita ao Gerente de Loja por identificador de cliente. 3. O Gerente de Loja entra o identificador de cliente. 4. O sistema solicita ao Gerente de Loja para confirmar a remoção 5. O Gerente de Loja confirma a remoção 6. O sistema remove o Cliente.
Pós-condição: O dados do Cliente tem sido removidos do sistema.
<<Caso de Uso Abstrato>> UC5 – Encontrar Produtos
Descrição: Este caso permite que um Cliente encontre produtos na livraria. Ator: Cliente Pré-condição: Nenhuma Fluxo Principal
1. O Cliente selecionar “Encontrar”. 2. O sistema solicita ao Cliente um critério de pesquisa. 3. O Cliente entra o critério de pesquisa. 4. O sistema pesquisa por produtos que atendam o critério do Cliente. 5. O sistema exibe uma página contendo um máximo de 10 produtos. Essa página
inclui a informação resumida para cada produto e seu preço. Fluxo Secundário
• Nenhum produto encontrado No passo 5 do fluxo principal se o sistema não encontrar nenhum produto que atenda o critério do Cliente, ele exibe uma mensagem informando que nenhum produto foi encontrado.
• Exibir mais produtos Depois do passo 5 do fluxo principal se há mais produtos para exibir o Cliente pode selecionar “Próximo” para visualizar a próxima página de produtos e se o Cliente não está na primeira página de produtos, ele pode selecionar “Anterior” para visualizar a página anterior de produtos.
Pós-condição: Nenhuma
10
UC6 – Encontrar Livros
Descrição: Este caso permite que um Cliente encontre livros. Caso de Uso Pai: Encontrar Produtos Ator: Cliente Pré-condição: Nenhuma Fluxo Principal
1. O Cliente selecionar “Encontrar Livro”. 2. O sistema solicita ao Cliente um critério de pesquisa para livros que consiste de um ou mais dos seguintes: título, autor, ISBN, assunto. 4. O sistema pesquisa por livros que atendam o critério do Cliente. 5. O sistema exibe uma página contendo um máximo de 10 livros. Essa página inclui informação resumida para cada livro: título, autor, editora e preço.
Pós-condição: Nenhuma
UC7 – Encontrar CDs Descrição: Este caso permite que um Cliente encontre CDs. Caso de Uso Pai: Encontrar Produtos Ator: Cliente Pré-condição: Nenhuma Fluxo Principal
1. O Cliente selecionar “CD”. 2. O sistema solicita ao Cliente um critério de pesquisa para livros que consiste de um ou mais dos seguintes: título, artista, número de catálogo, estilo. 4. O sistema pesquisa por CDs que atendam o critério do Cliente. 5. O sistema exibe uma página contendo um máximo de 10 CDs. Essa página inclui informação resumida para cada livro título, artista, número de catálogo, estilo musical e preço.
Pós-condição: Nenhuma
<<Caso de Uso Abstrato>> UC8 – Navegar nos Produtos
Descrição: Este caso de uso permite que o Cliente navegue no catálogo de produtos. Ator: Cliente Pré-condição: Nenhuma Fluxo Principal
1. O caso de uso começa quando o Cliente seleciona o tipo de produto para navegar. 2. O sistema exibe uma lista de todas as categorias para aquele tipo de produto. 3. O Cliente seleciona uma categoria. 4. O sistema exibe uma página contendo um máximo de 10 produtos na categoria.
Essa página inclui a informação resumida para cada produto e seu preço. 5. O Cliente seleciona um produto. 6. O sistema exibe detalhe completo do produto incluindo seu preço. 7. <<extend>> Adicionar Item para o Carrinho de Compra Fluxo Secundário:
11
• Exibir mais produtos Depois do passo 4 do fluxo principal se há mais produtos para exibir, o Cliente pode selecionar “Próximo” para ver a próxima página de produtos e se o Cliente não está na primeira página de produtos, ele pode selecionar “Anterior” para visualizar a página anterior de produtos.
Pós-condição: - O Cliente tem selecionado um produto. - O sistema tem exibido detalhes completos do produto.
UC9 – Navegar nos Livros Descrição: Este caso de uso permite que o Cliente navegue no catálogo de livros. Caso de Uso Pai: Navegar nos Produtos Ator: Cliente Pré-condição: Nenhuma Fluxo Principal
1. O caso de uso começa quando o Cliente seleciona “Navegar nos Livros”. 2. O sistema exibe uma lista de todas as categorias de livros. 4. O sistema exibe uma página contendo um máximo de 10 livros numa categoria. Essa página inclui a seguinte informação resumida para cada livro: título, autor, editora e seu preço. 5. O Cliente seleciona um livro. 6. O sistema exibe detalhe completo do livro: descrição resumida, título, autor,
editora, ISBN, preço, avaliação (opcional), revisão (opcional). Pós-condição: - O Cliente tem selecionado um livro. - O sistema tem exibido detalhes completos do livro.
UC10 – Navegar nos CDs Descrição: Este caso de uso permite que o Cliente navegue no catálogo de CDs Caso de Uso Pai: Navegar nos CDs Ator: Cliente Pré-condição: Nenhuma Fluxo Principal
1. O caso de uso começa quando o Cliente seleciona “Navegar nos CDs”. 2. O sistema exibe uma lista de todas as categorias de CDs. 4. O sistema exibe uma página contendo um máximo de 10 livros numa categoria. Essa página inclui a seguinte informação resumida para cada livro: título, autor, editora e seu preço. 5. O Cliente seleciona um livro. 6. O sistema exibe detalhe completo do livro: descrição resumida, título, autor, editora, ISBN, preço, avaliação (opcional), revisão (opcional). Pós-condição: - O Cliente tem selecionado um CD. - O sistema tem exibido detalhes completos do CD.
UC11 – Gerenciar Carrinho de Compra
12
Descrição: Este caso de uso permite que o Cliente remova um item do carrinho de compra ou modifique a quantidade de um determinado item. Ator: Cliente Pré-condição: O Cliente está visualizando o carrinho de compra. Fluxo Principal
1. O Cliente seleciona um item no carrinho de compra. 2. O Cliente seleciona “Remover Item”. 3. O sistema exibe a mensagem “Você está certo que você deseja remover o item
selecionado de seu carrinho de compra”. 4. O Cliente confirma a remoção 5. O sistema remove o item selecionado do carrinho.
Fluxo Secundário • Modificar a quantidade de um item
1. Depois do passo 1 do fluxo principal o Cliente entra uma nova quantidade para o item selecionado. 2. O sistema atualiza a quantidade para o item selecionado.
Pós-condição: Nenhuma
UC12 – Exibir Carrinho de Compra Ator: Cliente Pré-condição: Nenhuma Fluxo Principal
1. O Cliente seleciona “Exibir Carrinho de Compra”. 2. Para cada item no carrinho de compra
2.1 O sistema exibe o id do produto, quantidade, resumo do produto, preço do item, preço total.
3. <<extend> Gerenciar Carrinho 4. <<extend>> Confirmar Pedido
Fluxo Secundário • Não há itens no carrinho de compras
1. No passo 2 do fluxo principal o sistema exibe a mensagem “Nenhum item no carrinho ainda”.
UC13 – Efetivar Pedido
Atores: Cliente e Sistema de Estoque Pré-condição: O Cliente está logado no sistema Fluxo Principal
1. O caso de uso inicia quando o Cliente seleciona “Efetivar Pedido”. 2. O sistema solicita ao ator Sistema de Estoque para reservar provisoriamente os
itens no carrinho de compra. 3. Para cada item que está fora de estoque
3.1 O sistema informa ao Cliente que o item está indisponível e foi removido do pedido.
13
4. O sistema apresenta o pedido final para o Cliente. O pedido inclui o endereço de entrega e detalhes do cartão de crédito. O pedido inclui uma linha de pedido para cada produto que mostra o identificador de produto, o nome do produto, a quantidade, o preço unitário, o preço total para aquela quantidade.
5. O sistema solicita ao Cliente para confirmar ou cancelar o pedido. 6. O Cliente confirma o pedido.
Pós-condição: • O Cliente tem aceitado o pedido. • Os produtos tem sido provisoriamente reservado pelo ator Sistema de Estoque.
Pontos de Extensão: • Aceitar Pagamento por Cartão ocorre depois do passo 6 do Fluxo Principal.
UC14 – Aceitar Pagamento por Cartão
Atores: Cliente, Sistema de Processamento de Cartão, Sistema de Estoque, Entregador. Pré-condição: O Cliente está logado sobre o sistema. Fluxo Principal
1. O sistema recupera os detalhes de cartão de crédito do Cliente. 2. O sistema envia uma mensagem para o Sistema de Processamento de Cartão de
Crédito que inclui: identificador mercantil, autenticação de mercantil, nome sobre o cartão, número do cartão, data de validade do cartão, quantidade da transação.
3. O Sistema de Processamento de Cartão de Crédito autoriza a transação. 4. O sistema notifica ao Cliente que a transação do cartão tem sido aceita. 5. O sistema dá ao Cliente um número de referência do pedido para rastreamento do
pedido. 6. O sistema diz ao ator Sistema de Estoque para reservar os itens requeridos. 7. O sistema envia o pedido para Entregador. 8. O sistema muda o estado do pedido para pendente.
Fluxos Secundários • Tempo Limite Excedido
1. No passo 3 do Fluxo Principal depois de 10 minutos decorridos o sistema diz ao ator Sistema de Estoque para liberar qualquer item de estoque reservado para esse pedido.
2. O sistema exibe uma mensagem declarando que por razões de segurança a transação do pagamento tem sido cancelada e que o Cliente deve selecionar “Confirmar Pedido” de novo para continuar.
• Limite de Crédito Excedido 1. No passo 3 do Fluxo Principal o Sistema de Processamento de Cartão de
Crédito não autoriza a transação porque o limite de crédito sobre o cartão pode ter sido excedido.
2. O sistema exibe uma mensagem dizendo ao Cliente que não crédito suficiente disponível sobre o cartão para pagar o pedido.
3. O sistema exibe uma mensagem solicitando ao Cliente para mudar seus detalhes do cartão de crédito ou entrar contato com sua companhia de cartão de crédito para aumentar seu limite de crédito.
4. O sistema diz ao ator Sistema de Estoque para liberar os itens de estoque reservado para esse pedido.
14
• Cartão de Crédito Inválido 1. No passo 3 do Fluxo Principal o Sistema de Processamento de Cartão de
Crédito não autoriza a transação porque o cartão de crédito está inválido.
2. O sistema exibe uma mensagem dizendo ao Cliente que seu cartão de crédito é inválido.
3. O sistema exibe uma mensagem solicitando que o Cliente mude seus dados do cartão de crédito ou entre em contato com a companhia do cartão para pegar um novo cartão.
4. O sistema diz ao ator Sistema de Estoque para liberar os itens de estoque reservado para esse pedido.
• Sistema de Cartão de Crédito Fora do Ar 1. No passo 3 do Fluxo Principal o Sistema de Processamento de Cartão
não pode ser conectado. 2. O sistema exibe uma mensagem dizendo ao Cliente que seu pedido não
pode ser processado nesse momento e para ele tentar depois. 3. O sistema diz ao ator Sistema de Estoque para liberar os itens de
estoque reservado para esse pedido.
UC15 – Exibir Pedido Ator: Cliente Pré-condição: O Cliente está logado sobre o sistema. Fluxo Principal
1. O caso de uso inicia quando o Cliente seleciona “Exibir Pedido”. 2. O sistema mostra uma linha resumida de cada pedido que o Cliente tem
feito. Pedidos são exibidos em ordem cronológica, e a informação sobre cada linha é data, número do pedido, a quantidade e o seu status.
3. O Cliente seleciona um pedido. 4. O sistema exibe os detalhes do pedido. 5. <<extend>> Cancelar Pedido
Pós-condição: O sistema está exibindo os detalhes completos de um pedido.
UC16 – Cancelar Pedido Atores: Cliente Pré-condições:
• O Cliente está logado sobre o sistema. • O sistema está exibindo os detalhes completos de um pedido. • O pedido está ainda pendente.
Fluxo Principal 1. O caso de uso inicia quando o Cliente seleciona “Cancelar Pedido”. 2. O sistema ao Cliente pela confirmação. 3. O Cliente confirma o cancelamento. 4. O sistema marca o pedido como cancelado. 5. O sistema registra a hora e data que o pedido foi cancelado.
Pós-condição: O pedido é cancelado.
15
UC17 – Adicionar Item para o Carrinho de Compra
Ator: Cliente Fluxo Principal
1. O Cliente seleciona “Adicionar Item”. 2. O sistema adiciona o item para o carrinho de compra do Cliente. 3. <<include>> Mostrar Carrinho de Compra.
Pós-condição: Um produto tem sido adicionado para o carrinho de compra do Cliente.
UC18 – Fechar Pedido Ator: Entregador Pré-condições:
• O pedido tem sido repassado para o Entregador. • O Entregador está logado sobre o sistema. • O status do pedido está “pendente”. • O pedido ter sido processado pelo Departamento de Entrega.
Fluxo Principal 1. O caso de uso inicia quando o Entregador seleciona “Fechar Pedido”. 2. O sistema solicita que o Entregador entre o número do pedido, a data que o pedido
foi despachado, a companhia responsável pela entrega da remessa e número de rastreamento se disponível.
3. O Entregador entra a informação solicitada. 4. O sistema pesquisa o pedido e muda o status do pedido para “fechado”. 5. O sistema registra a data de entrega, a companhia responsável pela entrega e o
número de rastreamento sobre o pedido. 6. O Entregador processa o pedido.
Pós-condições: • O status do pedido tem sido mudado para “fechado” • O pedido tem sido atualizado para incluir a data de entrega e a companhia
responsável pela entrega. • O pedido tem sido entregue.
UC19 – Adicionar Produto ao Catálogo Ator: Gerente de Loja Pré-condição: O Gerente de Loja está logado no sistema. Fluxo Principal
1. O caso de uso inicia quando o Gerente de Loja seleciona “Adicionar Produto”. 2. O sistema pergunta ao Gerente de Loja se o produto é um livro ou um CD. 3. O sistema solicita que o Gerente de Loja entre a seguinte informação de produto:
título, autor, editora, ISBN, preço, avaliação (opcional), revisão (opcional). 4. O Gerente de Loja entra a informação solicitada. 5. O sistema solicita que o Gerente de Loja confirme que o novo produto deve ser
adicionado para o catálogo.
16
6. O Gerente de Loja confirma que o novo produto deve ser adicionado. 7. O sistema adiciona o novo produto para o catálogo.
Fluxo Secundário: • Produto é um CD
No passo 3 do fluxo principal se o produto é um CD, o sistema solicita ao Gerente de Loja para entrar a seguinte informação de produto: título, artista, número de catálogo, preço, avaliação (opcional), revisões (opcional).
Pós-condição: Um novo produto tem sido adicionado para o catálogo.
UC20 – Atualizar Catálogo Ator: Gerente de Loja Pré-condição: O Gerente de Loja está logado sobre o sistema. Fluxo Principal
1. O caso de uso inicia quando o Gerente de Loja seleciona “Atualizar Catálogo”. 2. O sistema solicita o Gerente de Loja a entrar um identificador de produto. 3. O Gerente de Loja não conhece o identificador de produto.
3.1 <<include>> Encontrar Produto 3.2 O Gerente de Loja seleciona um produto.
4. O sistema exibe todo os detalhes do produto. 5. O Gerente de Loja muda um ou mais detalhes do produto, mas não o identificador do produto. 6. O Gerente de Loja entra as mudanças. 7. O sistema solicita ao Gerente de Loja para confirmar as mudanças. 8. O Gerente de Loja confirma as mudanças. 9. O sistema salva as mudanças no catálogo de produto.
Fluxo Secundário • Gerente da Loja já conhece o identificador de produto
No passo 3 do fluxo principal o Gerente de Loja entra o identificador de produto. Pós-condição:
• Alguns detalhes do produto tem sido modificados. • O identificador do produto permanece inalterado.
UC21 – Remover Produto do Catálogo
Ator: Gerente de Loja Pré-condição: O Gerente de Loja está logado no sistema. Fluxo Principal
1. O caso de uso inicial quando o Gerente de Loja seleciona “Remover Produto”. 2. O sistema solicita que o Gerente de Loja selecione um produto. 3. O Gerente de Loja não conhece o identificador de produto.
3.1 <<include>> Encontrar Produto 3.2 O Gerente de Loja seleciona um produto.
4. O sistema exibe todos os detalhes do produto. 5. O Gerente de Loja seleciona “Remover”. 6. O sistema seleciona ao Gerente de Loja para confirmar a remoção.
17
7. O Gerente de Loja confirma a remoção. 8. O sistema remove o produto do catálogo.
Fluxo secundário: • Gerente da Loja já conhece o identificador de produto
No passo 3 do fluxo principal o Gerente de Loja entra o identificador de produto. Pós-condição: Um produto tem removido do catálogo.
UC22 – Novo Usuário Ator: Administrador do Sistema Pré-condição: O Administrador do Sistema tem que estar autenticado pelo sistema. Fluxo Principal
1. O caso de uso inicia quando o Administrador do Sistema seleciona “Novo Usuário” 2. O sistema solicita ao Administrador de Sistema para entrar as seguintes
informações: nome do usuário, senha, nome do usuário, email, tipo de usuário. 3. O sistema solicita que o Administrador confirme que um novo usuário deve ser
criado. 4. O Administrador de Sistema confirma que o sistema deve criar um novo usuário.
Pós-condição: Uma conta de um novo usuário tem sido criada.
UC23 – Atualizar Usuário Atores: Administrador do Sistema Pré-condição: O Administrador do Sistema está logado sobre o sistema. Fluxo Principal
1. O caso de uso inicia quanto o Administrador do Sistema seleciona “Atualizar Usuário”.
2. O sistema exibe uma lista de todos os usuários do sistema. 3. O Administrador do Sistema seleciona um usuário. 4. O sistema exibe todas os detalhes da conta do usuário: nome do usuário, senha,
nome do usuário, endereço de email, tipo de usuário. 5. O Administrador do Sistema muda um ou mais detalhes. 6. O sistema solicita ao Administrador do Sistema para confirmar as mudanças. 7. O Administrador do Sistema confirma as mudanças. 8. O sistema armazena a informação da conta atualizada.
Pós-condição: Os detalhes de uma conta de usuário têm sido atualizado.
UC24 – Remover Usuário Atores: Administrador do Sistema Pré-condição: O Administrador do Sistema está logado sobre o sistema. Fluxo Principal
1. O caso de uso inicia quanto o Administrador do Sistema seleciona “Remover Usuário”.
2. O sistema exibe uma lista de todos os usuários do sistema. 3. O Administrador do Sistema seleciona um usuário. 4. O sistema solicita ao Administrador do Sistema pra confirmar a remoção
18
5. O Administrador do Sistema confirma a remoção. 6. O sistema remove a conta do usuário.
Pós-condição: Uma conta de usuário tem sido removida.
UC25 – LogOnUsuario Ator: Usuário Pré-Condição: O Usuário não estar logado no sistema. Fluxo Principal
5. O caso de uso inicia quando o Usuário selecionar “Log On” 6. O sistema solicita ao Usuário por seu nome de usuário e senha. 7. O Cliente entra o seu nome e a sua senha. 8. O sistema valida o usuário.
Fluxo Secundário • Nome do Usuário/Senha Inválidos
Pós – Condição: O Usuário está logado no sistema.
19
4. Diagramas de Seqüência
4.1 Diagrama de Seqüência – LogonOnCliente
: Cliente : GerenciadorLoja
: GerenciarSeguranca
: Cliente
1: logOnCliente( )2: logOnCliente( )
3: procurarCliente( )
4: validarSenha( )
5:
6: 7:
20
4.2 Diagrama de Seqüência – Criar Novo Cliente
: Cliente : GerenciadorLoja
: GerenciarCliente
: GerenciarSeguranca
: Cliente : DetalhesCartaoCredito
: DetalhesCliente
1: novoCliente( )2: novoCliente( )
3: novoCliente( )
4: validarCliente( )
5: <<create>>
6:
7: <<create>>8: <<create>>
9:
10:
11:
21
4.3 Diagrama de Seqüência – Atualizar Cliente
: Cliente : GerenciadorLoja
: GerenciadorCliente
: DetalhesCliente
antigo : DetalhesCartaoCredito
novo : DetalhesCartaoCredito
1: atualizarCliente( )2: encontrarCliente( )
3: encontrarCliente( )4:
5: setNome( )
6: setEndereco( )
7: setEnderecoEntrega( )
8: setTelefone( )
9: setFax( )
10: setDetalhesCartaoCredito( )11:
12:
13:
22
4.4 Diagrama de Seqüência – Remover Cliente
: Cliente : GerenciadorLoja
: GerenciadorCliente
: DetalhesCliente : DetalhesCartaoCredito
1: removerCliente( )2: removerCliente( )
3: encontrarCliente( )
4: <<destroy>>5:
6: 7:
5. Diagramas de Classes O modelo de classes da BookStore é dividido em 5 pacotes: Loja, Produto, Pedido, Cliente e Segurança.
23
Loja
Produto Pedido Cliente
Seguranca
5.1 Pacote Loja
GerenciadorLoja
+ navegarCategoria()+ exibirProximaPagina()+ exibirPaginaAnterior()+ selecionarProduto()+ encontrarProduto()+ logOnCliente()+ novoCliente()+ atualizarCliente()+ removerCliente()+ modificarQuantidade()+ exibirCarrinhoCompra()+ confirmarPedido()
CarrinhoCompra
+ adicionarItem()+ removerItem()+ selecionarItem()+ getItens()+ mudarQuantidadeItens()
11 11
24
5.2 Pacote Produto
CatalogoProduto
+ encontrarProdutos()+ removerProduto()+ adicionarLivro()+ adicionarCD()
CD Livro
Produto- identificadorProduto
*1 *1
Categoria
11
5.3 Pacote Pedido
GerenciadorPedido
+ encontrarPedido()+ fecharPedido()+ criarPedido()+ exibirPedido()+ getDetalhesPedido()+ cancelarPedido()
Pedido- identificadorPedido- dataCancelamentoPedido
+ fechar()+ setDetalhesEntrega()+ setDataHoraCancelamento()+ exibir()+ confirmar()+ cancelar()
0..*1 0..*1
DetalhesEntrega- dataEntrega- companhiaEntrega- numeroRastreamento
25
5.4 Pacote Cliente
GerenciarCliente
+ logOn()+ encontrarCliente()+ removerCliente()+ novoCliente()
DetalhesCliente- identificadorCliente- nome- endereco- enderecoEntrega- email- telefone- fax
+ getDetalhesCartaoCredito()+ setDetalhesCartaoCredito()+ setNome()+ setEndereco()+ setEnderecoEntrega()+ setEmail()+ setTelefone()+ setFax()
0..*1 0..*1
DetalhesCartaoCredito
- nomeSobreCartao- tipoCartao- numeroCartao- dataValidade
1
11
1
26
5.5 Pacote Seguranca
Usuario- nome- senha- email- tipoUsuario
+ setNome()+ getNome()+ getSenha()+ setSenha()+ setEmail()+ setTipo()
GerenciarSeguranca
+ logOnCliente()+ novoCliente()+ logOnUsuario()+ validarUsuario()+ validarCliente()+ procurarUsuario()+ editarUsuario()+ procurarCliente()+ removerUsuario()
1..*1 1..*1
Cliente- nome- senha- id
+ validarSenha()
0..*
11
0..*
27
Apêndice A – Protótipo da Interface O protótipo do sistema de vendas on-line da livraria Bookstore foi projetado para ilustrar as idéias sobre a funcionalidade e navegação no sistema.
A1. Tela Principal Através da tela principal o cliente pode escolher comprar livros, comprar CDs ou visualizar o seu carrinho de compra.
Livraria BookStore
Livros CDs Carrinho de Compra
Comprar Livros Comprar CDs
Figura A.2 – Tela Principal do Sistema de Vendas On-line da Livraria BookStore
28
A2. Tela de Livros Através da tela de Livros o Cliente pode voltar para tela principal, ou ir para tela de CDs, ou visualizar o Carrinho de Compras, ou escolher uma categoria de livros para navegar, ou escolher um livro específico para o sistema buscar.
Livros
Principal CDs Carrinho de Compras
Navegar nos livros por categoria:
Administração
Arquitetura
Arte
Biografias
Casa & Jardim
Ciência
Computação
Cozinha, comida e vinhos
Esportes
Ficção Científica
Financeiros
História
Humor
Idioma
Infantil
Literatura e Ficção
Livros Infantis
Marketing
Medicina
Política
Profissionais e Técnicos
Religião & Espiritualidade
Sexo
Viagem
Ou pesquisar por um livro:
Pesquisar por livro Autor: Título: Editora: ISBN:
Submit
29
A3. Tela de Navegação de Livros por Categoria
Computação
Principal Livros CDs Basket
UML and the Unified Process R$26.99 Jim Arlow, Ila Neustadt, Addison Wesley, ISBN 0201770601 Add to basket
The Unified Modeling Language Reference Manual R$39.99
James Rumbaugh, Ivar Jacobson, Grady Booch, Addison Wesley, ISBN 020130998X Add to basket
The Unified Modeling Language User Guide R$30.70
Grady Booch, James Rumbaugh, Ivar Jacobson, Addison Wesley, ISBN 0201571684 Add to basket
UML Distilled R$25.99
Martin Fowler with Kendall Scott, Addison Wesley, ISBN 0201325632 Add to basket
Applying Use Cases - A Practical Guide R$18.78
Geri Schneider, Jason P. Winters, Addison Wesley, ISBN 0201309815 Add to basket
Próximo>
30
A4. Tela de Carrinho de Compra
Seu Carrinho de Compras
Principal Livros CDs Efetivar Pedido
ID Produto Descrição Quantidade Preço unitário Total
Remover 020130998X Unified Modeling Language Reference Manual
1 R$41.99 R$41.99
Remover 0201770601 UML and the Unified Process 1 R$26.99 R$26.99
Efetivar Pedido...
31
A5. Tela de Efetivar Pedido
Efetivar Pedido
Principal Livros CDs Carrinho de Compra
ID Produto Descrição Quantidade Preço unitário Total
020130998X Unified Modeling Language Reference Manual 1 R$41.99 R$41.99
0201770601 UML and the Unified Process 1 R$26.99 R$26.99 Taxa de entrega R$5.00
Total R$73.98
Confirmar pedido Cancelar pedido
32
A6. Tela de Pedido Finalizado
Seu pedido
Home Books CDs Carrinho de Compra
Seu pedido está completo:
ID Produto Descrição Quantidade Preço unitário Total
020130998X Unified Modelling Language Reference Manual 1 R$41.99 R$41.99
0201770601 UML and the Unified Process 1 R$26.99 R$26.99 Taxa de entrega R$5.00
Total R$73.98
33
A7. Tela de Seleção de um livro
Sua seleção
Principal Livros CDs Carrinho de Compra
The Unified Modeling Language Reference Manual James Rumbaugh, Ivar Jacobson, Grady Booch Addison Wesley ISBN 020130998X
R$39.99 Adicionar para Carrinho de Compra
Rating: *****
Review:
This is the definitive reference guide for the UML, and as such it is a "must have". On the whole, it serves its purpose as a reference guide very well, but don't expect to learn UML modeling from it. It is not intended to be a tutorial and other books are much more suitable for this purpose. Naturally, we recommend our own book "UML and the Unified Process" as both an excellent UML tutorial and desktop reference.