|
|||||||||||||||||||||||||||||||||||||||
ІІІ Дәріс сабақтарының қысқаша конспектілеріСтр 1 из 8Следующая ⇒ ІІІ Дә ріс сабақ тарының қ ысқ аша конспектілері 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- мә тіндік редакторындағ ы қ ұ жатқ а апарып кіріктіруге болады.
2-сұ рақ. CASE технологиялар кү рделі программалық жү йелерді талдау, жобалау, жасау жә не сү йемелдеу методологиялардың жиынтығ ы болып табылады. Олар ө зара біріктірілген автоматттандыру қ ұ ралдар кешені кө мегімен қ ұ рылымдық жә не обьектілік тұ рғ ыларғ а негізделеді. Кез-келген CASE технологиясы негізінен методология/ә діс/натация/қ ұ рал/парадигмасы алынады. Методология қ андай да бір тұ рғ ының негізінде жасалып, жұ мыстың қ адамдарын, қ адамдардың орналасу тә ртібін, сонымен қ атар ә дістер міндеттері мен ү йлестірілу ережелерін анық тайды. Ә діс қ андай да бір мақ сатқ а жету, яғ ни жұ мыстың белгілі бір қ адамын орындау тә сілін анық тайды. Натация деп модельдердің қ андай да бір класын сипаттау ү шін қ олданылатын таң балар жү йесін айтады. Натацияның графикалық жә не текстілік тү рлері болады. Графикалық натациялар графтар, диаграммалар, кестелер, схемалар тү рінде сипаттайды, ал текстілік натациялар модельдерді формальді жә не кә дімгі тілде сипаттайды. CASE технологияда натациялар жобаланатын жү йенің деректер элементтерінің жасау кезең дерінің қ ұ рылымын сипаттау ү шін қ олданылады. Қ ұ ралдар ә дістерді жү зеге асыру ү шін қ ажетті қ ұ рал - жабдық тарды қ ұ райды. Олар: графикалық жобаны жасау жә не жө ндеу қ ұ ралдары, жобаны абстракция дең гейі иерархиясы тү рінде ұ йымдастыру қ ұ ралдары. Сонымен қ атар тү рлі дең гейлер компьютердің сә йкестігін тексеру қ ұ ралдары. CASE қ ұ ралдардың мынадай тү рлерін бө ліп қ арауғ а болады. - талаптарды талдау, спецификациялармен қ ұ рылымдарды жобалау, интерфейстерді жө ндеудің CASE қ ұ ралдары (CASE1 - бірінші ұ рпағ ы). - программалық қ амсыздандыруды жасаудың толық ө мірлік циклін қ арастыратын біріктірілген орталардың жү зеге асыру жә не бастапқ ы текстерді генерациялаудың CASE қ ұ ралдары ( CASE2 - екінші ұ рпағ ы). CASE1 негізінен графикалық модельдерді спецификацияларды жобалаудың экрандық редакторлар мен берілгендер сө здігін қ олдау қ ұ ралдарынан тұ рады. CASE2 айталық тай ү лкен мү мкіндіктерімен ерекшеленеді. Мұ нда жү йелік ақ парат пен жобалық процесін басқ ару бойынша ақ паратты бақ ылау, талдау жә не байланыстыру, жү йенің модельдері мен прототиптерін жасау, генерацияланғ ан программаларды тестілеу, мақ ұ лдау жә не талдау қ амсыздандырылады. 2. Кө п ең бекті қ ажет ететін операцияларды автоматтандыра отырып, қ азіргі заманғ ы CASE технологиялар программалаушы мамандардың ең бек ө німділігін айтарлық тай ө сіріп, жасалатын программалық қ амсыздандырудың сапасын кө терді. Олар: жоба спецификацияларының сә йкестігінің автоматты тү рде бақ ылануын қ амсыздандырады. жү йе прототипін жасау уақ ытын қ ысқ артады. жобалау жә не жасау процесін жеделдетеді. ө мірлік циклдің барлық кезең дері ү шін арналғ ан жобалық қ ұ жаттаманың қ азіргі заманғ ы стандарттарғ а сә йкес жасалуын автоматтандырады. кейбір программалық кодтарды тү рлі жасау платформалары ү шін генерациялайды. жү йе компонентін қ айтара қ олдану технологиясын қ олдайды. жобалық қ ұ жаттарды бастапқ ы кодтар бойынша қ алпына келтіру мү мкіндігін қ амсыздандырады. CASE технологиясының қ олданылуы. Программалық қ амсыздандырудың ө мірлік циклінің барлық кезең деріне ө згерістер ә келді. Мұ нда жасалатын программалық қ амсыздандырудың қ атаң ә рі кө рнекі сипатталуын орындайтын талдау жә не жобалау кезең деріне кө п ө згерістер енгізді. CASE технологияда қ олдануғ а кө шу кезінде программалық қ амсыздандыруды жасау процесіне енгізілетін сапалық ө згерістерді атап ө тейік. CASE қ ұ ралдарын қ олдану кү рделі программаларды қ амсыздандыруды жасауғ а кеткен ең бек шығ ынын айтарлық тай азайтуғ а мү мкіндік берді. Ол негізінен жаттау жә не бақ ылау процестерінен автоматтандыру нә тижесінде қ амтамасыз етеді.
|
|||||||||||||||||||||||||||||||||||||||
|