Análise Orientada a
Objeto
com a metodologia (R)UP + UML
© Nabor C. Mendonça 2001
1
Estudo de Caso: Terminal de Venda




Um sistema para um terminal
de venda (TV)
Usado para registrar vendas e processar
pagamentos de clientes em lojas de varejo
Inclui componentes de hardware (computador,
leitora de código de barras) e o software para
rodar o sistema
Tarefa: criar o software para um TV
© Nabor C. Mendonça 2001
2
Ênfase do Estudo de Caso: Camada de
Lógica da Aplicação
Object Store
Apresentação
UPC
Quantity
Total
Tendered
Enter Item
Balance
End Sale
Foco menor
Make Payment
Lógica da Aplicação
-objetos de domínio
Venda
Pagamento
Foco principal
-objetos de serviço
BD
Segurança
Foco secundário
Armazenamento
SGBD
© Nabor C. Mendonça 2001
3
Estratégia da Disciplina


Aprendizagem e desenvolvimento iterativos
APOO aplicada ao sistema TV em duas iterações
ou ciclos de desenvolvimento:
–
Ciclo 1 Funcionalidades básicas
Introdução das habilidades de análise e design pertinentes
ao primeiro ciclo
–
Ciclo 2 Funcionalidades expandidas
Introdução de habilidades adicionais de análise e projeto
© Nabor C. Mendonça 2001
4
Definição de Requisitos
Planejamento
Elaboração
2. Criar Rel. Prel.
de Investigação
1. Definir Plano
Inicial
© Nabor C. Mendonça 2001
Construção
4. Reg. Termos
no Glossário a
5. Implementar
Protótipo
7. Definir Mod.
Conc. Inicial
8. Definir Arquit.
Inicial
a, c, d
c
b, d
3. Definir Requisitos
6. Definir Casos
de Uso
Notas
9. Def. as Demais
Fases
a. contínua
b. opcional
c. adiável
d. ordem variada
5
Definição de Requisitos



Requisitos mal-entendidos ou incorretamente
especificados representam um grande risco para o
desenvolvimento de software
Especificações bem-feitas requerem uma gama de
habilidades e técnicas, cujo estudo detalhado está
fora do escopo do curso
Foco: introdução à especificação de requisitos,
usando o sistema TV como exemplo
© Nabor C. Mendonça 2001
6
O que são Requisitos?



Descrições das necessidades ou desejos para um
produto
Usados para identificar e documentar o que é
realmente necessário, de uma forma que fique
claro para clientes e desenvolvedores
Desafio:
–
Evitar ambigüidades
–
Identificar riscos
–
Coletar e “digerir” dados de fontes variadas de
informação (documentos, entrevistas, reuniões, etc.)
© Nabor C. Mendonça 2001
7
Descrição de Requisitos

Um modelo de documento de requisitos
–
Visão geral
Sumário descrevendo o propósito geral do projeto. Pode
também ser entendido como um documento informal de
requisitos do cliente
–
Clientes
Quem encomendou ou está pagando pelo sistema
–
Objetivos
Objetivos a serem alcançados com o sistema
–
Funções
O que o sistema deve fazer
© Nabor C. Mendonça 2001
8
Funções

Devem ser documentadas e listadas em grupos
logicamente coesos
–

Primeiro passo para a escolha dos use cases
(traduzido por casos de uso)
Categorias de funções
–
Evidente
Deve ser executada, e o usuário deve estar ciente da
execução (ex.: Processar venda, Processar pagamento)
–
Escondida
Deve ser executada, mas de modo transparente para o
usuário (ex.: Guardar informações no BD)
–
Opcional
Função não afeta os custos ou as outras funções do sistema
de maneira significativa
© Nabor C. Mendonça 2001
9
Funções (2)

Funções diretamente relacionadas com o negócio
–
Requisitos funcionais
Devem ser implementadas na fase de Elaboração

Funções não diretamente relacionadas com o negócio
–
Requisitos não funcionais
Igualmente relevantes
Devem ser implementadas na fase de Construção

Exemplos de requisitos não funcionais
–
Facilidade de uso
–
Tolerância a falhas
–
Tempo de resposta
–
Metáfora de interface
–
Guardar informações no BD
© Nabor C. Mendonça 2001
10
Requisitos para o Sistema TV

Visão geral
O propósito deste projeto é criar um sistema de terminais de venda
a ser usado em lojas de varejo.

Clientes
ObjectStore, Inc., uma cadeia de lojas de venda de componentes
de software reutilizáveis.

Objetivos
Redução do tempo de espera dos clientes nos caixas.
Análise rápida e acurada das vendas.
Controle automático de estoque.
© Nabor C. Mendonça 2001
11
Requisitos para o Sistema TV (2)

Processar venda
Ref #
Função
Categoria
R1.1
Registrar a venda corrente (itens de compra).
R1.2
Calcular total da venda corrente, incluindo imposto evidente
e descontos.
R1.3
Capturar informação do código de barras dos
itens de compra (UPC), via uma leitora de código
de barras ou digitação manual.
evidente
R1.4
Reduzir quantidades do estoque quando a venda
for confirmada.
escondida
R1.5
Registrar venda no log de vendas completadas
escondida
R1.6
Oferecer um mecanismo de armazenamento
persistente.
escondida
© Nabor C. Mendonça 2001
evidente
12
Requisitos para o Sistema TV (3)

Processar venda (cont.)
Ref #

Função
Categoria
R1.7
Oferecer mecanismos para comunicação entreprocessos e entre-sistemas.
escondida
R1.8
Mostrar descrição e preço do item de compra
registrado.
evidente
Processar pagamento
Ref #
Função
Categoria
R2.1
Processar pagamento com dinheiro, capturando
quantia oferecida e calculando troco devido.
evidente
R2.2
Processar pagamento com cartão de crédito,
capturando dados do cartão via uma leitora de
cartões ou digitação manual, e autorizando o
pagamento junto a um serviço de autorização de
crédito (externo à loja) via modem.
evidente
© Nabor C. Mendonça 2001
13
Requisitos para o Sistema TV (4)

Processar pagamento (cont.)
Ref #
Função
Categoria
R2.3
Processar pagamento com cheque, capturando
dados de identificação do cliente via digitação
manual, e autorizando o pagamento junto a um
serviço de autorização de cheque (externo à loja)
via modem.
evidente
R2.4
Registrar pagamentos com cartão de crédito junto
ao sistema de contas a receber, uma vez que o
serviço de autorização de crédito deve à loja as
quantias referentes a esses pagamentos.
escondida
© Nabor C. Mendonça 2001
14
Requisitos para o Sistema TV (5)

Requisitos não funcionais valendo para Processar
Venda e Processar Pagamento
Requisito Não Funcional
Comentários
tempo de resposta
Durante o registro de um item de compra, a
descrição e o preço do produto aparecerão em até 5
segundos.
metáfora de interface
Janelas e caixas de diálogo baseadas na metáfora
de formulários.
Maximizar facilidade de navegação via teclado ao
invés de via mouse.
tolerância a falha
Deve registrar pagamentos com cartão de crédito
autorizados junto ao sistema de contas a receber
dentro de 24 horas, mesmo se houver falha de
energia ou nos equipamentos.
plataformas de S.O.
Microsoft Windows XP.
© Nabor C. Mendonça 2001
15
Documentos Derivados Importantes

Glossário (*)

Casos de uso (*)

Modelo conceitual (*)
(*) Explorados no restante da disciplina
© Nabor C. Mendonça 2001
16
Caso de Uso
Planejamento
Elaboração
2. Criar Rel. Prel.
de Investigação
1. Definir Plano
Inicial
© Nabor C. Mendonça 2001
Construção
4. Reg. Termos
no Glossário a
5. Implementar
Protótipo
7. Definir Mod.
Conc. Inicial
8. Definir Arquit.
Inicial
a, c, d
c
b, d
3. Definir Requisitos
6. Definir Use
Cases
Notas
9. Def. Detalhes
das Fases
a. contínua
b. opcional
c. adiável
d. ordem variada
17
Caso de Uso (2)


Como Definir um Caso de Uso?
–
Denominar casos de uso com expressões
começando sempre por um verbo
–
O foco deve ser em casos de uso no nível de
processos elementares de negócio (“elementary
business processes” (EBP))
“Elementary Business Process”
–
O termo EBP é definido como:
Uma função – sub-funções relacionadas -- executada por um
ator em um lugar e em um dado momento, diretamente
relacionada com o negócio. A função não pode ser nem muito
pequena, e nem grande demais. Como regra de bolso, poucos
passos (de cinco a dez), durando de minutos a no máximo
uma hora.
© Nabor C. Mendonça 2001
18
Caso de Uso (3)

Com Relação ao Estudo de Caso
–
Log In de um caixa em um terminal é um exemplo de
uma função que não é diretamente relacionada com
o negócio Vendas, logo não pode ser um caso de
uso EBP
–
Pagar com Cartão de Crédito é um caso de uso
demasiadamente pequeno para ser um EBP
–
O caso de uso Pagar  que generaliza (<<is_a>>) os
casos de uso Pagar com Dinheiro, Pagar com Cartão
de Crédito e Pagar com Cheque  ainda é pequeno
(poucos minutos).
© Nabor C. Mendonça 2001
19
Caso de Uso (4)
–


Um bom candidato a caso de uso EBP para o
Sistema TV é o caso de uso Processar Vendas de
um carrinho de compras, que inclui o caso de uso
Pagar
Deve ficar claro então que um caso de uso EBP
deve ter tamanho suficiente para ser
recursivamente decomposto, se for conveniente,
em subcasos de uso
Casos de uso EBP são o foco da fase de
Elaboração do processo UP
© Nabor C. Mendonça 2001
20
Caso de Uso (5)

Processo para Descobrir Atores, Necessidades
dos Atores, e Casos de Uso EBP
P1. Determinar as fronteiras do sistema
P2. Identificar os atores primários  aqueles que
solicitam diretamente serviços do sistema – ou
executam funções do sistema -- para realizar o
negócio
P3. Para cada ator primário, identificar seus casos de
uso
P4. Distinguir os casos de uso EBP
© Nabor C. Mendonça 2001
21
Caso de Uso (6)

Estudo de Caso
–
Atores Primários
Caixa, Gerente, …
–
Atores Secundários
Cliente, …
© Nabor C. Mendonça 2001
22
Caso de Uso (9)


Níveis de detalhe:
–
Expandido  o mais elaborado. Todos os passos são escritos
em detalhes, segundo o padrão definido em www.usecases.org
– template. O caso de uso Processar Vendas será descrito
seguindo esse formato
–
De alto nível  alguns parágrafos informais
Casos de Uso e o Processo UP
–
Casos de uso EBP são tratados nas fases de Planejamento e
Elaboração
O nível de detalhe é sempre expandido
–
Casos de uso ñ-EBP são tratados na fase de Construção
–
As iterações da Etapa de Elaboração do Processo UP podem
ainda refinar casos de uso EBP. Refinamentos sucessivos
estão na essência do UP
© Nabor C. Mendonça 2001
23
Caso de Uso (10)

Casos de Uso expandidos
–
Diagrama UML de Caso de Uso
Decomposição em subcasos de uso
Visão geral do caso de uso raiz
–
Texto complementar segundo o padrão
www.usecases.org – template
Colunado
Colunas Ator Sistema
Passos seqüênciais
Português estruiturado
© Nabor C. Mendonça 2001
24
Casos de Uso e Funções

Todas as funções do sistema identificadas na
especificação dos requisitos devem ser
contempladas nos casos de uso
–
Seção Referência
© Nabor C. Mendonça 2001
25
Caso de Uso e Outros Artefatos

Casos de Uso e Outros Artefatos
–
Casos de uso são as fontes de informação para
Encontrar conceitos ou entidades para o modelo conceitual
Encontrar as operações e consultas de sistema, que darão
origem aos métodos que fazem a interface do sistema com o
mundo externo
© Nabor C. Mendonça 2001
26
Caso de Uso e Outros Artefatos (2)
© Nabor C. Mendonça 2001
27
Casos de Uso para o Sistema TV
Ator Primário
Casos de Uso
Caixa
Processar vendas;
Log in;
Log out;
...
Gerente
Iniciar terminal (start up)
Encerrar terminal (shut down)
…
…
…
© Nabor C. Mendonça 2001
28
Sistema TV (2)
Caso de Uso
EBP?
Nível de Detalhe
Processar Vendas
Sim
Expandido
Log In
Não
Alto Nível
Log Out
Não
Alto Nível
Iniciar Terminal
Não
Alto Nível
Encerrar Terminal
Não
Alto Nível
…
…
…
© Nabor C. Mendonça 2001
29
Sistema TV (3)

Diagrama parcial para o sistema TV
TV
Processar
Venda
Caixa
Cliente
Log In
Log Out
© Nabor C. Mendonça 2001
30
Sistema TV (4)

Exemplo de um caso de uso de alto-nível (Fase de
Planejamento)
Caso de uso:
Atores:
Descrição:

Português simples ou não estruturado
–

Processar Venda
Caixa
Um Cliente chega no caixa com itens para comprar. O
Caixa registra os itens e coleta o pagamento. Ao final,
o Cliente sai com os itens.
Semelhante a user stories em processos ágeis
Lembre-se: um caso de uso EBP, como é o caso,
em alguma iteração da Fase de Elaboração terá
que ser expandido
© Nabor C. Mendonça 2001
31
Sistema TV (5)

Caso de uso expandido
–
Um diagrama de caso de uso ajuda a dar uma visão
geral
Processar
Venda
Uma
Iteração
<<include>>
<<include>>
<<include>>
Registrar
Item
<<include>>
Atualizar
Total
© Nabor C. Mendonça 2001
Arquivar
Arquivar
a Venda
A
Venda
Pagar
(Dinheiro)
<<extend>>
Anular
Item
<<extend>>
Anular
Venda
32
Sistema TV (6)

Exemplo de um caso de uso expandido
–
Colunado
–
Português estruturado
Caso de uso:
Atores:
Propósito:
Descrição:
Referencia:
Processar venda (1ª. Iteração)
Caixa
Capturar uma venda e seu pagamento em dinheiro.
Um Cliente chega no caixa com itens para comprar. O
Caixa registra os itens e coleta um pagamento com
dinheiro. Ao final, o Cliente sai com os itens.
Funções: R1.1, R1.2, R1.3, R1.5, R1.8, R2.1
Típica Seqüência de Eventos
Ação do Ator
Resposta do Sistema
1. Este caso de uso começa
quando um Cliente chega no
caixa com itens para comprar.
© Nabor C. Mendonça 2001
33
Sistema TV (7)

Exemplo de um use case expandido (cont.)
Típica Seqüência de Eventos
Ação do Ator
2. O Caixa registra o identificador
de cada item.
Se há mais de um do mesmo
item, o Caixa também pode informar a quantidade.
4. Após processar o último item, o
Caixa indica ao TV que a entrada
de itens terminou.
6. O Caixa informa o total ao
Cliente.
© Nabor C. Mendonça 2001
Resposta do Sistema
3. Determina o preço do item e
adiciona informação sobre o item
à transação de venda em andamento.
Mostra a descrição e o preço do
item corrente. Atualiza o total.
5. Calcula e mostra o valor total
da venda.
.
34
Sistema TV (8)

Exemplo de um use case expandido (cont.)
Típica Seqüência de Eventos
Ação do Ator
Resposta do Sistema
7. O Cliente entrega um valor em
dinheiro, possivelmente maior do
que o valor total.
8. O Caixa registra o valor
recebido em dinheiro.
9. Mostra o troco devido.
Emite um recibo.
10. O Caixa deposita o dinheiro e
retira o troco devido.
O Caixa entrega o troco e o
recibo ao Cliente.
12. O Cliente sai com os itens
comprados.
11. Registra a venda no log de
vendas completadas.
© Nabor C. Mendonça 2001
.
35
Sistema TV (9)

Exemplo de um use case expandido (cont.)
Seqüências Alternativas
• Linha 2a: Registro de um identificador inválido. Mostrar erro.
• Linha 7a: Cliente não tem dinheiro suficiente. Cancelar transação.

Seqüencias alternativas devem formar um bloco
separado, com o cabeçalho Fluxo Alternativo
–
O fluxo sem erros ou exceções é chamado de Fluxo
Básico
.
© Nabor C. Mendonça 2001
36
C a s o d e U s o : L o c a r F ita s
F lu xo P rin cip al:
T ratam en to d e E xceçõ es:
1. O cliente chega ao balcão com as
fitas que deseja locar.
3a. O cliente não possui cadastro.
2. O cliente inform a seu nom e e
entrega as fitas ao funcionário.
3. O funcionário registra o nom e do
cliente e inicia a locação.
4. O funcionário registra cada um a das
fita s.
5. O funcionário finaliza a locação,
dev olv e as fitas ao cliente e lhe
inform a a data de dev olução e o v alor
total da locação.
6. O cliente v ai em bora com as fitas.
3a.1 O cliente dev e inform ar seus dado s para
cadastro.
3a.2 O funcionário registra o cadastro.
3a.3 R etorna ao flux o principal no passo 3.
3b. O cliente possui pendências no cadastro (locação
anterior não foi paga).
3b.1 O cliente paga seu débito.
3b.2 O funcionário registra a qu itação do débito,
elim inando assim a pendência.
3b.3 R etorna ao passo 3.
4a. U m a fita está reserv ada para outro cliente.
4a.1 O funcionário inform a que a fita não está
disponív el para locação.
4a.2 P rosseg ue a locação do passo 4 sem incluir
a fita reserv a d a .
4b. U m a fita está danificada.
Caso de Uso com
Exceções
4b.1 O funcionário inform a que a fita está
danificada.
4b.2 O funcionário registra que a fita está
danificada.
4b.3 O funcionário v erifica se existe outra fita
disponív el com o m esm o film e.
© Nabor C. Mendonça 2001
4b.3 S e existir, o funcionário s ubstitui a fita e
segu e no passo 4, senã o segu e do passo 4 sem
incluir a fita danificada.
37
Casos de Uso com Subseções

Caso de uso Processar venda expandido
Seção: Principal
Ação do Ator
Resposta do Sistema
1. ...
2. O Cliente escolhe o tipo de
pagamento:
a) Se pagamento com dinheiro,
veja seção Pagamento com
Dinheiro.
b) ...
Seção: Pagamento com Dinheiro
Ação do Ator
Resposta do Sistema
1. O Cliente entrega um pagamento em dinheiro ...
© Nabor C. Mendonça 2001
38
Escalonando os Casos de Uso do Sistema TV


Criando múltiplas versões de Processar Venda
Cada versão é o resultado de uma iteração da Fase
de Elaboração
–
Iteração 1: apenas pagamentos com dinheiro, sem
atualização de estoque, ...
–
Versão 2: permite todos os tipos de pagamento
–
Versão 3: versão completa, incluindo atualização de
estoque
© Nabor C. Mendonça 2001
39
Download

Caso de Uso - Computação UFCG