1 Análise e Projeto Orientados a Objeto com UML e Padrões Parte I Análise, Projeto e Processo.

53
1 Análise e Projeto Orientados a Objeto com UML e Padrões Parte I Análise, Projeto e Processo

Transcript of 1 Análise e Projeto Orientados a Objeto com UML e Padrões Parte I Análise, Projeto e Processo.

Page 1: 1 Análise e Projeto Orientados a Objeto com UML e Padrões Parte I Análise, Projeto e Processo.

1

Análise e Projeto Orientados a Objetocom UML e Padrões

Parte I

Análise, Projeto e Processo

Page 2: 1 Análise e Projeto Orientados a Objeto com UML e Padrões Parte I Análise, Projeto e Processo.

2

Aplicando UML, Padrões e APOO

Objetivo – Desenvolver habilidades práticas na utilização da

Tecnologia Objeto para a criação de sistemas de software bem projetados, robustos e modificáveis.

Linguagens OO são um primeiro passo necessário mas insuficiente

Outros recursos importantes – processo de desenvolvimento– padrões– UML

Page 3: 1 Análise e Projeto Orientados a Objeto com UML e Padrões Parte I Análise, Projeto e Processo.

3

Atribuindo Responsabilidades

Saber a maneira adequada de atribuir responsabilidades a componentes de software é a habilidade mais importante na APOO– Mais difícil de dominar

– Afeta com mais profundidade a robustez, modificabilidade e reusabilidade do sistema

Padrões GRASP descrevem princípios fundamentais para auxiliar na atribuição de responsabilidades

Saber identificar objetos ou abstrações adequados é a segunda habilidade mais importante

Page 4: 1 Análise e Projeto Orientados a Objeto com UML e Padrões Parte I Análise, Projeto e Processo.

4

O que é Análise e Projeto?

Análise — o quê

Investigação do problema e dos requisitos

Requisitos

Casos de uso

Restrições

Vocabulário

Projeto — como

Descrição de uma solução lógica

Objetos

Arquitetura

Instalação & Operação

Interface do usuário

“Fazer a coisa certa” “Fazer certa a coisa”

Page 5: 1 Análise e Projeto Orientados a Objeto com UML e Padrões Parte I Análise, Projeto e Processo.

5

Termos “Análise” e “Projeto” não são fixos, mas usados ao longo de um contínuo.

Significados variam de metodologia para metodologia.

Distinção é útil na prática, mas debater definições rígidas não é construtivo.

Conflito de Terminologias

Mais orientadoa análise

Mais orientado a projeto

Page 6: 1 Análise e Projeto Orientados a Objeto com UML e Padrões Parte I Análise, Projeto e Processo.

6

O que é APOO?

Na essência, É CONSIDERAR um problema e uma solução dentro da perspectiva de objetos, coisas ou conceitos.

O que é AOO?– Investigação dos objetos de domínio e seus

relacionamentos.

Descritos no Modelo de Objetos de Domínio

O que é POO?– Elaboração de uma solução lógica em termos de

componentes de software e suas colaborações e responsabilidades.

Descritos em Diagramas de Classes e Diagramas de Interação

Page 7: 1 Análise e Projeto Orientados a Objeto com UML e Padrões Parte I Análise, Projeto e Processo.

7

Representação de um Conceito na APOO

Ex.: O conceito “Livro” em um sistema de biblioteca

Representaçãono código

Conceitode domínio

public class Livro{public void imprimir();

private String titulo;}

Livro

título

Representaçãona análise

Livro

título

Representaçãono projeto

imprimir()

Page 8: 1 Análise e Projeto Orientados a Objeto com UML e Padrões Parte I Análise, Projeto e Processo.

8

Uma Analogia:Organizando os Negócios de uma Empresa

Documentos Associados

APOOAnalogia

Casos de usoAnálise de requisitosQuais são os processos de negócio?

Modelo conceitualAnálise do domínioQuais são os papeis dos empregados?

Diagramas de classes de projeto, diagramas de colaboração / interação

Atribuição de responsabilidades, projeto das interações

Quem é responsável por o quê? Como eles interagem?

Page 9: 1 Análise e Projeto Orientados a Objeto com UML e Padrões Parte I Análise, Projeto e Processo.

9

Modelagem na APOO: um exemplo

Um jogo de dados no qual um jogador lança dois dados. Se o total for sete, ele vence; caso contrário, perde.

Definir diagramasde interação

Definir diagramasde classesde projeto

Definir modelode domínio

Definir casosde usos

Exemplo: jogo de dados

Page 10: 1 Análise e Projeto Orientados a Objeto com UML e Padrões Parte I Análise, Projeto e Processo.

10

Definir diagramasde interação

Definir diagramasde classesde projeto

Definir modelode domínio

Definir casosde usos

Um Exemplo — Jogo de Dados

Casos de uso: são descrições narrativas de processos do domínio no formato de prosa estruturada.

Caso de uso: JogarAtores: JogadorDescrição: Este caso de uso começa quando um jogador pega e lança

os dados. Se a soma do valor das faces dos dados totalizar sete, ele vence; caso contrário, perde.

Page 11: 1 Análise e Projeto Orientados a Objeto com UML e Padrões Parte I Análise, Projeto e Processo.

11

Um modelo conceitual descreve conceitos do mundo real, não componentes de software!

Um Exemplo — Jogo de Dados

Definir diagramasde interação

Definir diagramasde classesde projeto

Definir modelode domínio

Definir casosde usos

Modelo conceitual: Conceitos, atributos, e associações que são considerados importantes no domínio da aplicação.

Page 12: 1 Análise e Projeto Orientados a Objeto com UML e Padrões Parte I Análise, Projeto e Processo.

12

Um Exemplo — Jogo de Dados

Alocação de responsabilidades para objetos ilustrando como eles interagem via mensagens.

Mostram o fluxo de mensagens entre instâncias e a invocação de métodos.

pedro:Jogador dado1 : Dado

dado2 : Dado

joga() 1: r1 := lança()

2: r2 := lança()

Definir diagramasde interação

Definir diagramasde classesde projeto

Definir modelode domínio

Definir casosde usos

instância

Diagrama de Colaboração

Page 13: 1 Análise e Projeto Orientados a Objeto com UML e Padrões Parte I Análise, Projeto e Processo.

13

Um Exemplo — Jogo de Dados

Definir diagramasde interação

Definir diagramasde classesde projeto

Definir modelode domínio

Definir casosde usos

Diagrama Interação

Barra de Interação –

Linha de Vida

Page 14: 1 Análise e Projeto Orientados a Objeto com UML e Padrões Parte I Análise, Projeto e Processo.

14

Como os objetos (de software) se conectam? Quais são os métodos de uma classe?

Um Exemplo — Jogo de Dados

Definir diagramasde interação

Definir diagramasde classesde projeto

Definir modelode domínio

Definir casosde usos

Page 15: 1 Análise e Projeto Orientados a Objeto com UML e Padrões Parte I Análise, Projeto e Processo.

15

APOO X APE

Sistema deBiblioteca

Sistema

A&P Orientados a ObjetoDecomposição por objetos ou

conceitos

A&P EstruturadosDecomposição por funções ou

processos

RegistraEmpréstim

os

AdicionaRecursos

ReportaMultas

Catálogo

Livro

Bibliotecário

Biblioteca

Metodologias mais antigas, como Análise e Projeto Estruturados, baseiam-se em outras dimensões de decomposição.

Page 16: 1 Análise e Projeto Orientados a Objeto com UML e Padrões Parte I Análise, Projeto e Processo.

16

A UML é a linguagem padrão de diagramação para visualizar os resultados da análise e projeto

A notação (a própria UML) é relativamente trivial Muito mais importante: habilidade para modelar

com objetos– Só aprender a notação UML não ajuda

A UML não é– um processo ou metodologia

– APOO

– regras de projeto

A Linguagem de Modelagem Unificada

Page 17: 1 Análise e Projeto Orientados a Objeto com UML e Padrões Parte I Análise, Projeto e Processo.

17

Origem e Evolução da UML

Unified Method 0.8 Unificação I(Out’95)

Booch’93 OMT-2

Outros métodos Booch’91 OMT-1 OOSE Fragmentação

UML 1.0

Parceirosda UML

Padronização(Jan’97)

UML 1.1 Industrialização(Set’97)

UML 0.9 & 0.91 Unificação II(Out’96)

Page 18: 1 Análise e Projeto Orientados a Objeto com UML e Padrões Parte I Análise, Projeto e Processo.

18

Processo de Desenvolvimento

Organização das atividades relacionas à produção e manutenção de sistemas de software

Útil, mas um fator de segunda ordem– O principal: equipe qualificada

Boa equipe + bom processo = menor risco

O processo racional unificado (RUP), baseado no modelo iterativo, é o processo padrão na indústria

Page 19: 1 Análise e Projeto Orientados a Objeto com UML e Padrões Parte I Análise, Projeto e Processo.

19

Simplificação do processo iterativo unificado

Fácil extensão e customização Não inclui atividades importantes como

– Verificação & validação

– Divisão do trabalho

– Gerência de projeto

– Documentação

Um Processo Iterativo Simplificado

Planejamento &Elaboração

Construção Implantação

Page 20: 1 Análise e Projeto Orientados a Objeto com UML e Padrões Parte I Análise, Projeto e Processo.

20

Fases

Planejamento e Elaboração– Concepção inicial, investigação de alternativas,

definição de requisitos, etc. Construção

– Construção do sistema através de múltiplos ciclos de análise, projeto, implementação e teste

Implantação– Instalação e operação do sistema

Page 21: 1 Análise e Projeto Orientados a Objeto com UML e Padrões Parte I Análise, Projeto e Processo.

21

Modelos e Artefatos

Um modelo descreve e abstrai aspectos essenciais de um sistema– Modelo estático (estrutura)

– Modelo dinâmico (comportamento) Modelos são compostos por artefatos —

diagramas e documentos que descrevem os elementos do modelo

Na APOO, a UML é usada para descrever e visualizar os modelos e artefatos produzidos em cada fase do processo de desenvolvimento

Page 22: 1 Análise e Projeto Orientados a Objeto com UML e Padrões Parte I Análise, Projeto e Processo.

22

Fase de Planejamento e Elaboração

2. Criar Rel. Prel. de Investigação

3. Definir Requisitos

9. Refinar Plano7. Definir Mod. Conc. Inicial c

4. Reg. Termos no Glossário a

6. Definir Casos de Uso

1. Definir PlanoInicial

5. ImplementarProtótipo

b, d

a. contínuab. opcionalc. adiáveld. ordem variada

8. Definir Arquit.Inicial a, c, d

Notas

Planejamento &Elaboração

Construção Implantação

Page 23: 1 Análise e Projeto Orientados a Objeto com UML e Padrões Parte I Análise, Projeto e Processo.

23

Fase de Planejamento e Elaboração

Atividades:

1. Definir plano inicial

Prazos, recursos, orçamento

2. Criar relatório preliminar de investigação

Motivação, alternativas, necessidades de negócio

3. Definir requisitos

Especificação declarativa dos requisitos

4. Registrar termos no glossário

Dicionário de termos, regras, restrições

5. Implementar protótipo

Protótipo do sistema para ajudar na definição dos requisitos

Page 24: 1 Análise e Projeto Orientados a Objeto com UML e Padrões Parte I Análise, Projeto e Processo.

24

Fase de Planejamento e Elaboração

Atividades:

6. Definir casos de uso

Descrição em prosa estruturada dos processos de negócio

7. Definir modelo conceitual inicial

Objetos de domínio e seus relacionamentos

8. Definir arquitetura inicial

Principais subsistemas e suas dependências

9. Refinar plano

Atividades não lineares – Ex.: 7, 4, 6 em paralelo

Page 25: 1 Análise e Projeto Orientados a Objeto com UML e Padrões Parte I Análise, Projeto e Processo.

25

Fase de Construção

Ciclo deDesenv. 1

Sinc.Artefatos Análise Projeto Teste

Refin.Plano Impl.

Ciclo deDesenv. 2

...

Planejamento &Elaboração

Construção Implantação

Page 26: 1 Análise e Projeto Orientados a Objeto com UML e Padrões Parte I Análise, Projeto e Processo.

26

Fase de Construção

Repetição de ciclos de desenvolvimento– Construção progressiva do sistema até atingir uma

versão que satisfaça corretamente os requisitos Atividades típicas de cada ciclo:

1. Refinar plano

2. Sincronizar artefatos

3. Análise

4. Projeto

5. Implementação

6. Teste

Page 27: 1 Análise e Projeto Orientados a Objeto com UML e Padrões Parte I Análise, Projeto e Processo.

27

Ciclos de Desenvolvimento

Cada ciclo implementa um conjunto reduzido de requisitos, adicionando novas funções ao sistema – Crescimento incremental, através de expansões e

refinamentos sucessivos Ciclos com tempo fixo de duas a oito semanas Vantagens:

– Evita complexidade excessiva

– Antecipa feedback dos usuários

Page 28: 1 Análise e Projeto Orientados a Objeto com UML e Padrões Parte I Análise, Projeto e Processo.

28

Ciclos de Desenvolvimento e Casos de Uso

Um ciclo deve atacar um ou mais casos de uso ou versões simplificadas de casos de uso.

Casos de uso mais relevantes devem ser atacados nos primeiros ciclos.– Prioridade para serviços com grande influência na

arquitetura do sistema ou de alto risco.

Ciclo de Desenv. 1

Caso de uso AVersãoSimplificada

Ciclo de Desenv. 2

Caso de uso AVersãoCompleta

Ciclo de Desenv. 3

Caso de uso B

Caso de uso C

Page 29: 1 Análise e Projeto Orientados a Objeto com UML e Padrões Parte I Análise, Projeto e Processo.

29

Análise

a. se ainda não feitob. contínuoc. opcional

2. Refinar Diag. Casos de Uso

3. Refinar ModeloConceitual

4. Refinar Glossário b

6. Definir Contrat.de Operação

1. Definir Casos de Uso Essenciais a

5. Definir Diag.Seq.

7. Definir Diag.Estado c

Notas

...Ciclo deDesenv. 1

Sinc.Artefatos Análise Projeto TesteRefin.

Plano Impl.

Ciclo deDesenv. 2

Page 30: 1 Análise e Projeto Orientados a Objeto com UML e Padrões Parte I Análise, Projeto e Processo.

30

Análise

Sub-atividades:

1. Definir casos de uso essenciais

2. Refinar diagramas de casos de uso

3. Refinar modelo conceitual

4. Refinar glossário

5. Definir diagramas de seqüência do sistema

6. Definir contratos de operação

7. Definir diagramas de estado

Page 31: 1 Análise e Projeto Orientados a Objeto com UML e Padrões Parte I Análise, Projeto e Processo.

31

Projeto

2. Definir Relatórios, Interface Usuário

4. Definir Diag.Interação

5. Definir Diag.Classes a

6. Definir Esquemado BD

1. Definir Casos deUso Reais

3. Refinar Arquitetura b

Notas

a. em paralelo com diag. interaçãob. ordem variada

...Ciclo deDesenv. 1

Sinc.Artefatos Análise Projeto TesteRefin.

Plano Impl.

Ciclo deDesenv. 2

Page 32: 1 Análise e Projeto Orientados a Objeto com UML e Padrões Parte I Análise, Projeto e Processo.

32

Projeto

Sub-atividades:

1. Definir casos de uso reais

2. Definir relatórios e interfaces com o usuário

3. Refinar arquitetura do sistema

4. Definir diagramas de interação

5. Definir diagramas de classes de projeto

6. Definir esquema do banco de dados

Page 33: 1 Análise e Projeto Orientados a Objeto com UML e Padrões Parte I Análise, Projeto e Processo.

33

Padrões de Projeto(introdução)

1. Objetivos de Projeto e

2. Vantagens no uso de Padrões de Projeto

Page 34: 1 Análise e Projeto Orientados a Objeto com UML e Padrões Parte I Análise, Projeto e Processo.

34

Padrão de Projeto

Descrição de um problema recorrente, de forma genérica.

Descrição de uma solução também genérica, que deve ser adaptada de acordo com o contexto em que o problema se manifesta.

Page 35: 1 Análise e Projeto Orientados a Objeto com UML e Padrões Parte I Análise, Projeto e Processo.

35

Objetivos de projeto Reusabilidade, flexibilidade e manutenibilidade

– reutilize projetos flexíveis

– mantenha o código em um nível geral

– minimize dependência de outras classes

Robustez

– reutilize projetos seguros

– reutilize partes robustas

Suficiência e correção

– modularize o projeto

– reutilize partes confiáveis

Page 36: 1 Análise e Projeto Orientados a Objeto com UML e Padrões Parte I Análise, Projeto e Processo.

36

Vantagens no uso de Padrões de Projeto

Evita a redescoberta de soluções Propicia o uso de soluções corretas Melhora a qualidade do software Melhora a confiabilidade do software Provê uma linguagem comum entre desenvolvedores Reduz o volume de documentação Economiza esforço e tempo de desenvolvimento e

manutenção Conduz ao bom uso de orientação a objetos

Page 37: 1 Análise e Projeto Orientados a Objeto com UML e Padrões Parte I Análise, Projeto e Processo.

37

Exemplo de Problema Recorrente : Composição

Em um sistema de arquivos, existem arquivos e pastas (diretórios), sendo que todo arquivo está contido em uma pasta e toda pasta pode conter arquivos e também outras pastas.

Em um documento, existem caracteres e imagens como elementos básicos, e páginas, colunas, frames e linhas de texto como elementos compostos, sendo que todo elemento básico está contido em um elemento composto e todo elemento composto pode conter elementos básicos e também outros elementos compostos.

Page 38: 1 Análise e Projeto Orientados a Objeto com UML e Padrões Parte I Análise, Projeto e Processo.

38

Composição em Sistema de Arquivos

ComponenteSistemaArquivos

Arquivo Pasta

listar ( ) {abstract}

listar ( )listar ( )

tamanho

tipo

0..*

Page 39: 1 Análise e Projeto Orientados a Objeto com UML e Padrões Parte I Análise, Projeto e Processo.

39

Composição em Documento

ElementoDocumento

Caráter Imagem ElementoCompostoDocumento

Documento Página Coluna Frame LinhaTexto

0..*

Page 40: 1 Análise e Projeto Orientados a Objeto com UML e Padrões Parte I Análise, Projeto e Processo.

40

Referências Bibliográficas Design Patterns: Elements of Reusable Object-Oriented

Software. Erich Gamma e outros (GoF), Addison-Wesley, 1995.

Patterns in Java: a catalog of reusable design patterns illustraded in UML, Volume 1. Mark Grand, John Wiley & Sons, 1998.

Projeto de Software: da programação à arquitetura (Software design: from programming to architecture). Eric Braude, John Wiley & Sons, 2004.

Page 41: 1 Análise e Projeto Orientados a Objeto com UML e Padrões Parte I Análise, Projeto e Processo.

41

Caso de Uso(Detalhamento)

1. Um exemplo: Processar Venda

Page 42: 1 Análise e Projeto Orientados a Objeto com UML e Padrões Parte I Análise, Projeto e Processo.

42

Um exemplo: Processar VendaAtor Principal: Caixa

Interessados e Interesses: Caixa: deseja entrada rápida, precisa e sem erros, de pagamento, pois a falta de dinheiro na

gaveta do caixa será deduzida do seu salário. Vendedor: deseja comissões sobre vendas atualizadas. Cliente: deseja comprar, receber um serviço rápido e com mínimo esforço. Deseja um

comprovante da compra, necessário no caso de devoluções de mercadorias. Empresa: deseja registrar precisamente as transações e satisfazer aos interesses do cliente.

Quer garantir que os pagamentos a receber do Serviço de autorização de Pagamentos sejam registrados. Deseja algum tipo de proteção contra falhas para permitir que as vendas sejam capturadas mesmo se os componentes do servidor (por exemplo, validação remota de crédito) se encontrarem indisponíveis. Deseja uma atualização automática e rápida da contabilidade e do estoque.

Órgãos fiscais governamentais: desejam cobrar os impostos de cada venda. Podem estar envolvidos vários órgãos, como por exemplo, federais, estaduais e municipais.

Serviço de autorização de pagamentos: deseja receber solicitações de autorização digital no formato e protocolo corretos. Deseja contabilizar com precisão seus débitos a pagar para a loja.

Pré-Condições: o Caixa é identificado e autenticado.

Pós-Condições: a Venda é salva. Os impostos são corretamente calculados. A Contabilidade e o Estoque são atualizados. As Comissões são registradas. O Recibo é gerado. As aprovações de pagamento são registradas.

Page 43: 1 Análise e Projeto Orientados a Objeto com UML e Padrões Parte I Análise, Projeto e Processo.

43

Um exemplo: Processar Venda (continuação)

Fluxo Básico1. O Cliente chega à saída do PDV com bens ou serviços para adquirir.

2. O Caixa começa uma nova venda.

3. O Caixa digita o identificador do item.

4. O Sistema registra a linha de item da venda e apresenta uma descrição do item, o seu preço e o total parcial da venda. O preço é calculado segundo um conjunto de regras de preços.

O Caixa repete os passos 3 e 4 até que indique ter terminado.

5. O Sistema apresenta o total com impostos calculados.

6. O Caixa diz ao Cliente o total e solicita o pagamento.

7. O Cliente paga e o Sistema trata o pagamento.

8. O Sistema registra a venda completada e envia as informações de venda e pagamento para o Sistema externo de contabilidade (para contabilidade e comissões) e o Sistema de Estoque (para atualizar o estoque).

9. O Sistema emite recibo.

10. O Cliente sai com recibo e bens (se houver).

Page 44: 1 Análise e Projeto Orientados a Objeto com UML e Padrões Parte I Análise, Projeto e Processo.

44

Um exemplo: Processar Venda (continuação)

Fluxos Alternativos

*a. A qualquer momento, o Sistema falha:

Para fornecer suporte para a recuperação e a correta contabilização, garanta que todas as informações de estado sensíveis das transações e de todos os eventos possam ser recuperadas a partir de qualquer passo do cenário.

1. O Caixa reinicia o Sistema, registra-se e solicita arecuperação do estado anterior.

2. O Sistema restaura o estado anterior.

2a. O Sistema detecta anomalias que impedem arestauração:

1. O Sistema avisa ao Caixa sobre o erro, registra o erro e, então, entra em um novo estado consistente:

2. O Caixa começa uma nova venda.

Page 45: 1 Análise e Projeto Orientados a Objeto com UML e Padrões Parte I Análise, Projeto e Processo.

45

Um exemplo: Processar Venda (continuação)

Fluxos Alternativos (continuação)

3a. Identificador inválido:1. O Sistema informa o erro e rejeita a entrada.

3b. Existem vários itens do mesmo tipo e rastrear o item físico individual não é importante (p. ex: 5 pacotes de sanduíches naturais).1. O Caixa pode digitar o identificador do tipo do item e a

quantidade.

3-6a. O Cliente pede ao Caixa para remover um item da compra:1. O Caixa digita o identificador do item a ser removido da venda.

2. O Sistema exibe o total parcial atualizado.

3-6b. O Cliente diz ao Caixa para cancelar a venda:1. O Caixa cancela a venda no Sistema.

3-6c. O Caixa suspende a venda:1. O Sistema registra a venda de forma que ela fique disponível para

acesso a partir de qualquer terminal PDV.

Page 46: 1 Análise e Projeto Orientados a Objeto com UML e Padrões Parte I Análise, Projeto e Processo.

46

Um exemplo: Processar Venda (continuação)

Fluxos Alternativos (continuação)

4a. O preço do item gerado pelo Sistema não é desejado (por exemplo, o Cliente se queixa de que algo está sendo oferecido a um preço mais baixo):

1. O Caixa digita o preço que prevalecerá.

2. O Sistema apresenta o novo preço.

5a. O Sistema detecta uma falha na comunicação com o serviço externo de cálculo de impostos:

1. O Sistema reinicia esse serviço no nó PDV e continua.

1a. O Sistema detecta que o serviço não reinicia.1. O Sistema sinaliza o erro.2. O Caixa pode calcular manualmente e digitar o imposto ou cancelar a venda.

5b. O Cliente diz que tem direito a um desconto (por exemplo, empregado, cliente preferencial):

1. O Caixa sinaliza uma solicitação de desconto.

2. O Caixa entra com a identificação do Cliente.

3. O Sistema apresenta o total do desconto com base nas regras para descontos.

5c. O Cliente diz que tem um crédito na sua conta que pode ser usado para pagar a compra:

1. O Caixa sinaliza uma solicitação de crédito.

2. O Caixa digita a identificação do Cliente.

3. O Sistema aplica o crédito até que o preço=0 e deduz do pagamento remanescente.

Page 47: 1 Análise e Projeto Orientados a Objeto com UML e Padrões Parte I Análise, Projeto e Processo.

47

Um exemplo: Processar Venda (continuação)

Fluxos Alternativos (continuação)

6a. O Cliente diz que pretendia pagar com dinheiro, mas não tem dinheiro suficiente:

1a. O Cliente usa um método de pagamento alternativo.

1b. O Cliente diz ao Caixa para cancelar a venda. O Caixa cancela a venda no Sistema.

7a. Pagamento com dinheiro:

1. O Caixa digita a quantia de dinheiro fornecida.

2. O Sistema apresenta o valor do troco e libera a gaveta de dinheiro.

3. O Caixa deposita o dinheiro fornecido e entrega o troco para o Cliente.

4. O Sistema registra o pagamento em dinheiro.

Page 48: 1 Análise e Projeto Orientados a Objeto com UML e Padrões Parte I Análise, Projeto e Processo.

48

Um exemplo: Processar Venda (continuação)

Fluxos Alternativos (continuação)

7b. Pagamento a crédito:

1. O Cliente digita as informações de sua conta de crédito.

2. O Sistema envia a solicitação de autorização de pagamento para um serviço externo de Autorização de Pagamento e solicita sua aprovação.

2a. O Sistema detecta uma falha ao tentar colaborar com o sistema externo:

1. O Sistema sinaliza erro ao Caixa.

2. O Caixa pede ao Cliente uma forma de pagamento alternativa.

3. O Sistema recebe aprovação do pagamento e sinaliza a aprovação ao Caixa

3a. O Sistema recebe rejeição do pagamento:1. O Sistema sinaliza rejeição ao Caixa.2. O Caixa solicita ao Cliente uma forma alternativa de pagamento.

4. O Sistema registra o pagamento a crédito, que inclui a aprovação do pagamento.

5. O Sistema apresenta o mecanismo para entrada da assinatura do pagamento a crédito.

6. O Caixa solicita ao Cliente uma assinatura para pagamento a crédito. O Cliente fornece a assinatura.

Page 49: 1 Análise e Projeto Orientados a Objeto com UML e Padrões Parte I Análise, Projeto e Processo.

49

Um exemplo: Processar Venda (continuação)

Fluxos Alternativos (continuação)

7c. Pagamento com cheque...

7d. Pagamento com débito em contra...

7e. O Cliente apresenta cupons:

1. Antes de tratar o pagamento, o Caixa registra cada cupom e o Sistema reduz o preço conforme estabelecido. O Sistema registra os cupons usados por razões contábeis.

1a. O Cupom digitado não serve para quaisquer dos itens comprados:1. O Sistema sinaliza erro ao Caixa.

9a. Existem descontos específicos para certos produtos:

1. O Sistema apresenta os formulários de descontos e os recibos de descontos para cada item ao qual se aplica um desconto.

9b. O Cliente solicita o recibo para presente e o Sistema apresenta o mesmo.

Page 50: 1 Análise e Projeto Orientados a Objeto com UML e Padrões Parte I Análise, Projeto e Processo.

50

Um exemplo: Processar Venda (continuação)

Requisitos Especiais Interface de Usuário (IU) por tela sensível ao toque

em um monitor de painel plano grande. O texto deve ser visível a uma distância de um metro.

Resposta de autorização de crédito dentro de 30 segundos em 90% do tempo.

De alguma forma, queremos uma recuperação robusta quando o acesso aos serviços remotos, tal como o sistema de estoque, estiver falhando.

Internacionalização de linguagem no texto exibido. Regras de negócio “plugáveis” que podem ser

inseridas nos passos 2 e 6. ...

Page 51: 1 Análise e Projeto Orientados a Objeto com UML e Padrões Parte I Análise, Projeto e Processo.

51

Um exemplo: Processar Venda (continuação)

Lista de Variações Tecnológicas e de Dados:

3a. Identificador de item inserido por leitor a laser de código de barras (quando o item tiver código de barras) ou pelo teclado.

3b. Identificador de item pode ser qualquer um dos seguintes esquemas de codificação: CUP, NAE, NAJ ou SKU.

7a. Informação sobre a conta de crédito inserida por leitora de cartão ou pelo teclado.

7b. Assinatura de pagamento a crédito capturada em recibo de papel. NO entanto, prevemos que, dentro de dois anos, muitos clientes desejarão captura de assinatura digital.

Freqüência de Ocorrência: Poderia ser quase continuo.

Page 52: 1 Análise e Projeto Orientados a Objeto com UML e Padrões Parte I Análise, Projeto e Processo.

52

Um exemplo: Processar Venda (continuação)

Problemas em Aberto: Quais são as variações das leis de impostos? Deve-se explorar o problema de recuperação de serviço

remoto. Qual personalização é necessária para diferentes negócios? Um Caixa deve levar sua gaveta de dinheiro quando ele sai do

Sistema? O Cliente pode usar diretamente a leitora de cartão ou é o

Caixa que deve fazê-lo?

Page 53: 1 Análise e Projeto Orientados a Objeto com UML e Padrões Parte I Análise, Projeto e Processo.

53

APOO

1. Exercício