GGI033 - Aula 06 - 2019-1

Revisão de 21h50min de 17 de março de 2019 por Lclaudio (discussão | contribs) (Criou página com '== Requisitos não-funcionais == <br> * Descrevem qualidades do sistema (como ele é) ao invés de suas funcionalidades (o que ele faz) * Definem as propriedades e as restri...')
(dif) ← Edição anterior | Revisão atual (dif) | Versão posterior → (dif)

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
  • 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 para requisitos não-funcionais


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 cm
Facilidade de uso 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


Questões



Pablo Henrique Miranda Ferreira Nunes


  • 01. # O que é Benchmarking?
    • Benchmarking implica na comparação de um produto, processo ou estratégia de um empresa com outro similar do mercado,medindo assim, qualidade, performance, produtividade, gastos,etc. Dessa maneira, procura-se aperfeiçoar esses aspectos utilizando as referências como desafios a serem batidos para manter competitividade.


  • 02. Dê um exemplo de um sistema que conversa com outro sistema?
    • Podendo citar vários exemplos, um bem casual seria a comunicação entre aplicativos de celular recebendo e, por muitas vezes, aproveitando de informações do usuário já disponíveis.


  • 03. Para um Sistema Hospitalar (Registro de Pacientes, Marcação de Consultas, Geração de Diagnósticos, etc) quais as principais métricas de Requisitos Não-Funcionais?
    • Segurança - dados pessoais de pacientes e staff devem ser seguros(Hierarquia de acesso).
    • Robustez - falhas devem ser minimas, pois trata-se de informações sobre as condições dos pacientes..
    • Confiabilidade - Disponibilidade do sistema deve se ininterrupto, pois as informações contidas são de extrema importância.


  • 04. Para um Sistema Industrial (Cadastro de Equipamentos, Controle das Máquinas, Inicia/Para Produção, etc) quais as principais métricas de Requisitos Não-Funcionais?
    • Confiabilidade - Tempo médio para falhar deve ser minimo.
    • Velocidade - processamento por segundo e tempo de resposta devem ser acelerados para manter um processo exato e contínuo, assim como otimizado.
    • Robustez - Tempo de reinício deve ser imediato após qualquer falha, pois quanto mais tempo parado menos produção e mais prejuízo. Porcentagem de eventos que causam falhas devem ser quase nulo, pois a quantidade de eventos por segundo sendo gerenciado pelo sistema é exponencial devido à repetição de várias operações, ou seja, a somatória dos erros seria também exponencial.
    • Portabilidade - a independência de ações leva à uma maior segurança em termos de falhas, pois a localização dos erros é facilitado e a produção não será afetado em todos os eventos.
    • Tamanho - a otimização da memória utilizada leva a uma maior agilidade do processo e fluxo de produção, assim como menor porcentagem de falhas e mais espaço liberado para processo simultâneos.


  • 05. Para um Sistema Comercial (Cadastro de Clientes, Emissão de Nota Fiscal, Relatórios de Vendas, etc) quais as principais métricas de Requisitos Não-Funcionais?
    • Facilidade de Uso - os agentes utilizadores do sistema devem ser capaz de manusear o sistema com eficácia, dessa forma, as telas devem ser user-friendly, assim como o tempo de treinamento para a utilização do sistema deve ser um tempo hábil para não gerar custos excedentes à empresa.
    • Confiabilidade - Probabilidade de indisponibilidade e taxa de ocorrência de falhas devem ser evitados e de resolução rápido, pois trata-se de um setor de muitas transações financeiros.
    • Velocidade - Tempo de resposta ao usuário e processamento dos eventos deve ser quase que instantâneo.
    • Robustez - Tempo de reinício pós-falha é crucial.