Engenharia de Requisitos
Modelagem
• A modelagem é a fase de criação de um modelo que explique as características de funcionamento e
comportamento de um software a partir do qual ele
será criado, facilitando seu entendimento e seu projeto, através das características principais que evitarão erros através das características principais que evitarão erros de programação, projeto e funcionamento.
• Para que servem modelos?
– Representação – Organização – Comunicação
Máquina de Café Expresso
• Máquina de café expresso sem instruções de uso em restaurante universitário • De que torneira sairá o
café? café?
• Quando devo colocar as moedas?
• Como funcionam os menus?
• Melhor observar outra pessoa pegando um café
Máquina de Café Expresso
• Má disposição dos menus • Falta de indicação da
saída do café saída do café
A Máquina da Tess
A Máquina da Tess
Esta máquina aparentemente inofensiva possui o péssimo hábito de “assaltar” as pessoas que nela colocam seu dinheiro pensando que, em troca, receberão umcartão com crédito para seu celular.
Máquina Tess Express
Isso acontece toda vez que alguém coloca nela o seu dinheiro e não existem mais cartões disponíveis na máquina. Só depois ela avisa que não existem mais cartões com o número de unidades que você deseja. Não existem
quaisquer instruções de como recuperar o dinheiro.
O Problema
O Problema A SoluçãoA Solução
??
$$
@#! Devolver Dinheiro OUOU
Primeiro escolher opção... Primeiro escolher opção...
...depois colocar dinheiro. ...depois colocar dinheiro.
OU OU
A Situação:
Você Você
O Controle Remoto da Garagem O Controle Remoto da Garagem
X
X
O que contribuiu para a Situação
•
Falhas de projeto:
– Não é possível identificar os botões rapidamente, através do tato ou contato visual breve.
– Pressa para acionar o botão, que pode ser – Pressa para acionar o botão, que pode ser
causada por diversas razões:
• Estar atrapalhando o trânsito • Medo de assaltos
• Nervosismo • Ansiedade
Como evitar ou sobreviver ao erro
•
Diferenciar botões:
– Cores (botão verde / vermelho)
– Formas (botão triangular / redondo) – Textos (Entrada / Saída)
– Textos (Entrada / Saída) – Teclas iluminadas
•
Desenho do controle:
– Formato diferenciado – Botões distanciados
Interface Humano Computador
-IHC
Interfaces
“O
sistema ideal
esconde tanto a tecnologia que
o usuário nem nota sua presença.”
“O objetivo é deixar as pessoas realizarem suas
“O objetivo é deixar as pessoas realizarem suas
atividades, com a
tecnologia
aumentando sua
produtividade, seu poder, e seu divertimento,
cada vez mais por ser
invisível, fora de vista,
fora da mente.”
Interfaces
“Deveríamos poder empregar a ferramenta na
tarefa, e não como é hoje, onde temos que
adequar a tarefa à ferramenta.”
“E essas ferramentas deveriam seguir os
três
axiomas do design: simplicidade,
Interface Humano Computador
•
Quando o conceito de interface surgiu, ela era
geralmente entendida como o hardware e o
software com o qual homem e computador
podiam se comunicar. A evolução do conceito
podiam se comunicar. A evolução do conceito
levou à inclusão dos aspectos cognitivos e
emocionais do usuário durante a
comunicação.
Interface Humano Computador
•
Não se pode pensar em interfaces sem
considerar o ser humano que vai usá-la, e
portanto interface e interação são conceitos
portanto interface e interação são conceitos
que não podem ser estabelecidos ou
Interface Humano Computador
•
Isso de maneira alguma quer dizer que o design
deve ser adequado a todas as pessoas, mas os
computadores
devem ser projetados
devem ser projetados
para as necessidades
e capacidades de um
grupo alvo.
O QUE É INTERAÇÃO/INTERFACE
HUMANO-COMPUTADOR
•
Para que os computadores se tornem
amplamente aceitos e efetivamente usados
eles precisam ser bem projetados.
Interface Humano Computador
Estamos vivendo um momento vital e
estratégico para os desenvolvedores de
interfaces. Pode-se dizer que a Tecnologia está
pronta. Temos portanto as pontes e túneis
pronta. Temos portanto as pontes e túneis
construídos e agora as estradas precisam ser
pavimentadas e as sinalizações pintadas para
tornar possível o pesado tráfico da grande leva
de usuários
Interface Humano Computador
• Designers de software têm explorado maneiras melhores de organizar informação graficamente. Eles têm desenvolvido linguagens de consulta e facilidades visuais para entrada, busca e saída de informação.
• Têm usado sons (música e voz), representações • Têm usado sons (música e voz), representações
tridimensionais, animação e vídeo para melhorar o conteúdo e a expressão das interfaces.
• Técnicas como manipulação direta, tele-presença, e realidade virtual mudam a maneira de interagir e de pensar sobre
Atividade
•
Criar as principais telas de seu projeto
– Foco na interação humano – máquina (usabilidade)
– Foco em atender os requisitos funcionais – Foco em atender os requisitos funcionais
Modelo de Casos de Uso
•
Representação das funcionalidades
observáveis do sistema e dos elementos
externos (atores) ao sistema que interagem
com o mesmo
com o mesmo
Modelo de Casos de Uso
•
Objetivos Principais dos Casos de Uso:
– Delimitação do contexto de um sistema
– Documentação e o entendimento dos requisitos – Descrição dos requisitos funcionais
– Descrição dos requisitos funcionais
– Principal saída da etapa de especificação de requisitos
Modelo de Casos de Uso
•
Objetivos Secundários dos Casos de Uso:
– Facilitam a comunicação entre os stakeholders – São a base para a definição do cronograma
– São a base para a definição do cronograma – Auxiliam na elaboração dos casos de teste
Casos de Uso
•
São uma descrição de um processo de negócio
relativamente longo com um começo, meio e
fim;
•
Representam as principais funcionalidades do
•
Representam as principais funcionalidades do
sistema “observáveis” por algum ator;
•
Representam funções no nível de sistema;
•
O QUE fazer, não COMO fazer;
Caso de Uso
•
UML: Unified Modeling Language
– Linguagem utilizada para modelagem de software
•
Casos de Uso em UML
•
Casos de Uso em UML
– Uma elipse com o nome do caso de uso no centro: Emprestar Exemplar
Caso de Uso
•
Atores (UML)
– São entidades externas ao sistema computacional que participam de um ou mais casos de uso
– Ou fornecem eventos de entrada ou recebem – Ou fornecem eventos de entrada ou recebem
alguma resposta do sistema – Em geral, atores podem ser:
• Papéis que pessoas representam nos casos de uso • Dispositivos de hardware mecânicos ou elétricos • Outros sistemas computacionais
Caso de Uso
•
Os atores interagem com os casos de uso
através de associações (linhas contínuas)
Diagramas de Casos de Uso
•
Mostram um conjunto de casos de uso, atores
e seus relacionamentos
•
Modelam aspectos dinâmicos do sistema
•
Proporcionam uma representação contextual
•
Proporcionam uma representação contextual
do sistema (fronteira explícita)
•
Indicam a forma como o sistema interage com
as entidades externas (atores)
Casos de Uso
•
Relacionamentos entre Casos de Uso:
– Objetivo: Aumentar a reutilização em diferentes contextos
– Evita a descrição de um mesmo conjunto de fluxos – Evita a descrição de um mesmo conjunto de fluxos
de eventos, através da extração/fatoração do comportamento comum dos casos de uso
Casos de Uso
•
A linguagem UML define três tipos de
relacionamentos:
– Generalização (herança) – Inclusão (<< include >>) – Inclusão (<< include >>) – Extensão (<< extend >>)
Casos de Uso
•
Generalização
– Similar à generalização entre classes
– O caso de uso filho herda tanto o significado do seu pai, quanto o seu comportamento
seu pai, quanto o seu comportamento – O comportamento do caso de uso filho
normalmente é redefinido
– Um caso de uso filho pode ser utilizado no lugar do seu pai
Casos de Uso
Casos de Uso
•
Inclusão
– Significa que o caso de uso base incorpora
explicitamente o comportamento de outro caso de uso em um ponto específico
de uso em um ponto específico
– Representado como uma dependência (seta
tracejada) que aponta para o caso de uso incluído
• Se o caso de uso incluído muda, o caso de uso base precisa ser revisto
Casos de Uso
Casos de Uso
•
Extensão
– Significa que o caso de uso base incorpora
implicitamente o comportamento de outro caso de uso
de uso
– Apenas em circunstâncias específicas, o caso de uso estendido tem seu comportamento
incorporado pelo caso de uso base: pontos de extensão
– Utilizado para modelar o comportamento excepcional do sistema (exceções)
Casos de Uso
•
Extensão
– Representado como uma dependência (seta tracejada) que aponta para o caso de uso base
• Se o caso de uso base muda, o caso de uso estendido • Se o caso de uso base muda, o caso de uso estendido
precisa ser revisto
Casos de Uso
Casos de Uso
•
Documentação de Casos de Uso Fluxo de
Eventos :
– Especifica o comportamento de um caso de uso; – E uma sequência de comandos declarativos que – E uma sequência de comandos declarativos que
descreve as etapas de execução de um Caso de Uso;
– Permanece focado no domínio do problema e não em sua solução;
Casos de Uso
•
Documentação de Casos de Uso Fluxo de
Eventos :
– Contém informações relativas:
• Às condições de início e término do caso de uso; • Às condições de início e término do caso de uso; • Quais os atores interessados no sistema;
Casos de Uso
•
Documentação de Casos de Uso Fluxo de
Eventos :
– O fluxo de eventos de um caso de uso é composto por:
por:
• Um Fluxo Básico descreve a funcionalidade principal do caso de uso, quando nenhum desvio é tomado
• Zero ou Mais Fluxos Alternativos descrevem desvios pré-definidos do fluxo básico
Casos de Uso
•
Documentação de Casos de Uso Fluxo de
Eventos :
– Esses fluxos podem ser especificados através de:
• Descrição textual informal • Descrição textual informal
• Texto semiformal (através de pré-, pós-condições e invariantes)
• Pseudocódigo
Casos de Uso
Modelo Documento de casos de uso:
1. Nome – Descrição – Atores – Atores – Disparadores (opcional) – Requisitos Relacionados 2. Pré condições / Estado Inicial 3. Pós Condições
Casos de Uso
Modelo Documento de casos de uso:
4. Fluxo de eventos – Fluxo básico – Fluxo alternativo – Fluxo alternativo • Fluxo de exceção 50
Casos de Uso
•
Exemplo:
UC01: Comprar Produtos Atores: Cliente, Atendente
Descrição: Um cliente chega ao ponto de vendas para Descrição: Um cliente chega ao ponto de vendas para
comprar produtos. O atendente registra a compra e coleta o pagamento. O cliente vai embora com a compra.
Requisitos: RF01, RNF02
Pre-condição: PDV aberto com atendente logado. Nenhuma venda em aberto.
Casos de Uso
•
Exemplo cont...
Fluxo Principal (descrito em pseudocódigo):
1. O cliente chega ao ponto de vendas com os produtos da compra
compra
2. Para cada( produto trazido pelo cliente):
2.1. O atendente registra o código e a quantidade do produto
2.2. O sistema determina o preço do produto e o adiciona à compra
3. O atendente seleciona a opção de que a lista de produtos está completa
Casos de Uso
•
Exemplo cont...
Fluxo Principal (descrito em pseudocódigo):
4. O sistema calcula e apresenta o total
5. O atendente informa o cliente sobre o total da compra e 5. O atendente informa o cliente sobre o total da compra e
pergunta qual é a forma de pagamento
6. Se(dinheiro) forma de pagamento = “dinheiro” 7. O atendente registra a quantia recebida
8. O sistema mostra o troco e gera o recibo
9. O atendente deposita o dinheiro, devolve o troco e entrega o recibo da compra
Casos de Uso
•
Exemplo cont...
Fluxo Alternativo 1(descrito textualmente):
No passo 2 do fluxo básico, pode ter um produto com um código inválido. Nesse caso, o sistema com um código inválido. Nesse caso, o sistema
avisa que o código fornecido é inválido e pede que o atendente registre o próximo produto. Vá para o passo 2 do fluxo básico.
Casos de Uso
•
Exemplo cont...
Fluxo Alternativo 2(descrito textualmente):
No passo 6, o cliente pode escolher pagar com
cartão de crédito. Neste caso, o atendente passa o cartão de crédito. Neste caso, o atendente passa o cartão e o cliente digita a senha. Se houver crédito disponível, vá para o passo 7 do fluxo básico. Se não houver, vá para o passo 6 do fluxo básico.
Casos de Uso
•
Exemplo cont...
Fluxo Alternativo 3(descrito textualmente):
A qualquer momento, o atendente pode cancelar a transação. Nesse caso, as informações
a transação. Nesse caso, as informações
referentes à compra são descartadas e o caso de uso se encerra.
Casos de Uso
•
Exemplo de descrição usando um include
Fluxo Principal (Comprar Produtos):
4. O sistema calcula e apresenta o total 5. include (Efetuar Pagamento)
5. include (Efetuar Pagamento)
Casos de Uso
•
Exemplo de descrição usando um extend
Fluxo Principal (Devolver Produtos):
1. O atendente informa o código do produto a ser devolvido 2. O sistema exibe as opções de troca ou devolução
2. O sistema exibe as opções de troca ou devolução
3. O atendente seleciona a opção escolhida pelo usuário 4. se (opção de troca)
4.1. extend Efetuar Troca 5. se(opção em dinheiro);
5.1. extend Ressarcir em Dinheiro
Exercício
1. Utilizando o Astah, monte um diagrama de
casos de uso para o seu projeto.
2. Escreva os casos de uso do diagrama.
2. Escreva os casos de uso do diagrama.
Referências Bibliográficas
• Sommerville, Ian. Engenharia de Software. 8a edição. Pearson Education, 2007.
• Pressman, Roger S. Engenharia de Software. 6a edição. McGraw-Hill, 2006.