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
| Nro!Propriedade | Medida | |
|---|---|---|
| 01 | Velocidade | Transações processadas/segundo |
| Tempo de resposta de usuário/evento | ||
| Tempo de atualização de tela | ||
| 02 | Tamanho | MegaBytes |
| Número de processadores | ||
| Área disponível em bytes | ||
| 03 | Usabilidade | Tempo de treinamento do usuário |
| Número de telas/campos de entrada | ||
| 04 | Confiabilidade | Tempo médio para falha |
| Probabilidade de indisponibilidade | ||
| Taxa de ocorrência de falhas | ||
| Disponibilidade | ||
| 05 | Portabilidade | Sistema roda em qualquer plataforma. |
| Permite vários sistemas operacionais | ||
| 06 | Robustez | Tempo de reinício após falha |
| Percentual de eventos que causam falhas | ||
| Probabilidade de corrupção de dados em caso de falha | ||
| 07 | Segurança | Número de tentativas erradas de autenticação |
| Número máximo de invasões | ||
| 08 | Interfaces | Tipo do dispositivo |
| 09 | Comunicação | Tipo de tecnologia |
| 10 | Entregas | Relatório de acompanhamento deve ser fornecido em dia específico |
| Sistema deve gerar log das transações diariamente | ||
| 11 | Éticos | Não apresentar aos usuários quaisquer dados de cunho privativo. |
| Respeitar as regras de LGPD | ||
| Evitar qualquer conotação de preconceito de raça, credo ou classe social |
- 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?