38
Disciplina: Análise e Projeto de Sistemas I Email para contato: [email protected] Base para Diagrama de Casos de Uso Conceitos básicos Técnicas para elicitação (Observação e Entrevista)

casos de uso

Embed Size (px)

Citation preview

Page 1: casos de uso

Disciplina: Análise e Projeto de Sistemas IEmail para contato: [email protected]

Base para Diagrama de Casos de Uso

Conceitos básicos

• Técnicas para elicitação (Observação e Entrevista)

Page 2: casos de uso

Disciplina: Análise e Projeto de Sistemas IEmail para contato: [email protected]

Casos de Uso

• Um caso de uso (use case)

– é uma interação entre um usuário e um sistema.

– captura funções do sistema visíveis ao usuário

• e, em especial, busca atingir uma meta do usuário.

Page 3: casos de uso

Disciplina: Análise e Projeto de Sistemas IEmail para contato: [email protected]

Diagramas de Casos de Uso

• Ferramenta valiosa para ajudar no entendimento dos requisitos funcionais de um sistema.

– A primeira versão do caso de uso deve ser produzida na fase inicial do projeto.

– Versões mais detalhadas dos casos de uso devem ser trabalhadas antes do desenvolvimento deste caso de uso.

• Casos de uso representam uma versão externa do sistema

Page 4: casos de uso

Disciplina: Análise e Projeto de Sistemas IEmail para contato: [email protected]

Diagramas de Casos de Uso

• Captura de casos de uso– Tarefas básicas na fase de elaboração

– Um dos primeiros passos, após a definição dos requisitos

• Maioria dos casos é gerada durante a fase de projeto– Novos serão descobertos a medida que o sistema evolui

– Ficar alerta a eles sempre

• Um caso de uso é um requisito em potencial– Se ele não é capturado, não há como planejar lidar com ele

Page 5: casos de uso

Disciplina: Análise e Projeto de Sistemas IEmail para contato: [email protected]

Envolvidos

• Um caso de uso

– seqüência de ações

que um sistema realiza a fim de gerar um resultado de interesse para um ator.

• Um ator

– papel (ou conjunto de papéis)

que um usuário desempenha quando participa de um caso de uso.

Page 6: casos de uso

Disciplina: Análise e Projeto de Sistemas IEmail para contato: [email protected]

Casos de uso

1. Requisitos do sistema

– Exemplo: reserva de passagens aéreas

• Checar vôos

• Efetuar reservas

• Comprar passagem

• Efetuar pagamento

• Especificar vôos

Page 7: casos de uso

Disciplina: Análise e Projeto de Sistemas IEmail para contato: [email protected]

Casos de uso

2. Atores do sistema

• Usuário

• Agente de turismo

• Funcionário empresa aérea

Page 8: casos de uso

Disciplina: Análise e Projeto de Sistemas IEmail para contato: [email protected]

Diagrama de Casos de Uso

• Atores:

• Casos de uso:Nome do

caso de uso

Aqui descrevemos o nome do ator

Elipse – Representa a notação do caso de uso

Um caso de uso é uma atividade.

Page 9: casos de uso

Disciplina: Análise e Projeto de Sistemas IEmail para contato: [email protected]

Resumo RepresentaçõesDependências

Cadastrar

Cliente

Cadastrar

Beneficiário

Relação de Dependência

•Cadastrar beneficiário depende diretamente da conclusão do

caso de uso Cadastrar Cliente.

•A seta tracejada sempre aponta do caso de uso dependente para

o caso de uso que fornece a necessidade desejada.

•Isso vale para Inclusão e Extensão

Page 10: casos de uso

Disciplina: Análise e Projeto de Sistemas IEmail para contato: [email protected]

Include

Calcular

Fidelidade

Calcular

Pontos

Incluir cenário principal de cálculo de pontos fidelidade

<<include>>

•Calcular pontos utilizará integralmente a forma de cálculo de

pontos de fidelidade que se encontra no caso de uso calcular

fidelidade.

•Uma inclusão de um caso de uso, ou parte dele em outro caso de

uso.

Page 11: casos de uso

Disciplina: Análise e Projeto de Sistemas IEmail para contato: [email protected]

Extend

Calcular

Fidelidade

Calcular

Bonificação

<<Extend>>

•Calcula Bonificação, estende a fórmula de cálculo de fidelidade,

ampliando a fórmula de já existente no caso de uso calcular

fidelidade.

•Sempre tera um atributo a mais (função, atributo)

Page 12: casos de uso

Disciplina: Análise e Projeto de Sistemas IEmail para contato: [email protected]

Diagrama de Casos de Uso

ChecarVôos

usuário EspecificarVôos

funcionário

EfetuarReservas

agente

EfetuarPagto

ComprarPassagem

É possível adicionar n casos de uso

Page 13: casos de uso

Disciplina: Análise e Projeto de Sistemas IEmail para contato: [email protected]

Diagrama de Casos de Uso

ChecarVôos

usuário EspecificarVôos

funcionário

EfetuarReservas

agente

EfetuarPagto

ComprarPassagem

CancelarReserva

Page 14: casos de uso

Disciplina: Análise e Projeto de Sistemas IEmail para contato: [email protected]

Exercício 1

• Considere um sistema de compras pela Internet e defina para ele:

– Os requisitos através de casos de uso

– Atores

Page 15: casos de uso

Disciplina: Análise e Projeto de Sistemas IEmail para contato: [email protected]

Associações entre os casos de uso

• É possível associar os casos de uso no diagrama:

– Inclusão

– Generalização

– Extensão

Page 16: casos de uso

Disciplina: Análise e Projeto de Sistemas IEmail para contato: [email protected]

Inclusão

• Estereótipo «include»

– indica que um caso inclui o outro.

• Permite fatorar comportamento comum a vários casos.

Page 17: casos de uso

Disciplina: Análise e Projeto de Sistemas IEmail para contato: [email protected]

Inclusão

ChecarVôos

usuárioEspecificar

Vôos funcionário

EfetuarReservas

agente

EfetuarPagto

ComprarPassagem

<<include>>

CadastrarCliente

<<include>>

DefinirFormas depagamento

<<include>>

Page 18: casos de uso

Disciplina: Análise e Projeto de Sistemas IEmail para contato: [email protected]

Exercício 2

• Defina as associações para o diagrama de casos de uso do sistema de compra pela internet

– Você pode criar novos casos de uso para responder o exercício

Page 19: casos de uso

Disciplina: Análise e Projeto de Sistemas IEmail para contato: [email protected]

Generalização

• Quando existem, para um mesmo caso de uso, formas variadas de execução

– Similar a Generalização/Especialização do modelo ER em Banco de Dados

Page 20: casos de uso

Disciplina: Análise e Projeto de Sistemas IEmail para contato: [email protected]

Generalização

ChecarVôos

usuário

EspecificarVôos

funcionário

EfetuarReservas

agente

EfetuarPagto

ComprarPassagem

Boleto

C.Crédito

Page 21: casos de uso

Disciplina: Análise e Projeto de Sistemas IEmail para contato: [email protected]

Exercício 3

• Defina, no mínimo, duas situações de generalização, no diagrama de casos de uso que você está criando

– Não vale criar tipos diferentes de pagamento!

Page 22: casos de uso

Disciplina: Análise e Projeto de Sistemas IEmail para contato: [email protected]

Extensão

• Estereótipo «extend»– Indicar que um caso estende o outro.

• Útil para fatorar comportamento incomum/não-padrão.

• Devemos indicar pontos de extensão

Page 23: casos de uso

Disciplina: Análise e Projeto de Sistemas IEmail para contato: [email protected]

Extensão

ChecarVôos

usuário

EspecificarVôos

funcionário

EfetuarReservas

agente

EfetuarPagto

ComprarPassagem Reserva por

Cliente fidelidade

Efetuar Reservas

Pontos de extensãoCód Cli fidelidade

Qtd Milhas<<extend>>

(código cliente fidelidade,Qtd Milhas)

Boleto

C.Crédito

Page 24: casos de uso

Disciplina: Análise e Projeto de Sistemas IEmail para contato: [email protected]

Exercício 4

Home page: http://usuarios.upf.br/~dornelesEmail para contato: [email protected]

• Defina, no mínimo, duas situações de extensão, no diagrama de casos de uso que você está criando

– Não vale criar extensões para clientes!

Page 25: casos de uso

Disciplina: Análise e Projeto de Sistemas IEmail para contato: [email protected]

Generalização vs. Extensão

Home page: http://usuarios.upf.br/~dornelesEmail para contato: [email protected]

• Generalização– Mostra que um caso de uso é um tipo especial de outro.

• Extensão– Indica que um caso de uso é uma variação de outro.

Page 26: casos de uso

Disciplina: Análise e Projeto de Sistemas IEmail para contato: [email protected]

Generalização vs. Extensão

usuário

agente

EfetuarPagto

Reserva deCliente

fidelidade

Efetuar Reservas

Pontos de extensãoCód Cli fidelidade

Qtd milhas

<<extend>>(código cliente fidelidade, qtd milhas)

Boleto

C.Crédito

Efetuar Pagamento éOU por boleto

OU por C. Crédito

Efetuar Reserva podeser executada, em alguns

casos, para cliente fidelidade

Page 27: casos de uso

Disciplina: Análise e Projeto de Sistemas IEmail para contato: [email protected]

Casos de uso baseado em texto

• Detalhamento textual de casos de uso

• São opcionais, mas fornecem uma ferramenta poderosíssima para compreensão de todo funcionamento dos casos de uso de um sistema

• Cada caso de uso deve ser descrito em detalhes

Page 28: casos de uso

Disciplina: Análise e Projeto de Sistemas IEmail para contato: [email protected]

Casos de uso baseado em texto

• Exemplo usando efetuar reservaEfetuar reservaAtor: Agente

1. Especifica etinerário para o cliente

2. Sistema busca vôos apropriados e retorna ao agente

3. Escolhe vôo

4. Verifica lugares disponíveis e reserva um assento

5. Finaliza reserva marcando forma de pagamento

6. Sistema finaliza a reserva e emite o ticket

Alternativas4a. Assento não disponível naquela categoria de preço

4a1. Sistema verifica que não há assentos disponíveis naquela categoria e avisa o agente

4a2. Agente especifica outra categoria

4b. Assento não disponível no vôo, em qualquer categoria

4b1. Sistema verifica que não há assento disponível

4b2. Agente especifica outro vôo

Page 29: casos de uso

Disciplina: Análise e Projeto de Sistemas IEmail para contato: [email protected]

Casos de uso baseado em texto

• Exemplo usando efetuar reservaEfetuar reservaAtor: Agente

1. Especifica etinerário para o cliente

2. Sistema busca vôos apropriados e retorna ao agente

3. Escolhe vôo

4. Verifica lugares disponíveis e reserva um assento

5. Finaliza reserva marcando forma de pagamento

6. Sistema finaliza a reserva e emite o ticket

Alternativas4a. Assento não disponível naquela categoria de preço

4a1. Sistema verifica que não há assentos disponíveis naquela categoria e avisa o agente

4a2. Agente especifica outra categoria

4b. Assento não disponível no vôo, em qualquer categoria

4b1. Sistema verifica que não há assento disponível

4b2. Agente especifica outro vôo

Page 30: casos de uso

Disciplina: Análise e Projeto de Sistemas IEmail para contato: [email protected]

Casos de uso baseado em texto

• Exemplo usando efetuar reservaEfetuar reservaAtor: Agente

1. Especifica etinerário para o cliente

2. Sistema busca vôos apropriados e retorna ao agente

3. Escolhe vôo

4. Verifica lugares disponíveis e reserva um assento

5. Finaliza reserva marcando forma de pagamento

6. Sistema finaliza a reserva e emite o ticket

Alternativas4a. Assento não disponível naquela categoria de preço

4a1. Sistema verifica que não há assentos disponíveis naquela categoria e avisa o agente

4a2. Agente especifica outra categoria

4b. Assento não disponível no vôo, em qualquer categoria

4b1. Sistema verifica que não há assento disponível

4b2. Agente especifica outro vôo

Page 31: casos de uso

Disciplina: Análise e Projeto de Sistemas IEmail para contato: [email protected]

Casos de uso baseado em texto

• Exemplo usando efetuar reservaEfetuar reservaAtor: Agente

1. Especifica etinerário para o cliente

2. Sistema busca vôos apropriados e retorna ao agente

3. Escolhe vôo

4. Verifica lugares disponíveis e reserva um assento

5. Finaliza reserva marcando forma de pagamento

6. Sistema finaliza a reserva e emite o ticket

Alternativas4a. Assento não disponível naquela categoria de preço

4a1. Sistema verifica que não há assentos disponíveis naquela categoria e avisa o agente

4a2. Agente especifica outra categoria

4b. Assento não disponível no vôo, em qualquer categoria

4b1. Sistema verifica que não há assento disponível

4b2. Agente especifica outro vôo

Page 32: casos de uso

Disciplina: Análise e Projeto de Sistemas IEmail para contato: [email protected]

Casos de uso baseado em texto

• Exemplo usando efetuar reservaEfetuar reservaAtor: Agente

1. Especifica etinerário para o cliente

2. Sistema busca vôos apropriados e retorna ao agente

3. Escolhe vôo

4. Verifica lugares disponíveis e reserva um assento

5. Finaliza reserva marcando forma de pagamento

6. Sistema finaliza a reserva e emite o ticket

Alternativas4a. Assento não disponível naquela categoria de preço

4a1. Sistema verifica que não há assentos disponíveis naquela categoria e avisa o agente

4a2. Agente especifica outra categoria

4b. Assento não disponível no vôo, em qualquer categoria

4b1. Sistema verifica que não há assento disponível

4b2. Agente especifica outro vôo

Page 33: casos de uso

Disciplina: Análise e Projeto de Sistemas IEmail para contato: [email protected]

Casos de uso baseado em texto

• Exemplo usando efetuar reservaEfetuar reservaAtor: Agente

1. Especifica etinerário para o cliente

2. Sistema busca vôos apropriados e retorna ao agente

3. Escolhe vôo

4. Verifica lugares disponíveis e reserva um assento

5. Finaliza reserva marcando forma de pagamento

6. Sistema finaliza a reserva e emite o ticket

Alternativas4a. Assento não disponível naquela categoria de preço

4a1. Sistema verifica que não há assentos disponíveis naquela categoria e avisa o agente

4a2. Agente especifica outra categoria

4b. Assento não disponível no vôo, em qualquer categoria

4b1. Sistema verifica que não há assento disponível

4b2. Agente especifica outro vôo

Page 34: casos de uso

Disciplina: Análise e Projeto de Sistemas IEmail para contato: [email protected]

Casos de uso baseado em texto

• Exemplo usando efetuar reservaEfetuar reservaAtor: Agente

1. Especifica etinerário para o cliente

2. Sistema busca vôos apropriados e retorna ao agente

3. Escolhe vôo

4. Verifica lugares disponíveis e reserva um assento

5. Finaliza reserva marcando forma de pagamento

6. Sistema finaliza a reserva e emite o ticket

Alternativas4a. Assento não disponível naquela categoria de preço

4a1. Sistema verifica que não há assentos disponíveis naquela categoria e avisa o agente

4a2. Agente especifica outra categoria

4b. Assento não disponível no vôo, em qualquer categoria

4b1. Sistema verifica que não há assento disponível

4b2. Agente especifica outro vôo

Page 35: casos de uso

Disciplina: Análise e Projeto de Sistemas IEmail para contato: [email protected]

Casos de uso baseado em texto

• Exemplo usando efetuar reservaEfetuar reservaAtor: Agente

1. Especifica etinerário para o cliente

2. Sistema busca vôos apropriados e retorna ao agente

3. Escolhe vôo

4. Verifica lugares disponíveis e reserva um assento

5. Finaliza reserva marcando forma de pagamento

6. Sistema finaliza a reserva e emite o ticket

Alternativas4a. Assento não disponível naquela categoria de preço

4a1. Sistema verifica que não há assentos disponíveis naquela categoria e avisa o agente

4a2. Agente especifica outra categoria

4b. Assento não disponível no vôo, em qualquer categoria

4b1. Sistema verifica que não há assento disponível

4b2. Agente especifica outro vôo

Page 36: casos de uso

Disciplina: Análise e Projeto de Sistemas IEmail para contato: [email protected]

Casos de uso baseado em texto

• Exemplo usando efetuar reservaEfetuar reservaAtor: Agente

1. Especifica etinerário para o cliente

2. Sistema busca vôos apropriados e retorna ao agente

3. Escolhe vôo

4. Verifica lugares disponíveis e reserva um assento

5. Finaliza reserva marcando forma de pagamento

6. Sistema finaliza a reserva e emite o ticket

Alternativas4a. Assento não disponível naquela categoria de preço

4a1. Sistema verifica que não há assentos disponíveis naquela categoria e avisa o agente

4a2. Agente especifica outra categoria

4b. Assento não disponível no vôo, em qualquer categoria

4b1. Sistema verifica que não há assento disponível e avisa o agente

4b2. Agente especifica outro vôo

Page 37: casos de uso

Disciplina: Análise e Projeto de Sistemas IEmail para contato: [email protected]

Casos de uso baseado em texto

• Exemplo usando efetuar reservaEfetuar reservaAtor: Agente

1. Especifica etinerário para o cliente

2. Sistema busca vôos apropriados e retorna ao agente

3. Escolhe vôo

4. Verifica lugares disponíveis e reserva um assento

5. Finaliza reserva marcando forma de pagamento

6. Sistema finaliza a reserva e emite o ticket

Alternativas4a. Assento não disponível naquela categoria de preço

4a1. Sistema verifica que não há assentos disponíveis naquela categoria e avisa o agente

4a2. Agente especifica outra categoria

4b. Assento não disponível no vôo, em qualquer categoria

4b1. Sistema verifica que não há assento disponível e avisa o agente

4b2. Agente especifica outro vôo

Page 38: casos de uso

Disciplina: Análise e Projeto de Sistemas IEmail para contato: [email protected]

Exercício 5

• Escolha um dos casos de uso definidos para o sistemade compra pela Internet, e faça a descrição textualdele.