Sistemas complexos são altamente acoplados. Cada elemento do sistema, o que inclui software, torna-se bastante especializado e cria-se uma relação de dependência entre ele, seus sistemas fornecedores e seus sistemas clientes. Cada sistema é como uma empresa que depende de um fornecedor de matéria-prima (ex. plástico) para produzir o seu produto (ex. garrafa) que vai ser consumido por outra empresa (ex. indústria de bebida).
A empresa que produz as garrafas tem os seus compromissos, por exemplo produzir 5.000 garrafas por dia, pois a empresa de bebidas conta com isto. No entanto, ela só consegue garantir o cumprimento do seu compromisso se o fornecedor de plástico fornecer a quantidade necessária diariamente (500 kg de plástico).
Se o fornecedor falhar o suprimento, a empresa não consegue mais produzir o produto na quantidade que ela foi contratada para fornecer. Não é possível controlar o que o fornecedor é capaz de fazer. Se ele não fizer o que foi contratado, o contrato do fornecedor é quebrado e a empresa não consegue cumprir o seu contrato com o cliente.
Os compromissos da empresa são os requisitos.
Aquilo de que ela depende são as premissas (ou assumptions).
As empresas são os sistemas ou sub-sistemas, incluindo o software.
No exemplo temos:
Requisito = Fornecer 5.000 garrafas por dia.
Premissa = Receber do fornecedor 500 kg de plástico.
Por outro lado, percebe-se que os requisitos da empresa de garrafa são as premissas da empresa de bebidas. Forma-se uma cadeia de dependência, onde as premissas de um sistema são os requisitos de outros, sucessivamente em um modelo: premissa - requisito - premissa - requisito....
Com este pensamento, percebe-se que os requisitos são tão importantes quanto as premissas, pois se elas se mostrarem inválidas, os requisitos não podem mais ser cumpridos. Premissas não são garantidas: elas precisam ser monitoradas. No momento da elaboração dos requisitos de um sistema, não se tem certeza sobre as premissas, pois naquele momento o sistema fornecedor ainda não está pronto, ou pode mudar.
No entanto, se os requisitos fossem elaborados apenas quando se tenha certeza a respeito das premissas, os sistemas teriam que ser desenvolvidos em série, o que não é praticável. A situação prioraria se considerarmos que pode haver um loop quando um sistema no final da cadeia gera requisitos consumidos por um sistema no início da cadeia.

Comentários
Postar um comentário