АЛМАТЫ ЭНЕРГЕТИКА ЖӘНЕ БАЙЛАНЫС ИНСТИТУТЫ

 

Инженерлік кибернетика кафедрасы

 

 

 

 

 

 

 

 

 

 

БАҒДАРЛАМАЛАУ ТЕХНОЛОГИЯЛАРЫ

 

Дәрістер жинағы

(050702 - Автоматтандыру және басқару

мамандығының студенттері үшін)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Алматы, 2006

 

 

Құрастырушы: Аманбаев А.А. Бағдарламалау технологиялары.

Дәрістер жинағы (050702- Автоматтандыру және басқару мамандығының студенттері үшін).–Алматы: АИЭС, 2006. 50 б.

 

 

 

 

 

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

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

Дәрістер жинағы 050702- «Автоматтандыру және басқару» мамандығының студенттеріне арналған.

Без. 30, кесте. 4, библиогр. – 25 атау.

 

 

 

 

 

Пікір беруші: физ. мат. ғыл. д-ры. проф. Куралбаев З.К.

 

 

 

 

 

 

«Алматы энергетика және байланыс институтының» 2006 ж. жоспары бойынша басылды.

 

 

 

 

 

 

 

 

 

© Алматы энергетика және байланыс институты, 2006 ж.
Дәріс – 1.
Дербес компьютерлерді автоматтандыратын программалық құрылымдар. Программалау технологиясы. Негізгі түсініктер және әдістер

 

Дәрістің мазмұны:

- компьютерді қамтамасыз ететін программалар туралы түсінік; программалаудың технологиясы; негізгі даму сатылары.

 

Дәрістің мақсаты:

-  қазіргі заман талабына сай программалық қамтамалардың күйлері туралы түсінік; программалау технологиялары туралы негізгі түсініктері мен әдістерін оқып үйрену; құрылымдық, модульдік, объектілік және визуалды программалау туралы тусінік алу.

 

Программалық камтама деп – программалардың жиынын айтады, ол өз кезегінде компьютерде ақпараттың автоматтандыру өңдеуін іске асыруына мүмкіндік береді. Қазіргі заман талабына сай программалық камтама жүйелік (жалпы) және қолданбалы (арнайы) деп бөлінеді. Программалық қамтаманың құрылуы – аса қиынға соғады, егер программаның қарапайым көлемі мыңдаған оператордан асып түссе.  Програмалық қамтаманы құру облысындағы маман - талдау тәсілдері, жобалау, программалық жүйелерді тесттеу және өңдеу, сондай-ақ бар болатын тәсілдер мен технологиялардың бағыт жолдары туралы түсінігі болуы қажет.

Программалау технологиясы дегеніміз - берілген есепті шешуге құралған программада қолданатын барлық әдістерді, құрылымдарды және модельдердің жиынтығын айтады.

Программаның технологиясы келесі реттелген бөлімдерден тұрады:

а) технологиялық амалдарды рет - ретімен қолдануды көрсету;

б) барлық шарттарға қолданылатын операцияларды анықтау;

в) әрбір операцияларға қолданылатын мәліметтерді енгізу және жауаптарын алу, программалардың сұлбасын сипаттайтын инструкциясын, нормативтерін, бағалау әдістерін және керекті ақпараттарды беретін операцияларды жазу.

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

Берілген есепті шешудің Программалау технологиясы ретінде барлық процестерді бірнеше сатыға бөлуге болады:

а) программалауға қолданылатын шектелген әдіс;

б) ыңғайлы базалық әдіс. Базалық әдіс ретінде барлық әдістердің жиынтығын қарастыруға болады.

Программалық технологияны толық түсіну үшін осы процесті бірнеше сатыларға бөлуге болады:

 

Бейберекетсіз (стихиялық) программалау

Электрондық машиналар пайда болған кезден бастап 60 – жылдың ортасына дейінгі аралықты бірінші сатыға жатқызуға болады. Осы аралықтарда программалаудың құрылысы қарапайым болды. Себебі сол кездегі программалау тілінің мүмкіндіктері шектеулі болғандықтан, күрделі модельді есептерді шешуге мүмкіндік бермеді. Ассемблер тілі пайда болғанға дейін жазылған программаларды оқудың өзі күрделі процесс ретінде  қарастыруға болады. Себебі программалар 2 немесе 16 кодтар түрінде жазылды. Ассемблер тілі пайда болғаннан кейін, программаны символдық кодтармен жазуға мүмкіндік берді. Жоғарғы дәрежелi FORTRAN, ALGOL тілдері пайда болғаннан бастап, программалау тілдерін есептеу уақытын және программаның жазылу процесiн бірнеше есе қысқартты. Ал бұл мүмкіндіктер күрделі есептерді шешуге жол ашты.

 

 


 

 

 

1- сурет. Алғашқы программалардың құрылысы

 

60 – жылдарға дейін программа жазудың қиыншылықтары күрделі жобаларды шешуге мүмкіндік бермеді. Күрделі жобаларды шешуге арналған программалар жазылған күніне дейiн өте ұзақ уақыт алды. Ал жобаның өзі программа жазылып біткенше ескіріп жарамсыз болып қалды. Осы айтылған себептер 60-шы жылдардың басында программалық кризиске әкелді. Программалық кризис 60 – 70 жылдары пайда болған келесі сатыдан кейін шешімін таба бастады.

 

Құрылымдық ( структуралық) программалау

 

Құрылымдық программалау негізінде декомпозициялық әдісті қолданады. Декомпозициялық әдіс дегеніміз -  күрделі жүйелерді бірнеше 40–50 операторлардан тұратын ішкі программаларға бөлу. Осы айтылған әдіс декомпозициялық процедуралық әдіс деп аталады. Құрылымдық программалау негізінде процедуралық программалық тілді қарастыруға болады. Құрылымдық программалауға келесі тілдерді жатқызуға болады:  PL/1,  Pascal,  C.

Ауқымды мәліметтермен жұмыс істеуді жеңілдету үшін модельдік программалау тілі пайда болды. Модельдік программалау бір ғана ауқымды мәліметтерді бірнеше ішкі программалардың топтарына қолдануға мүмкіндік береді. Бір модельдік программада 100 мыңға дейін оператор қолдануға болады. Компьютерлік техниканың дамуы программа өлшемін ұлғайтуға, өте күрделі жобаларды шешуге және осы жоба үшін бірнеше ішкі программаларды кең көлемде колдануға жол ашты.

Бірақ ішкі программа көбейген сайын ішкі программаларды шақыру интерфейсінде қателіктер көбейе бастады. Бұның өзі жобаны шешетін программа дұрыс жұмыс істеуіне кері әсер етті. Осы қателердi жою үшiн 80 – 90 жылдары программалаудың жаңа сатысы пайда болды.

 

 

 

 

 

 

 

 

 

 

 

 

 

2-сурет. Модульдерден тұратын программалардың архитектурасы

 

Дәріс – 2. Программалау технологиясы. Негізгі түсініктер және әдістер. Күрделі программалық жүйені құру

 

Дәрістің мазмұны:

- қазіргі заман талабына сай программалау технологияларын; күрделі программалық жүйені құру; негізгі даму сатылары.

Дәрістің мақсаты:

-  COM, CORBA, CASE технологиялары түсініктер; күрделі жүйелерді құруда кездесетін қиыншылықтарды қарастыру; блокты-иерархиялық әдістерді ұйымдастыруды қарастыру.

Нысанды  бағытталған Программалау ( 80 – жылдардың ортасынан бастап 90 – жылдардың аяғына дейін )

Нысанды программалаудың технологиясы күрделі программаларды құруға арналған. Программаны құруға арналған нысандар өздерінің типтері, қасиеттеріне байланысты белгілі бір ирархиялық тәртіппен орналасқан нысандардың жиынтығын құрайды. Мұндай жүйеде программалық нысандар бір-бірімен хабарлар беру арқылы байланыс орнатады. Нысандардың құрылыстарын 70 – жылдары Pascal, C++, Java сияқты универсал тілдердің жаңа нұсқаларында қолданыла бастады. Нысанды бағытталған программалаудың  моделі басқа түрлі программалаудан негізгі артықшылығы, программалардың декомпозицияларын және күрделі жобалы нысандарды тез құруға мүмкіндік береді. Бұл тәсіл күрделі программалардың бөліктерін бір-біріне бағынышсыз жеке-жеке құруға және  визуальды программалау ортасында жұмыс істеуге жол ашты. Бірақ нысанды бағытталу тілдері объект Pascal, C++ тілдерінен көптеген артықшылықтармен қатар кемшіліктері де жеткілікті. Кемшіліктер қатарына келесі пункттер жатады:

а) екілік кодтармен кодталған барлық нысандар бір жерге жинақталған стандартты библиотекалары болмауы, болса да осы библиотекадағы нысандарды қолдану үшін, сол кластың кодтарын көрсетіп жазу керек болды;

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

 


Овал:   МәндерiОвал:   Мәндерi

3-сурет. Нысанды программалаудың сұлбасы

 

Осы жоғарыда айтылған кемшіліктерді жою үшін 90 – жылдардың ортасынан бастап, программалаудың 4–ші сатысы пайда болды.

Компоненттік әдіс және CASE операторы. ( 90 – жылдардың ортасынан бастап қазіргі кезге дейін)

Компоненттік әдіс әр түрлі компоненттерден тұратын бір – біріне қатыссыз программа бөліктерін бір стандартты библиотекаға біріктіруге арналған, осы бөліктер бір-бірімен екілік интерфейстердің стандарттары арқылы байланыс орната алатын программа құруға арналған. Қарапайым нысандардан компоненттердің нысандарының айырмашылығы  осы нысандардың қасиеттері бойынша жинақтап шақыруға арналған динамикалық библиотека немесе орындалуға дайын файлдар күйінде беріледі. Динамикалық библиотекадағы нысандар екілік код түрінде берілгендіктен кез – келген программалық тілде қолдана беруге болады. COM (компонент объект модуль) базасының технологиясының және қосымшаларды таратудың  CORBA технологиясын құруға компоненттік әдісті негізі ретінде алынған. CORBA (сұраныстардың нысандарын өңдеуге арналған архитектураның жалпы түрі)  COM  технологиясы Microsoft фирмаларды Windows жүйесіндегі алғашқы нұсқаларындағы қосымша құжаттарды жетілдіріп қолдануға арналған OLE 1 технологиясын танытты (OLE 1 – нысандарды байланыстыру және енгізу). Әр түрлі типтегі файлдарды әр түрлі  процестегі бір немесе бірнеше компьютерлерде COM технологиясы арқылы ақпараттарды алмастыра беруге болады. Компьютерлер арасындағы ақпараттарды алмастыруды қамтамасыз ететін модификацияланған СОМ түрін DCOM деп атайды. DCOM (COM бойынша ақпараттарды тарату) қосымшалардың қызметін қамтамасыз ететін арнайы COM нысанын қолданады. Осы нысан COM класының данасы болып табылады.  COM нысаны қарапайым нысандар сияқты өрістер мен тәсілдерден тұрады. Қарапайым нысандардан әрбір COM нысанының айырмашылығы өрістер арқылы функцияларға қатынас орнатуға арналған бірнеше интерфейстерді қолдана алады. Осы мүмкіншіліктерді әрбір  интерфейске жеке –  жеке тәсілдердің адрестерін сақтайтын кесте құру арқылы орындалады. COM кластары интерфейсіндегі мұрагерлерін қолдайды.  Ал мұрагерлерді қолдауды сүйемелдейтін немесе сол интерфейстің тәсілдер кодын сүйемелдейді. Әрбір интерфейстің I әрпінен басталатын аттары және де IID деп аталатын уникалды, ауқымды идентификаторы сервердің құрамына кез – келген нысан кіруі мүмкін. Сервердің 3 түрі бар:

а) ішкі сервер динамикалық библиотекада қолданылады. Клиенттердің қосымшаларына қосылу арқылы адрестер кеңістігін бірге қолданады. Ішкі серверлер қосымша құралдарды керек етпегендіктен ең ыңғайлы сервер болып табылады;

б) төңіректік (локальді) сервер. Клиенттермен бір компьютерде жұмыс істей алатындай жеке ұйымдастырылады;

в) қашықтағы сервер басқа компьютерде жұмыс істейді.

Мысалы: Microsoft Word -  жергілікті сервер болып табылады. Жергілікті және қашықтағы сервер арасындағы байланыс COM және DCOM технологиясы бойынша орындалады. Қолданушы COM  нысанының көмекшісі froxy нысанының, ал адрестер кеңістігінде COM  нысанына арналған немесе сол клиентке арналған бітегіші (закрыватель) орналастырылады. Көмекші клиенттен тапсырманы қабылдап операциялық жүйенің қызмет көрсету бөлігі арқылы бітегішке тапсырады. Бітегіш тапсырманы анықтап COM нысанына өткізеді.Алынған шешім осы адрестер арқылы кері жүреді. OLE технологиясы ішкі қызмет көрсету жүйесіне арнайы программамен қамтамасыз етеді. Осы жүйеде нысанның шақыратын интерфейсті n интерфейсі деп атайды. OLE базасында құрылған Activex технологиясы бір компьютерге немесе таратылған желіге қызмет көрсететін программа ұйымдастырады.

 

 

                                                              Опер. жүйе

 

                                                    Комп.2

 

Комп.1

 

Опер. жүйе

 

 

Нысан

 

Қос.3

 
Овал: НысанОвал: НысанОвал: Ныс.Овал: Ныс.

Қосымша 2

 

Библиотека

 

Қосымша 1

 

 

4-сурет. Әр түрлі типтегі компоненттік программалардың байланысы-ның сұлбасы

Блоктық ирархиялық әдісі

Қазіргі кездегі жүйелік программалардың өте күрделі болу себебі осы жүйеде шешетін есептің логикалық күрделілігіне байланысты. Компьютерлік технологияның дамуы қазіргі заман талабына сай күрделі есептерді шешуге мүмкіндік береді. Практика жүзінде күрделі жүйенің ішкі құрылыстары белгілі ирархиялық тәртіппен орналасады. Осындай тәртіппен орналасқан жүйелердің ішкі құрылысын бір-бірімен байланысқан ішкі жүйелер жиынтығы ретінде қарастыруға болады. Жүйелердің жалпы күйін әрбір бөліктерінің жеке күйлері білдіреді. Осы жүйеге қызмет көрсететін программада жүйенің барлық қасиеттерінің сай келуі логикалық күрделі есептерді блоктық ирархиялық тәсілмен шешуге мүмкіндік береді. Блоктық ирархиялық тәсіл алдымен бірнеше блоктарды немесе модульдарды жеке – жеке ұйымдастырып алып, содан кейін ғана нысанның өзін жинайды.

    

 

 

 

0 деңгей

 
 

 

 

 

 

 


5-сурет. Блоктық ирархиялық әдістің сұлбасы

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

Жоспар дұрыс жұмыс істеу үшін келесі қағидаларды дұрыс сақтаған жөн:

а) қарама – қарсы емес элементтердің бір - бірімен келісімділігін бақылау;

б) толымдылығы – артық элементтің болуын бақылау;

в) формальділік – әдістемелік әдістің қатаңдылығы;

г) қайталалымдығы – программа құрудың жылдамдығын және арзанды-лығын қамтамасыз ету үшін, бірдей блоктарды ерекшелеу;

д) жергілікті оптималдылығы – деңгейлер ирархиясында оптималдау.

 

Дәріс – 3. Программалау технологиясы. Негізгі түсініктер және әдістер. Күрделі программалық жүйені құру

Дәрістің мазмұны:

- программалық қамтамаларды құру сатылары мен өмірлік циклдері;  RAD технологиялар; программалық қамтамаларды құру үрдістерінің сапасын бағалау.

Дәрістің мақсаты:

-  программалық қамтамалардың өмірлік циклы туралы түсінік; өмірлік цикл моделінің даму эвалюциялары;  RAD-технологияларын қолдануды және программалық қамтамаларды құру кезінде сапасын бағалау әдістерін қарастыру.

Программаның құрылу сатылары мен өмірлік циклдары

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

ISO/IES 12207 – (халықаралық электрондық жүйе) халықаралық  стандарттары өмірлік циклдың құрамындағы үрдісін жарнамалайды.

Құрылу үрдісінің стандартына келесі бөлімдер кіреді:

а) дайындық жұмыстары – өмірлік циклдің моделін, стандарттарын, әдістерін және құрастыру ортасын таңдау;

б) жүйені талдау – функционалдық қолданушының талабын, қауіпсіздігін және ішкі интерфейстердің мүмкіндіктерін талдау;

в) жүйенің архитектурасының жобасы – құралдар құрамын жүйемен және программамен қамтамасыз етілуін анықтау;

г) қамтамасыз етілетін программаны талдау – өндірістік, функционалдық, ішкі интерфейстік қауіпсіздігінің мүмкіндіктерін талдау;

д) қамтамасыз етілетін программаның архитектурасын жобалау – қамтамасыз етілетін программа құрылысын, интерфейстер мен олардың компоненттерінің құжатталуын, алдыңғы версиялардың құжаттарын тестік және интеграциялану жобаларын анықтау;

е) программа жобасын бөлшектеп талдау – программа компоненттерін және интерфейстермен байланысу бөлімдерін толық жазу және тестке арналған және тестілеу жобаларын толық көрсету;

ж) программаны кодтау және тексеру – құрастыру және әрбір компоненттерін құжаттау, мәліметтер көмегімен әрбір бөлігін тестілеу;

з) программаны интеграциялау – интеграция жоспары бойынша программа компоненттерін жинау, квалификациялық талап бойынша программаны тест арқылы тексеру, эксплуатацияға дайындау;

к) программаны квалификациялық тексеру – программаларды тұтынушымен (заказчик) бірге тест арқылы тексеру және эксплуатацияға дайындығы:

и) жүйенің интеграциясы – жүйенің барлық компоненттерін жинау;

к) жүйені квалификациялық түрде тестілеу;

л) программаны орнату;

м) программаны өткізу.

 

Есептің берілуі:

а) шығарылатын есептердің барлық шарттары есептелу әдістері толық анықталып, толық берілуі тиіс. Есептің берілу үрдісінде құрылатын жобаның функциялық және эксплуатациялық мүмкіндіктері толық анықталуы керек;

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

в) жобалау. Күрделі жобаның программа үрдісіне келесілер жатады:

1) жалпы құрылымын жобалау;

2) компоненттерін декомпозициялау және блокты ирархиялық әдіс бойынша ирархиялық құрылымын құру;

3) компоненттерді жобалау;

г) іске асыру. Қаланып алынған тілдің көмегімен үрдістің сатылары бойын-ша программа кодын жазу және тексеру;

д) бірге алып жүру. Құрылған программаларды өндіріске енгізу бөлімін бірге алып жүру деп атайды.

 

Программаның өмірлік циклінің эволюциясы ( дамуы )

Соңғы 30 – жылдарда программаның өмірлік циклі келесі 3 моделден тұрады: классикалық (каскадтық), аралық тексеру, спиральдық модельдер.

Каскадтық модель

Каскадтық сұлба 1970 – 1985 – жылдары ұсынылды. Осы сұлба бойынша жазылған программалар бір сатыдан екінші сатыға көшу үшін алдыңғы сатыдағы барлық талаптарды толық орындауы тиіс. Ол үшін осы сұлбада жазуға арналған программа алдын - ала әрбір саты үшін барлық талаптары анықталу керек. Бұл әдісте құрылу кезде пайда болатын өзекті мәселелердің ықтималдығы мейлінше аз болады. Практика жүзінде осы сұлбада құрылған программалар өте сирек кездеседі.

 


 

 

 

                                             

 

 

 

6-сурет. Каскадтық модельдің сұлбасы

 
Аралық тексеру моделі

Итерациялық мінездемені қолдайтын сұлбаны аралық тексеру моделi деп атаймыз. Бұл сұлба бойынша  әрбір сатыны аяқтағаннан кейін кез - келген деңгейге келіп, керекті өзгертулерді енгізе беруге болады.  

                      

 

 

 

 

 

 

 

 

 

 

 


7-сурет. Аралық тексеру моделінің сұлбасы

 

Спиральдық модель

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

 

8-сурет. Спиральдық модельдің сұлбасы

Case технологиясы программаның құрылуын бірнеше есе жеңілдетеді. Программа құрудың автоматтандырылуы прототипті жүйелердің құрылуының уақытын азайтып, жобалаудың үрдісін жылдамтады.

Спиральды модель мен Case технологиясының пайда болуы RAD технологиясының дамуын жылдамдатты ( RAD – қосымшаны тез жасау ). RAD технологиясы бойынша жоба құруды жылдамдату үшін келесі шарттарды орындау керек:

а) 3 – 7 адамнан тұратын программа құрушылардың тобын анықтау;

б) итерациялық әдіс арқылы прототиптерді құру;

в) жұмыс істеу графигін анықтау. Жобалау мен анализ жасау RAD технологиясының негізгі бөлігі болып табылады.

 

Дәріс – 4. Программалық өнімдердің технологияларын қамтамасыз ету әдістері. Программаның технологиялық түсінігі

 

Дәрістің мазмұны:

- программаның технологиялық түсінігі; моделдер мен олардың қасиеттері.

 

Дәрістің мақсаты:

- программаның технологиялық түсінігін сараптау; программаның құндылығын бағалау; модульдерді тіркеу және олардын арсындағы байланыстарын қарастыру.

Программаның құндылығын бағалау

Құрылған программа әлемдік стандартқа сай болу үшін ISO – 9000 – ISO –9004 сериялармен марапатталуы тиіс. Ол үшін осы серияның керекті шарттарын орындау қажет. CMM тарауы осы шарттардың жиынтығынан тұрады және келесі 5 деңгейге бөлінген:

а) бастапқы деңгей – жобаға қатысатын программа құрушылардың білім деңгейі жоғары, тәжірибесі мол және сапалы менеджерлердің болуын қадағалау;

б) қайталау деңгейі – жобаны жобалаумен басқаруды, сапасын арттыруды қадағалайтын топтың бар болуы;

в) анықтау деңгейі – программа құру және алып жүруді. қамтамасыз ету. Программаның барлық бөлігін толық құжаттауға арналған топты құру. Осы деңгейге қатысушылардың да белгілі деңгейін өсіруді қамтамасыз ету керек;

г) басқару деңгейі – программа сапасын бағалау шарттарын анықтауды ұйымдастыру;

д) оптималдау деңгейі – жаңа технологияларды қолданып, жетілдіріп отыру. Программаның құнының арзандығын қамтамасыз ету.

 

Программаның технологиялық түсінігі

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

 

Модульдер мен олардың қасиеттері

Күрделі есептерді Программалауда компоненттердің декомпозициялық құрылысы қолданылады. Қазіргі кезде декомпозициялық әдістің 2 түрі қолданылады:

а) процедуралық;

б) нысандық.

Ішкі программалардың процедураларынан құрылған программаны процедуралық декомпозиция деп атайды. Модульдер  программасының бөлігін автоматты бейтарап түрінде компиляция жасайтын бөлікті модель деп атайды. Қазіргі кезде программа өлшемінің тез өсуіне байланысты ресурстар библиотекасы пайда болды. Ресурстар библиотекасына тұрақтылар, айнымалылар, типтердің жазбалары, кластар және ішкі программалар жатады. Нысанды программалауда, модель деген түсінік ретінде автономды немесе бейтарап компиляция жасайтын ресурстар программаларынан тұратын бөлімді қарастырады.

Алғашқыда модельге келесі талаптар қойылады:

а) жеке компиляциялануы;

б) кіруге бір – ақ нысанның болуы;

в) шығуға бір – ақ нысанның болуы;

г) тік түрінде басқарылуы;

д) басқа модельдерді шақыруға мүмкіндігі бар болуы;

е) өлшемі шектеулі 50-60 операторлардан аспауы тиіс;

ж) бір функцияда орындалуы.

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

 

Модельдерді тіркеу

Қазіргі кезде қойылатын есептің күрделілігіне байланысты қосымша модельдерді құруға тура келеді. Программа сапасын жақсарту үшін осы құрылған модельдерді тіркеген дұрыс. Модельдерді тіркеудің 5 түрі бар:

а) мәліметтер арқылы;

б) үлгілер арқылы;

в) басқару арқылы;

г) мәліметтердің жалпы облысы арқылы;

д) құрамы ( содержание ) арқылы.

Мәліметтер арқылы құрылған модель мәліметтер арқылы алмасуға арналған.

Function Max ( a, b : integer ) : integer ;

begin

if  a > b then Max : = a

ELSE    Max : = b ;

end ;

Модульдердің байланысы

Модульдердiң байланысы деп бір модульдің ішінде функционалдық және ақпараттық нысандардың берік қосындысын және бір-бірімен байланысу элементтерінің дәрежесін бір модульде қолдануын айтады. Элементтердің бір -бірімен тығыз байланыстылығы, бір модульде орналасуы модульдер арасындағы байланыстылығын және бір-біріне бағыныштылығын кемітеді. Бірақ әр түрлі модульдегі элементтерінің бір-бірімен тығыз байланысы модульдер арасындағы байланысты күшейтіп қана қоймай, бір- бірімен келісілген іс-әрекеті туралы түсінікті қиындатады. Бір-бірімен байланысы тығыз емес элементтердің біреуі модульдің технология мүмкіндігін кемітеді. Қазіргі кезде кему реті бойынша орналасқан келесі байланыстарды кездестіруге болады:

а) функционалдық;

б) тізбектелген;

в) ақпараттық;

г) процедуралық;

д) уақытаралық;

е) логикалық;

ж) кездейсоқ.

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

 

 

 

 

Тізбектелген байланысқа бір функциядан шыққан мәлімет келесі функция үшін кіруге арналған мәлімет болып табылады. Мұндай байланысы бар модуль екі функция үшін кіруге, бір нүктесі бар бір ішкі программа орындауға арналған құрылымды программа болып есептеледі. Тізбектелген байланысы бар функциядан тұратын модульдар тізбегіне немесе функционалдық байланысына байланысты бірнеше модульдерге бөлуге болады. Осы түрдегі модельдерде бірнеше функциялардың болуы, тестілеу түріндегі тексерулерді қиындатады. Сондықтан осы байланыстың технологиялық мүмкіндігі бірінші байланысқа қарағанда кеми түседі.

 

 

 

 

 

 

 


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

 

 

 

 

 

 

 

 

 

 


Дәріс – 5. Программалық өнімдердің технологияларын қамтамасыз ету әдістері. Шығатын ( восходящий ) және шықпайтын ( неисходящий) әдістер

 

Дәрістің мазмұны:

-     программаның технологиялық түсінігі; моделдер мен олардың қасиеттері; шығатын ( восходящий ) және шықпайтын ( неисходящий) әдістер.

 

Дәрістің мақсаты:

-     программаның технологиялық түсінігін сраптау; модульдерді арсындағы байланыстарды; шығатын және шықпайтын әдістерді қарастыру.

 

Модульдердің байланысы

 

Функциялар немесе мәліметтердің процедуралық байланысы бір үрдістің бөлігі болып табылады. Егер функциялар модельдік программаны альтернативті бөлігі түрінде біріктірсе, онда  модельдегі функцияларды процедуралық байланысы түрінде қарастыруға болады. Барлық әрекеттер жалпы үрдісте ғана орындалатын болғандықтан кейбір элементтердің әлсіз байланысы процедуралық байланыстың технологиялық мүмкіндігі жоғарыда айтылған бөлімдерге қарағанда кең болады.

 

 

 

 

 

 

 


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

 

 

 

 

 

 

 

 

Мәліметтердің немесе функциялардың бір топқа логикалық бірігуін логикалық байланыс деп атайды. Мысалы: Бір типтегі мәліметтерді немесе мәтіндік ақпараттарды өңдеуге арналған функцияларды қарастыруға болады. Уақытаралық байланысы бар модульдерге қарағанда логикалық байланысы бар модельдер  анағұрлым күрделі, технологияны білу мүмкіндігі кең болады.

Егер элементтер арасындағы байланыс аз немесе жоқ болатын болса, онда бұндай байланыс түрін кездейсоқ байланыс деп атайды. Элементтердің арасындағы байланыс өте аз болғандықтан кездейсоқ байланыстың технологиялық  көрсеткіші ішіндегі ең кемі болып табылады.

 

Ресурстар библиотекасы

Ресурстар библиотекасының екі түрі бар:

а) ішкі;

б) кластар библиотекасы.

 

Жақын тағайындалған іс-әрекеттердің  функцияларының программалар-ының жиынтығы ресурстар библиотекасын құрайды. Осы библиотекадағы программалардың бір–бірімен байланысы логикалық та, ал программалардың өзіндегі байланыс функционалдық болады. Жақын тағайындалған кластар жиынтығы кластар библиотекасын құрайды. Кластағы элементтер арасындағы байланыс ақпараттық та, ал кластар арасындағы байланыс функционалдық болады.

 

Шығатын ( восходящий ) және шықпайтын ( неисходящий )

 

Жобаны жобалау, енгізу және ирархиялық сұлба бойынша тестілеу декомпозиция көмегімен алу кездерінде екі тәсілді қолданады:

а) шығатын;

б) шыпайтын.

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

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

Осы әдістен келесі тәсілдерді қолдануға болады:

а) ирархиялық тәсіл. Программаны құруды, деңгейлік режимді қатаң сақтауды ұсынады. Осы тәсілдің негізгі өзекті мәселесі - бітегіштің көптігі;

б) операциялық тәсіл. Модульдерді құруды, программаны жұмыс істеу тәртібінің сұлбасы бойынша іске асыруды ұсынады. Негізгі қиыншылығы  - модульдердің жұмыс істеу реті мәліметтерге байланысты болуы мүмкін. Мәліметтерді шығаруға арналған модульдер ең төменгі деңгей болуына қарамастан күрделі бітегіштерді қолданбау үшін алғашқылардың  бірі болып құрылуы керек.  Осы тәсілді қолдану кезінде көптеген негізгі модульдер жоба соңында құрылатын болғандықтан адам ресурстарын әр деңгейге бөлуге қиындықтар туғызады;

в) Комбинирленген  тәсіл. Комбинирленген тәсіл құруға әсер ететін келес факторлармен санасады:

1)     модульдер жетістігі – барлық  модульдер ішінен керекті модульді берілген ретімен шақыру;

2)     мәліметтерге байланыстылығы – мәліметтерді құратын модульдер өңдеуге арналған модульдерден бұрын ұйымдастыру;

3)      нәтижесін беру мүмкіндігін қамтамасыз ету – мәліметтерді беруге арналған модульдерді өңдеуге арналған модульдерден бұрын ұйымдастыру;

4)     көмекші модульдердің дайындығы – көмекші модульдерді өңдеуге арналған модульдерден бұрын ұйымдастыру;

5)     керекті ресурстардың болуы.

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

Шықпайтын әдістің қасиеттері:

а) жобаланатын компоненттердің спецификациясын толық анықтайды және компоненттер арасындағы байланыстарын қамтамасыз етеді;

б) қолданушыға арналған алдын ала анықталған интерфейс көмегімен тұтынушыға демонстрация (көрсете) жасай отырып құрылатын программаға керекті түзетулерді қамтамасыз етеді;

в) тестілеу және комплексті отладка жасау мүмкіндігін қажет етеді.

 

Құрылымды және құрылымды емес программалау

 

Технологиясы жоғарғы деңгейдегі программа құрудың тәсілдерінің бірі – құрылымды программалау. Құрылымды программалаудың үш түрі бар:

а) сызықты құрылымды;

б) тармақталған құрылымды;

в) циклды құрылымды.

 

Дәріс – 6. Программалық қамтаманы жобалау үшін берілген деректер мен қойылатын талаптарды анықтау

 

Дәрістің мазмұны:

-     функционалдық белгілерін классификациялау; эксплутатцияға қойылатын талаптар; жобалаудын алғашқы сатыларындағы графикалық модельдер.

Дәрістің мақсаты:

-     функцииналдық белгілеріне байланысты графикалық модельдерді сараптау; графикалық және техникалық есептерді құру; жобалаудың алғашқы сатыларындағы модельдерді қарастыру; графикалық диаграммаларды қолдану.

 

Графикалық модельдер құру үшін қолданатын сұлбаның белгілері:

_ _ _ _ _ _ _    

Түсiнiктеме

 

Косқыш

 

Сызықтық үзiлiстiң маркировкасы

 
Блок-схема: узел: аты

Түсiнiк-теме

 

Операцияға түсiнiктеме

 

Процедураны шақыру

 

Алдын-ала аныктал-ган урдiс

 
Блок-схема: типовой процесс: Аты

Кез-келген цикл

 

Басы

 

Аяғы

 

Циклдiң шекарасы

 

 

 
Блок-схема: подготовка: әрекет

Дайындық

 

Циклды санау

 

Шешу

 

Тармақталу, таңдау жане циклды iздеу

 
Ромб: шарт

Үрдiс

 

Мәлiметтердi өңдеу

 

әрекет

 
Блок-схема: знак завершения: әрекет

Программаның басын немесе сонын бiлдiредi

 

Термина-тор

 

Тағайындалуы

 

Белгiсi

 

Аты

 

 

 

Flow формаларын және Насси – Шнейдерман диаграммалары

 

Программа алгоритмінде сұлбадан басқа псевдокодтар, Flow формаларын және Насси – Шнейдерман диаграммаларын қолдануға болады:

а) псевдокодтар – алгоритмдердің мәтіндік түрде жазылу түрі. Мысалы мәтіндік түрі;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


б) flow формалары сұлбалы алгоритмдерді графикалық натациялау (бейнелеу) түрінде енгізіліп көрсетіп енгізілген сұлба түрінде бейнелейді. Барлық сұлбалы алгоритмдер төртбұрыштардың ішіне салынады. Төртбұрыштардың көлемі алгоритмнің сұлбасына байланысты.

Мысалы:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


Насси – Шнейдерман диаграммалары

 

Flow формасының дамыған түрi Нассе – Шнейдерман диаграммасы деп аталады. Насси – Шнейдерман диаграммасының Flow формасынан айырмашылығы шартты белгiлердi және тармақталған варианттарының облыстарын үшбұрыш түрінде бейнелейді. Псевдокодтар арқылы жазылған сұлбалы емес алгоритмдерге Flow формалары мен Насси – Шнейдерман диаграммалары қолданылмайды.

Насси– Шнейдерман диаграммалары:

 

 

 

 

 

 

 

 

Программаны өрнектеп жазу стилі

 

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

а) программа нысандарының атын беру ережесін сақтау;

б) модульдерді ереже бойынша өрнектеп жазу;

в) модульдердің мәтіндерін өрнектеп жазу стилін сақтау.

 

Программаның атын беру ережелері келесі бөлімдерден тұрады:

 а) Нысандар аттары өзінің мазмұнына сәйкес келуін қамтамасыз ету;

б) Программалық тілдің мүмкіндіктеріне байланысты “ – ” белгісін қолдану;

в) Ұқсас аттардан қашықтау болу.

Модульдерді ереже бойынша өрнектеп жазу бөлімдеріне келесілер жатады:

а) модульдер атын тағайындау;

б) тағайындаудың қысқаша түсініктемесі;

в) енгізуге және шығаруға арналған параметрлердің өлшем бірліктерімен қоса қысқаша түсініктемесі;

г) қолданылатын (шақырылатын) модульдер тізімі;

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

е) программаның авторының аты – жөні;

ж) идентификациялауға арналған ақпарат.

 

{ ************************************************************** }

{ *  функция  Lengthpaft ( n:word; L:array of real ) :real                             * }

{ *  Мақсаты: қосылған кесінділердің ұзындығын анықтау                         * }

{ *     енгізілетін мәліметтер:  ×××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××       * }

{ *                         n – кесіндінің саны                                                              * }

{ *                         l – массив түрінде берілген кесінділер ұзындықтары      * }

{ *   Жауабы: ұзындық    ×××××××××××××××××××××××××××××××××××                                               * }

{ *   шақырылатын модульдер:      жоқ                                                           * }

{ *    алгоритмнің жазылуы                                                                              * }

{ *     кесінділерді жинақтау әдісі бойынша қосу,     101* n ³ 0                   * }

{ *     Мерзімі:                                         Версия          101                               * }

{ *     Авторы:     Аты – жөні                                                                            * }

{ *     Қайта өңделуі :     жоқ                                                                             * }

{ ************************************************************** }

                                           

 

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

Стильдер түрлері: бос орын қалдыру, жылжыта отырып жазу т.б.

Мысалы:

{ *Кесінділер санын тексеру немесе кесінді берілмесе шығу (жұмысты тоқтату)*}

 

if  n < = 0  then 

begin

writeln ( ¢ Кесіндінің саны теріс немесе терілмеген ¢ ) ;

Exit ;

end ;                                         

{  *          Кесінділер ұзындығының қосындысын табатын бөлік                             *}

 S: = 0 ;

for  i: = 1  to  n  do

Егер программа ассемблер тілінде жазылса онда осы модульді өрнектеп жазу келесі түрде берілуі мүмкін.

Мысалы:

; массив       элементтерiнiң қосындысын табатын цикл

                     циклдiң орнатылуы

                     mov AX, 0   ;  қосындыны нөлге айналдыру

                     mov CX, n   ;  цикл санағышын жiктеу

                     mov BX, 0   ;  массивтiң 1-элементiн ауыстыру

; cycle          цикл денесi

                     add AX, A[BX]  ;  элементтердi қосу

                     add BX, 2           ;  келесi элементтiң адресiн анықтау

                     loop cycle           ;  n рет қайталау

; санағыштың мәнi 0-ге тең болған кезде программадан шығу

 

Дәріс – 7. Есептің негізгі алгоритмі

 

Дәрістің мазмұны:

-     алгоритмдерді анықтау; блок-сұлбалардың алгоитмі; сызықтық және тармақталған алгоритмдер; күрделі циклдер алгоритмдері.

Дәрістің мақсаты:

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

 

Сызықтық, күрделі және тармақталып құрлған алгоритмдер

Программалық тілде тұрақтылар: сандық тұрақтылар, булевтік  және символдық  болып бөлінеді.

Сандық тұрақтылар бүтін және нақты типтерде жазылуы мүмкін.

Бүтін тұрақты сандар алдында +  немесе – таңбалары бар цифрлар тізбегінен тұрады. Мысалы: 158; -15; 23745.

Нақты сандарды екі түрде жазуға болады:

ондық бөлшек түрінде, яғни цифрлар мен ондық нүктеден тұратын сан;

экспоненциалды түрде, яғни мантиссадан кейін Е әрпінен не осы әріптен кейін дәреже көрсеткішінен тұратын сан.

Мысалы:  -1.234

              2.5E9         

       0.13E-10     

Булевтік тұрақтылар (boolean).

Логикалық тұрақтылар .Trul. (ақиқат) және False (жалған)  символдарымен белгіленеді.

Символдық тұрақтылар. Символдық (текстік) тұрақтылар символдар тізбегінен тұрады. Символдық тұрақтылар апострофқа  алынып, жолға жазылған символдар түрінде беріледі. Мысалы: ‘A’, ‘1’,’=’.

Идентификаторлар.

Идентификатор дегеніміз әріптен басталып, әріптер мен цифрлар жиынынан тұратын тізбек. Идентификаторды құрайтын символдар 8-ден аспауы тиіс. Мысалы: A; ALMAT; X15; ZR.

Идентификаторды айнымалыларды, функцияларды, процедураларды белгілеу үшін пайданылады.  Айнымалылар дегеніміз әртүрлі мәнді қабылдайтын шама. Айнымалылар қарапайым және индексті болып екі топқа бөлінеді. Қарапайым айнымалылар идентификатормен белгіленген сандық, логикалық және символдық мәндерді қабылдайтын шама.

Қарапайым айнымалының қабылдайтын мәндерінің түріне байланысты (мәселен, бүтін (іnteger), нақты (real), логикалық (boolean) т.с.с.) идентификатордың да сәйкес түрлері болуы тиіс, яғни программаның (блоктың) басында идентификаторлар қабылдайтын мәндердің түрін анықтайтын сипаттама орналасады. Егер бір түрге жататын бірнеше айнымалылар болса, онда олардың идентификаторы үтірлер арқылы бөлектеніп тізіліп жазылады.

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

Өрнекті құрастырғанда екі арифметикалық амал қатар орналаспауы керек. Арифметикалық амалдардың орындалуында белгілі бір сатылық заңдылық бар:

бірінші кезекте дәрежелеу амалы

екінші  кезекте көбейту және бөлу амалы

екінші  кезекте қосу және азайту амалдары орындалады.

Амалдардың орындалу реттілігін жақша енгізу арқылы өзгертуге болады. Егер арифметикалық өрнек ішінде операнда ретінде функция кездесетін болса, онда әуелі функция мәні есептелінетін болады.

Тілдердің программасы бір-бірінен нүктелі үтірмен айырылған сипаттаулар мен операторлар тізбегінен тұрады. Программаның орындалуы дегеніміз ондағы операторлардың орындалуы. Егер операторлар өздерінің орналасу реті бойынша орындалса, онда алгоритмді сызықты құрылымды алгоритм деп атаймыз.

Сызықты құрылымды алгоритмдерді программалау үшін меншіктеу операторының мәндерін компьютер жадына енгізу үшін, енгізуге арналған  және есептелген нәтижелерді қорытындылау үшін, шығаруға арналған операторлар қолданылады.

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

Программадағы операторлар өздерінің орналасу реті бойынша біртіндеп орындалады. Осындай орналасу бойынша орындалу ретін өзгерту үшін арнаулы басқарушы операторлар қолданылады. Басқарушы операторлардың атқаратын қызметі белгілі бір шарттың орындалуына немесе шартсыз түрде өту есептеу процесінің бағытын зерттеуге байланысты.

Операторлардың табиғи орындалу ретін өзгерту  үшін:

-goto - шартсыз өтуді ұйымдастыратын оператор;

Іf – then – шартты өту операторы қолданылады.

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

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

Цикл операторлары программалық тілдердің негізгі операторларының бірі. Паскаль және С++ тілінде циклды ұйымдастыру үшін for, whіle операторлары қолданылады.

Циклы for операторы көмегімен ұйымдастыру. Егер циклың неше рет қайталанып есептелінуі белгілі болса, онда циклды for операторы арқылы ұйымдастырған ыңғайлы.

Цикл денесінен кейін тексеру тобына жататын операторлар шарт орындалуына байланыссыз алғаш рет әр уақытта цикл денесіне кіре алады. Әрбір итарация сайын тұрақты түрде өзгеріп отыратын қадам цикл счетчигі деп аталады. Циклдық операторлар жұмыс істеуін тоқтатады, егер шарт орындалмаса. Немесе келесі операторлардың көмегімен: break, continue, return, goto циклдық операторлар жұмыс істеуін уақытынан бұрын тоқтатуға болады.

Циклдық алгоритмдерді программалауға арналған For операторының мүмкіндігін С++ және паскаль тілдерінде қарастырайық.

1. Паскаль тілінде For операторының жалпы жазылу түрі:

For і:=m1 to m2 do S; немесе For і:=m1 to downto m2  do S;

мұндағы іцикл параметрі; і-бүтін типті қарапайым айнымалы; m1 және m2 –параметрдің алғашқы және соңғы мәні; S-циклдың денесі.

To кілттік сөзін қолданғанда цикл параметрінің өзгеру қадамы +1, ал Downto кілттік сөзін қолданғанда –1-ге тең.

2. С++ тілінде For операторының  жалпы жазылу түрі:

For ( өрнек1; өрнек2; өрнек3)

{операторлар}

өрнек1 – цикл айнымалының бастапқы мәні.

өрнек2 – цикл айнымалының  шарты.

өрнек3 – цикл айнымалының  қадамы.

Өрнектер бір – бірінен нүктелі үтір арқылы бөлінеді. Осы өрнектерді бірнеше рет жаза беруге болады.

өрнек1= өрнек1.1., өрнек1.2., . . .

Өрнек2 бірнеше шарттан тұрса және олардың біреуі орындалса, For операторы жұмыс істеуін тоқтатады.

Өрнек1 цикл орындалғанға дейін орындалады. Егер өрнек2 ақиқат болса, циклдық операторлары жұмыс істейді. Содан кейін өрнек3 орындалады. Өрнек3 болмаса, оны цикл денесіне жаза беруге болады. Өрнек3 екеуінде де берілмесе, цикл қадамы өзгермей программа бір орнында шексіз тұрып қалады.

For операторында қадам кез - келген және бірнеше болуы мүмкін.

Өрнек2 мәні жалған болған жағдайда цикл жұмыс істеуін тоқтатады.

For – да операторларды жазбауға болады, бірақ нүкте үтірді міндетті түрде жазу керек.

 

Дәріс – 8. Процедуралық-бағытталған тілдер базасында программалау. Процедуралық-бағытталған тілдер

 

Дәрістің мазмұны:

-     процедуралық-бағытталған тілдер туралы түсінік; объектілерді жазу тәртіптері; типтер; тұрақтылар; айнымалылар; стандартты типті деректер; арифметикалық және логикалық өрнектер.

 

Дәрістің мақсаты:

- процедуралық-бағытталған тілдердің мақсаты мен тәртіптерін үйрену; процедуралық-бағытталған тілдерде тұрақтыларды, айнымалыларды, стандартты типтерді, деректерді, арифметикалық және логикалық өрнектерді қарастыру; объектілердің жазылу тәртіптерін, мақсатын, қасиеттерін және оқиғаларын талқылау.

 

Процедуралық-бағытталған тілдер

Объектті бағытталған программалаудың негізгі түсінігі және программаның элементі болып мәліметтердің жиынтығын, сондай-ақ оларға жасалатын әрекеттерді үйлестіретін объект болып табылады. Процедуралық-бағытталған тілдердің бірі ретінде Delphi-ді қарастырайық. Delphi тіліндегі қолданбалы программалар немесе қосымшалар IDE (Integrated Development Environment) дамып отыратын құрылымдық ортада орындалады. IDE ортасы программаушының қарым-қатынасын ұйымдастырып, әр түрлі басқару элементтерінен құралған бірнеше терезелерден тұрады. Осы ортаның құралдарын пайдалана отырып, қосымшаның интерфейстік бөлігін жобалауға, программаның кодын жазуға және оны басқару элементтерімен байланыстыруға болады. Аталған жұмыстар және программаны түзету, оны орындау әрекеттері IDE  ортасында орындалады.

Delphi-дің IDE  ортасы көптерезелік жүйе деп саналады. Delphi оқиғалар бойынша басқарылатын объекті бағытталған, визуалды-программалау тілі болып саналады, және жалпы мөлшерде жобалаудың қазіргі құралдарына ұсынылатын жаңа талаптарға сәйкес келеді.  Delphi тілі программада объектілерді келесі элементтер арқылы басқарады.

Объектілер инспекторы терезесі таңдап алынған компоненттердің қасиеттерін өзгерту үшін арналған және екі беттен тұрады. Properties (қасиеттер) беті компоненттердің қажетті қасиеттерін өзгерту үшін арналған. Events (оқиғалар)  беті– қандай да бір оқиғаға компоненттің  реакциясын анықтау үшін  арналған (мысалы,  “тышқанның” батырмасын басу).

Форма терезесі жобаланатын Windows-қосымшасының  интерфейсін ұсынады. Осы терезеге қосымшаны жобалау кезінде қажетті компоненттер орналастырылады, компоненттерді өңдеуші компоненттер палитрасынан алады. Жобаның әрбір формасына  модуль (Unit) сәйкес келеді, оның Object Pascal тіліндегі мәтіні код редакторы терезесіне орналастырылады.

Код Редакторы терезесі  жоба модулінің мәтінін көру, құру және редакторлау үшін арналған. Бастапқы жүктемелеуде код редакторы терезесінде  Windows-қосымшасы ретінде бос форманың қалыптасуы үшін операторлардың минималды жиынтығынан тұратын модуль мәтіні болады. Форма терезесінде кейбір  компонентті орналастыру кезінде, модуль мәтіні автоматты түрде қажетті операторлармен толықтырылады.

Форманы құру, клавиатура пернесін немесе тышқан батырмасын басу, т.б. сияқты жүйеде орындалатын барлық оқиғалар  туралы Windows ядросы терезелерді қажетті хабарламаларды жіберу арқылы  ақпараттайды. DELPHI  ортасы оқиғаларды өңдеушілер  көмегі арқылы хабарламаларды қабылдайды және өңдейді (мысалы, “тышқан” батырмасын басу– OnClick оқиғасы, форманы құру – OnCreate). Көбінесе жиі қолданылатын оқиғалар 1.1 кестеде ұсынылған.

1.1- кесте

Оқиғалар

Оқиғалардың сипаттамасы

OnActivate

Форманы активтеу кезінде қалыптасады

OnCreate

 

Форманы құру кезінде қалыптасады. Берілген оқиғаның өңдеушісінде форманы құру кезінде орындалатын әрекеттерді беру керек, мысалы бастапқы мәндерді орнату.

OnClick

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

OnDblClick

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

OnKeyPress

 

Пернетақта пернелерін басу кезінде орындалады. Key параметрі Char түрінде болады және басылған перненің ASCII-кодынан тұрады (Enter  пернесі нің коды #13,  Esc пернесінікі - #27 және т.с.с.). Әдетте бұл оқиға пернелердің бірін басу кезінде реакция қажет болған жағдайда қолданылады.

OnKeyDown

Пернетақта пернелерін басу кезінде орындалады.  Бұл оқиғаның өңдеушісі басылған перне және Shift, Alt, Ctrl пернелерінің күйі, сондай-ақ тышқанның батырмасының басылуы  туралы ақпарат алады.

 

Оқиғаның өңдеушісін құру үшін программист объектілер инспекторы терезесінің жоғарғы жағында компоненттер тізімін ашуы  және қажетті компонентті таңдауы керек. Содан кейін, объектілер инспекторының  Events бетінде, тышқанның сол жақ батырмасын басу арқылы өңдеушінің атын таңдауы және оның оң жақ (ақ) бөлігін екі рет шертуі қажет. Оған жауап ретінде  DELPHI код редакторы терезесін активтейді және таңдалған оқиғаның өңдеу процедурасының  дайындамасын көрсетеді. Әрбір өңделетін оқиға үшін модуль мәтінінде  процедура (procedure) қалыптасады,  бұның begin және end  кілт сөздері арасында программист Object Pascal тілінде оқиға өңдеушісінің талап етілетін алгоритмін жазады.

DELPHI тілінде тұрақтылар: сандық тұрақтылар, булевтік  және символдық  болып бөлінеді.

Сандық тұрақтылар бүтін (іnteger) және нақты (real) типтерде жазылуы мүмкін.

Нақты сандарды (real) ондық бөлшек түрінде, яғни цифрлар мен ондық нүктеден тұратын сан немесе экспоненциалды түрде, яғни мантиссадан кейін Е әрпінен не осы әріптен кейін дәреже көрсеткішінен тұратын сан.

Булевтік тұрақтылар boolean және символдық тұрақтылар char немесе string командалары арқылы сипатталады. Символдық (текстік) тұрақтылар символдар тізбегінен тұрады.

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

Формаға жазуларды енгізу үшін Label компоненті қолданылады. Компоненттер Палитрасында Standard бетінде Label компонентінің    пиктограммасын таңдаңыз және оның үстінен “тышқанмен” шертіңіз. Осыдан кейін Форманың керек жерінен “тышқанмен” шертіңіз -  Label1 жазуы пайда болады.  Объектілер  инспекторының Caption қасиетінде Label1 жазуынның орнына керекті хабар жазуға болады. Мәліметтерді енгізу/шығару үшін қарапайым жағдайларда Edit және Memo компоненттері қолданылады. Edit  компоненті мәліметтер бір жолмен көрсетілген кезде қолданылады. Егер мәліметтер бірнеше жолдардан тұрса, онда  Memo компоненті қолданылады.

x, y және z айнымалыларының сандық мәндерін енгізу өрістерін құру үшін Edit компонентін қолданамыз.  Компоненттер  палитрасының Standard бетінен пиктограммасын таңдаймыз және Edit  компонентін форманың керек жеріне орналастырамыз.

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

Шаманы есептейтін батырманы Формаға орналастыру үшін компоненттер  палитрасында Standart бетінде Button компонентінің   пиктограммасын таңдаймыз. Осыдан кейін батырманың үстінен “тышқанмен”  екі рет шертіп,  сонда курсор  Button1 батырмасын басу оқиғасын өңдеуші процедурасының мәтінінде орналастырылады: Procedure TForm1.Button1Click(Sender:TObject). Осы процедураға керекті программаны жазамыз.

 

procedure TForm1.Button1Click(Sender: TObject);

 begin

 {Программаны жазу}

end;

 

Edit және Memo компоненттері жұмыс жасайтын мәліметтер  String түрінде болады. Сондықтан TForm1.Button1Click процедурасында StrToFloat  функциясы көмегімен X,Y,Z айнымалыларына  Edit1,Edit2,Edit3 өрістерінің мәндері меншіктелген кезде, String түріндегі мәліметтердің  Extended түріндегі қалқымалы нүктесі бар нақты мәндер түріне ауысуы орындалады.  Бүтін түрдегі мәліметтермен жұмыс жасау керек болса, StrToInt функциясы пайдаланылады.

Мәліметтерді Memo1-ға шығарған кезде Lines қасиетінің Add әдісі пайдаланылады. Мәліметтерді нақты мәннен жолдық мәнге ауыстыру үшін және шығаратын нәтижені ұсынатын форманы басқару FloatToStrF функциясы пайдаланылады.

 

С++ тілінде қолданылатын мәліметтердің негізгі типтері

 

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

int – бүтіндік

char – символдық

wchar_t – кеңейтілген символдық

bool – логикалық

float – нақты сандар

double – дәлдігі екі есе жоғары нақты сандар

Алғашқы төрт типті бүтін санды типтер деп, ал келесі екеуін жылжымалы нүктелі типтер деп атаймыз. Осы стандартты типтерді нақтылау үшін келесі төрт мамандандырылған типтерді қолданамыз:

short – қысқа

long – ұзын

signed – таңбалы

unsigned – таңбасыз

 

Дәріс – 9. Процедуралық-баытталған тілдер базасында программалау. Процедуралық-баытталған тілде программалау

 

Дәрістің мазмұны:

-     процедуралық-бағытталған тілде программалау; сызықтық және тармақталып құрылған программалар; массивтер; программалардың жазылу тәртіптері, объектілер.

 

Дәрістің мақсаты:

- процедуралық-бағытталған тілдерде сызықтық және тармақталып құрылған программаларды құрастыру; массивтермен және объектілермен жұмыс істеу; программа құрылымдарын зерттеу және мәліметтерді енгізіп шығару үшін компоненттерді қолдануды үйрену.

DELPHI –де объектілердің көмегі арқылы программалау

 

DELPHI –де қосымшаларды құрған жағдайда ауыстырғыш-батырмалар түріндегі компоненттер жиі қолданылады. Бұндай батырманың күйі (қосылған - өшірілген) Формада визуалды түрде бейнеленеді. Мысал ретінде қарапайым кез келген сызықтық есепті қарастырайық. Панелде( 9.1-сурет) ауыстырғыш- батырмалардың екі түрі көрсетілген: CheckBox және RadioGroup .

 

Выноска 2 (без границы): RadioGroup

 9.1-сурет. Форма түрі

 
Выноска 2 (без границы):   CheckBox

 

 

CheckBox компоненті тәуелсіз ауыстырғыш батырманы ұйымдастырады, бұның көмегімен пайдаланушы  “ия/жоқ” түріндегі өзінің шешімін көрсете алады.  RadioGroup  компоненті, батырмалар тобынан тұрады – тәуелді ауыстырғыштар. Батырмалар тобының бір батырмасын басқан кезде, барлық қалған батырмалар сөнеді.

9.1-суретке сәйкес Label, Edit және Memo  компоненттерін формаға орналастырайық. Компоненттер  палитрасындағы Standard бетінен CheckBox компонентінің  пиктограммасын таңдап аламыз және форманың керек жеріне орналастырамыз. Объектілер Инспекторының Caption қасиетінде CheckBox1 жазуының орнына мәліметтердің бақылау нәтижесі - деп жазайық. Қосымшаны орындалуға жіберген кезде CheckBox батырмасы қосылған болу үшін, Checked қасиетін True- деп өзгертеміз.

Standard компоненттер палитрасынан RadioGroup компонентінің   пиктограммасын таңдап алыңыз және Форманың керек жеріне орналастырамыз. Caption  қасиетінде RadioGroup1 атын  f(x) деп өзгертейік. Батырмаларды бір бағанаға орналастыру үшін,  Columns қасиетін 1-ге тең деп алыңыз.  “Тышқанмен” Items қасиетінің оң жағына екі рет шертіңіз  -  батырмалар аты тізімінің жолдық редакторы пайда болады. Екі жолға ат беріңіз: бірінші жолға- sin(x), екінші жолға - cos(x) және ОК-ны  басыңыз. Осыдан кейін формада сәйкес жазулары бар екі батырма-ауыстырғыштан тұратын топ пайда болады. Қосымшаны орындалуға жіберген кезде RadioGroup бірінші батырма қосылған болу үшін, ItemIndex қасиетін 0-ге деп алыңыз. Ары қарай керекті оқиғаны өңдейтін программаны басқаруға арналған батырманың процедурасына жазамыз.

StringGrid компоненті  ақпаратты кесте түрінде бейнелеу үшін қоданылады. Кесте екі зонадан тұрады – бекітілген және жұмыс. Бекітілген аймақ жұмыс аймағының жолдары мен бағаналарының атауларын шығару үшін және олардың көлемдерін “тышқан” көмегімен басқару үшін керек. Бекітілген аймақ басқа түспен боялған және оған ақпаратты пернелер тақтасынан енгізуге болмайды. Бекітілген аймақтың жолдары мен бағаналарының саны сәйкесінше FixedRows және FixedCols қасиеттерінде белгіленеді.

Жұмыс аймағы RowCount жолдары және ColCount бағаналары ақпараттарын қамтиды. Оларды прораммалық және “тышқан” немесе пернелер тақтасы көмегімен өзгертуге болады.

Программадағы ақпаратқа кіру мүмкіншілігі Cells[ACol, ARow: integer]: string қасиеті арқылы жүзеге асырылады, мұнда ACol- бағана нөмірі, ал ARow –жол нөмірі, нөмірлеу 0-ден басталады.

StringGrid компонентінің    пиктограммасы компоненттер тақтасының Additional бетінде орналасқан. Біздің тапсырмада барлық StringGrid компоненттері үшін бекітілген аймақ қолданбайтындықтан, объекттер инспекторында  FixedCols және FixedRows қасиеттерінің мәндерін 0 деп белгілеңіздер. Тапсырмаға сәйкес StringGrid1 компоненті үшін жолдар санының n және бағаналар санының m шекті мәндерін белгілеңіздер: ColCount=8, а RowCount=6 (8 бағана және 6 жол). StringGrid2 компоненті үшін ColCount=1, RowCount=8, ал StringGrid3 комопоненті  үшін ColCount=1, RowCount=6.

StringGrid компонентіне үнсіздік бойынша ақпаратты пернелер тақтасынан енгізуге тыйым салынған, сондықтан StringGrid1 компоненті үшін объектілер инспекторында Options қасиетінің символында «тышқанды» екі рет шерту керек және ашылған қасиеттер тізімінде goEditing мәнін True деп белгілейміз.

SpinEdit компоненттерімен жұмыс істеу ыңғайлы болу үшін SpinEdit1 компоненті үшін қасиеттерді былай белгілейміз: MinValue=1, MaxValue=6, ал SpinEdit2 компоненті үшін: MinValue=1, MaxValue=8.

SpinEdit1Change және SpinEdit2Change оқиғалары сәйкесінше SpinEdit1 және SpinEdit2 редактор өрісінде мәндердің кез-келген өзгеруінде пайда болады, бұл оқиғалардың өңдеуші процедурасын құрайық. Оларға SpinEdit редактор өрісінде алынған n және m мәндерін StringGrid компонентінің ColCount және RowCount қасиеттеріне меншіктеледі. Бұл SpinEdit компоненттері қосымша пернелерсіз арқылы StringGrid кестесінің көлемдерін басқаруға мүмкіншілік береді, себебі SpinEdit редактор өрісінің мәндерінің өзгеруі StringGrid кестесінің көлемінің өзгеруіне әкеледі. SpinEdit1 компонентінде «тышқанды» екі рет шертіңіздер – курсор SpinEdit1Change  оқиғасын өңдеу процедурасының мәтінінде тұрады: procedure TForm1.SpinEdit1Change(Sender: TObject). UnMas модулінің мәтінін қолданып, керекті процедураның операторын теруге болады.

StringGrid және Memo компоненттерін бір және екі өлшемді массивтермен жұмыс істеу үшін қолданады. Осы компонентер арқылы массивтердің мәндерін енгізуге немесе экранға шығаруға  арналған.

ListBox компоненті  жолды ұсынады, бұнда  элементтер пернетақта немесе “тышқан” көмегімен таңдалады. Элементттер тізімі Items қасиеті арқылы беріледі, бұның Add, Delete және Insert әдістері, сәйкесінше жолдарды қосу, жою, енгізу үшін пайдаланылады. Белгіленген элементтің нөмірін анықтау үшін ItemIndex  қасиеті қолданылады.

ComboBox компоненті ListBox тізімінің және Еdit редакторының комбинациясын ұсынады, сондықтан барлық қасиеттері осы компоненттерге тәуелденген. Редакторлеу терезесімен жұмыс жасау үшін  Edit- тегі тәрізді Text  қасиеті, ал таңдау тізімімен жұмыс жасау үшін  ListBox –тегі тәрізді Items қасиеті пайдаланылады.  Style  қасиетімен анықталатын компоненттің 5 модификациясы болады. csSimple модификациясында тізім әрқашан да ашық, қалғандарында ол редактордың оң жағындағы батырманы басқаннан кейін ашылады.

ListBox және ComboBox компоненттері компоненттер палитрасының Standard бетінде орналасқан.

Файлдармен жұмыс істеген кезде ақпаратты оқу мен жазуды OpenDialog және SaveDialog компоненттері арқылы жүзеге асыру ыңғайлы.

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

Формаға OpenDialog және SaveDialog компоненттерін орналастыру үшін компоненттер палитрасында  Dialogs бетінде сәйкес   немесе  пиктограммасын «тышқанмен» шерту керек және оны форманың кез келген бос жеріне орналастыру керек. Қосымшаны орындау барысында компонентті шақыру моментінде диалогтік терезе шығады. Оның көмегімен пайдаланушы файлдың атын және оның маршрутын таңдайды. Диалог сәтті аяқталса, таңдалған файлдың аты және іздеу маршруты FileName қасиеті құрамында болады.

Пайдаланушы диалог терезесінің параметрлерін өзінің қалауынша өңдей алады. Терезенің тақырыбын Title қасиеті арқылы өзгертуге болады. Егер ол пайдаланушымен берілген болса, онда DefaultExt қасиетінде файлдың кеңейтілуін көрсетуге болады. Filter қасиеті терезеде бейнелейтін файлдарды сүзіу (фильтрлеу) үшін қолданылады. Фильтрді орналастыру келесідей жүзеге асырылады. Сәйкес компонентті белгілегеннен соң, объектілер инспекторының Filter қасиетінің оң (ақ) бөлігін екі рет шерту керек. Filter Editor фильтр редакторының пайда болған терезесінде Filter Name бағанасында сәйкес фильтрді мінездемелейтін мәтінді теру керек, ал Filter фильтр бағанасында –масканы белгілеу керек.

 

Дәріс–10. Құрлымдық әдіс. Талаптарын талдау, спецификация-ларын анықтау және программалық қамтаманы жобалау

 

Дәрістің мазмұны:

-     программалық қамтаманың спецификациялары; мәліметтер құрлымы; есептің математикалық моделдері мен әдістері; программаның эффектілігі; Case-технологиялар.

 

Дәрістің мақсаты:

- программалық қамтаманың спецификациялары, эффектілігі мен технологиялығын қарастыру; есептін математикалық модельдері мен әдістерін, мәліметтер құрлымын және функцияналдық сұлбасын үйрену;  Case-технологияларымен жұмыс істеу.

 
Программаның эффектілігі мен технологиялығы

 

Программаның эффектілігі деп, жұмыс істеу уақытының аздылығы немесе оперативтік жадыдан көлемді аз қолдануды айтады. Егер программа көп уақыт жұмыс істейтін болса немесе жадыдан көп орын алатын болса, жоғарыда айтылғандарды орындауға тырысу керек (мүмкіндігінше эффектілігін арттыру керек).  Кері жағдайда компьютерді технологиялық мүмкіндігіне байланысты тоқтап қалу, өзін – өзі  қайта жүктеу сияқты жағымсыз жағдайларға ұшырауы мүмкін. Осы жағдайлардан қашық болу үшін компьютер мінездемелеріне немесе программаның жұмыс істеу эффектісіне тікелей қатысты бөліктерін қайта қараған дұрыс. Бұл бөліктерге көбінесе қайталау саны өте үлкен циклдық бөліктер жатады. Жұмыс істеу уақытын қысқарту көлемінің ұлғаюына (ал көлемінің ұлғаюы уакыттың өсуіне ) алып келетінін ұмытпау керек. Сондықтан программа сапасы туралы қатаң талаптар қойылғанда ғана әр түрлі әдістердің көмегімен программаның  эффектілігін күшейтуге болады. Программа эффектілігін өсіруді программаның орнына аздап болса да компилятор шешеді. Компилятор қолданатын оптималдау ортасы екі топтан тұрады:

а) машинаға байланысты дегеніміз – программа бір машина тіліне бағытталған. Кодтарды оптималдау машина командалар деңгейінде;

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

 

Құрылымды және құрылымды емес программалау

 

Технологиясы жоғарғы деңгейдегі программа құрудың тәсілдерінің бірі – құрылымды программалау. Құрылымды программалаудың үш түрі бар:

а) сызықты құрылымды;

б) тармақталған құрылымды;

в) циклды құрылымды.

 

Жадың  экономдау әдісі

 

Компьютерлік жады массивтерге, мәліметтерді жазуға, нысандарға және т.б. оқиғаларға көп орын бөледі. Жадыны экономдау үшін өңдеу үрдісінде мәліметтердің көшірмесін қажет етпейтін алгоритмдерді қолданған дұрыс. Мысалы: массивтерді реттеу.

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

TYPE    MAS = ARRAY [ 1..100 ] of real ;

Function   Summa ( const  A: MAS:  ...... )

 

Жұмыс істеу уақытын қысқарту әдістері  

 

Жұмыс істеу уақыты программаның саны үлкен қайталау циклдық бөлігіне тікелей қатысты. Уақытты қысқарту үшін мүмкіндігінше циклдың бөлігіне келесі талаптарды орындаған дұрыс:

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

б) циклге қатыссыз тұрақтыларды санайтын өрнектерді цикл бөлігінен шығару;

в) типтерді бейнелейтін өрнектерді ықшамдау;

г) индексі арқылы массив элементіне бірнеше рет қайталап сұрауды болдырмауға тырысу;

д) көп қайталанатын элементтерді бір рет скалярлық айнымалыларға сақтап қолдану;

е) өрнекте әр түрлі типтерді қолданбауға тырысу.

Циклдың жұмыс істеу уақыты, циклдың бір қадамына кететін уақыттың цикл санына көбейткенге тең.

Мысалы:

For  i : =1 to 100 do

For  j : =1 to 100 do

A[I +J] : = 2 * B [K, L] ;

 

BKL : = B[K, L];

For  i : =1 to 100 do

For  j : =1 to 100 do

A[I +J] : = 2 * BKL;

 

Артық тексеруден құтылу: 

 


for  k :=2  to  N  do

begin

if  x[k] > A  then  S:= S + y[k] – x[k];

if  ( x[k] < = A )  and  ( y[k] < A )  then  S:= S + A – x[k];

end;

 

for  k :=2  to  N  do

if  x[k] > A  then  S:= S + y[k] – x[k];

ELSE

if   y[k] < A   then  S:= S + A – x[k];

end;

 

Функционалдық принцип бойынша программалық өнімдердің классификациялары

 

Барлық программалық өнімдер тағайындаулары бойынша үш топқа бөлінеді:

а) жүйелік;

б) қолданбалы;

в) гибридтік.

Жүйелік программаларға есептеу жүйелерінің функциясын қамтамасыз ететін программалық тобын айтады. Осы топқа келесі программалар жатады: операциялық жүйелік, қабықшалар және т.б. қызмет көрсететін программалар. Мысалы: утилиттер тобына операциялық жүйеге жатпайтын барлық анықталған функциялар қызметін атқаратын программаларды айтады. Мысалы: архиваторлық файлдар. Вирусқа қарсы қолданылатын программалар, жұмыс істеуге мүмкіндік беретін және т.б. программалар.

Қолданбалы программалар. Қолданбалы программалар тұтынушылардың талаптарын нақты, тиянақты шешуге арналған программалар. Қолданбалы программаларды қолданатын қолданушыларды екі топқа бөлуге болады:

а) программа құрастырушылар;

б) компьютерлік жүйелер арқылы өз мақсатының орындалуын программау-шылар емес қолданушылар.

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

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

а) құрылатын есептердің шешу әдістерінің белгісіздігі;

б) ақпараттық үрдісті автоматтандыруға арналған сұлбаның белгісіздігі.

 

Дәріс–11. Объектілік әдіс. Талаптарын талдау, спецификацияларын анықтау және программалық қамтаманы жобалау

 

 Дәрістің мазмұны:

-     объектілік-бағыттау әдісі туралы түсінік; программалық өнімдерді құруға қолданатын объектілік әдістер; жүйелік оқиғалар мен операциялар; объектілер арасындағы қатынастар.

 

Дәрістің мақсаты:

- объектілік-бағыттау әдісі туралы түсініктер мен негізгі принциптері;  объектілік әдісті қолданудағы негізгі ерекшеліктерін, қолдану варианттарын және күйлерден өту диаграммаларын қарастыру; программаның компоненттерін жинау және техникалық есептерді құруды үйрену.

 

Объектілік-бағыттау әдіс туралы түсінік

Объекті бағытталған программалаудың негізгі түсінігі және программаның элементі болып мәліметтердің жиынтығын, сондай-ақ оларға жасалатын әрекеттерді үйлестіретін объект болып табылады. Объектілік-бағыттау тілідеріндегі қолданбалы программалар немесе қосымшалар IDE (Integrated Development Environment) дамып отыратын құрылымдық ортада орындалады. IDE ортасы программаушының қарым-қатынасын ұйымдастырып, әр түрлі басқару элементтерінен құралған бірнеше терезелерден тұрады. Осы ортаның құралдарын пайдалана отырып, қосымшаның интерфейстік бөлігін жобалауға, программаның кодын жазуға және оны басқару элементтерімен байланыстыруға болады. Аталған жұмыстар және программаны түзету, оны орындау әрекеттері IDE  ортасында орындалады. Объектілік-бағыттау тілдерінде барлық объектілер оқиғалар деп аталатын процедуралармен басқарылады. Басқару тәртіптері ұйымдастырылған объектілердің реттік номерлеріне байланысты. Объектілік-бағыттау тілдерінің негізгі ерекшелігі программаны құруға процедуралық әдісін қолдану мен барлық процедуралар бір-біріне байланыссыз жұмыс істей алатындығында. Мысалы Delphi тілінде келесі CheckBox , RadioGroup, Label, Edit, Memo,  StringGrid, ListBox, ComboBox компонентерінің көмегімен керекті оқиғаны өңдейтін программаны басқаруға арналған  процедураны жазуға болады.

 

Техникалық есептерді құру

Техникалық есептерді құрудың негізгі мақсаты – программа бөліміне қойылатын талаптарды құру сатыларымен тексеру үрдістерін айғақтайтын құжат. Техникалық есепті екі жағы да  (тұтынушылар мен құрастырушылар) бірігіп құрастырады. Техникалық есеп келісілген стандарт бойынша келесі тараулардан тұруы керек:

а) кіріспе;

б) құрудың негізі;

в) құралатын программаның тағайындалуы;

г) программалық өнімге қойылатын талап;

д) программалық құжатқа қойылатын талап;

е) техникалық және экономикалық көрсеткіштері;

ж) құру сатылары;

з) тексеру тәртіптері және қолдану уақыты.

Осы тараулар ішіндегі ең негізгі бөлігі – программалық өнімге қойылатын талап. Осы бөлім келесі бөлімдерден тұрады:

а) функционалдық мінездемесіне қойылатын талап;

б) сенімділігіне қойылатын талап;

в) өндіріске енгізу шарттары;

г) техникалық құрылымдардың параметрлері мен құрамына қойылатын талап;

д) ақпараттық және программалық үйлесімділігіне қойылатын талап;

е) ықшамдау мүмкіндігі;

ж) сақтау және тарату шарттарына қойылатын талап;

з) арнайы қойылатын талаптар.

Программа өнімінің классификациясының сұлбасы:

 

Программа өнімі

                    

 

 

 

 

 

 

 

 

 

 

Сұлбалық әдістегі программалардың спецификациясы

 

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

а) функцияға бағытталған модель;

б) мәліметтерге бағытталған модель;

в) мәліметтер топтарына бағытталған модель.

Спецификацияларын анықтау сатыларына қолданылатын программаның модельдерінің классификацияларының сұлбасы:

Сұлбалы әдiс

 

- Мәлiметтер компоненттерiне қатысты диаграммалар

 

- Облыстың математикалық моделi

 

- Тiзбектелудiң диаграммалары

 

- Мәлiметтер тобының диаграммалары

 

- Функциялардың диаграммалары

 

Кұрылу әдiсiне байланыссыз

 

- Күйлерден өту диаграммалары

 

Кұрылу әдiсiне байланыссыз

 

- Контекстi диаграммалар класстары

 

- Қолдану  варианттарының диаграммалары

 

Анализ жасау сатылары мен спецификацияларын анықтау модельдері

 

 
 

- Iс-әрекет диаграммалары

 
 

 

 

 


Күйлерден өту диаграммалары – техникалық нысандардың тербелмелі күйлерін модельдеуде қолданылатын графикалық форманы күйлерден өту диаграммалары деп атайды. Талдау кезінде қабылданған басқару әрекеттері құрылатын программалық жүйені программа спецификациялары өту күйлерін сипаттайды. Мысалы: датчиктер басқаруға арналған сигналды қабылдағаннан кейін программа диаграммасына байланысты бір күйден екінші күйге өтуге қатысты келісілген амалдарды орындайды. Күйлерден өту диаграммаларын салу үшін алдымен негізгі күйінің программа басқарудың әсерін орындау әсерлерін және бір күйден екінші күйге өту мүмкіндіктерін анықтап алу керек. Шартты белгілері:

 

 

 

 

 

 

 

 

 

 

 

 

 


Интерактивті Программалауда әр түрлі типтегі командаларды қолдануы мүмкін. Сондықтан олардың күйлерден өту диаграммаларын келесі түрде қарастыруға болады.

 

Дәріс – 12. Қолданушыға арналған интерфейстерді құру

 

Дәрістің мазмұны:

-     қолданушыға арналған интерфейстеді құру сатылары; диалогты терзелердің классификациялары және құрудын жалпы принциптері; қолданушыға арналған интерфейстердін интелектуалды элементтері.

Дәрістің мақсаты:

- қолданушыға арналған интерфейстерді құру сатылары және компонентерін жинау принциптерін қарастыру; объектілік-бағыттау әдісі қолданатын функционалдық диаграммаларды зерттеу; интерфейстердің интелектуалды элементтерін   құруды үйрену.

 

Интерфейстер

Графикалық интерфейстердің дамуы тарихтың екінші кезеңіне жататын түрі WIMP интерфейсі болып табылады. WIMP интерфейсі дәл қазіргі кезде, барлық программалық өнімдерде өте жиі қолданылатын интерфейс түріне жатады. Әсіресе Microsoft фирмасының өнімдерінде өте кең қолданылады. Мысалы, Windows XP жүйесі, офисттік программаларда, Визуал С++, Delphi тілдерінде және т.б.

Жаңа жобалар, құжаттар құру үшін WIMP интерфейсінің графикалық бөлігі таптырмайтын құрал және өте ыңғайлы. WIMP интерфейсінің дамуы 32 разрядты жүйелердің шығуымен тікелей байланысты. Себебі 32 разрядты жүйелер графикалық элементтермен жұмыс істеуге қолайлы. Осы интерфейстердің графикалық бөлімі келесі айрықша мінездемелермен ерекшеленеді:

а) файлдар, құжаттар және программалармен істейтін барлық жұмыс, экранның бөлігі ретінде қарастырылатын анықталған рамалық терезелерде жұмыс жасайды;

б) барлық файлдар, құжаттар, программалар, құрылымдар және басқа объектілер экран бетінде белгілі бір икондық таңба түрінде бейнеленеді. Сол иконды активтендірген кезде, терезеге айналады;

в) объектілермен жұмыс жасалатын барлық іс-әрекеттер менюдің көмегі арқылы іске асырылады. Бірақ меню графикалық интерфейстердің құрылу сатыларында пайда болғанмен, осы интерфейсте негізгі басымдыққа ие болған емес. Тек қана командалық қатардың жұмысын толықтыру үшін ғана қолданылады. Ал, графикалық WIMP интерфейсінде меню негізгі басқару элементтері болып табылады;

г) объектілерді көрсету үшін манипуляцияны кеңінен қолданылады. Графикалық интерфейстің WIMP бөлімінің дамуы манипуляцияны клавиатураның қосымша түрінде емес, негізгі басқару элемент түрінде қарастырады.

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

Компьютерлік технологияның және компьютерді басқаратын Windows жүйелерінің  дамуы қолданушыға арналған интерфейстердің, жаңа түрі графикалық WIMP интерфейсін қолданады.

Мәтіндермен жұмыс істеу толық жетілдіруге бағытталған WIMP интерфейсінің жаңа түрі толықтандырылған комбинацияланған тізімдермен жұмыс істеуін жатқызуға болады. Элементтің бұл түрі негізінен алдын-ала терілген мәтін топтарымен жұмыс істеуге арналған. Осы топтардың шешімдерінің бірін тізімдерде қолданады. WIMP интерфейсінің мүмкіндігі осы проблемаларды шешуге арналған. Мәтінді енгізіп немесе өңдеп біткеннен кейін, басқа командаларды іске қосу үшін, меню қатарларын қолдануға болады.

Диалогты терезелер

WIMP интерфейсіне жататын элементтердің бірі диалогты терезелер. Әр түрлі басқару командаларынан тұратын қосымша терезелерді диалогты терезелер деп атайды. Диалогты терезелердің көптеген параметрлері үнсіздік келісім бойынша автоматты түрде орнатылады. Диалогты терезелер қосымшалардың арнайы бөлек ресурстары болып табылады. Диалогты терезелер элементтерін қосымшалар арқылы құрмайды. Тек қана қосымшалардың сұрауы бойынша дайын күйінде жүйеге жүктеледі. Компьютерлік жүйенің барлық тараулары бойынша керекті ақпараттарды алуға, басқаруға, кейбір құрылымдардың мінездемелерін өзгертуге, көбінесе диалогты терезелерді қолданады. Диалогты терезелердің көбісі модальді түрге жатады. Модальді дегеніміз диалогты терезе жұмыс істеп жатқан кезде сол қосымшадан шығуға болмайды. Қазіргі кезде диалогты терезелерсіз жұмыс істеу мүмкін емес.

Терезелік хабарлар

MessageBox терезесін операциялық жүйелерге арналған диалогты терезелердің қарапайым түріне жатқызуға болады. Операциялық жүйелерге арналған осы және басқа да терезелерді модальді терезелер қатарына жатқызуға болады.  MessageBox терезесінде пигтограммалар, сондай-ақ әр түрлі хабарлар, терезе аттарын және осы терезені қолдануға арналған батырмаларды қолдана беруге болады. MessageBox терезесін басқаруға арналған батырмалар саны бір немесе бірнеше бола беруі мүмкін. MessageBox терезесінің мүмкіндіктерін барлық программалық тілдер, әсіресе Визуалды және Нысанды бағытталған программалық тілдер қолданады. Интерфейстің осы топқа жататын түрлері программист өзгертіп қолдануға арналған. Мысалы, MessageDly терезесін айтуға болады.             

Функционалдық диаграммалар

Құрылатын программа ішіндегі қолданылған функциялардың бір – бірімен байланысының диаграммаларын функционалдық диаграммалар дейміз. Функциялар бағынышты немесе бірін – бірі арқылы басқаруы мүмкін. Сондықтан әр оқиғада функциялардың диаграммаларының бейнелеуі әр түрлі болуы мүмкін.

Жалпы жағдайда

 

 

 

 

 

 

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

SADT функционалдық диаграммада блоктардың бір – біріне әсер ететін бес түрі бар:

а) кіру;

    

б) басқару ( басқарудың мейлінше азайту түрі );

              в) кіруге арналған кері байланыс;

г) басқаруға арналған кері байланыс;

         д) шығуға арналған орындаушы. Шығуға арналған орындаушыда бірінші блоктың шығуы екінші блоктың механизмі сияқты орындалады.

Дәріс – 13. Программалық қамтаманы тестілеу және отладкалау.  Программалық құжаттарды құрастыру

 

 Дәрістің мазмұны:

-     БҚ сапасын тексеру түрлері; қолмен тексеру; құрылымдық тестілеу; функционалды тестілеу; бағалау тесті; қателер түрлері; БҚ әдістері мен құрамы; программалық құжаттарды құрастыру; программа құжаттарының түрлері.

 

Дәрістің мақсаты:

- БҚ сапасын тексеру түрлері: қолмен тексеру, құрылымдық, функционалды  және бағалау тестерін қарастыру; БҚ әдістері мен құрамын және программалық құжаттарды құрастыру. Мәліметтер тобының диаграммаларын, Jecson және Орр диаграммаларын зерттеу; Программалық құжаттарды дайындаудың негізгі тәртіптерін құруды үйрену.

 

Мәліметтер тобының диаграммалары

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

 

Түсiнiк

Иордана белгiлерi

Гейн-Сарсон белгiлерi

Сыртқы нысандар

аты

 

Жүйелер н/е үрдiс

Овал: Аты нөмерi

Мәлiметтердi жинақтаушы

аты

 

 

Ағын

                         

 Мәліметтер компоненттеріне қатысты диаграммалар

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Мәліметтердің бір–бірімен байланысы күрделенген жағдайда графиктік байланыстың түрлері: цефтік, сақиналық және күделі байланыстарды қолдануға болады.

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

Jecson диаграммалары

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

 

 

 

 

 

 

 

 

Орр диаграммалары

Орр диаграммалары Jecson диаграммаларымен барлық талаптары мен таңдаулары бірдей. Айырмашылығы: мәліметтер конструкциясы ретінде Орр диаграммасында жақшаларды қолданады.

Мысалы:

 

 

 

 

 

Мәліметтердің желілік моделі

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

а) П.Чена нотациясы;

б) Л.Баркер нотациясы;

в) IDEF1 нотациясы (қазіргі кездегі заман талабына сай CASE технологиясын қолдана алатын нотация).

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

 
Маңызы нақты және бейнеленетін нысан

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

 

 

 

 

 

 

 

 

 

 

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

а) алғашқы кілттік атрибуталар – сұлбаның басында беріледі және алдына тор таңбасы қойылады. Бұл атрибуталарды керемет атрибуталар деп атаймыз;

б) міндетті атрибуталар – сұлбаның кез келген жерінде беріледі және алдына жұлдызша белгісі қойылады;

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

Маңыздар арасындағы байланыстың үш түрі болады:

а) бірден бірге;

б) бірден көпке;

в) көптен көпке.

Ассоциацияланған маңыздар бір–бірімен түрлі типтер арқылы байланысқан маңыздармен байланысады. Көбінесе көптен көпке түрі бойынша байланысқан ассоциацияланған маңыздар байланысады.

                   Программалық өнімдерді нысандық әдісті қолданып UML стандартты тілдің көмегімен құру

UML – унифицерленген модельдік тіл. Нысанды әдіс программалық өнімдерді құруда нысанды декомпозициялау тәсiлiн колданады. Нысанды әдіс құрылымды әдіс сияқты берілген есеп қарапайым болған жағдайда декомпозициялау тәсілін бірден қолдана береді. Ал күрделі болған жағдайда әр түрлі модельдер мен нотацияларды қолданады. UML стандартты тілі құрылатын программаға бірнеше модельдерді: қолдану, логикалық, іске асатын, үрдістер және айналдыру модельдерін біріктіріп құрады.

1. Қолдану моделі қолданушының көзқарасы бойынша программаны функционалдық түрде ұсынады.

2. Логикалық модель программаның кілттік абстракцияларын жазады.

3. Іске асыру моделі программа модельдерін ұйымдастыруға арналған орталарды анықтайды.

4. Үрдіс моделі есептеулерді ұйымдастыруды бейнелейді.

5. Айналдыру моделі программа компоненттерін нақты құралдарға орналастырудың ерекшеліктерін көрсетеді.

Қолданылған әдебиеттер тізімі

1.   Иванова Г.С. Технология программирования. - М.: Изд-во МГТУ им. Н.Э.Баумана, 2002.

2.   Канер С., Фолк Д., Нгуен Е.К. Тестирование программного обеспечения. - Киев: «ДиаСофт», 2000.

3.   Мандел Т. Разработка пользовательского интерфейса. М.: ДМК Пресс, 2001.

4.   Вирт Н. Алгоритмы и структуры данных. – М.: Мир, 1989.

5.   Гримм С.Дж. Как писать руководства для пользователей. – М.: Радио и связь, 1985.

6.   Вендров А.М. CASE-технологии. Современные методы и средства проектирования информационных систем. – М.: Финансы и статистика, 1998.

7.   Вендров А.М. Проектирование программного обеспечения экономических информационных систем: Учебник. - М.: Финансы и статистика, 2000.

8.   Бутаков Е.А. Методы создания качественного программного обеспечения ЭВМ. - М.: Энергоатомиздат, 1984.

9.   Ашарина И.В. Основы программирования на языках С и С++.- М.: Горячая линия - Телеком, 2002.

10. Марченко А.Л. С++. Бархатный путь.-М.: Горячая линия - Телеком, 2002.

11. Дейтел Х.М., Дейтел П.Дж. Как программировать на С++. М.: БИНОМ, 1999.

12. Страуструп Б. Язык программирования С++. – М.: Радио и связь, 1991.

13. Культин Н.Б. Самоучитель С++Builder. – СПб.: БХВ-Петербург, 2004.

14. Архангельский А.Я. C++ Builder 6. Справочное пособие. Книга 1. Язык С++. – М.: Бином-Пресс, 2002.

15. Архангельский А.Я. C++ Builder 6. Справочное пособие. Книга 2. Классы и компоненты. – М.: Бином-Пресс, 2002.

16. Киммел П. и др. Borland C++ 5. – СПб.: BHV-Санкт-Перебург, 2000.

17. Культин Н. С/С++ в задачах и примерах. – СПб.: Питер, 2002. 

18. Аляев Ю.А., Козлов О.А. Алгоритмизация и языки программирования Pascal, C++, Visual Basic: Учебно-справочное пособие. – М.: Финансы и статистика, 2004.

19. Ефимова О., Морозов В., Шафрин Ю. Курс компьютерной технологии: Учебное пособие.-М.: АБФ,1998.

20. Фаронов В.В. Турбопаскаль 7.0. Начальный курс: Учебное пособие.- М.: Нолидж, 1999.

21. Фаронов В.В. Турбопаскаль 7.0. Практика программирования: Учебное пособие. – М.: Нолидж,1999.

22. Немнюгин С.А. Turbo Pascal. - СПб., 2000.

23. Марченко А.Н., Марченко Л.М. Turbo Pascal-7.0. - М.: ”ДЕСС”, 1999.

24. Культин Н. Турбо Паскаль. - СПб.: Изд. «БХВ», 1998.

25. Архангельский А.Я. Язык Pascal и основы программирования в Delphi. – М.: ЗАО Бином, 2004.

Мазмұны

Дәріс – 1. Дербес компьютерлерді автоматтандыратын программалық құрылымдар. Программалау технологиясы. Негізгі түсініктер және әдістер  

 

3

Дәріс – 2. Программалау технологиясы. Негізгі түсініктер және әдістер. Күрделі программалық жүйені құру  ...…………………………………...........

 

5

Дәріс – 3. Программалау технологиясы. Негізгі түсініктер және әдістер. Күрделі программалық жүйені құру ………..………………………………….

 

9

Дәріс – 4. Программалық өнімдердің технологияларын қамтамасыз ету әдістері. Программаның технологиялық түсінігі ……………………..............

 

12

Дәріс – 5. Программалық өнімдердің технологияларын қамтамасыз ету әдістері. Шығатын (восходящий ) және шықпайтын (неисходящий) әдістер

 

16

Дәріс – 6. Программалық қамтаманы жобалау үшін берілген деректер мен қойылатын талаптарды анықтау …………….....................................................

 

18

Дәріс – 7. Есептің негізгі алгоритмі ……………………………………………

23

Дәріс – 8. Процедуралық-бағытталған тілдер базасында программалау. Процедуралық-бағытталған тілдер ..…………………………………..............

 

26

Дәріс – 9. Процедуралық-баытталған тілдер базасында программалау. Процедуралық-баытталған тілде программалау ……………………………...

 

30

Дәріс – 10. Құрлымдық әдіс. Талаптарын талдау, спецификацияларын анықтау және программалық қамтаманы жобалау ……….………………......

 

33

Дәріс – 11. Объектілік әдіс. Талаптарын талдау, спецификацияларын анықтау және программалық қамтаманы жобалау ……………………………

 

36

Дәріс – 12. Қолданушыға арналған интерфейстерді құру ……………............

40

Дәріс – 13. Программалық қамтаманы тестілеу және отладкалау.  Программалық құжаттарды құрастыру ……………………………………......

 

44

Қолданылған әдебиеттер тізімі ...........................................................................

48

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2006 ж. жиынтық жоспары, реті

 

Аманбаев Абдирахман Абдиханович

 

 

 

 

 

 

 

 

БАҒДАРЛАМАЛАУ ТЕХНОЛОГИЯЛАРЫ

 

ДӘРІСТЕР ЖИНАҒЫ

 

050702- «Автоматтандыру және басқару» мамандығының студенттері үшін

 

 

 

 

 

 

Редакторы Ж.А. Байбулаева

Стандартизациялау бойынша маманы Н.М. Голева

 

 

 

 

 

 

 

Басуға қол қойылды ___.___.___                              Қалпы 60х84 1/16

Басылымы      50 экз.                                                  №1 типографиялық қағазы

Көлемі 3.0. оқу -баспа табағы                                   Тапсырыс ____ бағасы___

 

 

 

 

 

«Алматы энергетика және байланыс институтының»

көшірмелі-көбейткіш бюросы

050013 Алматы, Байтұрсынов, к.126