37
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

Sistema de Vendas On-line da BookStorecin.ufpe.br/~eng_soft/eti901/NotasdeAulas/livraria.pdf · diagrama de classes e o dicionário de dados das classes. 2 2. Introdução ... Sistema

Embed Size (px)

Citation preview

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)

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

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.