Engenharia de Software Aula 2.4 – Modelos de Casos de Uso Prof. Bruno Moreno [email protected]

Comportamento do Sistema ●

Refere-se às funcionalidades do sistema –





Requisitos funcionais;

O comportamento do sistema (i.e. os RFs) são documentados por modelo de casos de uso; “Casos de uso” –

CDU

2

Modelos de Casos de Uso ●



Ilustra as funcionalidades do sistema, seus atores e seus relacionamentos; O objetivo principal da documentação de casos de uso é a comunicação –

Clientes, usuários finais e desenvolvedores podem discutir funcionalidades e comportamento do sistema através do modelo de casos de uso;



Adota uma linguagem simples: acessível ao cliente;



O objetivo é a compreensão do comportamento externo do sistema por qualquer stakeholder.

3

Modelos de Casos de Uso ●





Modelos de CDU podem representar Casos de Uso em diferentes notações: –

Textual



Gráfica

Os padrões da notação textual dependem do processo de desenvolvimento utilizado; A notação gráfica é feita, normalmente, em UML –

UML: Unified Markup Language 4

Diagramas de Caso de Uso ●

A UML pode ser considerada uma notação gráfica para se construir artefatos de software –

Existem muitos diagramas em UML (14);



O Diagrama de Caso de Uso é um tipo de diagrama de UML dentre vários;



O diagrama de casos de uso é o mais abstrato da UML ●



Portanto, o mais flexível e informal;

Um diagrama de caso de uso é composto por atores e casos de uso; –

Todo caso de uso é acionado por um ator;

5

Atores ●

Representam algo ou alguém que inteage com o sistema –



Não são parte do sistema;

Um ator pode: –

Somente fornecer informações para o sistema;



Somente receber informações do sistema;



Fornecer e receber informações para e do sistema;

6

Atores ●



Atores podem ser –

Pessoas que interagem com o sistema;



Um hardware que dispara uma interação;



Outro software que comunica com o sistema;

Como os atores são identificados? –

Através da definição dos requisitos funcionais ●



i.e. através da definição dos problemas a serem resolvidos;

Através de conversas com usuários finais e clientes;

7

Atores ●

Perguntas que podem ser utilizadas para identificar casos de uso: –

Quem está interessado numa certa necessidade?



Onde o sistema será usado?



Quem se beneficiará com o uso do sistema?



Quem fornecerá esta informação ao sistema?



Quem usará esta informação?



Quem removerá esta informação?



Quem dará o suporte e manterá o sistema?



Quais recursos externos o sistema utiliza?



Uma pessoa pode desempenhar diferentes papéis utilizando o sistema?



Várias pessoas desempenham o mesmo papel?



O sistema interage com um sistema legado?

8

Atores ●

Em UML, um ator é representado como um homem palito:



Documentação de atores –

Em um Modelo de CDU, sugere-se que cada ator seja descrito resumidamente;



Essa documentação deve identificar o papel que o ator desempenha na interação com o sistema;



Exemplo: ●

O ator Professor do SUAP é um usuário que é certificado para editar os diários das turmas;

9

Casos de Uso ●

Os casos de uso representam a interação entre o ator e o sistema –



É um requisito funcional;

Perguntas que podem ser úteis para identificar CDUs: –

Quais são as tarefas de cada ator?



Que casos de uso criarão, armazenarão, mudarão, removerão ou lerão informações do sistema?



Algum ator precisará informar ao sistema a respeito de mudanças externas repentinas?



Algum ator necessita ser informado a respeito de certas ocorrências no sistema?



Que casos de uso suportarão ou manterão o sistema?



Todas as necessidades funcionais podem ser executadas pelos dos casos de uso?

10

Casos de Uso ●

Em UML, um caso de uso é representado por uma elipse: Manter Clientes



Sacar Dinheiro

Nome do caso de uso: deve representar uma ação (comportamento) –

Exemplos: sacar, depositar, gerar relatórios;



Mesma regra de requisitos funcionais;

11

Casos de Uso ●







Um caso de uso descreve uma sequência de ações que o sistema deve executar; O objetivo final de um caso de uso é produzir algo de valor como resultado; O resultado deve atender as necessidades do ator que invocou (executou) o caso de uso. Um caso de uso: –

Descreve uma funcionalidade completa do sistema;



Gera como resultado algo de valor tangível para um ator (usuário). 12

Diagramas de Casos de Uso ●



Um Diagrama de Casos de Uso é uma visão gráfica de todos ou alguns casos de uso e atores de um sistema; Cada sistema, normalmente, tem um diagrama principal –

Este diagrama representa a fronteira do sistema e as principais funcionalidades do mesmo;



Outros diagramas de casos de uso são necessários a depender da complexidade do sistema;

13

Exemplo (1) ●

Um sistema para uma biblioteca Sistema de Controle de Empréstimos Cadastrar Usuário Cadastrar Exemplar

Administrador

Visualizar Exemplares Usuário

Cadastrar Empréstimo

14

Exemplo (2) ●

SUAP Sistema Acadêmico Postar Material Registrar Frequência Professor Registrar Notas

15

Diagramas de Caso de Uso ●

São utilizados para modelar: –

O contexto de um sistema: ●



Identificando os atores e seus papéis na interação com o sistema;

Os requisitos de um sistema: ●



Especificando o que o sistema deve fazer (do ponto de vista de seus usuários) Não se preocupa o sistema será é implementado.

16

Diagramas de Caso de Uso ●

Atores e Casos de Uso podem ser conectados por meio de associações –

Uma associação significa uma comunicação entre ambos;



Cada um pode enviar ou receber mensagens, estabelecendo uma interação;



Uma associação demonstra que o ator utiliza a função representada por um caso de uso;



É representada por uma linha reta ligando o ator ao caso de uso ●

Pode ser direcionada ou não; 17

Diagramas de Caso de Uso ●

A linha não direcionada é mais comum!

Exemplos:

Corretor

Aluga Carro Cliente Verifica Veículo Corretor



Além das Associações, existem outros tipos de relacionamentos em Casos de Uso. 18

Relacionamentos ●

Entre atores –

Associação entre atores não são modeladas, modela-se apenas generalizações;



A generalização pode identificar papéis específicos de um ator no sistema.

Pessoa

Professor

Aluno 19

Relacionamentos ●

Entre casos de uso –

Generalizações: relacionamento de herança entre casos de uso;



Includes: indica que um caso de uso é essencial para o comportamento de outro caso de uso;



Extends: indica que um caso de uso pode ser acrescentado para descrever o comportamento de outro caso de uso (i.e. não é essencial);



Casos de uso podem (opcionalmente) estar envolvidos por um retângulo que representa os limites do sistema; 20

Relacionamentos ●

Generalização entre casos de uso –

É chamado de relacionamento é_um;



Caso de uso B é_um caso de uso A: A é uma generalização de B ou B é uma especificação de A;



Um relacionamento entre um caso de uso geneérico para um mais específico, que herda todas as características do pai;



Aconrece quando dois ou mais casos de uso possuem características semelhantes;

21

Relacionamentos ●

Exemplo: Abrir Conta Bancária

Abrir Conta Especial

Casos de uso específicos

Caso de uso geral

Abrir Conta Poupança

22

Relacionamentos ●

Include (inclusão) entre casos de uso –

Um include entre um caso de uso A para um caso de uso B indica que B é essencial para A ● ●

Indicam obrigatoriedade; A execução do primeiro obriga a execução do segundo;



Pode ser dito também que B is_part_of A;



É utilizado quando um caso de uso é usado dentro de outro caso de uso;

23

Relacionamentos ●

Include (inclusão) entre casos de uso –

É representado por uma seta tracejada: a seta aponta para o caso de uso incluído;



Possui a palavra “include” entre dois sinais de menor () ●

Esse tipo de rótulo é chamado em UML de estereótipo.

24

Relacionamentos ●

Include (inclusão) entre casos de uso –

Exemplo: Sacar

Registrar movimento Cliente

Banco



Depositar

25

Relacionamentos ●

Extend (extensão) entre casos de uso –

Um extend entre um caso de uso B para um caso de uso A indica que B pode ser acrescentado para descrever A (não é essencial);



Indica que um caso de uso pode ter funcionalidades opcionais (caso de uso estendido);



Exemplo: cenários que somente acontecerão em uma situação específica ●

Se uma determinada situação for satisfeita;

26

Relacionamentos ●

Extend entre casos de uso –

Pode necessitar um teste para determinar se o caso de uso será estendido ou não;



Representação semelhante à inclusão: ●



É representado por uma seta tracejada: a seta aponta para o caso de uso principal; Possui a palavra “extend” como estereótipo.

27

Relacionamentos ●

Extend entre casos de uso –

Exemplo Encerrar conta





Funcionário

Cliente

Sacar

Depositar

28

Relacionamentos ●

Limites do sistema –

Representado por um retângulo envolvendo os casos de uso que compõem o sistema;



Nome do sistema é localizado dentro (geralmente no topo) do retângulo;

29

Exemplo (3) ●

Sistema para uma clínica médica

30

Exemplo (4) ●

Sistema para uma máquina self-service

31

Ferramenta CASE ●

Existem diversas ferramentas CASE no mercado voltadas para esse propósito;



Utilizaremos uma ferramenta free: Astah;



Astah Community (http://astah.net/)

32

Prática ●



Exemplo: sistema acadêmico (SUAP) –

Considere um sistema acadêmico como o SUAP;



Nesse sistema, os professores podem gerenciar as aulas ministradas, bem como os materiais relacionados a essas aulas;



Esse sistema permite que alunos enviem atividades, visualizem o material disponibilizado;

Crie um diagrama de casos de uso que represente os casos de uso desse sistema.

33