Аталған стандарт бойынша программалық жабдықты құру келесі процесстерден
тұрады:
-
даярлық жұмыстары;
-
болашақ жүйеге немесе программаға қойылатын талаптарды анықтау;
-
болашақ жүйенің немесе программаның архитектурасын жобалау;
-
программаға қойылатын талаптарға талдау (анализ) жасау;
-
программалық жабдықты детальды жобалау;
-
программалық жабдықтың кодын жасау және тестілеу;
-
программалық жабдықты жүйеге кірістіру;
-
программалық жабдықты құжаттау;
-
программалық жабдықты қолдап отыру.
Программалау технологиясының
даму кезеңдерінің бастапқысы,
с
тихиялы
программалау кезеңі болып табылады. Бұл кезеңде, қазіргі жоғары деңгейдегі программалау
тілдері болмағандықтан программалар машиналық тілде жазылды, мысалы, 1958 жылы
академик С. А. Лебедевтің басшылығымен жасалған, М-20 есептеулерге арналған
электронды есептеуіш машинасы номерленген командалардан тұратын программаны
орындай алатын болды (3.1-сурет).
Номер
Команда
Операндалар сақталатын жедел жады
ұяшықтарының адрестері
0100
01
1234
6543
3489
0101
02
4563
0567
3456
0102
05
3489
3456
2987
3.1-сурет. М-20 ЭЕМ-на арналып жазылған программа мәтіні
Алғашқы кезеңдерден бастап-ақ, программистердің
алдындағы міндет, жадыдан аз
орын алатын және тез жұмыс жасайтын программа құру әдістерін табу керек болды, мысалы,
қазіргі программалау тілдерінде сирек болса да қолданылатын GOTO операторы да соның
бір кӛрінісі болып табылады.
Мұндай тәсілдерді қолдану программаның статикалық түрінің динамикалық түрімен
сәйкес келмеуіне әкеліп соқтыратын болғандықтан бұл программаларды программисттер ӛз
тілдерінде BS-программалар (Bowl Spaghetti - блюдо спагетти) деп атайтын болған. Кейбір
жағдайларда программисттің ӛзі құрған BS-программасының қатесін ӛзі таба алмай қалатын
кездері болады ( 3.2-сурет):
3.2-сурет. BS-программа листингісінің фрагменті
Программалық жабдықты құрудағы негізгі міндеттердің бірі программаның статикалық
күйі, яғни бастапқы жазылуымен (немесе листингісі) оның динамикалық күйі, яғни
компьютердегі орындалу тәртібі сәйкес келуі керек немесе программа командалары жазылу
реті бойынша орындалуы тиіс.
Бұл мәселені шешу үшін жаңа тиімді программалау технологиясын жасау қажет болды.
Бұл ізденістің нәтижесінде 70- жылдардың басында IBM корпорациясы ұсынған, теориялық
негізін профессор Э. Дейкстра қалаған құрылымдық программалау технологиясы пайда
болды. Мұнда, программалар белгілі бір ережелерге сәйкес немесе технологиялық әдістерге
негізделіп құрылатын болды. Мұның негізінде күрделі программаларды кішкентай шағын
программаларға жіктеп алу яғни «декомпозиция» принципі жатыр. Бұл кезеңнің
программалары модульдерден құралды. Модульдерден құралған
мұндай программалар
кӛптеген мәселелерді шешкенімен, оның тиімсіз жақтары да болды. Мысалы, неғұрлым
подпрограммалар кӛп болған сайын, ол подпрограммаларда программаға қатысатын кең
ауқымды (глобалдық) мәліметтердің ӛзгеріп кетуі кӛбейеді, сондықтан әрбір подпрограмма
ӛзі орындалып болған ортақ пайдаланылатын кең ауқымды соң мәліметті қайтадан бастапқы
қалпына келтіріп қоюы қажет болды. Сондықтан әрбір подпрограмманың ішінде ӛзінің
локальдық мәліметтерін жасау қажеттілігі туындады (3.3-сурет).
3.3-сурет. Құрылымдық программалау элементтері
Негізгі программа
Глобальды
мәліметтер
Подпрограмма1
Локальды
мәлімет
Подпрограмма3
Локальды
мәлімет
Подпрограмма2
Локальды
мәлімет
Мысалы квадрат теңдеуді шешу қажет болса, коэффициенттер ғана негізгі
программадан алынады, ал дискриминантты табу ол локальдық айнымалы арқылы жасалады.
Құрылымдық программалаудағы
тағы бір мәселе, бір программаға қатысты
әртүрліподпрограммаларды бірнеше программисттің бір мезгілде параллель құра алу
мүмкіндігімен байланысты туындады. Әрине, бұл тәсіл программаны құру уақытын біраз
қысқарта алады, бірақ, мұнда стихиялы түрде «тӛменнен жоғары» қарай программалау
қағидасы қолданылды, яғни әуелі қарапайым подпрограммалар жасалып,
сонан кейін
оларды біріктіріп күрделі программалар жасалатын болды. Ал, бұл подпрограммаларды
біріктіріп қалған кезде, ортақ ережелер болмағандықтан негізігі программаны алу ӛте қиын
болды, яғни түрліше стильде жасалған подпрограммаларды біріктіру қиынға соқты. Мұны,
ХХ ғасырдың, 60-жылдары «подпрограммалаудағы кризис» деп атады.
Модульдік программалау (3.4- сурет) кӛп мәселелерді шешті оның тиімсіз жағы, егер
программаға бірнеше модуль қатынасатын болса, онда олардың ӛзара байланысындағы
қателер, яғни интерфейстегі қателерді тек программаның орындалуы кезінде ғана байқау
мүмкін болатын болды, себебі модульдер программадан тыс ӛз алдына бӛлек
компиляцияланады. Егер программаға қатысатын модульдер саны кӛп болса,
мұндай
қателердің бәрінің алдын алу мүмкін емес екені белгілі болды.
3.4-сурет. Модульдік – құрылымдық программалау элементтері
Келесі кезеңде, объектілік ұстаным қолданыла бастады. Мұнда программа
объектілердің жиынтығынан жасалады. Бұл объектілер белгілі бір класқа жатады. Ал ол
кластар белгілі бір иерархияға бағынады, және соңғысы алдынғысының барлық қасиеттерін
қабылдайды, және олар ӛзара «оқиғалар» арқылы байланысады. Бұл кезеңдегі ең алғаш
имитациялық модельдеу тілі Simula болды. Қазіргі, Delphi, Visual C++, C++ Builder, Visual
Basic, Java бұлардың барлығы да RAD технологияларға жатады және объектілік ұстанымды
барынша қолдайды. Бұл технологиялардың тиімсіз тұсы - компиляциялаудағы ортақ
стандарттардың болмауы. Мысалы, белгілі бір алгоритмге сәйкес Visual C++ ортасында
жазылған программаны, сол алгоритм үшін C++ Builder ортасында пайдалану мүмкін емес,
яғни сол алгоритмді қайтадан жазу керек болады, сол сияқты объектілік компоненттің бір
сипаттамасы ӛзгертсе болды, онда соған сәйкес программаны да қайтадан компиляциялаудан
ӛткізу қажет болады.
Жоғарыда аталған мәселені шешуді программалаудағы компоненттік ұстаным (COM-
технологияның) кӛмегімен шешуге болатыны қазір белгілі болып отыр. Компненттік
ұстанымның
мағынасы, мұнда программалар ӛзара бір-бірімен стандарт түрдегі екілік
Негізгі программа
Глобальды
мәліметтер
Модуль 2
Модулдік мәлімет
Подпрограмма1
мәлімет
Подпрограмма2
мәлімет
Модуль 1
Мәлімет
Подпрограмма1
мәлімет
Подпрограмма2
мәлімет
интерфейс арқылы байланысады және бинарлық (екілік форматтағы) компоненттерден
құралады. Мұндағы объект– компоненттердің кәдімгі объектілерден ӛзгешелігі оларды
динамикалық кітапханаларға немесе exe-файлдарға біріктіріп екілік түрде, бастапқы мәтінсіз
(без исходных текстов) тарата беруге болады және оны осы компоненттік технологияны
ұстанатын кез-келген тілде пайдалана беруге болады. COM- технологияның қарапайым
мысалы, Paint графиктік редакторында жасалған сурет-объектіні Word- мәтіндік
редакторындағы құжатқа апарып кіріктіруге болады.
Достарыңызбен бөлісу: