Sì, ma non è così difficile come un vincolo fisico in altre discipline ingegneristiche.
L'utilizzo della memoria, la potenza del processore, lo spazio su disco, la velocità della rete e altro ancora sono vincoli. Tuttavia, ci sono due considerazioni. Innanzitutto, sono facilmente espandibili. È possibile aggiungere risorse aggiuntive o distribuire il problema su più nodi o aggiornare componenti hardware, ad esempio. In secondo luogo, il tuo software può esistere su più piattaforme con caratteristiche diverse perché è così facilmente copiato e inserito in una varietà di ambienti diversi. Nessuno di questi è vero per molte cose fisiche.
Inoltre, puoi scrivere codice ignorando questi vincoli. Alla fine, potrebbe funzionare se lo si sposta in un ambiente più appropriato o se si aspetta che l'hardware raggiunga il livello. Non puoi semplicemente prendere, per esempio, un ponte e spostarlo in un nuovo attraversamento del fiume perché non ha funzionato nella prima posizione in cui lo hai costruito.
Poiché whatsisname fa riferimento a un'altra risposta , alcuni sforzi di ingegneria del software hanno dei vincoli fisici. Qualunque cosa viva nel mondo fisico ha probabilmente dei vincoli fisici - molti sistemi embedded o sistemi di controllo, per esempio. Tuttavia, per quanto riguarda tutto il codice scritto, questo non è un intero lotto.
In genere sono d'accordo sul fatto che l'ingegneria del software sia diversa da altre discipline ingegneristiche radicate nel mondo fisico, ma abbiamo dei vincoli diversi dalle nostre menti. Oltre al triangolo del progetto che influisce su qualsiasi progetto di ingegneria, spesso ci occupiamo di migliorare i progetti precedenti e siamo vincolati da varie decisioni passate.