Кіріспе
Қауіпсіздік үшін жобалау – жобаның немесе іскерлік жобаның жобалау кезеңіндегі кездейсоқ жағдайларға дайындалу. Бұл, негізінде, соңғы пайдаланушының құрылғыны қате пайдалануы мүмкін барлық ықтимал жолдарды болжау және мұндай қате пайдалануды мүмкін емес ету немесе оның жағымсыз салдарларын азайту үшін құрылғыны жобалау практикасы. Мысалы, егер штепсельдің белгілі бір бағытта розеткаға енгізілуі маңызды болса, розетка мен штепсельді оны бұрыс енгізуге физикалық түрде мүмкіндік болмауындай етіп жасау керек. Электр розеткалары көбінесе осылай жасалады, бұл тікелей және бейтарап сымдарды шатастыруға жол бермейді. Сондай-ақ, олар қабырғаға терең орнатылады, соның салдарынан тоқ өткен кезде ұштарына тигізуге болмайды. Бағдарламалық жасақтамадағы қауіпсіздік үшін жобалау, қорғаныс бағдарламалау деп аталады. Мёрфи заңы – қауіпсіздік үшін жобалау қажеттігін және оның абсолютті шектеулерін көрсететін белгілі бір тұжырым.
design to prevent misuse
Defensive design is the practice of planning for contingencies in the design stage of a project or undertaking. Essentially, it is the practice of anticipating all possible ways that an end user could misuse a device, and designing the device so as to make such misuse impossible, or to minimize the negative consequences. For example, if it is important that a plug is inserted into a socket in a particular orientation, the socket and plug should be designed so that it is physically impossible to insert the plug incorrectly. Power sockets are often keyed in such a manner, to prevent the transposition of live and neutral. They are also recessed in the wall in a way that makes it impossible to touch connectors once they become live. Defensive design in software engineering is called defensive programming. Murphy's law is a well known statement of the need for defensive design, and also of its ultimate limitations.
Компьютерлік бағдарламалық қамтамасыз ету
Бағдарламаны іске асыру шешімдері мен бағдарламалық жасақтаманы жобалау тәсілдері бағдарламаны қауіпсіздендіріп, пайдаланушы қателерін анықтауға көмектеседі. Деректерді енгізу экраны кірісті "тазарта" алады, мысалы, сандық өрістерде тек сандар, таңбалар және қажет болған жағдайда бір ондық нүкте болады. Кірістерді нақты мәндерге сәйкестігі бойынша тексеруге болады, мысалы, жұмыс орнындағы жарақаттар саны (немесе жарақат алған адамдардың саны) 0 болуы мүмкін, бірақ теріс сан болмауы керек және бүтін сан болуы тиіс; бір апта ішінде жұмыс істеген сағаттар саны кез келген қызметкер үшін 0 болуы мүмкін, бөлшек сан болуы мүмкін, бірақ теріс болмауы керек және 168 сағаттан аспауы керек, сондай-ақ жұмыс істеген күндерінің санынан 24 еседен артық болмауы керек. Сақталған құжатты ашуға сұралған мәтін өңдеуші оны жарамды және зақымдалмаған күйде тексеру үшін сканерлеуі керек. Егер құжат зақымдалған болса, бағдарлама мұны хабарлауы керек, содан кейін жарамды бөлігін қабылдап, қалғанын қабылдамауға болады немесе құжатты толығымен қабылдамауға болады. Қай жағдайда болса да, бағдарлама жұмысын тоқтатпауы керек.
Электроника
Көптеген электр жалғағыштар осы қағиданы асимметриялық етіп қолданады.