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