Requisitos arquiteturais

Não são requisitos não-funcionais. São requisitos que de alguma forma afetam a arquitetura.Dado um requisito

O sistema deve ser rápido e capaz de processar grandes quantidades de requisições simultâneas

“Rápido” e “grandes quantidades” são atributos de qualidade chamados performance e escalabilidade, respectivamente. Ainda nesse requisito, fala de todo o sistema, ou seja, é muito genérico. O papel do arquiteto é transformar um requisito como esse em um requisito específico e mensurável. Um exemplo de um requisito esperto seria:

A tela de cadastro de usuários deve possuir um tempo de resposta menor que 8 segundos e suportar 20 usuários simultaneamente em horários de pico (15:00 às 19:00).

Modelo FURPS+

O modelo permite capturar e qualificar requisitos com completude ao longo do projeto.

Devemos capturar requisitos ao longo de cinco dimensões:

  • Functionality - Funcionalidade
  • Usability - Usabilidade
  • Reliability - Confiabilidade
  • Performance - Desempenho
  • Supportability - Suportabilidade

Dimensão adicional que lida com restrições técnicas:

  • Restrições ao desenho
  • Restrições à implementação
  • Restrições de interface
  • Restrições físicas

Funcionais

Funcionalidade

  • Lida com aspectos funcionais
  • Requisitos funcionais que o sistema deve atender
  • Geralmente relacionados ao domínio do problema
  • Ex. pequisa de palavras chave do google (muito complexo)
  • Segurança, ajuda on-line, log de auditoria, controle de licenças, envio e recebimento de e-mails, i18n, recursos de impressão e relatórios, recursos de work

Não funcionais: URPS

Usabilidade

  • Qualidade da interação entre o sistema e o usuário final. Ex: Velocidade que o usuário entre e recupere informações, facilidade de aprendizado para usuários leigos.

Reliable (Confiabilidade)

  • É a disponibildiade do sistema. Qual o tempo que o sistema está disponivel?
  • Ex: um produto com disponibilidade de 99% do tempo ao longo de 24 horas.
  • Outro exemplo é a recuperação de falhas. Dado uma falha, qual o tempo que o sistema demora para se recuperar.

Performance (Desempenho)

  • Está relacionado a dois itens: Vazão e Tempo de resposta
  • Vazão: associada ao processamento em lote. Ex. processar folha de pagamento
  • Tempo de resposta: tempo que o sistema demora pra fazer uma requisição.

Supportability - Suportabilidade

  • Está relacionado aos aspectos internos do sistema, onde somente a equipe de TI consegue enxergar e não o usuário final.
  • Ex: Manutenabilidade, sistema operacional

Restrições

Elementos que precedem um determinado produto ou escolha a ser feita. Ex: a empresa já usa um banco Oracle, ou a tela de dispositivo é de 3,5’.

  • Restrição ao desenho: especifica e restringe as opções de arquitetura do sistema
  • Restrição à implementação: especifica e restringe os aspectos de implementação de código
  • Restrição de interface: É uma restrição de comunição. Ex. o sistema deve interoperar através de Webservice
  • Restrição física: restrições de algum tipo de hardware