Escolar Documentos
Profissional Documentos
Cultura Documentos
EEL873
Engenharia de Software
Material evoluído dos originais preparados por Tayana Uchoa Conte e Talita Vieira Ribeiro para edições
anteriores deste curso
1
10/09/2018
Introdução
• Causas de falhas em projetos:
Fatores %
1. Requisitos incompletos 13,1
2. Falta de envolvimento dos usuários 12,4
3. Falta de recursos 10,6
4. Expectativas irreais 9,9
5. Falta de apoio executivo 9,3
6. Mudança nos requisitos 8,7
7. Falta de planejamento 8,1
8. Sistema não mais necessário 7,5
2
10/09/2018
Classificação de Requisitos
• Existem diferentes variações de classificação de requisitos,
porém uma classificação amplamente aceita divide os
requisitos em...
Funcionais Não
Funcionais
Classificação de Requisitos
– Estão diretamente ligados às
funcionalidades do produto, ou seja, Funcionais
descrevem as funções que o Não
produto deve desempenhar. Funcionais
– Um requisito funcional descreve uma interação entre o
sistema e o seu ambiente (PFLEEGER, 2004), podendo
descrever, ainda, como o sistema deve reagir a entradas
específicas, como o sistema deve se comportar em
situações específicas e o que o sistema não deve fazer
(SOMMERVILLE, 2007).
3
10/09/2018
Classificação de Requisitos
– Exemplos:
• "O sistema deve disponibilizar Funcionais Não
para os funcionários CLT um
formulário para solicitação de
Funcionais
férias"
• "O sistema deve permitir que os pacientes
remarquem suas consultas"
• "O sistema deve fornecer semanalmente aos
interessados um relatório de acompanhamento
dos processos de indenização (via email)"
Classificação de Requisitos
– Exemplos:
Funcionais Não • "As consultas devem ser
realizadas usando o protocolo
Funcionais HTTPS"
• "As consultas on-line devem ser
respondidas em no máximo 3
segundos"
• "As senhas dos usuários devem
ser armazenadas criptografadas"
4
10/09/2018
Analista
Desenvolvedora
Cliente
Perspectivas
para
Explicitação
dos
Requisitos
5
10/09/2018
6
10/09/2018
Engenharia de Requisitos
• Na Engenharia de Software, existe uma área que cuida
somente de requisitos chamada de Engenharia de
Requisitos.
• Pressupõe a adoção de métodos e técnicas para a
obtenção de requisitos do sistema.
• Objetiva:
• Entender o que o cliente deseja
• Avaliar a viabilidade
• Negociar condições razoáveis
• Especificar os requisitos do software com qualidade
• Gerenciar requisitos
Engenharia de Requisitos
• Processo de Engenharia de Requisitos: (adaptado de KOTONYA e
SOMMERVILLE, 1998):
7
10/09/2018
Engenharia de Requisitos –
Elicitação (Levantamento)
• Processo de Engenharia de Requisitos: (adaptado de KOTONYA e
SOMMERVILLE, 1998):
LEVANTAMENTO
Engenharia de Requisitos –
Elicitação (Levantamento)
Meta: descobrir tanto o conhecimento
explícito quanto o tácito que sejam
importantes para o entendimento do
problema e a proposta da solução.
• Envolve atividades que se preocupam em
definir quais são as fontes de informação
(incluindo os stakeholders) para obtenção
dos requisitos e como estes podem ser
obtidos.
• Também é nesta fase que os canais de
comunicação e o relacionamento dos
desenvolvedores com os stakeholders são
estabelecidos.
8
10/09/2018
Engenharia de Requisitos –
Elicitação (Levantamento)
• Durante o levantamento de requisitos, devem ser
considerados (KOTONYA & SOMMERVILLE, 1998):
– Entendimento do domínio da aplicação
– Entendimento do problema
– Entendimento do negócio
– Entendimento das necessidades e das restrições dos
interessados
Engenharia de Requisitos –
Elicitação (Levantamento)
• Técnicas para o levantamento dos requisitos:
• Entrevistas;
• Questionários;
• Observação;
• Análise de Documentos
• Cenários
• Brainstorm
• Prototipação
9
10/09/2018
Engenharia de Requisitos –
Elicitação (Levantamento)
• Entrevistas:
– Tipos:
• Estruturadas (ou fechadas)
• Não estruturadas (ou abertas)
• Semi-estruturadas
• Questionários:
– Contato indireto
Engenharia de Requisitos –
Elicitação (Levantamento)
• Observação:
– Acompanhamento no ambiente real do domínio
do problema: pretende-se observar as pessoas na
sua rotina de trabalho, sem interferência direta.
10
10/09/2018
Engenharia de Requisitos –
Elicitação (Levantamento)
• Análise de Documentos:
– Investigação da estrutura e fluxo das informações
e procedimentos da organização
Engenharia de Requisitos –
Elicitação (Levantamento)
• Cenários:
– Simulações de possíveis situações reais
11
10/09/2018
Engenharia de Requisitos –
Elicitação (Levantamento)
• Brainstorming:
– Reunião para definição do problema e proposta
de solução:
• Liberdade para expressão
de opinião
• Não há críticas prévias
• São válidas as observações
por impulso
Engenharia de Requisitos –
Elicitação (Levantamento)
• Prototipação:
– Auxilia na comunicação e validação do
entendimento dos requisitos
12
10/09/2018
Engenharia de Requisitos –
Elicitação (Levantamento)
• Qual técnica escolher?
– Análise as possibilidades e restrições do projeto:
• Tempo disponível dos stakeholders
• Tempo para execução do projeto
• Acesso aos usuários, ambiente de trabalho e aos
documentos
Documento de Requisitos
Engenharia de Requisitos –
Elicitação (Levantamento)
• Lembrar do 5W1H!
1. Why: porque é assim ? (justificativa)
2. What: o que é isso ? (conceitos)
3. Where: onde é feito ? (local)
4. When: quando é feito ? (tempo, pré-condições, eventos)
5. Who: por quem é feito ? (responsabilidade)
6. How: como é feito (método, técnica ou ferramenta)
13
10/09/2018
Engenharia de Requisitos –
Elicitação (Levantamento)
"A cafeteira deve ser feita de aço"
A ideia é tentar fazer o usuário verbalizar o que há por trás dessa demanda.
Engenharia de Requisitos –
Elicitação (Levantamento)
"Porque se for de vidro ela quebra"
14
10/09/2018
Engenharia de Requisitos –
Elicitação (Levantamento)
"Porque se for de vidro ela quebra"
Engenharia de Requisitos –
Elicitação (Levantamento)
"Porque se for de vidro ela quebra"
15
10/09/2018
Engenharia de Requisitos
• Processo de Engenharia de Requisitos: (adaptado de KOTONYA e
SOMMERVILLE, 1998):
ANÁLISE e
NEGOCIAÇÃO
16
10/09/2018
Engenharia de
Requisitos – Diagrama
de Casos de
Análise Uso
DFD
Diagrama de Estados
17
10/09/2018
Engenharia de
Requisitos –
Análise
Diagrama de Entidade-
Relacionamento
Diagrama de Classes
Engenharia de Requisitos –
Negociação
Meta: resolver conflitos de interesses entre stakeholders; priorizar e
identificar os riscos dos requisitos; eliminar, combinar ou modificar os
requisitos; chegar a um consenso sobre a lista final de requisitos
priorizada.
18
10/09/2018
Engenharia de Requisitos
• Processo de Engenharia de Requisitos: (adaptado de KOTONYA e
SOMMERVILLE, 1998):
DOCUMENTAÇÃO
Engenharia de Requisitos –
Especificação (Documentação)
Meta: detalhar e documentar os requisitos.
• Facilita a comunicação dos requisitos
• Reduz trabalho resultante de erros
• Fornece uma base realística para estimativas, verificação e
validação
• Serve como manual para futuros usuários
• É útil para futuras manutenções ou incremento de funcionalidades
Documento de
Especificação de Requisitos
19
10/09/2018
Engenharia de Requisitos
• Processo de Engenharia de Requisitos: (adaptado de KOTONYA e
SOMMERVILLE, 1998):
AVALIAÇÃO
Engenharia de Requisitos –
Avaliação
• Nesta fase, o documento de requisitos é alvo de verificações
com o objetivo de assegurar que os requisitos são
compreensíveis, consistentes e completos.
20
10/09/2018
Engenharia de Requisitos –
Avaliação
• Verificação:
– Os requisitos foram especificados de maneira correta e
consistente?
• Validação:
– Os requisitos corretos foram especificados?
Engenharia de Requisitos –
Avaliação
• Técnicas para a avaliação dos requisitos:
• Revisão ad-hoc;
• Técnicas de Inspeção;
• Checklists;
• Prototipação (validação)
21
10/09/2018
Engenharia de Requisitos
• Processo de Engenharia de Requisitos: (adaptado de KOTONYA e
SOMMERVILLE, 1998):
22
10/09/2018
Engenharia de Requisitos –
Rastreabilidade
• É o conceito que define uma rede de ligações, de forma que
um requisito possa estar associado a outros requisitos, a
outros elementos do software ou, até mesmo, a elementos
do processo de desenvolvimento.
Especificação de Requisitos
• Importância da Especificação de Requisitos
– Após a elicitação de requisitos, é essencial especificá-
los
– Ao modelar os requisitos de um sistema, estes ficam
registrados:
• Podem ser consultados por qualquer pessoa da equipe;
• O registro não “apaga” com o tempo – como a memória
• O usuário pode validá-los
23
10/09/2018
Especificação de Requisitos
• Requisitos:
– Funcionais
– Não funcionais
• Portabilidade, eficiência de execução, tolerância a falha,
confiabilidade, ...
• Para detalhar a especificação dos requisitos é
possível utilizar várias técnicas:
– Uma técnica comumente adotada é a modelagem de
Casos de Uso (Use Cases)
Especificação de Requisitos
Funcionais
• Razões para utilizar Casos de Uso [Lima 2005] :
– O modelo de Casos de Uso é de fácil compreensão pelo
cliente
• Um caso de uso bem escrito é fácil de ler
• O modelo pode ser a base de discussão entre as partes
interessadas e um meio para acompanhar o progresso dos
trabalhos
– O foco do caso de uso é o problema e não a solução
informatizada
– A finalidade dos casos de uso é somente registrar o que
de fato o sistema deve fazer
24
10/09/2018
Ator
• Representação gráfica
– Ator: o ícone estereótipo padrão para um ator é a figura
de um “stick man”, contendo seu nome abaixo da figura
– Outra representação consiste num retângulo de classe,
com o estereótipo <<actor>>
25
10/09/2018
Ator
• Lembre: Ator não é o mesmo que usuário!
– Um ator representa um papel exercido por uma
entidade do ambiente que interage com um
determinado caso de uso
– Uma mesma entidade (incluindo usuários) pode
desempenhar mais de um papel junto ao sistema
Ator
• Tipos de Atores [Lima 2005]
– Ator primário – acessa o sistema para obter
diretamente um serviço
• Exemplo: balconista que acessa o sistema em nome do
cliente
– Ator secundário (ou Ator de suporte) - provê um
serviço ao sistema, mas não diretamente
• Exemplos: uma impressora, um serviço web
• Atores secundários são úteis para identificar o que o sistema
deverá prover em termos de formatos de dados e interfaces
externas, etc.
26
10/09/2018
Ator
• Categorias comuns para Atores [Lima 2005]:
– Usuários: usuários finais-alvo, administradores, gerentes;
– Aplicações (processos individuais e sistemas de software);
– Dispositivos (atuadores e sensores);
– Eventos externos (como um controlador de tempo – “Cron”)
Ator
• Relacionamentos entre Atores
– O relacionamento padrão entre os atores é a
Generalização
• É considerado quando temos dois atores semelhantes, mas
com um deles realizando algo a mais ou apresentando
características de importância para o sistema
27
10/09/2018
Ator
• Exemplo de Generalização de Atores [Lima 2005]
28
10/09/2018
Casos de Uso
• Representação gráfica
– Caso de Uso: seu ícone é uma elipse contendo seu
nome. O nome também pode vir abaixo da elipse
Calcular pagamento
dos funcionários
Gerenciar Contas a
Pagar
• Objetivo
– São utilizados para expressar a fronteira do sistema e/ou
modelar os requisitos do mesmo
– Mostram a visão estática do caso de uso
• A visão dinâmica do caso de uso é especificada através da
descrição dos cenários
– Por serem representações gráficas, diagramas de caso de
uso permitem uma visão geral dos relacionamentos entre
casos de uso e atores de um sistema
– Podem conter também notas, restrições e pacotes
29
10/09/2018
Matricular
aluno
Secretaria Aluno
30
10/09/2018
31
10/09/2018
32
10/09/2018
Sistema de Vendas de
Livros por Correio
Vendedor
Realizar Pedido
Cliente
Empresa Transportadora
Casos de Uso
• Modelando com Casos de Uso:
– Separe as funcionalidades do sistema
– Cada funcionalidade deve corresponder a um conjunto de
ações que tenham um objetivo bem definido – o caso de uso
33
10/09/2018
Casos de Uso
• Descrevendo Cenários [Bezerra 2002]
– Fluxo principal – descreve uma sequência de ações que será
executada considerando que nada de errado acontecerá durante
sua execução
• Descreve o que normalmente acontece quando o caso de uso é realizado
(modo normal e correto de operação)
Casos de Uso
• Descrevendo Cenários [Bezerra 2002]
– Pré-condição – define as condições que devem ser obedecidas
(satisfeitas) para que o caso de uso tenha início
• Deve ser usada em casos de uso cuja realização não faz sentido em
qualquer momento, mas somente quando o sistema está em um
determinado estado com certas propriedades estabelecidas
• Ex.: O gerente deve estar habilitado no sistema
34
10/09/2018
Casos de Uso
• Representações para Casos de Uso:
– Descrições textuais contínuas
– Descrições formais (com pré e pós-condições, fluxo principal,
alternativos e de exceção)
– Tabelas Ator x Sistema
• ATENÇÃO!
– Não descrever casos de uso como algoritmos: casos de uso
definem o quê e não como.
– Não definir ou referenciar os elementos/componentes da
interface Humano-Computador no diálogo.
Casos de Uso
• Exemplo de descrição textual contínua:
35
10/09/2018
Casos de Uso
• Exemplo de descrição de fluxo principal:
Casos de Uso
• Exemplo de Tabela Ator x Sistema:
Cliente Sistema
Insere seu cartão no caixa eletrônico.
Apresenta solicitação de senha.
Digita senha.
Exibe operações disponíveis.
Solicita realização de saque.
Requisita quantia a ser sacada.
36
10/09/2018
37
10/09/2018
38
10/09/2018
Casos de Uso
• Especificação de Casos de Uso
– Todo caso de uso deve possuir um nome que o
diferencie dos demais (único no seu escopo)
– Os atores que interagem com o caso de uso devem
ser listados
– Os cenários devem incluir como e quando o caso de
uso inicia e termina
• A apresentação do fluxo principal é obrigatória
• Fluxos alternativos e de exceção devem ser descritos caso
existam
Casos de Uso
• Caso de Uso: Reserva em Restaurante
– Ator: Atendimento ao Cliente
– Fluxo principal:
1. O cliente informa ao atendente a data da reserva, que é
repassada ao sistema.
2. O sistema mostra o mapa do salão do restaurante, indicando as
mesas já reservadas e as que estão livres. O sistema calcula e
exibe o número de reservas disponíveis.
3. Um ou vários lugares disponíveis são escolhidos.
4. O sistema solicita o CPF do cliente, p/ identificação do mesmo
no sistema. O sistema pesquisa o cliente e mostra nome e
telefone para confirmação
5. Após confirmação, a reserva é efetuada para o cliente
39
10/09/2018
Casos de Uso
• Fluxos Alternativo e de Exceção para Reserva
Restaurante
– Alternativa: Reservas esgotadas
• 2a) O sistema verifica se para o dia informado as
reservas estão esgotadas. O sistema deve possibilitar
que seja informada nova data ou que se encerre a
solicitação de reserva
– Exceção: Cliente não cadastrado
• 4e) Se o cliente não for cadastrado: Extend Cadastrar
Cliente de Reserva
40
10/09/2018
41
10/09/2018
Fazer
ligação
Usuário Celular
Fazer
ligação em
conferência
Editar Documento
«estende»
Escritor
Corrigir Ortografia
42
10/09/2018
Fazer
pedido
Validar
Localizar cliente
pedido
43
10/09/2018
Obter Extrato
«inclui»
«inclui»
Fornecer
Realizar Saque
Identificação
«inclui»
Cliente
Realizar
Transferência
44
10/09/2018
45
10/09/2018
46
10/09/2018
Cadastrar Cliente
Funcionário
Funcionário
Consultar Cliente
Excluir Cliente
Efetuar Reserva
Cadastrar Classe
<<inclui>>
Efetuar Devolução
<<inclui>>
Efetuar Pagamento
Cadastrar Fita Funcionário
Efetuar Locação
Cadastrar Distribuidor
47
10/09/2018
Atendimento Controle
Cliente Acervo
48
10/09/2018
Cadastrar Título
Cadastrar Fita
Funcionário
Cadastrar Classe
Cadastrar Distribuidor
Efetuar Reserva
Funcionário <<inclui>>
Efetuar Locação
<<inclui>> Efetuar
Pagamento
Efetuar Devolução
49
10/09/2018
50
10/09/2018
51
10/09/2018
52
10/09/2018
Bibliografia
• BEZERRA, E. “Princípios de Análise e Projeto de Sistemas com
UML” Editora Campus, 2002.
• BOOCH, G. et al. “UML, guia do usuário” Campus, 2000.
• FALBO, R. “Modelagem de Objetos usando UML”. Mini-Curso XVII
SBES, Manaus, 2003.
• LIMA, A. S., “UML 2.0 Do Requisito à Solução”, Editora Érica, 2005.
• MELO, A. C. “Desenvolvendo aplicações com UML” Brasport, 2002.
• LARMAN, C. “Applying UML and Patterns” Prentice Hall, 1997.
53