Кіріспе

Компьютерлік бағдарламаларды орындамай талдау

Компьютерлік ғылымда статикалық бағдарлама талдауы (статикалық талдау немесе статикалық симуляция деп те аталады) – компьютерлік бағдарламаларды орындамай жүзеге асырылатын талдау, ал динамикалық бағдарлама талдауы интеграцияланған ортада бағдарламалардың орындалуы кезінде жүргізіледі. Бұл термин көбінесе автоматтандырылған құралмен жүргізілетін талдауға қолданылады, ал адамдар жүргізетін талдау әдетте «бағдарламаны түсіну», бағдарламаны зерделеу немесе кодты қарау деп аталады. Соңғы жағдайда бағдарламалық жасақтаманы тексеру және бағдарламалық жасақтаманы шолу әдістері де қолданылады. Көптеген жағдайларда талдау бағдарламаның бастапқы кодының бір нұсқасында, ал кейбір жағдайларда оның объектілік кодының бір түрінде жүргізіледі.

Құрал түрлері

OMG (Object Management Group) бағдарламалық қамтамасыз ету сапасын өлшеу және бағалау үшін қажетті бағдарламалық қамтамасыз етуді талдау түрлері туралы зерттеу жариялады. "CISQ ұсыныстарына сәйкес берік, қауіпсіз, тиімді және оңай өзгертілетін IT жүйелерін қалай жеткізуге болады" атты осы құжатта бағдарламалық қамтамасыз етуді талдаудың үш деңгейі сипатталған. Бірлік деңгейіндегі талдау, ол белгілі бір бағдарлама немесе кіші бағдарламаның ішінде, сол бағдарламаның контекстімен байланыспай жүргізіледі. Технологиялық деңгейдегі талдау, ол жалпы бағдарламаның тұтастай және семантикалық көрінісін алу үшін бірлік бағдарламалардың арасындағы өзара әрекеттестікті ескереді, осылайша мәселелерді табу және анық жалған оң нәтижелерден аулақ болу үшін. Жүйелік деңгейдегі талдау, ол бірлік бағдарламалардың өзара әрекеттесуін ескереді, бірақ бір ғана нақты технологиямен немесе бағдарламалау тілімен шектелмейді. Бағдарламалық талдаудың тағы бір деңгейін анықтауға болады. Миссиялық/бизнес деңгейіндегі талдау, ол бағдарламалық жүйеде оның кәсіпорын немесе миссиялық/бизнес деңгейіндегі қызметтері шеңберінде жұмыс істеуі үшін іске асырылатын бизнес терминдері, ережелер және процестерді ескереді. Бұл элементтер бір ғана нақты технологиямен немесе бағдарламалау тілімен шектелмей жүзеге асырылады және көп жағдайда бірнеше тілде таратылады, бірақ жүйелік түсінуді қамтамасыз ету үшін статикалық түрде алынып, талданады.

Деректерге негізделген статикалық талдау

Деректерге негізделген статикалық талдау кодтау ережелерін шығару үшін үлкен көлемде кодты пайдаланады. Мысалы, GitHub-тағы барлық Java ашық бастапқы кодты пакеттерін жақсы талдау стратегиясын үйрену үшін қолдануға болады. Ережелерді шығару үшін машиналық оқыту техникаларын пайдалану мүмкін. Сонымен қатар, көптеген бұрынғы түзетулер мен ескертулерден де үйренуге болады.