Objetivo da aula


  • Explicar uma técnica de detalhamento de um projeto
  • Sugerir passos para o levantamento de dados para construção do software
  • Entender Requisitos Não-Funcionais
  • Avaliar métricas para Requisitos Não-Funcionais


Requisitos não-funcionais


  • Descrevem qualidades do sistema (como ele é) ao invés de suas funcionalidades (o que ele faz)
  • Definem as propriedades e as restrições do sistema, por exemplo:
    • confiabilidade
    • tempo de resposta
    • ocupação de área


Erro ao criar miniatura: Arquivo não encontrado
Fonte: DevMedia


  • As restrições são capacidades de dispositivos de E/S, as representações do sistema, etc
  • Os requisitos de processo também podem ser especificados impondo um IDE particular, linguagem de programação ou método de desenvolvimento
  • Podem ser mais críticos do que os requisitos funcionais. Se esses não forem atendidos,o sistema pode ser inútil
  • Exemplos:
    • O sistema:
      • não poderá ficar parado por mais de 15 minutos [Robusto]
      • tem que ser restaurado imediatamente caso haja corrupção dos dados [Disponível]
      • será inibido o acesso para mais de 3 tentativas com falha [Seguro]
      • deve ter baixo tempo de resposta [Ágil]
      • precisa ser Orientado a Objeto
      • necessita usar o Banco de Dados Oracle
      • deverá estar hospedado na nuvem
      • tem que ser desenvolvido em Java
      • requer utilização de sensores
      • necessita de ferramentas específicas
      • precisa ter segurança contra acessos indevidos
      • exige uso de interfaces de entrada específicas
      • deve rodar no Android e IoS
      • será embarcado dentro de um equipamento
      • terá que suportar exabytes de dados
      • deverá ter interface intuitiva
      • obrigatória o uso de solução open source
      • requer redundância na comunicação


Algumas métricas


Propriedade Medida
Velocidade Transações processadas/segundo
Tempo de resposta de usuário/evento
Tempo de atualização de tela
Tamanho MegaBytes
Número de processadores
Área disponível em bytes
Usabilidade Tempo de treinamento do usuário
Número de telas/campos de entrada
Confiabilidade Tempo médio para falha
Probabilidade de indisponibilidade
Taxa de ocorrência de falhas
Disponibilidade
Robustez Tempo de reinício após falha
Percentual de eventos que causam falhas
Probabilidade de corrupção de dados em caso de falha
Segurança Número de tentativas erradas de autenticação
Número máximo de invasões
Interfaces Tipo do dispositivo
Comunicação Tipo de tecnologia


Exemplos


  1. DOMUS
  2. eSolvere
  3. Disc Cell Car
  4. UdiBus
  5. Where's Doc?
  6. Market Management


Questões



  • 01. O que é Benchmarking?


  • 02. Dê um exemplo de um sistema que conversa com outro sistema e pesquise como se implementa a comunicação entre eles.


  • 03. Para um Sistema Hospitalar (Registro de Pacientes, Marcação de Consultas, Geração de Diagnósticos, etc) descreva algumas métricas de Requisitos Não-Funcionais?


  • 04. Para um Sistema Industrial (Cadastro de Equipamentos, Controle das Máquinas, Inicia/Para Produção, etc) cite possíveis métricas de Requisitos Não-Funcionais?


  • 05. Para um Sistema Comercial (Cadastro de Clientes, Emissão de Nota Fiscal, Relatórios de Vendas, etc) aponte métricas de Requisitos Não-Funcionais?