140
бағдарламалауды пайдалану бағдарламаны тестілеуді жеңілдетуге және
қателерді анықтауға мүмкіндік береді. Аппаратты-тәуелді қосалқы
міндеттер бір-бірінен қосалқы міндеттерден қатаң түрде бөлінуі мүмкін,
құрылатын бағдарламалардың мобильділігін жақсартады.
Әрбір бағдарламалық модуль бағдарламаланады, құрастырылады
және бағдарламаның басқа модульдерінен жеке қойылады және осы
арқылы бағдарламаның өзге модульдерімен бөлінген.
Сонымен қатар,
әрбір әзірленген бағдарламалық модуль түрлі бағдарламалардың
құрамына қосылуы мүмкін, егер оны пайдалану шарттары орындалса,
онда осы модуль бойынша құжаттамада декларацияланған. Осылайша,
бағдарламалық модуль бағдарламаның қиындығымен күресу құралы
ретінде және бағдарламалауда қайталаумен күресу құралы ретінде
қарастырылуы мүмкін (яғни, бағдарламалық кодты бірнеше рет қолдану
және жинау құралы ретінде).
Модуль сипаттамаларының жиынтығын Майерс 1980 жылдардың
өзінде ұсынған болатын. Ол төменде
көрсетілген конструктивті
сипаттамаларынан тұрады.
Модульдің
өлшемі
мұндағы
операторлардың
(жолдардың)
құрамындағы сандармен өлшенеді. Модуль тым кішкентай немесе тым
үлкен болмауы керек. Кішкентай модульдер бағдарламаның тым үлкен
модульдік құрылымына әкеледі және оны ресімдеуге байланысты
жөнелтпе құжаттарды ақтай алмайды. Үлкен модульдер зерделеу үшін
және өзгертулерге қолайлы емес, олар бағдарламаны қосқанда
бағдарламаны қайта трансляциялаудың қосынды уақытын біраз
ұлғайтуы мүмкін. Әдетте, бірнеше ондықтан бірнеше жүз операторға
дейін бағдарламалық модульдер ұсынылады.
Модульдің
байланысуы
(беріктілігі)
-
бұл
оның
ішкі
байланыстарының шамасы. Модульдің беріктілігі қаншалықты жоғары
болса,
ол
бағдарламаның
бөліктеріне
қатысты
сыртқы
бағдарламалардан жасырудың байланысы соншалықты артық, және де
бағдарламаны жеңілдетуге ол қаншалықты көп үлес қоса алады.
Функционалды байланыс. Функционалды
байланысы бар модуль
қандай да бір белгілі функцияны іске асырады және осындай байланыс
түріндегі екі модульге бөліне алмайды.
Бірізділік байланысы. Мұндай байланысы бар модуль тәуелсіз
функцияларды орындайтын бірізді бөліктерге бөлінуі мүмкін, бірақ
жалғыз функцияны бірлесе іске асыратын. Мысалы, бір және осы
модуль бағалау үшін алдымен қолданылуы мүмкін, ал одан соң
деректерді өңдеу үшін қолданылуы мүмкін.
Ақпараттық (коммуникативтік) байланыс. Ақпараттық байланысы
бар модуль - бұл бір және осы деректер құрылымымен (
ақпараттық
объектімен) бірнеше операциялар немесе функцияларды орындайтын
модуль, ол осы модульден тыс танымал емес болады. Бұл ақпараттық
141
байланыс деректердің дерексіз типтерін іске асыру үшін қолданылады.
Модульдің ілінісуі - бұл шара басқа модульдерден алынған деректер
бойынша тәуелділігі. Деректерді беру тәсілімен сипатталады.
Модульдің басқа модульмен ілінісуі қаншалықты әлсіз болса, олардың
басқа модульдерге тәуелсіздігі соншалықты күшті. Модульдің ілінісуі
деректердің беріліс тәсілімен сипатталады. Модульдің басқа
модульдермен ілінісуі қаншалықты әлсіз болса, басқа модульдерден
оның тәуелсіздігі соншалықты күшті.
Басқаша айтқанда, ілінісу - басқа
модульдерден модульдің
салыстырмалы тәуелсіздігінің шарасы. Тәуелсіз модульдер басқа
модульдердің қайта жасалуынсыз түрлері өзгертілуі мүмкін. Модульдің
ілінісуі қаншалықты әлсіз болса, ол соншалықты жақсы. Мұндай
модульдердің өзара байланысын ұйымдастыру, олардың интерфейсін
білу және тиісті түрде шығыс деректер бір модульден
басқаның кірісіне
қайта бағыттайды.
Деректер бойынша ілінісу (параметрлік) - бұл деректер модульге
оның басқа модульге жүгіну нәтижесі ретіндегі мәні болып беріледі, не
болмаса кейбір функцияларды есептеу үшін басқа модульге жүгіну
нәтижесі ретінде беріледі. Бұл ілінісу түрі бағдарламалау тілдерінде
функцияларға (процедураларға) жүгіну кезінде іске асырылады. Бұл
ілінісудің екі түрі деректердің сипаты болып анықталады.
Модульдің ескішілдігі - бұл жүгінудің алдыңғы тарихынан
тәуелсіздігі. Модуль ескішілдігі деп аталады, егер оған жүгіну нәтижесі
(әсері) оның параметрлерінің мәніне ғана емес, сондай-ақ оған жүгінудің
тарихына байланысты.
Модуль көп жағдайларда
ескішіл болуы керек, бірақ тарихты сақтау
керек болған жағдайларда. Алдыңғы тарихқа байланысты модульдерді
деректер бойынша ілінісу керек болатын жағдайларда ғана қолдану
керек. Модульдің алдыңғы тарихына байланысты сипаттамасында осы
тәуелсіздік анық қалыптасуы керек, ол осындай модульдің әрекетін
болжау мүмкіндігі пайдаланушыда болу үшін.