análise orientada a objetos - casos de uso
DESCRIPTION
Apresentação sobre Análise Orientada a Objetos - Casos de UsoTRANSCRIPT
Análise Orientada a Análise Orientada a ObjetosObjetos
Casos de UsoCasos de Uso
2
Objetivo: Descrever um modelo funcional do sistema. Objetivo: Descrever um modelo funcional do sistema.
Procura identificar os usuários e representar o sistema Procura identificar os usuários e representar o sistema segundo a sua visão. [Deboni 2003]. segundo a sua visão. [Deboni 2003].
Deve estabelecer um modelo de requisitos do Deve estabelecer um modelo de requisitos do sistema através da identificação de como o mesmo sistema através da identificação de como o mesmo será utilizado pelos elementos externos e quais será utilizado pelos elementos externos e quais serviços deve prover.serviços deve prover.
Casos de UsoCasos de Uso
3
Este diagrama utiliza três elementos básicos para a Este diagrama utiliza três elementos básicos para a sua construção:sua construção:
ATORATOR• Um ator é alguém ou alguma coisa que interage com o Um ator é alguém ou alguma coisa que interage com o sistema; é quem ou o que usa o sistema.sistema; é quem ou o que usa o sistema.• O ator representa um papel, não um usuário individual do O ator representa um papel, não um usuário individual do sistema.sistema.• Atores podem ser humanos ou sistemas automatizados.Atores podem ser humanos ou sistemas automatizados.• O ator comunica-se com o sistema enviando e recebendo O ator comunica-se com o sistema enviando e recebendo mensagens.mensagens.• Atores recebem nomes que refletem o papel que Atores recebem nomes que refletem o papel que desempenham no sistema.desempenham no sistema.• Representação gráfica do ator: 0Representação gráfica do ator: 0 nome do ator
Elementos de um Diagrama Elementos de um Diagrama UCUC
4
Atores - ExemplosAtores - Exemplos
•Em um Consultório MédicoEm um Consultório Médico
Médico Atendente
•Em uma BibliotecaEm uma Biblioteca
Bibliotecário Usuário
Elementos de um Diagrama Elementos de um Diagrama UCUC
5
CASO DE USOCASO DE USO
• Um caso de uso representa uma funcionalidade completa Um caso de uso representa uma funcionalidade completa do sistema, conforme percebida por um ator.do sistema, conforme percebida por um ator.
• É um conjunto de seqüências de ações que um sistema É um conjunto de seqüências de ações que um sistema executa, gerando um resultado observável que interessa a executa, gerando um resultado observável que interessa a determinado ator.determinado ator.
• A idéia é que os casos de uso representem, por meio de A idéia é que os casos de uso representem, por meio de pequenas histórias descritivas, as funcionalidades de um pequenas histórias descritivas, as funcionalidades de um sistema.sistema.
• Modela o diálogo entre o ator e o sistema.Modela o diálogo entre o ator e o sistema.
• São as funções que o sistema vai desempenhar.São as funções que o sistema vai desempenhar.
Casos de UsoCasos de Uso
6
CASO DE USOCASO DE USO
• Os Casos de Uso representam as funções do sistema, ou Os Casos de Uso representam as funções do sistema, ou seja, os requisitos do sistema sob o ponto de vista do seja, os requisitos do sistema sob o ponto de vista do usuáriousuário
• Eles mostram as funcionalidades que serão utilizadas pelos Eles mostram as funcionalidades que serão utilizadas pelos usuáriosusuários
• O foco do Caso de Uso está em O QUE o sistema faz e não O foco do Caso de Uso está em O QUE o sistema faz e não COMO o sistema fazCOMO o sistema faz
Casos de UsoCasos de Uso
7
Representação gráfica do Caso de Uso Representação gráfica do Caso de Uso
Nome do Caso de Uso
Nome do Caso de Uso
Casos de UsoCasos de Uso
8
Exemplo: Sistema TelefônicoExemplo: Sistema Telefônico
Realizar Chamada
Manter Agenda
Usuário
Casos de UsoCasos de Uso
9
Exemplo: PanificadoraExemplo: Panificadora
Vender Produtos
Receber Pagamento
BalconistaCaixa
Casos de UsoCasos de Uso
10
Para identificar os Casos de Uso respondemos algumas perguntas como:
“Qual é a expectativa do usuário ao usar o sistema, ou seja, o que ele precisa fazer com o sistema?”
“ Quais resultados de valor o usuário espera receber do sistema?”
Exemplos: Efetuar Depósito Solicitar Extrato Efetuar Transferência Efetuar Saque Validar Saldo
Está é uma lógica oculta Está é uma lógica oculta com a qual o usuário final com a qual o usuário final não se preocupa, portanto não se preocupa, portanto não é qualificada com um não é qualificada com um
Caso de UsoCaso de Uso
Casos de UsoCasos de Uso
11
Casos de Uso do tipo CRUD (Create, Read, Update, Delete) por terem comportamentos muito semelhantes geralmente são combinados em um caso de uso que ofereça todos os recursos de manutenção.
==
==
UC Manter UsuárioUC Manter Usuário
UC Incluir UsuárioUC Incluir Usuário
UC Excluir UsuárioUC Excluir Usuário
UC Alterar UsuárioUC Alterar Usuário
UC Pesquisar UsuárioUC Pesquisar Usuário
UC Manter UC Manter Conta CorrenteConta Corrente
UC Abrir conta correnteUC Abrir conta corrente
UC Encerrar conta correnteUC Encerrar conta corrente
UC Alterar conta correnteUC Alterar conta corrente
UC Consultar conta correnteUC Consultar conta corrente
Fazendo uma analogia:
Casos de UsoCasos de Uso
12
Exercícios:1) Identifique os atores e elabore o diagrama de casos de uso para o sistema de controle de uma biblioteca descrito a seguir:
•É um sistema de suporte para uma bibliotecaÉ um sistema de suporte para uma biblioteca•A biblioteca empresta livros e revistas para clientes, que são A biblioteca empresta livros e revistas para clientes, que são registrados no sistema, no qual também estão registrados os registrados no sistema, no qual também estão registrados os livros e as revistaslivros e as revistas•A biblioteca controla a compra de novos títulos. De títulos A biblioteca controla a compra de novos títulos. De títulos populares compra-se várias cópias. Livros antigos e revistas populares compra-se várias cópias. Livros antigos e revistas são removidos quando estão ultrapassados ou deterioradossão removidos quando estão ultrapassados ou deteriorados•Bibliotecário é um funcionário da biblioteca que interage Bibliotecário é um funcionário da biblioteca que interage com os clientes e seu trabalhocom os clientes e seu trabalho é auxiliado pelo sistemaé auxiliado pelo sistema
Casos de UsoCasos de Uso
13
Exercícios: (continuação)
•Um cliente pode reservar um livro ou revista que não está Um cliente pode reservar um livro ou revista que não está disponível no momento na biblioteca, de forma que quando disponível no momento na biblioteca, de forma que quando ele for devolvido ou comprado pela biblioteca, o cliente é ele for devolvido ou comprado pela biblioteca, o cliente é avisado. A reserva é cancelada quando o cliente retira o livro avisado. A reserva é cancelada quando o cliente retira o livro ou revista, ou através de um processo exclusivo de ou revista, ou através de um processo exclusivo de cancelamentocancelamento•A biblioteca pode facilmente criar, atualizar, e apagar A biblioteca pode facilmente criar, atualizar, e apagar informações sobre seus títulos, clientes, empréstimos, e informações sobre seus títulos, clientes, empréstimos, e reservas no sistemareservas no sistema•O sistema pode rodar em todos os ambientes populares O sistema pode rodar em todos os ambientes populares (UNIX, Linux, windows, etc) e tem uma interface gráfica (GUI) (UNIX, Linux, windows, etc) e tem uma interface gráfica (GUI) modernamoderna•O sistema deve ser facilmente estendido com novas O sistema deve ser facilmente estendido com novas funcionalidadesfuncionalidades•O sistema deve lidar com a mensagem que é enviada ao O sistema deve lidar com a mensagem que é enviada ao cliente quando um título reservado torna-se disponível, e cliente quando um título reservado torna-se disponível, e precisa checar se um determinado título está ultrapassado ou precisa checar se um determinado título está ultrapassado ou deteriorado.deteriorado.
Casos de UsoCasos de Uso
14
Exercícios:2) Identifique os atores e elabore o diagrama de casos de uso para um sistema de controle de uma máquina que vende Coca-Cola, descrito a seguir:
•É um sistema de venda de Coca-cola em máquina É um sistema de venda de Coca-cola em máquina automatizadaautomatizada•O sistema deve estar preparado para receber e conferir o O sistema deve estar preparado para receber e conferir o dinheiro colocado pelo Cliente, inclusive para dar o trocodinheiro colocado pelo Cliente, inclusive para dar o troco•Deve controlar a recarga de refrigerantes pelo Técnico, bem Deve controlar a recarga de refrigerantes pelo Técnico, bem como o recolhimento do dinheiro da máquina.como o recolhimento do dinheiro da máquina.
Casos de UsoCasos de Uso
15
Descreva passo a passo como ocorre o Saque em Descreva passo a passo como ocorre o Saque em um Caixa Automático.um Caixa Automático.
1 - Cliente insere o cartão2 - Caixa Automático solicita a senha3 - Caixa solicita Automático solicita o serviço que o Cliente deseja4 - Cliente seleciona a opção Saque5 - Caixa Automático solicita o valor do Saque
6 - Cliente seleciona o valor da retirada7 - Caixa Automático solicita data de nascimento8 - Caixa Automático solicita a colocação do cartão
9 - Cliente insere e retira o cartão10 - Caixa Automático libera o dinheiro11 - Caixa Automático inicia a tela para o próximo Cliente
Especificação de um Caso de Especificação de um Caso de UsoUso
16
Vocês especificaram um Caso de Uso Como não foi fornecido um padrão, cada um
fez do seu modo Sem um padrão cada um coloca o seu estilo
na especificação: muitos detalhes só um resumo o que pode criar problemas de comunicação
Especificação de um Caso de Especificação de um Caso de UsoUso
17
Problemas de ComunicaçãoProblemas de Comunicação
18
Informações Básicas Número do Caso de Uso Nome do Caso de Uso Descrição Pré-condições Pós-condições Ator Principal Fluxo de Eventos Fluxos Alternativos Fluxos de Exceção Cenários Views (Telas, Relatórios, etc) Regras de Negócio
Especificação de um Caso de Especificação de um Caso de UsoUso
19
Descrição: Descrever a função e o resultado observável do
Caso de Uso. Orientações:
Escreva pouco Especifique com exatidão o resultado observável
Sugestão: “Este Caso de Uso serve para ...” Exemplos: Este caso de uso serve para realizar um
saque em Conta Corrente com cartão de débito.
Especificação de um Caso de Especificação de um Caso de UsoUso
20
Pré-condições: Condições que precisam ser verdadeiras para que o
Caso de Uso possa iniciar Orientações:
Uma pré-condição não satisfeita impede o início do Caso de Uso .
Uma pré-condição pode ser um outro Caso de Uso executado.
Nem todos os Casos de Uso têm pré-condições. Sugestão: “Este Caso de Uso pode iniciar somente
se ...” Exemplos: Este use case pode iniciar somente se:
O Cliente tiver perfil disponível para transação Saque em Conta Corrente.
Tela do Caixa Automático estiver disponível.
Especificação de um Caso de Especificação de um Caso de UsoUso
21
Pós-condiçõesPós-condições: Situação após a execução do Caso de Uso
Orientações: As pós-condições são condições que devem sempre ser
verdadeiras após o término da execução do Caso de Uso. Uma pós-condição não satisfeita impede o fim normal do
Caso de Uso. Assim como as pré-condições, as pós-condições podem ser
usadas para adicionar informações sobre a ordem em que os Casos de Uso são executados.
Sugestão: “Após o fim normal deste Caso de Uso ... deve ...”
Exemplos: Após o fim normal deste Caso de Uso, o sistema deve:
ter feito o débito na Conta Corrente do Cliente. ter acionado o UC Contabilidade de Caixa. ter impresso o Comprovante do Saque em C/C. ter disponibilizado informações para Extrato C/C.
Especificação de um Caso de Especificação de um Caso de UsoUso
22
Ator: O Ator não faz parte do sistema, ele é quem
solicita uma ação ao sistema (ou recebe uma resposta do sistema), ou seja, é quem interage com o sistema.
Tipos de ator: Humano: um cliente de um banco sacando dinheiro. Sistema: o Sistema de Ações é o Ator quando aciona o
Sistema de Contas Correntes para depositar os dividendos da carteira de ações do cliente.
Tempo: no início do mês o Sistema de Contas Correntes imprime os extratos do mês anterior para enviar ao cliente através do Correio.
Especificação de um Caso de Especificação de um Caso de UsoUso
23
Fluxo de Eventos PrincipalFluxo de Eventos Principal : Descrever a seqüência de ações que devem
ser executadas para que o Caso de Uso execute sua função.
Orientações: Descrição passo a passo do fluxo normal, ou
“caminho feliz”, sob o ponto de vista do Ator Especifica como o Sistema será usado e não
como será implementado Deve ser caracterizado por frases
simples, em que o sujeito é o Ator ou o Sistema
Não deve ter desvios para outros passos do Fluxo de Eventos
Especificação de um Caso de Especificação de um Caso de UsoUso
24
Sugestão:1. O Usuário .... 2. O Sistema apresenta a tela XXX3. O Usuário ...4. ...5. O Caso de Uso é finalizado.
Especificação de um Caso de Especificação de um Caso de UsoUso
25
Fluxos de Eventos AlternativosFluxos de Eventos Alternativos No Fluxo de Eventos Principal, caso ocorra
alguma condição em algum dos passos, deve-se executar um Fluxo Alternativo para aquele passo.
Orientações: Um Fluxo Alternativo pode conter outros
Fluxos Alternativos e pode retornar para o fluxo principal
Especificação de um Caso de Especificação de um Caso de UsoUso
26
Fluxos de Eventos Alternativos (Continuação):
Sugestão: Fluxo Principal
1. O Usuário ... (A1)2. O Sistema apresenta a tela XXX...3. O Usuário ... (A2)
Fluxos Alternativos A1: [nome do fluxo alternativo A1]
1. O Usuário ... (A3)2. O Sistema ...
A2: [nome do fluxo alternativo A2]1. ...
Especificação de um Caso de Especificação de um Caso de UsoUso
27
Fluxos de ExceçãoFluxos de Exceção Descrevem os procedimentos que devem ser
adotados no caso de erros durante os fluxos principal e alternativos.
Especificação de um Caso de Especificação de um Caso de UsoUso
28
Cenários: São exemplos específicos de fluxos de um
Caso de Uso. São úteis para validar os fluxos.
Exemplos: Cenário 1: Saldo da conta igual a R$ 1000,00
e cliente tenta sacar R$ 2.000,00 Cenário 2: Saldo da conta igual a R$ 1000,00
e cliente saca um valor menor que o saldo, com sucesso
Especificação de um Caso de Especificação de um Caso de UsoUso
29
Caso de Uso
Políticas
Restrições, proibições ou obrigações
para o Ator
Regras do Sistema
Restrições, proibições ou obrigações
para o Sistema
Regras
Regras (Exclusivas)
Regras (Reusáveis)
Caso de Uso
SistemaProcesso
Regras de Negócio
Especificação de um Caso de Especificação de um Caso de UsoUso
30
Formatos das Regras de Negócio “{Sujeito da Frase} deve ...” (obrigar)
Exemplo: R1: Um pedido de empréstimo acima de R$ 1.000,00 deve ter dois avalistas.
“{Sujeito da Frase} pode ... somente se ...” (restringir)
Exemplo: R2: Um saque pode ser feito somente se a conta estiver ativa e o saldo for suficiente.
“{Sujeito da Frase} não pode ...” (proibir) Exemplo: R3: Um Cliente não pode fazer um
empréstimo se tiver restritivos.
Especificação de um Caso de Especificação de um Caso de UsoUso
31
Exemplos Comentados
Exemplo 1: Um Cliente do Banco deve ter uma conta corrente
Comentário: Uma regra sempre deve ser declarada através de uma frase com sujeito
Exemplo 2: Um Cliente deve apresentar dois avalistas, se o valor do empréstimo for superior a R$ 10.000,00.
Comentário: Uma regra pode ser qualificada com as palavras “se” e “quando”
Especificação de um Caso de Especificação de um Caso de UsoUso
32
Exemplo 2: O sistema deve permitir o saque se a conta estiver ativa e se o saldo for suficiente
Comentário: Para especificar regras implementáveis podemos utilizar como sujeito o Sistema.
Especificação de um Caso de Especificação de um Caso de UsoUso
33
Exemplo: Um Cliente novo deve receber talão de cheque depois de 30 dias da abertura da conta.
Comentário: Uma regra pode ser qualificada com palavras que façam referência ao tempo, tais como “antes”, “depois”, “durante”, “por (um intervalo de tempo)”, “em (um momento ou um intervalo de tempo)”
Especificação de um Caso de Especificação de um Caso de UsoUso
34
Exemplo: Considere os passos do Fluxo Principal abaixo1. O usuário solicita o saque.2. Se o saque for aprovado, o sistema libera o
dinheiro. Comentários:
1) Fluxo principal ou alternativo começando com “se”, pode estar escondendo uma regra. Tente reescrevê-la numa frase com sujeito e seguindo as orientações apresentadas.
2) O exemplo revisado conforme o padrão é assim: 1. O usuário solicita o saque2. O sistema libera o dinheiro (R8).
Especificação de um Caso de Especificação de um Caso de UsoUso
35
Comentários: 3) A regra R8 deve ser especificada no
Modelo de Regras e apenas referenciada no Caso de Uso: “R8: O sistema deve permitir o saque se a conta estiver ativa e o saldo for suficiente”.
4) Este padrão estabelece que a regra deve começar com um sujeito e não com “se” para evitar que o analista seja induzido a escrever pseudo-código.
Especificação de um Caso de Especificação de um Caso de UsoUso
36
Fluxo de Eventos dos Casos de Uso – Fluxo de Eventos dos Casos de Uso – ExemplosExemplos
Saque com cartão: Saque com cartão: UC001 – Saque com cartão
Telefone Celular:Telefone Celular: UC001 – Realizar Chamada
Casos de UsoCasos de Uso
37
Exemplo:Exemplo:
Estudo de Caso 1 – Sistema de EmpréstimosEstudo de Caso 1 – Sistema de Empréstimos
Exercícios:Exercícios:
Estudo de Caso 3 – Revenda de CelularesEstudo de Caso 3 – Revenda de Celulares
Casos de UsoCasos de Uso
38
O Diagrama de Caso de Uso pode ser reestruturado para melhor demonstrar o encadeamento das funções.
A reestruturação é feita a partir dos relacionamentos existentes entre atores e entre casos de uso.
Diagrama de Caso de UsoDiagrama de Caso de UsoEstruturação de um Diagrama de Caso de UsoEstruturação de um Diagrama de Caso de Uso
39
Relacionamento entre atoresRelacionamento entre atores
Os atores podem ser organizados em hierarquias, em Os atores podem ser organizados em hierarquias, em que atores mais especializados herdam o que atores mais especializados herdam o comportamento dos atores mais generalizadoscomportamento dos atores mais generalizados::
Cliente
Pessoa jurídica
Pessoa física
Casos de UsoCasos de Uso
40
Relacionamentos entre casos de usoRelacionamentos entre casos de uso
Existem três tipos de relacionamento entre casos de Existem três tipos de relacionamento entre casos de uso:uso:
•Generalização ou HerançaGeneralização ou Herança•Uso (Include)Uso (Include)•Extensão (Extend)Extensão (Extend)
1.1. GeneralizaçãoGeneralização: Este relacionamento é usado : Este relacionamento é usado quando um Caso de Uso é semelhante a outro, mas faz quando um Caso de Uso é semelhante a outro, mas faz um pouco mais. Neste caso, o segundo caso é uma um pouco mais. Neste caso, o segundo caso é uma especialização do primeiro.especialização do primeiro.Os casos de uso genéricos são chamados abstrações.Os casos de uso genéricos são chamados abstrações. A generalização é representada por uma seta oca, que A generalização é representada por uma seta oca, que aponta do caso de uso específico para o caso de uso aponta do caso de uso específico para o caso de uso mais genérico.mais genérico.
Casos de UsoCasos de Uso
41
Relacionamentos entre casos de usoRelacionamentos entre casos de uso
1.1. Generalização: (Exemplos) Generalização: (Exemplos)
Saque Saque Automático
Saque Manual
Agendar Horário
Agendar Via Web
Agendar Manual
Exemplo1 Exemplo 2
Casos de UsoCasos de Uso
42
Relacionamentos entre casos de usoRelacionamentos entre casos de uso
2.2. Uso (Include):Uso (Include): Ocorre quando existe uma parte do Ocorre quando existe uma parte do comportamento de um caso de uso que pode ser usado comportamento de um caso de uso que pode ser usado em outro caso, ou seja, uma rotina comum. Para não em outro caso, ou seja, uma rotina comum. Para não ficar repetindo este comportamento em todos os Casos ficar repetindo este comportamento em todos os Casos de Uso, faz-se um Caso novo e usa-se este caso.de Uso, faz-se um Caso novo e usa-se este caso.
É utilizado para agrupar funcionalidades comuns É utilizado para agrupar funcionalidades comuns utilizadas por diversos casos de uso, e não está sujeita utilizadas por diversos casos de uso, e não está sujeita a nenhuma condição.a nenhuma condição.
A inclusão é representada por uma linha A inclusão é representada por uma linha pontilhada com uma seta aberta que sai do caso de pontilhada com uma seta aberta que sai do caso de uso base e aponta para o caso de uso incluído.uso base e aponta para o caso de uso incluído.
Casos de UsoCasos de Uso
43
Relacionamentos entre casos de usoRelacionamentos entre casos de uso
2.2. Uso (Include): (Exemplos) Uso (Include): (Exemplos)
Saque Verificar senha
Consulta Saldo
Venda Atualizar Estoque
Compra Fornecedor
Exemplo1 Exemplo 2<include> <include>
<include>
<include>
Casos de UsoCasos de Uso
44
Relacionamentos entre casos de usoRelacionamentos entre casos de uso
•3.3. Extensão (Extend): Extensão (Extend): ÉÉ semelhante ao Uso, porém só semelhante ao Uso, porém só existe a extensão sujeita a uma determinada condição, existe a extensão sujeita a uma determinada condição, ou seja, o comportamento do caso de uso estendido é ou seja, o comportamento do caso de uso estendido é inserido somente se uma condição for Verdadeira.inserido somente se uma condição for Verdadeira.A extensão é representada por uma linha pontilhada A extensão é representada por uma linha pontilhada com uma seta aberta, que sai do caso de uso com uma seta aberta, que sai do caso de uso estendido e aponta para o caso de uso base.estendido e aponta para o caso de uso base.
Casos de UsoCasos de Uso
45
Casos de UsoCasos de Uso
Relacionamentos entre casos de usoRelacionamentos entre casos de uso
3.3. Extensão (Extend): (Exemplos) Extensão (Extend): (Exemplos)
Venda Consulta SPC
<extend>
Discar número
Discar número da memória
<extend>
46
Exercício:Exercício:
Reestruturar os Diagramas de Reestruturar os Diagramas de Caso de Uso dos Estudos de CasoCaso de Uso dos Estudos de Caso
Casos de UsoCasos de Uso