148
БАҒДАРЛАМА ҚҰРЫЛЫМЫН
ӘЗІРЛЕУ ӘДІСТЕРІ
Бағдарламаның модульдік құрылымы ретінде салынатын бұтақтары
бар ағашты қоса алғанда ағаш тәрізді құрылымды қолдану қабылданған.
Мұндай ағаштың тораптарында бағдарламалық модульдер орналасады,
ал бағытталған доғалар (нұсқарлар) модульдердің статикалық
бағыныштылығын көрсетеді, яғни әрбір доға одан шығатын модуль
мәтінінде оның кіретін модуліне сілтеме бар. Басқаша айтар болса, әрбір
модуль оған қатысты модульдерге жүгіне алады, яғни осы модульдер
арқылы өрнектеледі. Бұл ретте бағдарламаның модульдік құрылымы,
соңында осы бағдарламаны түзетін модульдердің сипаттамаларының
жиынтығынан тұруы тиіс.
Бағдарламалық модульдің сипаттамасына мыналардан тұрады:
■
қолданылатын бағдарламалау тілінде синтаксистік жағынан оған
жүгінуінің дұрыс бағытын құратын (оның кез келген кірісіне)
кірістерінің синтаксистік сипаттамасынан;
■
модульдің функционалды сипаттамасынан (осы модульдің оның
әрбір шығысы бойынша функцияларының семантикасына
сипаттама). Модульдің функционалды сипаттамасы бағдарламалық
қамсыздандырудың функционалдық сипаттамасы сияқты құрылады.
Бағдарламаны әзірлеу процесінде оның модульдік құрылымы
әртүрлі қалыптасуы мүмкін. Сол себепті бағдарлама құрылымын
әзірлеудің түрлі әдістері туралы айтуға болады. Классикалық әдістерге
төмен түсетін және жоғары көтерілетін әзірлеу әдістерін жатқызуға
болады.
Жоғары көтерілетін әзірлеу әзірлеу әдісін қолданғанда
бағдарламаның модульдік құрылымы ағаш түрінде құрылады. Содан
кейін
кезекпен
ең
төменгі
модульден
бастап
модульдер
бағдарламаланады, олар әрбір бағдарламалық модуль үшін олар жүгіне
алатын барлық модульдерге бағдарламалану тәртібімен құрылады.
Барлық модульдер бағдарламаланып болған соң оларды кезекпен
тестілеуден өткізеді және ретке келтіру жоғары көтерілетін
тәртіптегіндей бағдарламалауда жүргізіледі. Осындай тәртіппен әрбір
модуль үшін әзірлемелер, бас модульден басқасы жетекші
бағдарламаны (модульді) құру керек болады, ол тестіленетін модуль
үшін ақпараттық аяның күйін даярлап, оған қажет жүгінуді жүргізеді.
Бұл «ретке келтіріп» бағдарламалаудың үлкен көлеміне әкеледі және де
ешбір кепілдік бермейді, ол жұмыс бағдарламасында орындалған
жағдайларға модульдерді тестілеудің кепілдігін бермейді.
Өрлейтін тестілеу қателердің орнын анықтаудың жақсы тәсілі болып
табылады. Егер қате бір модульді тестілеу кезінде анықталған болса,
149
онда оның көзіне анықтау үшін бүкіл жүйенің кодына талдау жасаудың
қажеті жоқ. Егер қате екі тестіленген модельдердің бірлескен
жұмысында байқалатын болса, онда қате олардың интерфейстерінде
болуы мүмкін. Өрлеу тестілеуін орындау кезінде бағдарламашы жалғыз
модульге, екі модуль арасындағы параметрлердің берілуіне назарын
қояды, яғни аз ғана бөлігіне, оның көмегімен тестілеу қатенің
анықтаудың үлкен ықтималдылығымен мұқият жүргізіледі.
Төмендеуші
әзірлеуде
кезекпен
бағдарлама
модульдері
бағдарланады, жоғарғы (бас) деңгейдің модулінен бастап, жүгінетін
модуль бағдарламаланған болса ғана қандай да бір басқа модульді
бағдарламалауға
өтеді.
Бағдарламаның
барлық
модульдері
бағдарламаланып болғанша оларды кезекпен тестілеу жүргізіледі және
ретке келтіру төмендеу тәртібімен де жүргізіледі. Бағдарламаның бас
модулі ақпараттық аяның «табиғи» күйінде тестіленеді. Ол жүгіне
алатын модульдер имитаторлармен ауыстырылады. Модуль имитаторы
қарапайым бағдарламалық үзіндіні білдіреді, және ол өз кезегінде
қажетті нәтижені береді.
Осыған ұқсас басқа модульдердің тестіленуі де өтеді. Бұл ретте әрбір
модуль осы модульге жүгінген сәттегі ақпараттық аяның «табиғи»
жағдайларында тестіленеді. Мұндай тәртіпте бағдарламаның әзірленуі,
барлық қажетті өзекті ақпарат уақытылы қалыптасады.
Әрбір тәсілдің артықшылықтары мен кемшіліктері бар.
Мамандардың пікірлері жоғарыда сипатталған екеуінің жоғарғысы
біршама тиімді және қандай әзірлеу әдісі тиімді екендігі туралы
пікірлері де айырмашылықтарымен болады. Кейбір мамандардың
пікірінше, ең жақсы өрлеу әзірлемесі мен тестілеу; ал басқалары жалпы
төмендеуші тестілеу жақсы дейді.
Әрбір практикада стратегияны таңдау мәселесі келесі түрде
шешіледі. Әрбір модуль мүмкіндігіне қарай оны жазғаннан кейін
тестіленеді, нәтижесінже бағдарлама бөліктерінің кейбіреуін тестілеу
бірізділігі өрлеуші, ал басқаларынікі - төмендеуші болуы мүмкін.
|