Levantamento de Requisitos
Orientações e Exercícios
1. Orientações gerais:
Análise de requisitos
É muito difícil projetar uma boa solução para um problema que não conhecemos direito. A fase inicial de levantamento dos requisitos nos ajuda a entender melhor quais são as necessidades do novo sistema.
Tópicos recomendados
Segue abaixo uma recomendação de quais informações devem ser descritas para o levantamento inicial dos requisitos de um sistema:
Visão Geral
Descrever "o que é" o sistema, de modo bastante breve. A intenção aqui é esclarecer a respeito do que se trata o sistema através de um pequeno parágrafo .
Objetivos
Descrever os motivos da criação do sistema, ou seja, "o porquê" da criação do sistema.
Requisitos funcionais (Funções do sistema)
Detalhar "o que deve ser feito" pelo sistema. Exemplo:
Requisitos não funcionais (Características do sistema)
Especificar características e capacidades exigidas para o sistema. Seguem alguns exemplos de requisitos não funcionais: facilidade de uso tolerância a falhas tempo de resposta metáfora de interface custo (financeiro) plataformas de hardware/software
2. Exemplo de levantamento de requisitos
Projeto: Video Locadora
Visão Geral
Sistema de controle de locações de Video-Locadoras.
Objetivos
Tornar mais rápido o atendimento ao cliente durante o processo de locação e devolução de fitas.
Requisitos funcionais
Registrar locações Registrar devoluções
Calcular multa caso ocorra atraso na devolução
O sistema deve permitir pesquisar filmes por parte do nome do título ou ator
O cliente deve pagar a locação no ato da realização
Deve permitir visualizar uma lista das devoluções pendentes Os filmes devem ser separados em categorias
Impedir locação para cliente com alguma pendência (multa ou devolução em atraso)
Requisitos não funcionais
O sistema deve suportar 10.000 clientes O sistema deve suportar 250.000 locações O sistema deve suportar 20.000 fitas / DVD
Exercícios sobre levantamento de requisitos
1) Classificar os requisitos dos projetos abaixo em: OBJ = “Objetivo”
RF = “Requisito Funcional” RNF = “Requisito Não funcional”
Projeto 1 - Sistema de segurança predial
Visão Geral
O SSI é um Sistema de Segurança Integrado cuja finalidade é a proteção residencial.
Lista de requisitos
OBJ[ ] RF[ ] RNF[ ] - Detectar presença de estranhos
OBJ[ ] RF[ ] RNF[ ] - Registrar imagem do estranho
OBJ[ ] RF[ ] RNF[ ] - Avisar remotamente sobre a ocorrência de uma invasão
OBJ[ ] RF[ ] RNF[ ] - Funcionar mesmo com queda de energia elétrica
OBJ[ ] RF[ ] RNF[ ] - Deve suportar a configuração de pelo menos 20 circuitos
OBJ[ ] RF[ ] RNF[ ] - Avisar que a energia acabou
OBJ[ ] RF[ ] RNF[ ] - Permitir monitoração remota
OBJ[ ] RF[ ] RNF[ ] - Identificar a posição do estranho e o caminho permitido
OBJ[ ] RF[ ] RNF[ ] - Deve suportar o registro de 5.000 eventos no log
OBJ[ ] RF[ ] RNF[ ] - Emitir sinalização sonora
OBJ[ ] RF[ ] RNF[ ] - Realizar o TCC de minha graduação
OBJ[ ] RF[ ] RNF[ ] - Registrar log de eventos
OBJ[ ] RF[ ] RNF[ ] - Habilitar circuitos parciais
OBJ[ ] RF[ ] RNF[ ] - Deverá manter armazenadas as imagens de pelo menos 3 dias anteriores
OBJ[ ] RF[ ] RNF[ ] - Exibir imagens internas e externas do imóvel
OBJ[ ] RF[ ] RNF[ ] - Configurar sensores
OBJ[ ] RF[ ] RNF[ ] - Gerar um sistema de segurança de baixo custo
OBJ[ ] RF[ ] RNF[ ] - Avisar a vários destinos sobre a invasão
OBJ[ ] RF[ ] RNF[ ] - Uma câmera deverá ser associada a um grupo de sensores
OBJ[ ] RF[ ] RNF[ ] - Cadastrar senhas de usuários
OBJ[ ] RF[ ] RNF[ ] - Configurar, ativar e desativar o sistema através de senhas de acesso.
OBJ[ ] RF[ ] RNF[ ] - Deve suportar pelo menos 200 sensores espalhados pela casa
OBJ[ ] RF[ ] RNF[ ] - Deverá suportar a falta de energia pelo menos por 2 horas
OBJ[ ] RF[ ] RNF[ ] - Aumentar a invulnerabilidade do sistema
OBJ[ ] RF[ ] RNF[ ] - Deve suportar pelo menos 20 usuários
OBJ[ ] RF[ ] RNF[ ] - O atraso para avisar o destino sobre invasão não pode ultrapassar 5 minutos
Projeto 2 - Sistema de Monitoração e controle de dispositivos via Internet
Visão Geral
Oferecer um conjunto de componentes reutilizáveis que permitam a identificação, monitoração e controle de dispositivos do tipo liga/desliga, conectados remotamente através da Internet.
Lista de requisitos
OBJ[ ] RF[ ] RNF[ ] - Acionar ou desacionar um dispositivo
OBJ[ ] RF[ ] RNF[ ] - Cada local de dispositivos deverá suportar pelo menos 10 dispositivos
OBJ[ ] RF[ ] RNF[ ] - Visualizar o status de um dispositivo
OBJ[ ] RF[ ] RNF[ ] - Cada ponto de controle remoto, poderá ser usado por um único usuário de cada vez.
OBJ[ ] RF[ ] RNF[ ] - Cadastrar usuários
OBJ[ ] RF[ ] RNF[ ] - Configurar as permissões de cada usuário
OBJ[ ] RF[ ] RNF[ ] - Solicitar identificação e senha para os usuário
OBJ[ ] RF[ ] RNF[ ] - Solicitar identificação e senha para os administradores
OBJ[ ] RF[ ] RNF[ ] - Permitir a centralização do gerenciamento de vários dispositivos instalados em localidades
diversas.
OBJ[ ] RF[ ] RNF[ ] - Só poderá existir um administrador por local de dispositivos
OBJ[ ] RF[ ] RNF[ ] - O acionamento/desacionamento do dispositivo deverá ser realizado no tempo máximo de 1
segundo.
OBJ[ ] RF[ ] RNF[ ] - A alteração do status de um dispositivo deverá ser atualizada no máximo a cada segundo.
OBJ[ ] RF[ ] RNF[ ] - O sistema deverá suportar pelo menos 10 usuários simultâneos por local de dispositivos.
Projeto 3 - Jogo multiplayer "Ocean War"
Visão geral
Criar um jogo computadorizado de batalha naval para vários jogadores simultâneos.
Lista de requisitos
OBJ[ ] RF[ ] RNF[ ] - Os jogadores deverão participar de uma batalha.
OBJ[ ] RF[ ] RNF[ ] - Os jogadores deverão pertencer a uma aliança.
OBJ[ ] RF[ ] RNF[ ] - Vence o jogo, a última aliança com jogadores sobreviventes.
OBJ[ ] RF[ ] RNF[ ] - Deverá ser criado um histórico de cada batalha realizada, registrando os vencedores e a
configuração inicial da batalha.
OBJ[ ] RF[ ] RNF[ ] - O tempo máximo para identificar que uma aliança foi a vencedora é de 5 segundos.
OBJ[ ] RF[ ] RNF[ ] - Os Jogadores deverão possuir uma identificação única protegida por senha.
OBJ[ ] RF[ ] RNF[ ] - Os jogadores poderão criar novas batalhas.
OBJ[ ] RF[ ] RNF[ ] - Poderão existir batalhas protegidas por senha.
OBJ[ ] RF[ ] RNF[ ] - Os jogadores poderão criar alianças antes do início da batalha.
OBJ[ ] RF[ ] RNF[ ] - O tempo máximo para o recebimento das mensagens enviadas é de 2 segundos.
OBJ[ ] RF[ ] RNF[ ] - Poderão existir alianças protegidas por senha.
OBJ[ ] RF[ ] RNF[ ] - O jogador deverá atacar um inimigo de cada vez, podendo visualizar o estado do mar do
inimigo naquele momento.
OBJ[ ] RF[ ] RNF[ ] - O jogador deverá escolher a posição de suas naves.
OBJ[ ] RF[ ] RNF[ ] - Deverá existir um meio de comunicação entre todos os participantes, de modo que possam
negociar o início de uma batalha. Ao ser iniciada, o mesmo meio de comunicação poderá ser utilizado entre os participantes de uma mesma aliança.
OBJ[ ] RF[ ] RNF[ ] - O sistema deve suportar o gerenciamento de até 5 batalhas simultâneas.
OBJ[ ] RF[ ] RNF[ ] - Cada batalha deve suportar pelo menos 10 alianças.
OBJ[ ] RF[ ] RNF[ ] - Oferecer uma versão alternativa ao modo tradicional de jogar batalha naval.
OBJ[ ] RF[ ] RNF[ ] - Cada jogador possuirá seu próprio mar, arsenal de naves e munição.
OBJ[ ] RF[ ] RNF[ ] - Explorar o desenvolvimento de sistemas multi-usuários
OBJ[ ] RF[ ] RNF[ ] - Cada aliança deve suportar pelo menos 10 participantes.
OBJ[ ] RF[ ] RNF[ ] - O histórico deve armazenar pelo menos as 100 últimas batalhas.
OBJ[ ] RF[ ] RNF[ ] - Demonstrar os conceitos da matéria de Engenharia de Software através de um tema
motivador.
OBJ[ ] RF[ ] RNF[ ] - O atraso na atualização do estado do mar do inimigo não poderá ser maior que 5 segundos.