Modelagem de Requisi..
Download
Report
Transcript Modelagem de Requisi..
►METODOLOGIA PARA DESENVOLVIMENTO DE SISTEMAS
Prof. Dr. rer. nat. Daniel D. Abdala
e-mail: [email protected]
1
Apresentar
técnicas para levantamento
de requisitos;
Demonstrar como levantar requisitos de
usabilidade usando prototipação de
interfaces;
Discutir a decomposição de requisitos
Apresentar como levantar requisitos de
interação por meio de casos de uso.
2
Problemas
relacionados ao levantamento
de requisitos
Documento de descrição do projeto
Decomposição de requisitos
Classificação de requisitos
Especificação de interfaces do usuário
Diagrama de Casos de Uso
3
Em que pé estamos?
• Sabemos quais os tipos de requisitos existentes
• Sabemos que requisitos podem ser definidos em
vários níveis de detalhamento
• Sabemos como descrever os requisitos usando
diagramas e tabelas
E agora?
• Ao tentarmos especificar os requisitos nos
deparamos com problemas e incertezas.
• Solução – Precisamos de uma metodologia para
levantamento de requisitos!
4
Um
bom ponto de partida para a
identificação dos elementos que comporão
o sistema
• Texto escrito pelo cliente e/ou usuário descrevendo
como eles imaginam o sistema;
• Precisa ser minerado para a extração de requisitos
• A extração de requisitos via a descrição textual do
sistema fornece uma maneira prática de levantar
muitos requisitos. No entanto aspectos dinâmicos
da execução do sistema podem não ser capturados
corretamente.
5
O sistema consiste em um programa que permite 1
ou 2 pessoas jogar damas. Uma interface gráfica
representado o tabuleiro é apresentada em estado
inicial com as peças dispostas a cada início de
partida. O jogador pode clicar na peça que deseja
mover e em seguida na casa para a qual a peça
deve ser movida. O sistema testará se o movimento
é válido e se este for o caso, a peça será
movimentada. O jogador pode também disputar
uma partida contra o computador. O computador
poderá jogar no modo “fácil”, “normal”,
“avançado”,“impossível”.
6
O sistema consiste em um programa que permite
1 ou 2 pessoas jogar damas. Uma interface
gráfica representado o tabuleiro é apresentada
em estado inicial com as peças dispostas a cada
início de partida. O jogador pode clicar na peça
que deseja mover e em seguida na casa para a
qual a peça deve ser movida. O sistema testará
se o movimento é válido e se este for o caso, a
peça será movimentada.
O jogador pode
também disputar uma partida contra o
computador. O computador poderá jogar no
modo
“fácil”,
“normal”,
“avançado”,
“impossível”.
7
Permite
a identificação de funcionalidades,
restrições e entidades do sistema;
Ótimo ponto de partida para a especificação inicial dos requisitos
Problemas para a identificação de requisitos dinâmicos
Serve como base para “entender” o
objetivo do sistema e planejar as entrevistas subseqüentes de levantamento de
requisitos
8
Maneira
útil de definir requisitos de
interação com o usuário
Fornece uma base para discussão de
funcionalidades com o usuário
Parte visível do sistema, geralmente mais
suscetível a críticas e pedidos de
alteração
9
10
Muitas
vezes a descrição inicial de um
requisito pode ser muito extensa
englobando diversas funcionalidades;
Requisitos Funcionais e Não Funcionais
tendem a se misturar, principalmente na
etapa de elaboração de requisitos do
usuário;
Decompor requisitos significa dividir
requisitos complexos em dois ou mais
requisitos.
11
Registrar Cliente
O Sistema deve ser capaz de registrar Contas para Clientes,
recolhendo seus dados pessoais, de modo a identificá-los.
Ele deve exigir do Cliente um Login único e uma Senha,
para que ele possa ter uma Conta.
Registrar Cliente
O Sistema deve ser capaz de registrar Contas para Clientes,
recolhendo seus dados pessoais, de modo a identificá-los
Cadastrar Conta
O Sistema deve exigir do Cliente um Login único e uma Senha,
para que ele possa ter uma Conta.
12
Requisitos
são a posteriori mapeados em
artefatos de software
Requisitos bem definidos com escopo
específico são:
• mais simples de serem implementados
• Pertencerão a mesma unidade lógica
• Permitirão a adoção de uma arquitetura sólida
para o sistema
13
Sistemas
reais tendem a ter centenas ou até
mesmo milhares de requisitos
Classificar os requisitos auxilia a:
• Organizar os requisitos em subsistemas (pacotes)
• Executar o rastreamento de alterações
Geralmente
apenas requisitos nãofuncionais são classificados, no entanto
também é possível aplicar algum tipo de
classificação aos requisitos funcionais
14
15
Casos de Uso (CdU) incluem tipicamente um ou
mais cenários que descrevem as interações que
ocorrem entre os atores e o sistema. CdUs também
documentam as exceções que ocorrem do ponto
de vista do usuário
Cada CdU representa uma única interação
repetível que um usuário ou ator vivencia ao
utilizar o sistema
Casos de uso podem incluir outros casos de uso
como parte de um padrão de interação mais
complexo.
Eles também podem ser utilizados por outros casos
de uso para lidar com situações excepcionais
Diagrama UML (Unified Modeling Language)
16
Casos
de uso
Atores
Relacionamentos
envolvendo esses elementos
17
18
Modelar
as funcionalidades do software
(os casos de uso)
• O que o software faz (e não como faz)
Modelar
os elementos externos que
interagem com o software (atores)
19
Uma
funcionalidade do software
Atômica, completa (não uma fração)
Externamente perceptível
EX: cada uma das opções do menu de um
caixa eletrônico de banco
• emissão de extrato de conta corrente
20
Associado
à noção de que um software
interage com o meio externo
Representa uma entidade externa que
interage com o software sob modelagem
• Pessoa
• Equipamento (hardware)
• Outro software
Função de um ator
• Representa a interação com um elemento externo
• Faz parte do sistema (elemento interno)
• Modela a interface com cada elemento externo
21
Apenas
a identificação de uma funcionalidade, sem qualquer referência a como ela
é executada
22
UML
prevê três tipos de relacionamentos
• Extensão
• Inclusão
• generalização
23
Estabelece
uma relação em que um dos casos de
uso ou atores tem seu comportamento estendido
através do comportamento definido em outro caso
de uso.
Freqüentemente expressa um fluxo alternativo
24
Estabelece
que parte do comportamento
inerente a um caso de uso está definida em
outro caso de uso
• Um caso de uso contém o comportamento definido
em outro caso de uso
• Permite evitar repetições na modelagem
25
Estabelece
uma relação de especialização entre dois casos de uso, onde
• Um corresponde a um comportamento genérico
• O outro, a uma especialização deste para alguma
situação específica
26
Utilização – indica que um elemento requer
o outro para ser utilizado. Relacionamento
básico dos CdUs;
Associação – representa uma associação
entre dois elementos do diagrama;
Implementação – o elemento origem
implementa o elemento destino ;
Invocação – CdU A em algum ponto faz com
que CdU B seja executado;
Precedência – CdU A deve ser executado
antes que CdU B o seja.
27
Diagrama
de CdU fornece um resumo da
interação
Detalhamento da interação deve existir
em forma textual em um documento
associado ao CdU
28
Documento
de descrição auxilia na identificação de requisitos;
Prototipação de Interfaces auxilia na identificação de requisitos de usabilidade;
Requisitos devem ser decompostos para
que representem apenas funcionalidades ou
restrições atômicas;
Requisitos dinâmicos podem ser melhor
levantados por meio de casos de uso.
29
R. S. Pressman, Engenharia
de Software,
McGraw Hill, 6a Ed., 2002. Chap. 12.
I. Sommerville. Software Engineering. 7th Ed.
Addison-Wesley, 2004. Chap. 7,16.
30