Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Алгоритмдеу жане багдарламалау негиздери 4 г.doc
Скачиваний:
3
Добавлен:
01.07.2025
Размер:
2.73 Mб
Скачать

27 Дәріс тақырыбы: Программалаудың кейбір фундаментальді әдістері. Программаны құрастырудың технологиясы және таралуы.

Дайын программаны талдау кезінде көбінесе әзірлеушілердің оған қалай келгені анық емес. Осы Дәрісда программалау технологиясындағы жалпы сәттер туралы айтылады.

Программаны жобалаудың осы заманғы тәсілі өз кезегінде абстракцияларды пайдалануға негізделген есептердің декомпозициясына негізделген. Демкомпозициялау кезіндегі мақсат шағын, салыстырмалы дербес программалар болып табылатын, бір бірімен жақсы анықталған және қарапайым ережелер бойынша өзара әрекеттесетін модульдер құру болып табылады. Егер осы мақсатқа қол жеткізілген болса, онда кейбір модульдерді әзірлеу бір біріне тәуелсіз әртүрлі адамдармен жүзеге асырылуы мүмкін, бұл ретте біріктірілген программа дұрыс жұмыс жасайтын болады.

Абстракцияны параметрлеу арқылы және спецификация арқылы айырады. Параметрлеу арқылы абстракцияның мәні мынада, бір алгоритммен түрлі бастапқы деректермен ерекшеленетін және түрлі параметрлері бар есептерді шешуге болады. Спецификация арқылы абстаркцияның мәні түрлі алгоритмдермен бір және ізделетін нәтижені алуға болатынында. Бұл ретте программа жұмысының нәтижелері суреттеледі, программаға қатынау мәні программаның текстінің өзін емес, оның ерекшелігін талдау арқылы анық болады.

Кез келген программаны немесе программалық жүйені әзірлеу пайдаланушылардың нақты жиынтығы үшін оған қойылатын талаптарды анықтаудан басталады және жүйені осы пайдаланушылардың іске қосуынан аяқталады.

Алгоритмдер мен программалар әзірлеудің түрлі тәсілдері мен технологиялары бар. Программалау едәуір дәрежеде өнер болса да, жинақталған кәсіби тәжірибені жүйелеуге және қорытуға болады. Қазіргі көзқарас тұрғысынан программалау мен программа әзірлеуді бірқатар тізбектелген кезеңдерге бөлген орынды:

1) міндет қою;

2) программаны жобалау;

3) модель құру;

4) алгорит әзірлеу,

5) алгоритмді іске асыру;

6) алгоитм мен оның күрделілігін талдау;

7) программаны тестілеу,

8) құжаттау.

Осы кезеңдердің әрқайсысына қысқаша тоқталайық.

Ірі компьютерлік программалар үшін міндет қою кезінде келесідей жұмыстарды жүргізу қажет:

• проблеманы шешу немесе мақсатқа жету үшін (негізінен бұл қызмет сараптамалық сипатта болады) қажетті талаптар әзірлеу (қасиет, сапа және мүмкіндік);

• программаның мақсатынан;

• шекті шарттардан тұратын ерекшеліктер әзірлеу;

• енгізіп-шығаратын деректердік ерекшеліктері;

• верификациялық талаптар (тестілік жағдайлар белгілеу);

• құжаттардың типтері мен саны.

Осы жұмыстың барысында жүйе ақырғы түрінде ие болуы тиіс қасиеттер анықталады (пікір), жүйенің функциялары, интерфейстің сипаттамалары суреттеледі.

Есепті шешуге кірісу үшін оны дәл тұжырымдау қажет. Бірінші кезекте бұл бастапқы және соңғы деректерді анықтау, яғни мынадай сұрақтарға жауап беру:

а) не берілді? б) нені табу қажет. Міндет қоюды одан әрі талдау мынадай мазмұндағы бірқатар сұрақтарға жауап беру болып табылады:

• шешімді қалай анықтау керек;

• қандай деректер жетіспейді, олардың барлығы да керек пе;

• қандай кемшіліктер жіберілді және т.б..

Программаны жобалау. Алдыменпрограммалық жүйенің архитектурасын жобалау жүргізіледі. Бұл жобалаудың бастапқы (жалпы) сатысы болып табылады және ерекшелікті жүйенің құрылымына декомпозициялаудан аяқталады. Әдетте әрбір модуль бойынша модульдық деңгейде модульдің ерекшелігі жасақталады:

• аты/мақсаты – модульге ат және формальды параметрлері бар модульдің функциялары туралы ұсыныс беріледі;

• формальды емес суреттеу – модульдың әрекетін шолу;

• сілтемелер – оған қандай модульдер сүйенеді және қандай модульдер осы модульге сүйенеді;

• енгізу/шығару – формальды және нақты параметрлер, ауқымды, жергілікті және байланысқан (бірқатар модульдер үшін ортақ) айнымалылар;

• ескерту – модуль жөніндегі жалпы сипаттағы пайдалы түсініктер.

Келесі қадам егжей-тегжейлі жобалау болып табылады. Осы кезеңде программаны процедуралық суреттеу, әрбір модульді іске асыру үшін алгоритмді таңдау және бағалау жүреді. Жобалау үшін бастапқы ақпарат жүйені талаптары мен ерекшеліктері болып табылады.

Программаларды жобалау үшін әртүрлі тәсілдер мен әдістер бар. Жобалаудың осы күнгі тәсілі өз кезегінде абстракцияны пайдалануға негізделген декомпозицияға негізделген. Декомпозициялау кезіндегі мақсат бір бірімен анықталған және қарапайым ережелер бойынша өзара әрекеттесетін модульдер құру болып табылады. Декомпозиция программаны кейін біріктірілуі мүмкін компоненттерге бөлу.

Архитектураның жобалау әдістері екі топқа бөлінеді:

1) өңдеуге бағдарланған және

2) деректерге бағдарланған.

Өңдеуге бағдарланған әдістер мынадай ортақ идеялардан тұрады:

а) Модульдық программалау.

Негізгі тұжырымдамалар:

• әрбір модуль жалғыз тәуелсіз функцияны іске асырады;

• енгізу/шығарудың жалғыз нүктесіне ие болады;

• модульдің өлшемі минимумдалады;

• әрбір модуль басқа модульдерге тәуелсіз әзірленеді;

• жүйе тұтастай модульдерден тұрғызылған.

Осы принциптерге сүйене отырып әрбір модуль жеке жеке тестіленеді, одан кейін кодтағаннан және тестілегеннен кейін оларды интеграциялау жүреді және барлық жүйе тестіленеді.

б) Функциональдық декомпозициялау.

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

в) Деректер ағынын пайдалана отырып жобалау.

Деректер ағыны программаны жобалаудың басты желісі ретінде пайдаланылады. қадамдық нақтылауы бар жоғары-төмен құрылымдық жобалаудың элементтерінен тұрады:

• деректер ағынан сараптау және деректер ағынының графасын бейнелеу;

• элементтердің кірістік, орталық және шығыстық түрлендіргіш деректер ағыны;

• программаның иерархиялық құрылымын қалыптастыру;

• программаның құрылымын детализация және оңтайландыру.

г) Жобаны құрылымдық талдау технологиясы.

Жүйелер объектілері арасында иерархиялық функционалдық байланыстар құрудың арнайы графикалық құралдарын пайдалана отырып құрылымдық талдауға негізделген. Диаграммалар қарапайым және оқылатын болған кезде жүйе құрудың бастапқы сатыларында тиімді.

Деркетер құрылымын пайдалануға негізделген жобалау әдістері төменде суреттелген:

а) Джексон методологиясы .

Бұл жерде деректер құрылымы – жоба жасаудағы өзекті элемент. Программаның құрылымы өңдеуге жататын деректер құрылымымен анықталады. Программа көмегімен кіріс деректер шығыс деректерге өзгертілетін механизм ретінде беріледі. Әдісте мыналар қарастырылады:

• кіріс және шығыс деректер құрылымын әзірлеу және бейнелеу;

• осы құрылымдық элементтердің бейнелерін біріктіру арқылы программаның құрылымын бейнелеу,

• құрылымдық деректермен жасалатын дискреттік операцияларды анықтау;

• деректер құрылымын өңдеу алгоритмдерін құру.

б) Уорнер методологиясы.

Алдыңғыға ұқсас, бірақ жобалау процедурасы барынша талданған. Жобаны берудің келесідей түрлері қолданылады:

• деректер ұйымдастыру диаграммалары (кіріс және шығыс деректерді суреттейді);

• логикалық қолдану диаграммалары (осы деректердің логикалық ағыны);

• нұсқаулар тізімі (жобада қолданылатын командалар);

• псевдокод (жобаны суреттеу);

• жүйенің кіріс деректерін анықтау;

• иерархиялық құрылымға кіріс деректер ұйымдастыру;

• кіріс файлдың элементтері форматын талдап анықтау;

• кіріс деректерге рналған сияқты;

• программаның ерекшелігі: оқу, тамақталу, есептеу, шығыстар, кіші программаны шақырулар;

• нұсқаудың логикалық тізбегін көрсететін диаграмма жасау (блок-схема типі бойынша)

в) Иерархиялық диаграммалар әдісі

Бұл әдісте кіріс және шығыс деректер және жүйені иерархиялық декомпозиция (детализациясыз) көмегімен өңдеу процесі арасындағы байланыс анықталады. Шын мәнінде үш элемент қолданылады: кіру, өңдеу, шығу.

Осы әдіс бойынша жобалау алгоритмі мынадай қадамдардан тұрады:

• кіру, өңдеу, шығуды анықтай отырып, абстракцияның ең жоғарғы деңгейінен бастау;

• кіріс пен шығыстың әрбір элементін сәйкес өңдеумен біріктіру;

• диаграмманы пайдаланып жүйенің әрбір элементін құжаттау;

• 1-3 қадамдарды пайдаланып, диаграмманы талдау.

г) Жобалаудың объектілік –бағдарланған әдістемесі.

Ақпараттар мен деректердің абстрактілі типтерін жасыру концепциясына негізделген. Объектілер ретінде деректерді, модульдер мен жүйелерді қарастырады. Әрбір объект осы деректермен қалай жұмыс жасау керектігін білетін процедуралар жиыны бар деректердің бірқатар құрылымынан тұрады. Осы әдістеме бойынша берілген проблемалық сала бойынша абстракция құрылады:

• проблеманы анықтау;

• жүйеге қойылатын талапты қанағаттандыратын формальды емес стратегияны дамыту;

• стратегияны формализациялау;

• объектілер мен олардың атрибуттарын құру;

• объектілермен жасалатын операцияларды анықтау;

• интерфейстер орнату;

• операцияларды орындау.

Модельдер құру көп жағдайда күрделі есеп болып табылады. Моделдеуде тәжірибе жинау үшін барынша көп белгілі және сәтті модельдерді зерделеу қажет.

Модельдер құру кезінде негізінен, екі принцип пайдаланылады: дедуктивті (жалпыдан жекеге) және индуктивті (жекеден жалпыға).

1-сурет. Дедуктивті тәсіл кезінде модель құру схемасы

Дедуктивті тәсіл кезінде (1-сурет) жалпы белгілі фундаментальды модельдің жеке жағдайы қаралады. Бұл жерде берілген болжамдарда белгілі модель модельденетін объектінің шартына бейімделеді. Мысалы, Ньютона та = mg Fсопр белгілі заңы негізінде еркін құлайтын дененің модельін құруға және рұқсат етілген жақындау ретінде аз уақыт аралығы үшін тең жылдамдатылған қозғалыстың модельін қабылдауға болады.

2-сурет. Индуктивті тәсіл кезінде модель құру схемасы.

Индуктивті тәсіл (2-сурет) гипотез жылжытуды, күрделі объектіні декомпозициялауды, талдау, содан кейін синтезді ұйғарады. Бұл жерде жүенің реті туралы болжам түріндегі қандай да бір заңдылықтарды қалыптастыру мақсатында ұқсас модельдеу, ойша пайымдаулар кеңінен қолданылады.

Индуктивті тәсіл кезінде модельдер құру технологиясы:

1) эмпирикалық кезең;

• ойша пайымдау;

• интуиция;

• болжам;

• гипотеза.

2) модельдеу үшін міндет қою;

3) бағалар; сандық және сапалық суреттеу;

4) модель құру.