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
- O sistema:
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.