ANÁLISE ORIENTADA A OBJETOS
Set/2010
Professor Mário Dantas
Aula 04 - Agenda
2





Ator
Caso de uso
Associações
Entre atores e casos de uso
Entre casos de uso
Inclusão: estereótipo <<include>>
 Extensão: estereótipo <<extend>>
 Generalização



Diagrama de casos de uso
Especificação de casos de uso
Ator
3




É qualquer entidade que interage com o
sistema
Pode ser um usuário, um hardware
externo, outro sistema
Representa uma classe de usuários
(papel), não um usuário específico
Algo sobre o que o sistema não tem
controle
Ator
4

Várias pessoas podem ser representas por um único
ator.
Ator
5

Um pessoa pode atuar como mais de um ator.
Como nomear um ator
6




Agrupe os indivíduos segundo a utilização do
sistema
Identifique os papéis que eles assumem ao utilizar
o sistema: cada papel é um ator em potencial
Cargo nem sempre é um papel
Escolha nomes conhecidos dos usuários: não invente!
Como nomear um ator
7
Caso de Uso
8
“Um Caso de Uso é a relação de uma seqüência de
ações que um sistema executa produzindo um
resultado de valor observável para um ator
específico.”
Rational Unified Process – RUP
Caso de Uso
9






Modela um diálogo entre ator e sistema
Define o comportamento de um sistema ou de parte
dele
Descreve passo a passo como o sistema
desempenha suas funções
Possui cenários (instâncias)
Define respostas que o sistema deve gerar para
cada evento previsto
Deve possuir uma especificação
Caso de Uso
10
Descrição
11

Apresenta uma breve descrição do
objetivo do caso de uso.
Pré-condição
12



É o estado do sistema requerido antes do caso de
uso ser iniciado
Deve ser um estado de valor mensurável;
A pré-condição é uma restrição para o início do
caso de uso e não o evento que inicia o caso de uso
(um evento ter ocorrido pode ser uma précondição).
Pós-condição
13


Uma pós-condição é o estado no qual o sistema
deve estar ao término da execução do caso de uso
Deve ser um estado de valor mensurável
Cenário
14


São os caminhos possíveis no diálogo ator-sistema
durante a execução do caso de uso: instância de um
caso de uso
Fluxo principal (ou básico)
 Fluxo

onde tudo “dá certo”; o mais freqüente
Fluxos alternativos
 Variações

na execução do fluxo básico
Fluxos de exceção
 Erros
que podem ocorrer nos fluxos básico e alternativo
Cenários
15
Fluxo principal
16

Exemplo:
1. O Cliente informa a opção de Saque.
2. O Sistema solicita o valor do saque.
3. O Cliente informa o valor e confirma a operação.
4. O Sistema verifica o valor informado.
5. O Sistema verifica o saldo do cliente.
6. O Sistema debita o valor sacado do saldo do
cliente.
7. O Sistema entrega o dinheiro.
8. Fim do caso de uso.
Fluxo alternativo
17
Exemplos:
A1. Saldo insuficiente
1. No passo 5 do fluxo básico o Sistema verificou que o cliente não
possui saldo.
2. O Sistema informa o saldo disponível.
3. O caso de uso volta para o passo 8 do fluxo básico.
A2. Valor informado inválido
1. No passo 4 do fluxo básico o sistema verificou que o valor
informado é inválido.
2. O sistema informa que o valor é inválido.
3. O sistema informa as regras para valores válidos.
4. O caso de uso volta para o passo 2 do fluxo básico.
Um caso de uso não contém
18




Detalhes da interface gráfica com usuário – GUI
(útil apenas para protótipos)
Objetivos de performance (requisito não funcional)
Detalhes da arquitetura da aplicação: módulos,
menus, componentes
Quaisquer requisitos não funcionais: eventualmente,
podem ser inserido por meio de notas explicativas
Um caso de uso não contém
19





“... O ator clica no botão OK...”
“... O sistema exibe um JTable com os...”
“... A resposta deverá ser retornada em menos de
10 segs...”
“... O sistema inicia uma conexão com o servidor de
aplicação...”
“... O usuário deverá informar os códigos por meio
da caneta ótica ....”
Como encontrar casos de uso?
20

Identifique as interações do usuário: concentre-se nos
objetivos do usuário:







“Sacar dinheiro...”
“Transferir dinheiro entre contas...”
“Cadastrar contas de débito automático...”
Descreva o quê o usuário espera do sistema
Descreva as operações que criam, lêem, atualizam e
excluem informações (manter, CRUD, etc.);
Descreva como os atores são notificados sobre alterações
de estado do sistema;
Descreva como o ator necessitará informar ao sistema
eventos ocorridos.
Como encontrar casos de uso?
21

Crie listas de verificação e validação (V&V):
O sistema fornece o comportamento correto às
necessidades do negócio?
 Todas as necessidades são resolvidas pelos Casos de Uso
que você identificou?
 Quais
Casos de Uso suportarão as principais
funcionalidades do sistema?
 Quais informações devem ser modificadas ou criadas no
sistema?


Aplicar as Listas de V&V para os casos de uso
encontrados
Como nomear casos de uso?
22



Use uma frase que especifique o objetivo do ator
Técnica “O ator usa o sistema para...”
Utilize verbos concretos, “fortes”, ao invés de verbos
genéricos e fracos, exemplos:




Verbos fortes: criar, calcular, migrar, receber, arquivar, registrar
e ativar
Verbos fracos: fazer, relatar, controlar, gerenciar, administrar,
organizar e processar
Seja explícito
Use termos específicos:


Termos genéricos: formulário, dado e sistema
Termos específicos: propriedade, pagamento e conta
Como nomear casos de uso?
23

Boas escolhas
 Depositar
Dinheiro
 Conferir
Movimentação
Bancária
 Transferir Valores
entre Contas Correntes

Escolhas ruins
 Controle
de Saque
 Controle de Saldo
 Transferência Bancária
 Gerir Algo
 Gestão Disso ou
Daquilo
Exemplo
24


O cliente pode usar o caixa automático para sacar
e transferir dinheiro e consultar o saldo
Ator:
 Cliente

Casos de uso:
 Sacar
Dinheiro
 Transferir Dinheiro
 Consultar Saldo
Associações: Ator – Caso de Uso
25


Indicar que o ator participa e se comunica com o
sistema, conforme descrito no caso de uso
A seta, quando houver, indica quem inicia a
comunicação, não demonstram fluxo e setas duplas
não são usadas
Associações: Ator – Caso de Uso
26

Seta do ator para o caso de uso:
 Ator
dispara o caso de uso
 Ator estimula o sistema
 Ator principal
Associações: Ator – Caso de Uso
27

Seta do caso de uso para o ator:
 Sistema
solicita ou envia informações
 Sistema sinaliza que espera uma ação do ator
 Ator secundário
Associações: Ator – Caso de Uso
28
Associação entre Casos de Uso
29


Surgem da fatoração de casos de uso
Três tipos:
 Inclusão
<<include>>
 Extensão <<extend>>
 Generalização

Objetivos:
 Reuso
de parte do caso de uso
 Especialização de comportamento
 Descrição de procedimentos opcionais
Associação entre Casos de Uso
30
Inclusão – include
31




A execução do caso de uso incluído é obrigatória
O caso de uso base depende do caso de uso
incluído
Nem o caso de uso base, nem o incluído, acessam os
atributos um do outro (baixo acoplamento)
A inclusão é, na essência, um tipo de
encapsulamento
Exemplo de Inclusão – include
32



No sistema de Caixa Bancário, os casos de uso “Sacar”,
“Depositar” e “Transferir” precisam indicar que o cliente
será identificado no sistema. Este comportamento pode ser
fatorado em um caso de uso chamado “Identificar Cliente”,
que os três casos de uso incluem.
Da perspectiva dos casos de uso base, não importa qual
método é utilizado para a identificação, se senha, cartão,
identificação de retina, mas apenas o resultado.
Da perspectiva do caso de uso incluído, não importa qual
caso de uso o está utilizando (incluindo) ou como o resultado
será processado.
Exemplo de Inclusão – include
33
Execução de caso de uso include
34

O comportamento incluído é inserido em uma
localização específica do caso de uso base e é
executado quando este passo é atingido.
Extensão - extend
35
Indica que uma parte do caso de uso é um
comportamento opcional do sistema
 Para mostrar que um comportamento é
executado somente sob certas condições
 Para mostrar que podem existir tipos de
comportamento que serão inseridos no caso de
uso dependendo da interação do ator com o
caso de uso

Extensão - extend
36


O caso de uso de extensão é inserido no caso de
uso base em locais específicos chamados “Pontos de
extensão”
O caso de uso extensor depende do caso de uso
estendido.
Exemplo Caso de Uso extend
37

No sistema de Caixa Bancário, quando o cliente for
identificado, o sistema precisa saber se ele já
adquiriu seguro contra roubo de cartão e, caso
negativo, oferecer a aquisição do seguro. Podemos
demonstrar isso com a criação de um caso de uso
chamado “Adquirir Seguro” que estende a
funcionalidade de “Identificar Cliente”.
Exemplo Caso de Uso extend
38
Execução de Caso de Uso extend
39

Quando a execução do caso de uso atinge o ponto
de extensão, a condição do caso de uso é
avaliada, e se for verdadeira o caso de uso é
executado.
Fluxo alternativo ou extend?
40

Freqüentemente nos deparamos com a dúvida entre
um fluxo alternativo e um caso de uso estendido.
Considerar o seguinte:
O
fluxo alternativo é complexo ao ponto de confundir
o entendimento do caso de uso?
 A condição para execução do fluxo é muito
excepcional?
 O valor semântico do modelo com extensão fica
aprimorado?
Generalização
41



Destacar o comportamento comum a mais de um
caso de uso, mas com algumas particularidades
adicionais
Demonstrar formas mais específicas de
comportamento do um caso de uso
Relacionamento do tipo é-um entre um caso de uso
base (pai) com um ou mais casos de uso filhos
Generalização
42



Semelhante a herança entre classes
O filho herda toda a estrutura, comportamento e
relacionamentos do pai;
O filho é totalmente dependente da estrutura do
pai.
Exemplo de Generalização
43


No caso de uso “Cobrança de Pênalti”, podem ser
representados: (1) a cobrança de pênalti em tempo
regulamentar e (2) a cobrança de pênalti como
desempate.
Esses dois casos de uso têm muito do seu
comportamento em comum, mas com uma
particularidade: a reposição da bola, que deve ser
posta em jogo (1) ou não (2).
Exemplo de Generalização
44
Exemplo de Generalização
Exemplo de Generalização
46
Exemplo de Generalização
47


O caso de uso “pai” é executado quando, no fluxo do
caso de uso “filho”, existe generalização
O caso de uso “filho” é executado quando, no fluxo do
caso de uso “pai”, existe especialização
Diagrama de Casos de Uso
48





É criado para representar o conjunto de associações
entre atores e casos de uso e entre casos de uso
São casos de uso associados que descrevem todas as
formas de uso do sistema
Fornece uma visão das funcionalidades de um sistema:
ajuda a capturar os requisitos funcionais
Constitui uma forma de comunicação bastante útil
entre projetistas e clientes
Ajuda na identificação de objetos, na execução de
testes e na documentação
Diagrama de Casos de Uso
49




Indica que tipo de usuário (ator, perfil) usa quais
funcionalidades: o quê o sistema deve fazer e para
quem
Deve ser completo: todas as funcionalidades
devem estar presentes, mesmo que em diagramas
separados que compõem o sistema
É uma visão de alto nível: perspectiva externa e
dos atores
O mais informal dos diagramas da UML
Diagrama de Casos de Uso
50



Trata-se de uma representação dinâmica: é
importante para a organização e modelagem de
comportamentos do sistema
Não há decomposições funcionais (explosões)
Devem ter a complexidade controlada, podendo
ser organizados de acordo com sua relevância,
freqüência de utilização e valor para os usuários
Exemplos: Operação de Cursos
51
Exemplo: Agência Bancária
52
Especificação de Caso de Uso
53




Os casos de uso, mesmo no contexto de seus
diagramas, são semanticamente limitados, dependendo
de interpretação
A especificação (documentação) é essencial para uma
compreensão precisa
Diagramas da UML, como o de atividades e o de
seqüência, mais formais e precisos, podem ser usados
na documentação
O padrão de especificação, incluindo nível de detalhe
exigido e informações obrigatórias, deve estar definido
na metodologia
Modelo de Especificação
54










Descrição
Requisitos
Atores
Pré-condições
Evento que inicia
Fluxo Principal
Fluxos Alternativos
Extensões
Pós-condições
Regras de negócio
Exemplo: Manter empregados
55

RF1 – O sistema deve permitir a manutenção dos
dados dos empregados, pelo gerente, conforme
regras de negócio RN1 a RN6
Exemplo: Manter empregados
56



RN1 – Um empregado deve possuir
obrigatoriamente os dados: código, nome, idade,
data de admissão e estar associado a um cargo
RN2 – O código é o identificador do empregado
na empresa e deve ser exclusivo
RN3 – O nome do empregado deve ser um nome
válido de acordo com a legislação de registro de
nascimentos
Exemplo: Manter empregados
57



RN4 – A idade deve ser um número inteiro maior ou
igual a 16 e menor que 150
RN5 – A data de admissão deve ser uma data
válida, no formato dia, mês e ano e não pode ser
posterior à data corrente, nem anterior à data
corrente menos trinta dias
RN6 – O cargo do cliente deve ser selecionado
entre os cargos cadastrados no sistema
Exemplo: Manter empregados
58






Descrição: Permite consultar, incluir, alterar dados e
excluir fisicamente empregados na base de dados
do sistema
Requisitos: RF1
Atores: Gerente
Pré-condições: O ator deve estar identificado pelo
sistema e ser um gerente
Evento que inicia: Solicitação do ator
Extensões e inclusões: não há
Exemplo: Manter empregados
59


Pós-condições: A operação solicitada pelo ator é
concluída com dados atualizados ou consultados,
condicionado ao atendimento das regras de
negócio
Regras de Negócio: RN1 a RN6
Exemplo: Manter empregados
60
Fluxos Alternativos:
 [A1] O ator escolhe um empregado para consulta
detalhada
 1.
O sistema pesquisa e exibe todos o dados do
empregado selecionado
 2. O ator solicita retorno à relação de empregados
 3. O sistema retorna ao passo 1 do fluxo principal
Exemplo: Manter empregados
61

[A2] O ator escolhe um empregado para edição
 1.
O sistema pesquisa e exibe todos os dados do
empregado selecionado, oferecendo as opções de
edição dos dados exceto o código identificador
 2. O ator edita os dados e solicita gravação [A5]
 3. O sistema valida e grava os dados [A6]
 4. O sistema retorna ao passo 1 do fluxo principal
Exemplo: Manter empregados
62

[A3] O ator escolhe um empregado para exclusão
 1.
O sistema solicita confirmação
 2. O ator confirma a exclusão [A7]
 3. O sistema exclui o empregado e retorna ao passo 1
do fluxo principal
Exemplo: Manter empregados
63

[A4] O ator escolhe a inclusão de um novo
empregado
 1.
O sistema solicita os dados do empregado
 2. O ator informa os dados e solicita gravação [A5]
 3. O sistema valida e grava os dados [A6]
 4. O sistema retorna ao passo 1 do fluxo principal
Exemplo: Manter empregados
64

[A5] O ator solicita cancelamento da operação
 1.
O sistema retorna ao passo 1 do fluxo principal
Exemplo: Manter empregados
65

[A6] Dados inválidos, conforme RN usadas no caso
de uso
 1.
O sistema informa quais dados estão inválidos e
porque
 2. O sistema retorna à inclusão ou edição com os
dados informados pelo usuário, mesmo que inválidos
Exemplo: Manter empregados
66

[A7] O ator não confirma a exclusão dos dados
 1.
O sistema retorna ao passo 1 do fluxo principal
Download

Aula04 – Casos de Uso