Besueshmëria në një program mund të arrihet duke iu shmangur paraqitjes së defekteve, duke i detektuar dhe hequr defektet para instalimit të sistemit, dhe duke përfshirë pajisje të tolerancës ndaj defekteve që ia lejojnë sistemit të mbesë operacional pasi që një defekt ka shkaktuar dështim të sistemit.
Përdorja e redundansës (përsëritjes) dhe diversitetit në harduer, procese softuerike, dhe sisteme softuerike është thelbësore në zhvillimin e sistemeve të besueshme.
Përdorja e një procesi të definuar mirë e të përsëritshëm është thelbësore nëse duhet të minimizohen dështimet në një sistem. Procesi duhet t’i përfshijë aktivitetet e verifikimit dhe të validimit në të gjitha fazat, nga definimi i kërkesave deri te implementimi i sistemit.
Arkitektura të besueshme të sistemit janë arkitekturat e sistemit që janë projektuar për tolerancë ndaj defekteve. Ka një numër të stileve arkitekturale që e përkrahin tolerancën ndaj dështimeve përfshirë sistemet mbrojtëse, arkitekturat vetë-monitoruese, dhe programimi N-versional.
Diversiteti i softuerit arrihet vështirë sepse është praktikisht e pamundur të garantohet se secili version i softuerit është vërtet i pavarur. Programimi i besueshëm mbështetet në përfshirjen e redundansës në një program për ta kontrolluar vlefshmërinë e hyrjeve dhe vlerave të ndryshoreve të programit.
Disa konstrukte dhe teknika të programimit, si urdhrat go-to, pointerët, rekursioni, trashëgimia, dhe numrat me pikë lëvizëse, janë në thelb të prira për gabime. Duhet të provoni t’iu shmangeni këtyre konstrukteve kur zhvilloni sisteme të besueshme.
Burimi: Ian Sommerville, Inxhinierimi i softuerit