Хелпикс

Главная

Контакты

Случайная статья





1- 2 дәрістер. Программалау технологиясы. Негізгі түсініктер мен ұстанымдар. Программалау технологиясының даму кезеңдері



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

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

Программаның ө мірлік циклының қ ұ рылымы ISO IEC 12207: 1995 Information Technologe - Software Life Cycle Processes (Информационные технологии - Процессы жизненного цикла программного обеспечения) халық аралық стандартымен анық талғ ан, мұ ндағ ы ISO – International Organization for Standardization (Международная организация по стандартизации) жә не ІЕС - International Electrotechnical Commission (Международная комиссия по электротехнике).

Аталғ ан стандарт бойынша программалық жабдық ты қ ұ ру келесі процесстерден тұ рады:

- даярлық жұ мыстары;

- болашақ жү йеге немесе программағ а қ ойылатын талаптарды анық тау;

- болашақ жү йенің немесе программаның архитектурасын жобалау;

- программағ а қ ойылатын талаптарғ а талдау (анализ) жасау;

- программалық жабдық ты детальды жобалау;

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

- программалық жабдық ты жү йеге кірістіру;

- программалық жабдық ты қ ұ жаттау;

- программалық жабдық ты қ олдап отыру.

 

Программалау технологиясының даму кезең дерінің бастапқ ысы, стихиялы программалау кезең і болып табылады. Бұ л кезең де, қ азіргі жоғ ары дең гейдегі программалау тілдері болмағ андық тан программалар машиналық тілде жазылды, мысалы, 1958 жылы академик С. А. Лебедевтің басшылығ ымен жасалғ ан, М-20 есептеулерге арналғ ан электронды есептеуіш машинасы номерленген командалардан тұ ратын программаны орындай алатын болды (3. 1-сурет).

 

Номер Команда

Операндалар сақ талатын жедел жады ұ яшық тарының адрестері

 

3. 1-сурет. М-20 ЭЕМ-на арналып жазылғ ан программа мә тіні

 

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

Мұ ндай тә сілдерді қ олдану программаның статикалық тү рінің динамикалық тү рімен сә йкес келмеуіне ә келіп соқ тыратын болғ андық тан бұ л программаларды программисттер ө з тілдерінде BS-программалар (Bowl Spaghetti - блюдо спагетти) деп атайтын болғ ан. Кейбір жағ дайларда программисттің ө зі қ ұ рғ ан BS-программасының қ атесін ө зі таба алмай қ алатын кездері болады ( 3. 2-сурет):

                             

3. 2-сурет. BS-программа листингісінің фрагменті

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

Бұ л мә селені шешу ү шін жаң а тиімді программалау технологиясын жасау қ ажет болды. Бұ л ізденістің нә тижесінде 70- жылдардың басында IBM корпорациясы ұ сынғ ан, теориялық негізін профессор Э. Дейкстра қ алағ ан қ ұ рылымдық программалау технологиясы пайда болды. Мұ нда, программалар белгілі бір ережелерге сә йкес немесе технологиялық ә дістерге негізделіп қ ұ рылатын болды. Мұ ның негізінде кү рделі программаларды кішкентай шағ ын программаларғ а жіктеп алу яғ ни «декомпозиция» принципі жатыр. Бұ л кезең нің программалары модульдерден қ ұ ралды. Модульдерден қ ұ ралғ ан мұ ндай программалар кө птеген мә селелерді шешкенімен, оның тиімсіз жақ тары да болды. Мысалы, неғ ұ рлым подпрограммалар кө п болғ ан сайын, ол подпрограммаларда программағ а қ атысатын кең ауқ ымды (глобалдық ) мә ліметтердің ө згеріп кетуі кө бейеді, сондық тан ә рбір подпрограмма ө зі орындалып болғ ан ортақ пайдаланылатын кең ауқ ымды соң мә ліметті қ айтадан бастапқ ы қ алпына келтіріп қ оюы қ ажет болды. Сондық тан ә рбір подпрограмманың ішінде ө зінің локальдық мә ліметтерін жасау қ ажеттілігі туындады (3. 3-сурет).

 

 

 


3. 3-сурет. Қ ұ рылымдық программалау элементтері

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

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

 

 

 


3. 4-сурет. Модульдік – қ ұ рылымдық программалау элементтері

Келесі кезең де, объектілік ұ станым қ олданыла бастады. Мұ нда программа объектілердің жиынтығ ынан жасалады. Бұ л объектілер белгілі бір класқ а жатады. Ал ол кластар белгілі бір иерархияғ а бағ ынады, жә не соң ғ ысы алдынғ ысының барлық қ асиеттерін қ абылдайды, жә не олар ө зара «оқ иғ алар» арқ ылы байланысады. Бұ л кезең дегі ең алғ аш имитациялық модельдеу тілі Simula болды. Қ азіргі, Delphi, Visual C++, C++ Builder, Visual Basic, Java бұ лардың барлығ ы да RAD технологияларғ а жатады жә не объектілік ұ станымды барынша қ олдайды. Бұ л технологиялардың тиімсіз тұ сы - компиляциялаудағ ы  ортақ стандарттардың болмауы.  Мысалы, белгілі бір алгоритмге сә йкес Visual C++ ортасында жазылғ ан программаны, сол алгоритм ү шін C++ Builder ортасында пайдалану мү мкін емес, яғ ни сол алгоритмді қ айтадан жазу керек болады, сол сияқ ты объектілік компоненттің бір сипаттамасы ө згертсе болды, онда соғ ан сә йкес программаны да қ айтадан компиляциялаудан ө ткізу қ ажет болады.

Жоғ арыда аталғ ан мә селені шешуді программалаудағ ы компоненттік ұ станым (COM- технологияның ) кө мегімен шешуге болатыны қ азір белгілі болып отыр. Компненттік ұ станымның мағ ынасы, мұ нда программалар ө зара бір-бірімен стандарт тү рдегі екілік интерфейс арқ ылы байланысады жә не бинарлық (екілік форматтағ ы) компоненттерден қ ұ ралады. Мұ ндағ ы объект– компоненттердің кә дімгі объектілерден ө згешелігі оларды динамикалық кітапханаларғ а немесе exe-файлдарғ а біріктіріп екілік тү рде, бастапқ ы мә тінсіз (без исходных текстов) тарата беруге болады жә не оны осы компоненттік технологияны ұ станатын кез-келген тілде пайдалана беруге болады. COM- технологияның қ арапайым мысалы, Paint графиктік редакторында жасалғ ан сурет-объектіні Word- мә тіндік редакторындағ ы қ ұ жатқ а апарып кіріктіруге болады.

 



  

© helpiks.su При использовании или копировании материалов прямая ссылка на сайт обязательна.