Жұмыс бағдарламасы мамандықтың жұмыс оқу жоспары және 20 ж бекітілген элективті пәндер каталогы негізінде әзірленген


Объектілі программалаудың принциптері



жүктеу 3,94 Mb.
бет17/25
Дата14.12.2017
өлшемі3,94 Mb.
#4102
түріЖұмыс бағдарламасы
1   ...   13   14   15   16   17   18   19   20   ...   25

Объектілі программалаудың принциптері


  1. Абстракциялау

Абстракция – объектіні қарастыруға және қолдануға қажетті маңызды мінездеме.

Абстракция деңгейлері:

- өзін-зі ұстау абстракциясы;

- виртуалды машинаның абстракциясы;

- ерікті абстракция;

- бар болу абстракциясы.



Клиент-объект – басқа объектілердің ресурстарын қолданатын объект.

Контракт – объект-сервердің объект-клиент алдындағы міндетін анықтайды.

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



Протокол – объектіге қатысты және басқа объектілерге қатысты орындалатын операциялар жиынтығы. Ол абстракцияның сыртқы қозғалысын сипаттайды.

Абстракцияның инварианты – орындалатын шарттардың логикалық жиынтығы.

Операцияның алғышарты – операциямен жоспарланатын инварианттар.

Кейінгі шартты операциялар – операциялармен орындалатын инварианттар.

Инварианттың өзгеруі абстракциямен байласынты контрактыны бұзады. Егер алғышарт бұзылса – клиент, егер кейінгі шарт бұзылса – сервер кінәлі болады. Осындай жағдайда ерекше жағдайлар қарастырылады.

2. Қолжетімділікті шектеу (инкапсуляция)

Қолжетімдікті шектеу абстракциялар арасында кедергі орнатады. Осы принципке сәйкес интерфейс және іске асыру ұғымдары енгізіледі.



Интерфейс объектінің сыртқы көрінісіне шектеу салады және өзін-өзі ұстау абстракциясын көрсетеді.

Іске асыру нәтижеге жету механизмін сипаттайды және абстракциялы бейнені көрсетеді.


3. Модульділік

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

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



4. Иерархия

Иерархия – абстракцияның бөлінген және реттелген жүйесі.

Иерархияның екі түрі белгілі:

- Тектілік (класстар иерархиясы);

«Типі» байланыс сөзі қолданылады.

- агрегациялау(объектілер иерархиясы);

«Бар болу» байланыс сөзі қолданылады.

Стандартты тектіліктің екі түрі бар:

- таксономия (қасиеттердің тектелуі );

- партномия (бөліктердің тектелуі).

С++ стандартты тектелу осы екі типті біріктіреді.

Көп жағдайда келесі мәселе туындайды – екі класс арасында қатынасты қалай іске асыру.

Тектіліктің мақсаты:

1) специализация үшін (ішкі типтердің туындауы үшін);

2) спецификация үшін;

3) конструкциялау үшін. Базалық класста жаңадан құрылған класста орындалатын әрекеттер көрсетіледі (яғни жаңа класста базалық әрекетті орындау керек болса).




Мысалы, тізімге негізіндегі жиын.

Тізім – private() спецификаторымен тектелетін базалық класс.

4) кеңейтілу үшін. Жаңа құрылатын класста қажетті

функциялар қосылады немесе интерфейс

кеңейтіледі.

Мысалы, жаңа класста жолдарға арналған интерфейс қосылады.



5) шектеу үшін. Мысалы, тектің негізінде стекті ұйымдастыру.

DEQUE – стек үшін базалық класс (LR екі ұшы бар кезек)



6) араластыру үшін. Жиындық тектілік жағдайы. Бірдей базалық класстар әр түрлі комбинацияда тектелуі мүмкін.

С++ тектілік нұсқалары:



7) жалғыз тектілік. Базалық класс біреу ғана, тектілік қатынасы ағаш түрінде көрсетіледі.

8) жиындық тектілік. Базалық класстар бірнеше, қатынас ациклдық граф түрінде беріледі.

Тектілік мәселелері:

1) көшірілетін базалық класстың өрістері (мысалы үшін В класы);

2) әдістердің және конструкторлардың көшірілуі.

3.Типизация

Типизацияпрограммалау тілінің алғашқы деңгейінің операцияларына класстардың өзара ауысуын шектеу.

Типизиция деңгейіне қарай программалау тілі үш түрге бөлінеді:

- қатаң типизацияланған (Pascal, Ada);

- қатаң емес типизацияланған (java, c++);

- типтелген емес (Smalltalk).

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

Полиморфизм – әр түрлі класстар объектілерімен жұмыс істеуге бір атауды қолдану мүмкіндігі.

Полиморфизмнің екі түрі қарастырылған:

- қарапайым («класс» типті жалғыз параметр қолданылуы мүмкін);

- жиындық (бірнеше параметрді қолдана алады).



4. Параллельділік

Параллельділік – объектінің актив және пассив жағдайында болу қасиеті.

Объектіге бағытталан програмалаудағы негізгі параллельділік ол үдеріс пен объектінің арасындағы қатынас болып табылады.

Үдеріс – рет-ретімен орындалатын әрекетер тізбегі. Үдерістің төмендегідей түрлері бар:

- тізбектей – бір уақытта бір ғана үдеріс жүргізіледі;

- квазипараллельді – бір уақытта көп үрдістер болуы мүмкін, бірақ орындалатыны біреуі ғана.

- параллельді

ОБП тілдерінің параллельділікті қолданатындар келесі түрге бөлінеді:

- ортогональды – параллельділік құралдары объектілі қатысты емес. (мысалы, Smalltalk80, Concurrent C++).

- біртекті – объектілер параллелінің бір типті болуы.

Параллельділіктің басқа да түрлерінің болуы мүмкін.

Объектінің үдерісті құрылымы:

- статистикалық;

- жалғызүдерісті (мысалы, Actor);

- көпүдерісті ;

- квазипараллельді (мысалы, Hybrid);

- параллельді;

- динамикалық (мысалы, S80);

Параллель объектілердің өзара қатынасы және жүзеге асырылуы төмендегідей жүргізіледі:

- объектіні құру;

- белсендіру;

- синхрондау;

- хабарлама алмасу.

Синхрондау механизмдері:

- Хоар мониторлары – берілімдерді жіберу мүмкінідігін қамтамасыз ететін жоғары деңгейлі механизм;

- Дейкстр семафорлары – ресурстарға қол жеткізу құралдары;

- рандеву – негізгі міндеті есептерді синхрондау (Ada-да жүзеге асырылыған).

Хабаралмасу механизмдері:

- жадының ортақ бөлігі;

- хабарламаны жіберу және қабылдау (тепе-теңдік, бағытталған);

- процедураны алыстан шақыру («клиент-сервер» қағидасымен бағыну).



5.Тұрақтылық

Тұрақтылықобъектінің өзінен жоғары тұрған объектіге тәуелсіз қолданылуы.

Тұрақтылық деңгейлері:

- өрнектің мәнін есептегендегі аралық нәтижелер (өрнек есептелу барысында ғана болады);

- локальды айнымалылар;

- глобальды айнымалылар;

- программаны сынақтау арасындағы объектілер;

- программа версиялары арасындағы объектілер;

- бағдарлама болмаған кездегі объектілер.



10 Программисттың логикалық мәдениетінің информатика-математикалық негіздері

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

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

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

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

- мәндері алғашқы кезеңде белгілі болатын және программаны орындау кезінде өзгермейтін енгізу айнымалыларынан тұратын енгізу векторы. Х=( х1, х2,..., хк );

- мәндері программаның орындалу барысында арлық жағдайда айқындалатын, программалық айнымалылардан тұратын орындалу векторы; Y= (y, y2,…, y1 );

- мәндері программаның соңғы жағдайында айқындалатын, шығару айнымалыларынан тұратын шығару векторы, Z=(z1,z2,…, zm).



Программа Р үшін енгізу векторлары мәндерінің жиыны inp(p), орындалу векторлар мәндерінің жиыны ran (p), шығару векторлары мәдерінің жиыны out(p) арқылы белгіленеді. Осы жиында бос емес, яғни,
Inp(p)

Сәйкесінше, әр программалық бірлік рt, tn, үшін бос емес жиын inp (p)6 out (p1), белгілеуге болады.Мұнда,



Ip (p1)=inp out(pn) = out (p)

Сонымен қатар, үшін

Inp(p1) ran (p), out(p1) ran(p)

Егер осы векторлардыңмәнін анықтайтын функция val болса, онда:



Val (x) =,val (y) = , val (x)=,

Мұнда inp (p), out (p).

Енгізу векторының мәні туралы және Р програмасының бастапқы жағдайын анықтайтын ір(х) тұжырымды алғышарт деп атайды яғни, ір (х): inp (p) {0,1},

Мұнда 0- логикалық “жалған” мән, ал, 1- логикалық “ақиқат” мән.

Енгізу және шығару векторларының байланысы туралы және программаның аралық жағдайын анықтайтын rp(x,y), t=2,n- 1

Тұжырымды аралықшарттар деп атайды, яғни,



Rp1(x,y): inp (p) {0,1}


жүктеу 3,94 Mb.

Достарыңызбен бөлісу:
1   ...   13   14   15   16   17   18   19   20   ...   25




©g.engime.org 2024
әкімшілігінің қараңыз

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