Кіріспе
Бағдарламалық инженерияда бағдарламалық жүйе қауіпсіздігі операциялық ортада бағдарламалық жүйелерді жобалау, әзірлеу, пайдалану және күтіп-жөндеу кезінде, сондай-ақ оларды қауіпсіздікке маңызды аппараттық жүйелермен интеграциялау арқылы жүйе қауіпсіздігін жақсартуға бағытталған.
Шолу
Бағдарламалық жүйенің қауіпсіздігі – жүйелік қауіпсіздік пен жүйелік инженерияның бір бөлігі және функционалдық қауіпсіздіктің бағдарламалық қамтамасыз ету аспектілерімен толық сәйкес келеді. Бағдарламалық қамтамасыз ету жалпы қауіпсіздік және бағдарламалық қамтамасыз етуді дамыту бағдарламасының ажырамас бөлігі ретінде, жалпы күш-жігерден тәуелсіз жұмыс істеуіне жол берілмейді. Қарапайым және күрделі интеграцияланған жүйелерде де қауіпсіздікке маңызды подсистемалар мен функцияларды бақылау және/немесе басқару үшін компьютерлер мен бағдарламалық қамтамасыз етуді қолдану қарқынды өсуде. Бағдарламалық қамтамасыз етудің сипаттамасындағы қате, жобалаудағы кемшілік немесе қауіпсіздікке қатысты жалпы талаптардың болмауы жүйелік сәтсіздікке немесе адамның қате шешіміне әкелуі мүмкін. Қажеттіліктерді анықтау және жүйелік жобалау процесінің басында, маңызды қолданбаларда қолданылатын бағдарламалық қамтамасыз ету үшін қауіпсіздіктің қанағаттанарлық деңгейін қамтамасыз ету үшін бағдарламалық жүйе қауіпсіздігі инженерлігіне басымдық берілуі тиіс. Қауіпсіздікке байланысты бағдарламалық қамтамасыз ету жүйе дамуының және пайдаланудың барлық кезеңінде тұрақты басқаруға және инженерлік талдауға мұқтаж. Қауіпсіздікке маңызды функционалдығы бар бағдарламалық қамтамасыз ету объективті талдау арқылы мұқият тексерілуі керек. Функционалдық қауіптерді талдау (ФҚТ) жүйелердің қауіпсіздік үшін маңызды функцияларын (ҚМФ) анықтау үшін жүйелік инженериямен бірге немесе оның құрамында ертерек жүргізіледі. Бағдарламалық жүйенің қауіпсіздігі бағдарламалық қамтамасыз ету мен жүйелік функционалдықтағы маңызды жобалау аспектілерімен және қауіпсіздік атрибуттарымен тікелей байланысты, ал бағдарламалық қамтамасыз ету сапасының атрибуттары өзгеше және стандартты тексеру мен даму талаптарын қажет етеді. Дамуды қамтамасыз ету деңгейлері (ДҚД) және оған сәйкес қатаңдық деңгейі (ҚД) – бағдарламалық қамтамасыз ету сапасы мен бағдарламалық қамтамасыз етуді жобалаудың сенімділігі үшін қолайлы бағдарламалық қамтамасыз ету процесін орындаудың алғышарты болып табылады. DO 178C сияқты ҚД тұжырымдамалары мен стандарттары бағдарламалық қамтамасыз ету қауіпсіздігін алмастырмайды. IEEE STD 1228 және MIL STD 882E бойынша бағдарламалық қамтамасыз ету қауіпсіздігі нақты қауіпсіздік талаптарының орындалуын қамтамасыз етуге және қауіпсіздік талаптарын талдау және сынау тұрғысынан функционалдық тәсілдерді қолдану арқылы тексеруге бағытталған. Бағдарламалық қамтамасыз ету қауіпсіздігіне қатысты қауіптерді талдау, бағдарламалық қамтамасыз ету маңызды функцияларды басқаратын күрделі жүйелерде, әдетте, келесі кезеңдерде жүргізіледі және жүйелік қауіпсіздік немесе қауіпсіздік инженериясы процесінің бөлігі ретінде кезең-кезеңмен орындалады: бағдарламалық қамтамасыз ету қауіпсіздігіне қойылатын талаптарды талдау; бағдарламалық қамтамасыз ету қауіпсіздігін жобалау талдаулары (жоғары деңгей, егжей-тегжейлі жобалау және код деңгейі); бағдарламалық қамтамасыз ету қауіпсіздігін сынау талдау және бағдарламалық қамтамасыз ету қауіпсіздігін өзгерту талдау. Осы "функционалдық" бағдарламалық қамтамасыз ету қауіпсіздігін талдау аяқталғаннан кейін бағдарламалық қамтамасыз ету инженерлері тобы қауіпсіздікке назар аударуды және бағдарламалық қамтамасыз ету қауіпсіздігі атрибуттарын жобалау кезінде дұрыс функционалдылықты қамтамасыз ету және ақауларды, сәтсіздіктерді, қателерді анықтау үшін қандай функционалдық тізбектерге, функционалдық жолдарға, домендерге және шекараларға назар аударуды білетін болады, сондай-ақ қауіптерді бақылау үшін көптеген жеңілдету стратегияларын іске асыру үшін. Бағдарламалық қамтамасыз ету қауіпсіздігі және әртүрлі бағдарламалық қамтамасыз етуді қорғау технологиялары әртүрлі қауіп-қатерлерді азайту үшін жобалауда бағдарламалық қамтамасыз ету қауіпсіздігі атрибуттарына ұқсас. Жүйелік деңгейде дұрыс және болжамды мінез-құлықты тексеру арқылы детерминистік бағдарламалық қамтамасыз етуді жобалауда іздеуге болады.
objective analysis. Functional Hazard Analyses (FHA) are often conducted early on in parallel with or as part of system engineering Functional Analyses to determine the safety critical functions (SCF) of the systems for further analyses and verification. Software system safety is directly related to the more critical design aspects and safety attributes in software and system functionality, whereas software quality attributes are inherently different and require standard scrutiny and development rigor. Development Assurance levels (DAL) and associated Level of Rigor (LOR) is a graded approach to software quality and software design assurance as a pre requisite that a suitable software process is followed for confidence. LOR concepts and standards such as DO 178C are NOT a substitute for software safety. Software safety per IEEE STD 1228 and MIL STD 882E focuses on ensuring explicit safety requirements are met and verified using functional approaches from a safety requirements analysis and test perspective. Software safety hazard analysis required for more complex systems where software is controlling critical functions generally are in the following sequential categories and are conducted in phases as part of the system safety or safety engineering process: software safety requirements analysis; software safety design analyses (top level, detailed design and code level); software safety test analysis, and software safety change analysis. Once these "functional" software safety analyses are completed the software engineering team will know where to place safety emphasis and what functional threads, functional paths, domains and boundaries to focus on when designing in software safety attributes to ensure correct functionality and to detect malfunctions, failures, faults and to implement a host of mitigation strategies to control hazards. Software security and various software protection technologies are similar to software safety attributes in the design to mitigate various types of threats vulnerability and risks. Deterministic software is sought in the design by verifying correct and predictable behavior at the system level.