Logo Passei Direto
Buscar
Material
páginas com resultados encontrados.
páginas com resultados encontrados.

Prévia do material em texto

INTRODUÇÃO À ENGENHARIA 
DE SOFTWARE 
Prof. Marcelo Cabral 
www.fundacaoredeam.com.br 
2016 
Tópicos da aula de Hoje: 
❖ Casos de Uso 
 Conceito Geral 
 Estrutura 
 Diagrama de Casos de Uso 
 
INTRODUÇÃO À ENGENHARIA DE SOFTWARE 
 
O que é? 
❖ Uma técnica para capturar requisitos funcionais 
❖ Descreve o sistema sob a perspectiva do usuário final 
❖ Descreve a interação típica dos usuários com o sistema 
 Usualmente se inicia na analise de cenários de uso previamente descritos 
em linguagem natural 
 Fornece uma narrativa estruturada dessa interação 
INTRODUÇÃO À ENGENHARIA DE SOFTWARE 
 
Exemplo de cenário de uso 
❖ O cliente folheia o catálogo e seleciona itens para adicionar na cesta de 
compras. Quando o cliente deseja fechar a compra, ele deve informar os 
dados do cartão de crédito e confirmar a compra. O sistema autoriza a 
venda junto à operadora do cartão e notifica o cliente, tanto de forma 
síncrona, na tela, quanto de forma assíncrona, via e-mail. 
INTRODUÇÃO À ENGENHARIA DE SOFTWARE 
 
Exemplo de cenário de uso 
❖ O cliente folheia o catálogo e seleciona itens para adicionar na cesta de 
compras. Quando o cliente deseja fechar a compra, ele deve informar os 
dados do cartão de crédito e confirmar a compra. O sistema autoriza a 
venda junto à operadora do cartão e notifica o cliente, tanto de forma 
síncrona, na tela, quanto de forma assíncrona, via e-mail. 
INTRODUÇÃO À ENGENHARIA DE SOFTWARE 
 
E os cenários derivados ? 
❖ Nem sempre as coisas acontecem como esperamos 
 O cartão pode não ser autorizado pela operadora 
 Um cliente conhecido pode pendurar a conta e só pagar no final do mês 
❖ Todos esses cenários são diferentes, porém similares 
 Todos tem o mesmo objetivo: comprar produtos 
 Todos pertencem ao mesmo caso de uso: comprar produtos 
INTRODUÇÃO À ENGENHARIA DE SOFTWARE 
 
Casos de Uso 
INTRODUÇÃO À ENGENHARIA DE SOFTWARE 
 
Casos de Uso 
❖ O caso de uso foca no cenário típico, onde tudo acontece na maior parte 
das vezes 
❖ Os cenários alternativos também são descritos no caso de uso em uma 
seção separada 
❖ Conhecido como extensões ou fluxos alternativos 
❖ Deve indicar o ponto em que estende o cenário típico 
❖ Deve indicar o ponto em que retorna ao cenário típico 
INTRODUÇÃO À ENGENHARIA DE SOFTWARE 
 
Atores 
❖ Representa as entidades que se relacionam com o sistema 
❖ Exemplos: 
 Usuário 
 Cliente 
 Representante do cliente (caixa do supermercado) 
 Gerente 
 Sistema externo 
 Etc. 
❖ Um outro sistema externo pode também ser um ator 
❖ Tipos de atores 
 Primário: são beneficiados diretamente pelo caso de uso 
 Secundários: atores que participam como coadjuvantes no caso de uso 
INTRODUÇÃO À ENGENHARIA DE SOFTWARE 
 
Atores x Usuários 
❖ Importante: ator é o papel, e não a pessoa 
 Ex.: Se existe um cliente do sistema chamado João, existe um ator chamado “cliente”, 
e não um ator chamado “João” 
❖ Usuário 
 Pode representar perante o sistema vários papéis diferentes (pode ser vários atores 
diferentes). 
❖ Ator 
 Várias pessoas podem representar o mesmo papel. 
❖ Um caso de uso pode ser usado por vários atores diferentes 
INTRODUÇÃO À ENGENHARIA DE SOFTWARE 
 
Atores x Usuários 
INTRODUÇÃO À ENGENHARIA DE SOFTWARE 
 
Identificação dos Casos de Uso e Atores 
❖ Ler a descrição em linguagem natural do sistema, buscando por 
 Casos de uso candidatos: verbos 
 Atores candidatos: substantivos 
❖ Exemplo 
 O cliente entra na loja para comprar produtos... 
 O porteiro registra [a chegada de] encomendas... 
INTRODUÇÃO À ENGENHARIA DE SOFTWARE 
 
Conteúdo de um Caso de Uso 
❖ Não existe consenso na estrutura interna de um caso de uso 
❖ Algumas estruturas são utilizadas recorrentemente 
 Simples 
 Detalhada 
❖ É importante selecionar uma estrutura que seja adequada para o 
problema e o processo em uso 
INTRODUÇÃO À ENGENHARIA DE SOFTWARE 
 
Estrutura Simples de um caso de uso 
❖ Nome 
❖ Cenário típico 
❖ Cenários alternativos 
INTRODUÇÃO À ENGENHARIA DE SOFTWARE 
 
Exemplo de cenário de uso 
❖ O cliente folheia o catálogo e seleciona itens para adicionar na cesta de 
compras. Quando o cliente deseja fechar a compra, ele deve informar os 
dados do cartão de crédito e confirmar a compra. O sistema autoriza a 
venda junto à operadora do cartão e notifica o cliente, tanto de forma 
síncrona, na tela, quanto de forma assíncrona, via e-mail. 
INTRODUÇÃO À ENGENHARIA DE SOFTWARE 
 
Estrutura Simples de um caso de uso (exemplo) 
❖ Nome: UC1 – Compra de produto 
❖ Cenário típico 
1. O cliente folheia o catálogo e seleciona itens para comprar 
2. O cliente fecha a compra 
3. O cliente escolhe a forma de entrega 
4. O sistema apresenta o preço total 
5. O cliente fornece os dados do cartão de crédito 
6. O sistema autoriza a compra 
7. O sistema confirma na tela a compra 
8. O sistema envia um e-mail confirmando a compra 
INTRODUÇÃO À ENGENHARIA DE SOFTWARE 
 
Estrutura Simples de um caso de uso (exemplo) 
❖ Cenários alternativos 
5. O cliente é conhecido 
1. O sistema pendura o pagamento 
2. Retorna para o passo 7 do fluxo principal 
6. A operadora do cartão não autoriza a compra 
1. O cliente pode fornecer outro cartão, retornando para o passo 5, ou 
cancelar a compra 
INTRODUÇÃO À ENGENHARIA DE SOFTWARE 
 
Estrutura detalhada de um caso de uso 
❖ Nome: título do caso de uso 
❖ Lista de atores: perfis de usuários ou sistemas que usam o caso de uso 
❖ Visão geral (descrição): descrição textual 
❖ Gatilho: ação que dispara sua execução 
❖ Pré-condições: restrições para sua execução 
❖ Cenário típico( Fluxo principal): passos ordenados para a sua execução 
❖ Cenários alternativos: fluxos de ações que podem ocorrer paralelamente ao fluxo principal, 
dada uma condição específica 
❖ Regras de Negócio: restrições (regras) para execução de um mais passos do fluxo principal 
ou alternativo 
❖ Extensões: saídas para outros casos de uso 
❖ Pós-condições: condição final a ser estabelecida ao final de sua execução 
INTRODUÇÃO À ENGENHARIA DE SOFTWARE 
 
Estrutura de um caso de uso 
INTRODUÇÃO À ENGENHARIA DE SOFTWARE 
 
Descrição de um cenário 
❖ O cenário é composto de passos 
 Lista de passos 
 Tabela comum a coluna para os atores e outra para o sistema 
❖ Cada passo descreve 
 O ator envolvido 
 A sua intenção naquela interação 
INTRODUÇÃO À ENGENHARIA DE SOFTWARE 
 
Perguntas para identificar atores e casos de uso 
❖Quem utiliza o sistema ? 
❖Como é o uso do sistema ? 
❖Quais informações são fornecidas ou obtidas do sistema ? 
❖Como o sistema é mantido ? 
❖Quais outros sistemas interagem com esse sistema ? 
INTRODUÇÃO À ENGENHARIA DE SOFTWARE 
 
Perguntas para identificar cenários 
❖Quando tudo dá certo, como o sistema se comporta ? 
❖Algo pode ocorrer de forma diferente nesse passo ? 
❖O que pode dar errado nesse passo ? 
INTRODUÇÃO À ENGENHARIA DE SOFTWARE 
 
Caso de Uso x Passo 
❖ Quando um passo for muito complicado 
 Verifique se o cenário alternativo está se misturando com o cenário típico 
 Verifique se é possível transformar o passo em outro caso de uso 
❖ Quando um passo vira um novo caso de uso 
 O primeiro caso de uso deve incluir o segundo 
 Na UML: relação de <<include>> 
 Na descrição do caso de uso: hiperlink para o outro caso de uso 
❖ Cuidado: Não faça decomposição funcional do caso de uso! 
INTRODUÇÃO À ENGENHARIA DE SOFTWARE 
 
Dicas 
❖ Comecem da estrutura simples e adicionem somente os elementos 
necessários 
❖ Façam casos de uso enxutos 
 Casos de uso longos não são lidos ! 
❖ Adicione detalhes de forma proporcional ao risco do caso de uso 
INTRODUÇÃO À ENGENHARIA DE SOFTWARE 
 
Exercício 
❖ Vamos detalhar um caso de uso? 
❖ Cadastrar Cliente 
 Os dados que preciso preencher das mensagens são: 
 Nome, endereço, categoria, e-mail, telefone, data de aniversário 
 Eu quero que todos os dados sejam obrigatórios,menos data de aniversário 
 Eu não quero repetir o cadastro de um cliente 
 Se ele já estiver cadastrado, quero que seja exibida a tela de consulta desse 
cliente, ok ? 
 Precisam de mais informações ? É só perguntar 
INTRODUÇÃO À ENGENHARIA DE SOFTWARE 
 
Exercício 
❖ Nome 
❖ Ator 
❖ Gatilho 
❖ Pré-condição 
❖ Fluxo Principal 
❖ Fluxos Alternativos 
❖ Extensões 
❖ Pós-Condição 
❖ Regras de Negócio 
INTRODUÇÃO À ENGENHARIA DE SOFTWARE 
 
INTRODUÇÃO À ENGENHARIA DE SOFTWARE 
 
Exercício (Sugestão) 
INTRODUÇÃO À ENGENHARIA DE SOFTWARE 
 
Exercício (Sugestão) 
INTRODUÇÃO À ENGENHARIA DE SOFTWARE 
 
Diagrama de Casos de Uso 
INTRODUÇÃO À ENGENHARIA DE SOFTWARE 
 
UML – Unified Modeling Language 
❖ UML (Unified Modeling Language) é uma linguagem visual para 
especificação, construção e documentação de artefatos de software 
❖ O propósito da modelagem (criação de esquemas UML ) é, 
principalmente, para entender e não para documentar ! 
❖ Trabalha como paradigma de Orientação a Objetos 
❖ UML sozinha não resolve nada: 
 Ela deve ser usada dentro de um processo de desenvolvimento ! 
INTRODUÇÃO À ENGENHARIA DE SOFTWARE 
 
Por que usar UML ? 
❖ Linguagem para modelagem de sistemas padronizada pela OMG (Object 
Management Group) 
❖ Altamente reconhecido e utilizado na indústria de software em geral (mesmo não 
sendo um padrão industrial) 
❖ Ajuda a conceber nossas ideias, em relação ao sistema que estivermos 
projetando 
 Pensar antes de codificar! 
 Apresentar nossas ideias ao grupo de forma que todos possam interagir e discutir um 
determinado ponto 
 Aumenta a participação e envolvimento do time ! 
 Linguagem comum entre todos os envolvidos 
INTRODUÇÃO À ENGENHARIA DE SOFTWARE 
 
Diagramas providos pela UML 2.0 
❖ São 13 diagramas, divididos em 3 grupos: 
INTRODUÇÃO À ENGENHARIA DE SOFTWARE 
 
Modelagem de Casos de Uso 
❖ O diagrama de casos de uso exerce um papel importante na análise de sistemas: 
 É o principal diagrama para ser usado no diálogo como usuário na 
descoberta e validação de requisitos; 
 Os casos de uso constituem elementos que estruturam todas as etapas do 
processo de software. 
INTRODUÇÃO À ENGENHARIA DE SOFTWARE 
 
Diagrama de casos de Uso 
❖ A maior riqueza dos casos de uso está na sua descrição, não no diagrama 
❖ Contudo, a UML oferece um diagrama que permite visualizar 
 Os atores 
 Os casos de uso 
 O relacionamento entre atores e casos de uso 
 O relacionamento entre casos de uso 
❖ Serve como um índice visual dos casos de uso 
INTRODUÇÃO À ENGENHARIA DE SOFTWARE 
 
Elementos do Diagrama de casos de Uso 
INTRODUÇÃO À ENGENHARIA DE SOFTWARE 
 
Diagrama de casos de Uso 
❖ Analogia com Controle Remoto 
 Visão externa do sistema; 
 Fornece um conjunto de serviços complexos que são acessados através de 
botões; 
INTRODUÇÃO À ENGENHARIA DE SOFTWARE 
 
Diagrama de casos de Uso 
❖ Exemplo: 
INTRODUÇÃO À ENGENHARIA DE SOFTWARE 
 
Diagrama de casos de Uso (relacionamentos) 
❖ Os casos de uso podem ser organizados por meio de relacionamentos 
(interações) 
 Com atores 
 Com outros casos de uso 
 A UML disponibiliza 4 tipos: 
 Comunicação 
 Generalização 
 Extensão <<extends>> 
 Inclusão <<include>> 
INTRODUÇÃO À ENGENHARIA DE SOFTWARE 
 
Tipos de Interação 
❖Comunicação 
 Representa quais atores estão ligados a quais casos de uso 
INTRODUÇÃO À ENGENHARIA DE SOFTWARE 
 
Tipos de Interação 
❖Generalização / Especialização entre Atores 
 Relação “é um” entre atores 
 Um ator (Gerente) herda o perfil de outro ator 
(Funcionário) 
 Ou seja, ele possui acesso aos casos de usos 
acessíveis pelo ator mais “genérico”, porém o inverso 
não é verdade 
o Um gerente é um funcionário, mas um 
funcionário não é um gerente 
INTRODUÇÃO À ENGENHARIA DE SOFTWARE 
 
Tipos de Interação 
❖Generalização / Especialização entre Atores 
 Os casos de uso especializados herdam a estrutura do caso de uso 
generalizado 
 O supertipo contém cenários mais genéricos 
 Os subtipos contém cenários mais especializados, particular a cada 
um deles 
 Os cenários comuns a mais de um caso de uso é adaptado em um 
caso de uso generalizado 
INTRODUÇÃO À ENGENHARIA DE SOFTWARE 
 
Tipos de Interação 
❖Generalização / Especialização entre Atores 
 Quando usar ? 
 Quando você estiver descrevendo comportamentos semelhantes entre 
casos de uso, mas algum deles faz um pouco mais que o outro. 
 Exemplo: 
INTRODUÇÃO À ENGENHARIA DE SOFTWARE 
 
Tipos de Interação 
❖ Extensão 
 Um caso de uso pode opcionalmente utilizar um outro 
 Encapsula um cenário alternativo complexo em um outro caso de uso 
 Utiliza o campo “Gatilho” para definir o momento que entra em ação 
 Pode ser visto como um remendo (patch) do caso de uso base 
 Representada através de um arco pontilhado com o rótulo <<extend>> 
INTRODUÇÃO À ENGENHARIA DE SOFTWARE 
 
Tipos de Interação 
❖ Inclusão 
 Adição de um comportamento específico em um ponto determinado do 
caso de uso 
 Útil quando esse comportamento é repetido em diversos casos de uso do 
sistema 
 Um caso de uso inclui (precisa de, é composto de) outro 
 Representada através de um arco pontilhado com o rótulo <<include>> 
INTRODUÇÃO À ENGENHARIA DE SOFTWARE 
 
Exemplo 
INTRODUÇÃO À ENGENHARIA DE SOFTWARE 
 
Modelagem de Casos de Uso 
❖ Tipos possíveis de associação (interação): 
INTRODUÇÃO À ENGENHARIA DE SOFTWARE 
 
Modelagem de Casos de Uso 
❖ Cuidado ao modelar as fronteiras do sistema 
 Um usuário pode desempenhar diferentes papéis 
INTRODUÇÃO À ENGENHARIA DE SOFTWARE 
 
Modelagem de Casos de Uso 
❖ Cuidado ao modelar as fronteiras do sistema 
 Quais as fronteiras do sistema ? 
INTRODUÇÃO À ENGENHARIA DE SOFTWARE 
 
Modelagem de Casos de Uso 
❖ Heurísticas 
 Evitar um número muito elevado de casos de uso 
 Fragmentar o sistema em subsistemas (ou em subpacotes) 
 Usar casos de uso com denominação genéricas como Manter ou Gerenciar para 
descrever as funções de Cadastro de uma entidade 
 Evitar detalhamento algorítmico 
 Evitar o uso de <<include>> e <<extend>> nas primeiras iterações; 
 Lembrem-se que modelagem é um processo iterativo; 
 Diagramas de Caso de Uso têm sido usados para auxiliar no diálogo com o usuário 
 Deve-se ter atenção para o fato que o diagrama tem semântica informal 
 Isto é, não é preciso formalismo na sua descrição 
 Para um mesmo problema, múltiplas soluções válidas são admitida 
INTRODUÇÃO À ENGENHARIA DE SOFTWARE 
 
Localizar Atores e Casos de Uso 
❖ Objetivos 
 Delimitar o sistema 
 Destacar os atores que irão interagir com o sistema 
 Destacar os casos de uso do sistema 
 Definir glossário com os principais termos 
 
 Processo 
 Identificar os Atores 
 Identificar Casos de Uso 
 Criar Diagramas de Caso de Uso 
 Descrever Caso de Uso 
INTRODUÇÃO À ENGENHARIA DE SOFTWARE 
 
Dicas: Como encontrar atores ? 
❖ Quem usa o sistema ? 
❖ Quem instala / mantém o sistema ? 
❖ Quem inicia / desliga o sistema ? 
❖ Que outros sistemas usam o sistema ? 
❖ Quem recebe informação do sistema ? 
❖ Quem provê informação ao sistema ? 
INTRODUÇÃO À ENGENHARIA DE SOFTWARE 
 
Dicas: Como encontrar casos de uso ? 
❖ Atores são fundamentais para a descoberta dos casos de uso 
 Qual o objetivo de cada ator com o sistema ? 
 Pergunte: 
 O sistema armazena informações ? Que informações atores irão criar, ler, 
atualizar ou apagar ? 
 O sistema precisa notificar o ator sobre mudanças no seu estado interno ? 
 Existe algum evento externo que o sistema precisa saber ? 
 Que ator informa o sistema destes eventos ? 
INTRODUÇÃO À ENGENHARIA DE SOFTWARE 
 
Detalhar um caso de uso 
❖ Seguir o template detalhado para especificação de casos de uso visto na 
aula 
❖ Lembrando de descrever os cenários 
 Identificar fluxo normal; 
 Identificar fluxos alternativos; 
INTRODUÇÃO À ENGENHARIA DE SOFTWARECasos de Uso devem ser... 
❖ Unidades testáveis e auto-contidas ! 
❖ Isso facilita: 
 Distribuição de tarefas entre os desenvolvedores; 
 Gerenciamento do cronograma; 
 Planejamento e realização de testes unitários; e 
 Integração do sistema. 
❖ Sem isso, não é viável um desenvolvimento iterativo e incremental ! 
❖ O escopo de um caso de uso deve ser limitado. 
INTRODUÇÃO À ENGENHARIA DE SOFTWARE 
 
Modelagem de casos de uso 
❖ Conclusão: 
 Todas as atividades de desenvolvimento são organizadas em função dos 
casos de uso; 
 Ele será nosso Oráculo! 
 Isso inclui atividades de: 
• Modelagem e Projeto; 
• Codificação; 
• Planejamento do Projeto; 
• Teste de Software; 
• Homologação do sistema 
INTRODUÇÃO À ENGENHARIA DE SOFTWARE 
 
Ferramentas de Modelagem 
❖ Serão necessárias no trabalho em grupo 
❖ Exemplos: 
 StarUML 
 BOUML 
 Rational Rose 
 Eclipse 
 ArgoUML 
 AstahUML 
 Outros 
INTRODUÇÃO À ENGENHARIA DE SOFTWARE 
 
Exercício 
❖ Dada a descrição do sistema a seguir, vamos elaborar seu diagrama de casos de 
uso... 
❖ Sistema: Controle Acadêmico de Disciplinas 
 Alunos, professores e coordenadores podem consultar os dados de alunos por: 
 Nome [padrão], Matrícula, Ano de Ingresso 
 Alunos podem fazer suas matrículas 
 Coordenadores podem fazer ajustes de matrículas de alunos 
 Professores e coordenadores podem consultar dados de uma turma, como por 
exemplo seus alunos 
 Todos os usuários precisam de identificados de acordo com seu perfil 
INTRODUÇÃO À ENGENHARIA DE SOFTWARE 
 
Exercício 
INTRODUÇÃO À ENGENHARIA DE SOFTWARE 
 
Dúvidas 
 
 
INTRODUÇÃO À ENGENHARIA DE SOFTWARE 
 
 
INTRODUÇÃO À ENGENHARIA DE SOFTWARE 
Espero que tenham 
gostado ! 
Até próxima aula !

Mais conteúdos dessa disciplina