2 UML DiagramasCasosUso

download 2 UML DiagramasCasosUso

of 17

Transcript of 2 UML DiagramasCasosUso

  • 8/18/2019 2 UML DiagramasCasosUso

    1/17

    UML – Unified Modeling Language

    Diagramas de Casos de Uso

    José Correia, Março 2006

    (http://paginas.ispgaya.pt/~jcorreia/)

    José Correia UML – Diagramas de Casos de Uso 2

    Objectivos

    O objectivo de um diagrama de casos de uso de um sistema é mostrar

    para que serve o sistema (quais são os usos possíveis do sistema),

    ignorando a forma como o sistema está organizado internamente.

    Mais precisamente, permite capturar o comportamento

    (funcionalidades) do sistema do modo como é visto pelos utilizadores,

    sem ter de especificar como é que esse comportamento éimplementado.

    Os diagramas de casos de uso descrevem:

    • o contexto do sistema

    • as funcionalidades do sistema (os casos de uso)

    • e, possivelmente, alguns requisitos não funcionais (os que têm a ver com

    casos de uso particulares)

  • 8/18/2019 2 UML DiagramasCasosUso

    2/17

    José Correia UML – Diagramas de Casos de Uso 3

    Elementos da UML

    O diagrama de casos de uso de um sistema contém:

    • Linha que define a fronteira do sistema – entre o sistema físico e osactores que com ele interagem

    •  Actores (fora do sistema)

    • Casos de uso (dentro do sistema)

    •  Associações de interacção entre actores e casos de uso

    Um diagrama de casos de uso também pode conter:

    • Relações de dependência entre casos de uso

    - de extensão (estereótipo «extend»)

    - de inclusão (estereótipo «include»)

    • Relações de generalização

    - entre casos de uso ou entre actores

    José Correia UML – Diagramas de Casos de Uso 4

    Exemplo

  • 8/18/2019 2 UML DiagramasCasosUso

    3/17

    José Correia UML – Diagramas de Casos de Uso 5

     Actores

    Um actor ...

    ... é um tipo de utilizador do sistema

    ... é alguém, ou alguma coisa, que interage com o sistema

    pode ser qualquer coisa – humano, dispositivo de hardware, outro sistema, etc.

    ... é, como iremos ver, uma classe (de objectos externos ao sistema).

     A mesma pessoa, ou coisa, pode corresponder a vários actores

    • de acordo com Booch, “um actor representa um conjunto coerente de

    papéis que utilizadores de um sistema desempenham quando interagem

    com os casos de uso do sistema”

     Actores ≠ Recursos do sistema

    • Recursos são pessoas, máquinas, etc., que pertencem ao sistema e que

    são usados para levar a cabo tarefas dentro do sistema

    Professor  Aluno

    José Correia UML – Diagramas de Casos de Uso 6

    Cliente

    ou «actor»

    Cliente

     Actores: Exemplos e Notação

    Ex.1 – Actores em relação a um negócio de restauração:

    • Fornecedor 

    • Cliente

    Ex.2 – Actores em relação a um software de gestão de restaurantes:

    • Administrador do sistema

    • Empregado da caixa• Empregado de mesa

    Os actores são representados por ícones, ou por classes, com

    estereótipo «actor»

  • 8/18/2019 2 UML DiagramasCasosUso

    4/17

    José Correia UML – Diagramas de Casos de Uso 7

    Casos de Uso (Use Cases)

    Um caso de uso é um padrão de comportamento que

    o sistema exibe e pode corresponder a:

    • uma funcionalidade do sistema

    • um tipo de interacção entre um ou mais actores e o sistema com um determinado

    objectivo

    • um processo de negócio (no contexto de um sistema de negócio)

    Um caso de uso é uma sequência de acções relacionadas, incluindo

    variantes, que um sistema realiza para produzir um resultado observável comvalor para um actor (que interage com esse caso de uso)

    • a sequência concreta de acções pode variar de instância para instância do caso de

    uso (daí se falar em “incluindo variantes”)

    • as instâncias de um caso de uso são as ocorrências concretas do caso de uso

    Os casos de uso descrevem o que um sistema faz e não o modo como faz

    Solicitar Lista de Cursos

    José Correia UML – Diagramas de Casos de Uso 8

    Servir

    almoço

    Servir almoço

    ou

    Casos de Uso: Exemplos e Notação

    Exemplo de casos de uso num negócio de restauração:

    • Servir almoço

    • Servir jantar 

    • Comprar bens

    Um caso de uso é representado por uma elipse, com o nome do casode uso dentro ou por baixo da elipse

    Os nomes dos casos de uso podem ser dados na perspectiva do sistema ou

    do actor 

  • 8/18/2019 2 UML DiagramasCasosUso

    5/17

    José Correia UML – Diagramas de Casos de Uso 9

    Exemplo

    Cliente

    Servir almoço

    Fornecedor 

    Restaurante

    Servir jantar 

    Comprar bens

     Associações entre actores e casos de uso mostram que actores interagem

    com que casos de uso

    • são representadas, normalmente, por linhas sem qualquer adorno

    José Correia UML – Diagramas de Casos de Uso 10

    Documentar Casos de Uso

    O diagrama de casos de uso deve ser acompanhado de descrições

    dos actores e casos de uso

    Pode-se (deve-se!) especificar o comportamento de cada caso de uso

    descrevendo o fluxo de eventos de forma textual

    • documentação escrita do ponto de vista do actor 

    - indicar o que o sistema deve fornecer ao actor, quando o caso de uso éexecutado

    Convém indicar:

    • como é que o caso de uso começa e acaba

    • o fluxo básico (principal) de eventos

    • fluxos alternativos de comportamento

    • fluxos excepcionais de eventos (ex: respostas a erros)

  • 8/18/2019 2 UML DiagramasCasosUso

    6/17

    José Correia UML – Diagramas de Casos de Uso 11

    Descrição de Casos de Uso (cont.)

    Exemplo do restaurante (simplificado):

    • Servir almoço: um cliente vem ao restaurante e é-lhe servido almoço. Ocliente escolhe o que pretende de um menu de almoços, com dois pratosdo dia e vários outros pratos de preparação rápida.

    • Servir jantar: um cliente vem ao restaurante e é-lhe servido o jantar. Ocliente pode escolher um prato de um menu bastante variado ou pode atépedir um prato com uma composição por ele indicada.

    • Comprar bens: são adquiridos os ingredientes necessários para aconfecção dos pratos que constam do menu. Inclui-se aqui tanto oplaneamento das aquisições, como a realização das aquisições afornecedores do restaurante.

    Um caso de uso pode também ser descrito através de diagramas deinteracção ou outros diagramas dinâmicos

    - conforme iremos ver quando falarmos desses tipos de diagramas UML

    José Correia UML – Diagramas de Casos de Uso 12

    Relação “ extend” entre Casos de Uso

    Podem-se organizar os casos de uso em casos básicos e extensões

    aos casos básicos

    • uma instância do caso de uso A pode incluir (sujeito a condições

    especificadas na extensão) o comportamento especificado por B

    • o caso básico deve fazer sentido sozinho

    • os actores interagem com o caso básico (A)

    as extensões traduzem partes, ou modalidades, acrescentadas

    condicionalmente (opções)

    • notação: dependência com estereótipo «extend»

     A B«extend»

    extensãocaso básico

  • 8/18/2019 2 UML DiagramasCasosUso

    7/17

    José Correia UML – Diagramas de Casos de Uso 13

    Exemplo:

    Podem-se indicar explicitamente os pontos em que um caso de uso

    básico pode ser estendido (pontos de extensão)

    Na descrição textual do caso básico: ... (sobremesa) ...

    Servir umasobremesa

    Servir jantar 

    Extension pointssobremesa

      «extend»

    (sobremesa)

    Relação “ extend” entre Casos de Uso (cont.)

    Servir uma entrada

    Servir jantar 

    Servir uma sobremesa

    Servir à luz de velas

    «extend»

    «extend»

    «extend»

    José Correia UML – Diagramas de Casos de Uso 14

    Relação “ include” entre Casos de Uso

    Quando vários casos de uso têm um fluxo de eventos comum, é

    conveniente separar essa parte comum para um novo caso de uso

    que é incluído pelos primeiros

    • uma instância do caso de uso A inclui obrigatoriamente o comportamento

    especificado por B

    • os actores interagem com A

    • ao fazer a descrição textual de A: include(B)

    • notação: dependência com estereótipo «include»

     A B

    (parte comum a outr os

    casos de uso além de A)

    «include»

  • 8/18/2019 2 UML DiagramasCasosUso

    8/17

    José Correia UML – Diagramas de Casos de Uso 15

    Servir almoço

    Servir jantar 

    Cobrar 

    refeição

    «include»

    «include»

    Relação “ include” entre Casos de Uso(cont.)

    Exemplo:

    José Correia UML – Diagramas de Casos de Uso 16

    Servir uma

    refeição

    Servir

    almoço

    Servir  jantar 

    Relação de Generalização entre Casos de Uso

    Relação de generalização: relação entre uma coisa mais genérica e

    uma coisa mais especializada...

    ... que é totalmente consistente com o primeiro elemento

    ... e adiciona informação adicional

    Significa que o caso de uso "filho" (mais especializado) herda o

    comportamento, significado e actores do caso de uso "pai" (maisgenérico)

    • o filho pode adicionar ou substituir comportamento do pai;

    • o filho pode aparecer em qualquer contexto em que o pai pode aparecer.

    Exemplo:

  • 8/18/2019 2 UML DiagramasCasosUso

    9/17

    José Correia UML – Diagramas de Casos de Uso 17

    Relação de Generalização entre Actores

    Um Cliente Empresarial é um (is a) Cliente

    • analogia com hierarquia ISA no modelo Entidade-Associação

    O Cliente Empresarial herda as associações (de interacção com casos deuso) do Cliente genérico

     A Generalização permite simplificar e estruturar os diagramas

    Cliente Cliente

    Empresarial

    José Correia UML – Diagramas de Casos de Uso 18

    Exemplo 1: Restaurante

    «extend»

    «extend»

    «extend»

    Servir

    almoço

    Cobrar 

    refeição

    «include»

    Cliente

    Fornecedor 

    Negócio de

    restauração

    Servir uma

    refeição

    Servir jantar 

    Servir à luz

    de velas

    Servir uma

    sobremesa

    Servir uma

    entrada

    Comprar

    bens

  • 8/18/2019 2 UML DiagramasCasosUso

    10/17

    José Correia UML – Diagramas de Casos de Uso 19

    Exemplo 2: Vídeo-gravador 

    Utilizador 

    «actor»

    Televisor 

    Vídeo-gravador 

    Gravação

    programada

    Reprodução

    de vídeo-

    cassete

    Gravação não

    programada

    Gravação de

    vídeo-cassete

    «actor»

     Antena

    José Correia UML – Diagramas de Casos de Uso 20

    Granularidade dos Casos de Uso

    Um caso de uso (pelo menos um caso de uso básico) deve representar uma

    unidade de funcionalidade o mais pequena possível que, uma vez

    implementada, acrescenta valor (do ponto de vista dos actores) ao sistema

    que está a ser desenvolvido

    Exemplo no multibanco:

    • "introduzir cartão" não é um caso de uso porque não tem valor isoladamente;

    • "levantar dinheiro" é um caso de uso porque tem valor para um actor individual (o

    detentor do cartão)

    Com este objectivo, pode ser necessário agrupar num único caso de uso

    várias interacções com o sistema (que ocorrem até em sessões diferentes)

    • isso não impede que se divida um caso de uso básico em vários casos de uso de

    grão mais fino, incluídos pelo primeiro

    • Exemplo numa biblioteca: o caso de uso “Empréstimo” (aquele que tem valor para

    os utilizadores) pode ser dividido em “Levantamento” e “Devolução”

  • 8/18/2019 2 UML DiagramasCasosUso

    11/17

    José Correia UML – Diagramas de Casos de Uso 21

    Repor Bebidas de

    acordo com Vendas

     Abrir a Máquina

    Fechar a Máquina

     Agente do

    Fornecedor 

    Repor Bebidas

    Retirar Dinheiro

    Dono

    ClienteComprar Bebida

    Extension Pointencher prateleiras

    Exemplo: Máquina de bebidas

    Considere o seguinte diagrama de casos de uso, correspondente a uma

    máquina de bebidas:

    Explique o significado do diagrama anterior, descrevendo o fluxo de eventos

    de forma textual.

    José Correia UML – Diagramas de Casos de Uso 22

    Exemplo: Máquina de bebidas (cont.)

    Resposta possível à pergunta formulada:

    • Comprar Bebida: Um cliente dirige-se à máquina de bebidas, introduz o dinheiro e

    selecciona a bebida pretendida entre as existentes na máquina. A máquina entrega

    a bebida seleccionada e, se for caso disso, devolve o troco.

    • Repor Bebidas: O agente do fornecedor repõe as bebidas à medida que estas

    forem sendo consumidas. Para tal, abre a máquina, enche as prateleiras com as

    bebidas em falta e fecha a máquina.

    • Retirar Dinheiro: O dono do estabelecimento onde a máquina está colocada, abre amáquina, retira o dinheiro existente, deixando o suficiente para trocos, e volta a

    fechar a máquina.

    Quais são as funcionalidades do sistema modelizado pelo diagrama anterior?

    • As funcionalidades do sistema são os casos de uso, ou seja: “Comprar Bebida”,

    “Abrir a Máquina”, “Fechar a Máquina”, “Retirar Dinheiro”, “Repor Bebidas” e “Repor

    Bebidas de acordo com Vendas”.

  • 8/18/2019 2 UML DiagramasCasosUso

    12/17

    José Correia UML – Diagramas de Casos de Uso 23

    Pacotes de Casos de Uso

    Num sistema complexo, podem existir demasiados casos de uso para

    visualizar com clareza num único diagrama!

    Uma solução: um diagrama de casos de uso inicial, com pacotes de

    casos de uso, e um diagrama de casos de uso relativo a cada pacote

    Se tivermos um grande número de casos de uso devemos procurar 

    agrupá-los em pacotes!

    Critérios de agrupamento de casos de uso:

    • por sub-sistemas

    • por actores

    José Correia UML – Diagramas de Casos de Uso 24

    Definição de

    Plano de Curso

    Elaboração

    de Calendário

    de Exames

     Atribuição de

    Serviço Docente

    Elaboração

    de Horários

    Elaboração

    de Relatório

    de Curso

    Exemplo: SI do ISPGaya

    Definição de

    Ficha de

    Disciplina

    Lançamento de

    Classificações

    Publicação de

    Material de Apoio

    Lançamento

    de Sumários

    Elaboração de

    Relatório de

    Disciplina

    Inscrições

    no Curso

    Inscrições nas

    Disciplinas

    Inscrições

    nas Turmas

    Consulta e Descarregamento

    de Material de Apoio de

    Disciplinas

    Consulta de

    Horários

    Consulta de

    Classificações

    Consulta de

    Sumários

     Aluno de

    Curso

    Docente de

    Disciplina

    Funcionário deSecretaria

    Director de Curso

  • 8/18/2019 2 UML DiagramasCasosUso

    13/17

    José Correia UML – Diagramas de Casos de Uso 25

    SIIPG - Gestão de Cursos

    Director

    de Curso

    Definição de

    Plano de Curso

    Elaboração deCalendário de Exames

     At ribuição de

    Serviço Docente

    Elaboração de

    Horários

    Elaboração de

    Relatório de Curso

    Exemplo: SIIPG

    José Correia UML – Diagramas de Casos de Uso 26

    SIIPG - Gestão de Disciplinas

    Docente de

    Disciplina

    Definição de Ficha

    de Discipli na

    Lançamento de

    Classificações

    Publicação de

    Material de Apoio

    Lançamento de

    Sumários

    Elaboração de Relatório

    de Discipli na

    Exemplo: SIIPG

  • 8/18/2019 2 UML DiagramasCasosUso

    14/17

    José Correia UML – Diagramas de Casos de Uso 27

    Exemplo: SIIPG

    SIIPG - Inscrições

    Funcionário de

    Secretaria

    Inscrições no

    Curso

    Inscrições nas

    Disciplinas

    Inscrições nas

    Turmas

     Aluno de

    Curso

    submete candidaturapela Web

    executa procedimento de

    colocação automática, ou

    trata manualmente

    José Correia UML – Diagramas de Casos de Uso 28

    Exemplo: SIIPG

    SIIPG - Apoio a Alunos

     Aluno de Curso

    Consulta e Descarregamento

    de Material de Apoio de

    Disciplinas

    Consulta deHorários

    Consulta de

    Classificações

    Consulta de

    Sumários

  • 8/18/2019 2 UML DiagramasCasosUso

    15/17

    José Correia UML – Diagramas de Casos de Uso 29

    Exemplo: SIIPG

    Sist. de Informação do ISPGaya (SIIPG)

     Aluno de Curso Apoio a

     Alunos

    Docente de Disciplina Gestão de

    Disciplinas

    Funcionário de Secretaria

    Director de Curso

    Inscrições

    Gestão deCursos

    José Correia UML – Diagramas de Casos de Uso 30

    Realizações de Casos de Uso

    Um Diagrama de Casos de Uso apresenta uma visão externa do

    sistema

    Os Diagramas de Interacção descrevem como os casos de uso são

    realizados como interacções entre associações de objectos

    Há dois tipos de Diagramas de Interacção (interaction diagrams):

    • Diagramas de Sequência (Sequence diagrams)

    • Diagramas de Colaboração (Collaboration diagrams)

  • 8/18/2019 2 UML DiagramasCasosUso

    16/17

    José Correia UML – Diagramas de Casos de Uso 31

    Resumo

    Um Diagrama de Casos de Uso...

    ... descreve o comportamento de um sistema do ponto de vista do utilizador 

    ... descreve o que um sistema faz e não como o faz

    ... divide as funcionalidades do sistema em transações (casos de uso) que

    têm significado para os utilizadores (actores)

    ... é uma descrição funcional de um sistema e dos seus principais processos

    ... fornece uma descrição gráfica de quem irá usar o sistema e do tipo deinteracções a esperar dentro desse sistema

    José Correia UML – Diagramas de Casos de Uso 32

    Resumo (cont.)

    Um caso de uso contém múltiplos cenários, cada um dos quais

    descreve um fluxo específico de eventos

    • devemos garantir que cada caso de uso descreve um pedaço significativo

    (com valor) da utilização do sistema

    • ao definir casos de uso com texto, usar nomes e verbos de forma

    consistente e precisa

    - irá facilitar a definição de objectos e mensagens nos diagramas de interacção

     Ao construir os casos de uso, pensar...

    … nas tarefas que devem ser desempenhadas pelo(s) actor(es)

    … em manter os casos de uso simples

  • 8/18/2019 2 UML DiagramasCasosUso

    17/17

    José Correia UML – Diagramas de Casos de Uso 33

    Resumo (cont.)

    Um diagrama de casos de uso deve...

    ... conter apenas casos de uso ao mesmo nível de abstracção

    ... incluir apenas os actores que são necessários

    Quando é que um diagrama de casos de uso deve ser usado?

    • na especificação do contexto do sistema

    • na descrição (captura) dos requisitos de um sistema, nas fases de design,

    implementação e documentação

    • na modelização de testes de cenários com casos de uso

    O diagrama de casos de uso é, geralmente, elaborado na fase de

    análise e especificação de requisitos, por analistas e especialistas do

    domínio

    José Correia UML – Diagramas de Casos de Uso 34

    Referências

    Estes apontamentos foram baseados em:

    • “UML – Unified Modeling Language”, Curso em Tecnologia de Objectos,

    FEUP, Novembro 2000

     Ademar Aguiar, Gabriel David, João Pascoal Faria

    • “Introduction to UML: Structural Modeling and Use Cases”, Cris Kobryn,

    Novembro 2000

    • “UML, Metodologias e Ferramentas CASE”, Alberto Rodrigues da Silva,Carlos Videira, Maio 2001

    • “Analysis and Design with UML”

    Rational Software Corporation, 1997

    • Web:

    - OMG UML Resources: www.omg.org/uml/