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

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 |
| Ambiente de TI | Tecnologias, Frameworks, Linguagens de Programação, Banco de Dados |
- Vídeo complementar:
- Artigo Dev Media:
Exemplos
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?