UNIVERSIDADE FEDERAL DE PERNAMBUCO Centro de Informática
Sistema de Vendas On-line da BookStore
Especificação e Projeto do SistemaCurso de Especialização Tecnologia da Informação
Engenharia de Software
Gilberto Amado de Azevedo Cysneiros Filho
Í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
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
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:
• 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) • E-mail
• 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.
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.
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álogo Remover Produto do Catálogo
Remover Cliente Gerente de Loja Novo Usuário Atualizar Usuário Remover Usuário Administrador 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
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
• 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.
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.
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.
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”.
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.
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
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 DetalhesCliente : DetalhesCartaoCredito : 1: novoCliente( ) 2: novoCliente( ) 3: novoCliente( ) 4: validarCliente( ) 5: <<create>> 6: 7: <<create>> 8: <<create>> 9: 10: 11:
4.3 Diagrama de Seqüência – Atualizar Cliente
: Cliente GerenciadorLoja : GerenciadorCliente : DetalhesCliente : DetalhesCartaoCreditoantigo : DetalhesCartaoCreditonovo : 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.
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() 1 1 1 124
5.2 Pacote Produto
CatalogoProduto + encontrarProdutos() + removerProduto() + adicionarLivro() + adicionarCD() CD Livro Produto - identificadorProduto * 1 * 1 Categoria 115.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 - numeroRastreamento5.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 DetalhesCartaoCre dito - nomeSobreCartao - tipoCartao - numeroCartao - dataValidade 1 11 126
5.5 Pacote Seguranca
Usuario - nome - senha - email - tipoUsuario + setNome() + getNome() + getSenha() + setSenha() + setEmail() + setTipo() GerenciarSeguranc a + logOnCliente() + novoCliente() + logOnUsuario() + validarUsuario() + validarCliente() + procurarUsuario() + editarUsuario() + procurarCliente() + removerUsuario() 1..* 1 1..* 1 Cliente - nome - senha - id + validarSenha() 0..* 11 0..*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 CompraComprar Livros Comprar CDs
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:
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
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
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
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.