Программалау технологиясы



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

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

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

Программалау технологиясы және оның негізгі даму кезеңдері.
Программалау технологиясы деп программалық жабдық құру процесінде
қолданылатын әдістер мен құралдардың жиынтығын айтамыз. Кез – келген басқа
технология сияқты программалау технологиясы технологиялық ережелер
жиынтығынан тұрады. Олар:
1. Технологиялық операциялардың (амалдардың) орындалу тізбегін көрсету
2. Бір немесе екінші операцияның шарттарын анықтау
3. Операциялардың Өзін сипаттау.
Мұндай әрбір амал үшін бастапқы мәліметтер,нәтижелер сондай-ақ ережелер,
нормативтер, стандарттар бағалаудың критерилері мен әдістері және т.б
анықталады.

1- сурет.
Әдістемелік материалдар,ережелер,
нормативтер мен стандарттар,
бағалау критерилері.

Стандартты түрде Стандартты түрдегі
берілген бастапқы нәтижелер
мәліметтер

Орындаушылар, программалық және
технологиялық құралдар.

Амалдар тобы мен олардың тізбегінен басқа технология соннымен қатар
жобаланатын жүйені сипаттау, дәлірек айтқанда жобаны құрудың нақты
кезеңінде қолданылатын моделдер анықтайды. Технологиялық жобалаудың нақты
кезеңінде немесе осы кезеңнің жекелеген мәселелерді шешу үшін қолданылатын,
сондай-ақ бірнеше кезеңдерді немесе түгелдей жобалау процесін қамтудың
түрлері кездеседі. Біріншісінің негізінде әдетте нақты мәселені шешуге
мүмкіндік беретін шектеулі түрде қолданылатын әдіс жатады, ал екіншісінің
негізінде жобалаудың түрлі кезеңдерінде қолданылатын әдістер жиынын немесе
әдістемесін анықтайтын базалық әдіс жатады. Қалыптасқан программалау
технологиясын түсіну және олардың дамуының негізгі тенденцияларын анықтау
үшін бұл технологияларды тарихи контекстте программалардың дамуының негізгі
кезеңдерін ажырата отырып ғылым ретінде қарастыру қажет.
1 кезең : Стихиялық даму кезеңі .
Бұл кезең алғашқы септеуіш машиналардың пайда болған кезінен 60жыл ортасына
дейінгі аралықты қамтиды. Бұл аралықта нақты нақты технологиялар болған жоқ
және программалау шын мәнінде өнер деп қарастырылған. Алғашқы
программалардың құрамы өте қарапайым болды. Олар машиналық тілде жазылған
программалардан және өңдейтін мәліметтерден тұрады.
2 – сурет.

Машиналық топтағы программалардың күрделілігі программаның бір мезгілде
орындалатын амалдарының тізбегімен программалау кезіндегі мәліметтердің
орнын қадағалап отырумен шектелетін. Ассемблердің пайда болуы 2 не 1В
кодтардың орнына берілгендердің символдық атауларын және амалдардың
кодтарын мнемоникаларын пайдалануға мүмкіндік туғызды. Нәтижесінде адам оқи
алатын программалар шығарылды.
Жоғары деңгейлі FORTRAN және ALGOL сияқты тілдердің құрылуы
есептеулерді программалау процесін жеңілдетті және амалдарды детализациялау
(айқындау) деңгейін төмендетті. Бұл өз кезегінде программалау күрделілігін
арттыруға мүмкіндік берді. Программалау тіліндегі ішкі программаларды
пайдалануға арналған аса маңызды оқиға болды. Ішкі программаларды сақтауға
және басқа программаларды оны пайдалануға мүмкіндік туды.Нәтижесінде
есептеуіш және ішкі қызметшіпрограммалардың аса қомақты библиотекасы
дүниеге келді. Енді қажеттілігіне қарай оларды құрылып жатқан
программаларды шақыруға мүмкіндік туды. Сол кездегі программалар негізгі
программалар және сыртқы мәліметтер жиынтығы және ішкі программалар тобынан
құралатын еді. Ішкі программалар барлық мәліметтерді немесе олардың белгілі
бөлігін өңдеу қызметін атқарды.

3- сурет

негізгі программа

мәліметтер

Ішкі программалар

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

4 – сурет

Құрылып жатқан программаның ішкі мәліметтері бар көмекші программаларды
пайдаланған кездегі қиындықтары әліде болса программисттердің мәліметтерді
өңдеу процесімен, бірақ жаңа деңгейде бақылаумен түсіндіріледі. Дегенімен
көмекші программаларды қолдану құралдардың пайда болуы программалық
жабдықты бірнеше программисттің бір мезгілде дайындауына мүмкіндік берді.
60 ж басында программаларда кризистік сәт туындады. Күрделі программалық
жабдықтарды мысалы, операциялық жүйелерді жазуды қолға алған программистер
жобаны аяқтау мерзімінде үлгермей жатты. Көптеген жобалар оны ендірмей
жатып – ақ ескіріп қалды. Әрине мұндай жағдайда жобалардың бағасы тым
асқақтайтыны және олардың нәтижесінде олардың көпшілігі аяқталмайды. Бұл
кризистің болу себебі: ол кездегі программалау технологиясының
жетілмегендігі деп түсіндірілді. Ол кезде төменнен жоғарыға принципі
бойынша программалау , яғни белгілі бір үлкен жобаны алдын – ала ішкі
программаларды құру арқылы соңынан топтастыру принципі іске асырылатын.
Әрбір ішкі программаны белгілі бір топ жасағандықтан оларды біріктіру
барысында көптеген сәйкессіздіктерге жол беріліп қателіктер пайда болатын.
Бұл қателерді жөндеу жобаға берілген уақыттың 80 % ке жуығын қажет ететін
болды. Сондықтан программистер тез арада программалау технологиясын қайта
қарауда және жетілдіруді қолға алды.Нәтижесінде көптеген ізденістердің
салдары ретінде құрылымдық деп аталатын программалау көзқарасы дүниеге
келді.
Екінші кезең – программадағы құрылымдық көзқарас (60-70 жыл).
Программадағы құрылымдық көзқарас (бағыт) программалық жабдықты құрудың
барлық кезеңдерінің орындалуын қамта отырып ұсынылған технологиялық
тәсілдер жиынтығынан тұрады. Құрылымдық бағыттың негізінде күрделі
жүйелерді кейіннен кішігірім көмекші программалар түрінде пайдалану
мақсатында декомпозициялау (бөліктерге бөлу) жатады. Декомпозицияның басқа
принциптерінің пайда болуымен ( объектілі, логикалық т.б) аталған тәсіл
процедуралық декомпозиция атауын алды.
Бұрын қолданып келген декомпозицияға процедуралық көзқарастан
айырмашылығы құрылымдық көзқарас есепті қарапайым құрылымды ішкі есептер
иерархиясы түрінде сипаттауды талап етті. Енді жобалау жоғарыдан төменге
принципі бойынша орындала бастады және жалпы идеяны орындай отырып, көмекші
программалардың интерфейстерін дамыта бастады. Сонымен бір мезгілде
алгоритмдердің құрылымдарына шектеулер енгізілді, оларды сипаттаудың
формальді модельдері ұсынылды, сондай – ақ алгоритмдерді жобалаудың арнайы
әдісі – қадамдық детализациялау әдісі ендірілді.
Құрылымдық программалау принциптеррі процедуралық программалау
тілдерінің негізін қалады. Әдетте олар басқаруды берудің негізгі құрылымдық
операторларынан құралды. Құрылымдық программалаумен бір мезгілде басқа да
композицияларға негізделген көптеген тілдер дүниеге келді, бірақ олардың
негізгі көпшілігі бәсекеге төтеп бере алмады.
Құралатын программалық жабдықтың күрделілігі мен өлшемдерінің өсуі
құрылымдық мәліметтердің дамуын талап етті. Осының нәтижесі ретінде
тілдерде пайдаланушы анықтайтын мәліметтер типі пайда болды. Бір мезгілде
сыртқы мәліметтермен жұмыс істеу барысында түрліше қателіктердің шығуын
кеміту мақсатында ондай мәліметтермен байланысу мүмкіндіктерін шектеу
әрекеттері күшейді. Нәтижесінде модульдік программалау деп аталатын бағыт
пайда болды және қарқынды дами бастады.
Модульдік программалау бір сыртқы мәліметтерді жеке компиляциялайтын
модульдерде қолданушы ішкі программалар топтарын ажыратуға негізделген.
Мысалы, графикалық ресурстар модулі принтерге шығарушы ішкі программалар
модулі ( 5- сурет).
Модульдер арасындағы байланыс аталған технологияны қолдану барысында арнайы
интерфейс арқылы іске асырылады.Мұндай технологияны Pascal, C++, Ada,
Modula сияқты тілдер құрайды.

5- сурет

3 кезең – программаның объектілі бағыты (80 жылдың ортасы 90 жылдың
соңы).
Объектілі –ориентирленген программалау күрделі программалық жабдықтарды
құрудың программалы объектілердің жиынтығы түрінде сипаттауға негізделген
технологиясы түрінде анықталады. Аталған объектілердің әрқайсысы класс
типтерінің экземплярлары болып табылады, ал класстар қасиеттері мұра
ретінде берілетін иерархия құрады.
Бұл құрылым алдымен Simula тілінде 60 жыл қолданды. Соңынан Smalltalk,
Pascal, C++6 Modula, Java сияқты тілдерде қолданылды.
4-кезең - компонентті көзқарас және CASE – технологиялар (90 жыл
қазіргі күндерге дейін).
Программалар жабдықты құрудың компонентті бағыты жабдықтың жекелеген
компоненттерден құрылған программалық жабдықтың жекелеген бөліктерінен
тұрады. Бұл бөлімдер өзара стандартталған екілік интерфейстер арқылы
байланысады. Қарапайым объектілерге қарағанда объект- компоненттерді
динамикалық шақырылатын библиотекаларға немесе орындалатын файлдарға
жинауға болады, сондай-ақ кез-келген тілді қолдануға болады.

Күрделі программалық жүйе құру.

Қазіргі программалық жүйенің көпшілігі шын мәнінде өте күрделі деп
есептеледі. Бұл күрделілік көптеген себептермен түсіндіріледі.Олардың ең
бастысы жүйелердің шешетін себептерінің логикалық күрделілігінде деп
есептеледі.
Есептеу техникалары жеткіліксіз және мүмкіндігі шектеулі кезінде ЭЕМ
дер ғылым мен техниканың санаулы салаларында ғана қолданылды. Олар бірінші
кезекте шешілетін есептері жақсы детерминерленген және қомақты есептеулерді
қажет ететін салаларда пайдаланылды. Қазіргі аса қуатты компьютерлік
желілер пайда болған кезде олардың міндеттеріне көлемді және күрделі
есептерді шешуді жүктеу мүмкіндіктері туындады. Қазіргі таңда
копьютерлендіру процесіне жаңадан басқа салалар қосылып, ал бұрыннан бар
салалардың есептері күрделендіріле түсуде.
Программалық жүйелерді құрудың күрделілігін арттыратын қосымша
факторларға шыналарды жатқызады:
1. Программалық жүйелерге қойылатын талаптарды формальды анықтаудың
қиындығы;
2. Дискретті жүйелердің іс – қимылын сипаттайтын қанағаттанарлық
құралдардың жоқтығы;
3. Ұжымдық дайындау;
4. Кодтардың қайталану дәрежесін арттыру қажеттілігі.

1.Программалық жүйелерге қойылатын талаптарды формальды анықтаудың
қиындығы.
Бұл қиындық екі фактормен түсіндіріледі:
- талаптарды анықтау барысында түрліше факторлардың санының көптігін
есепке алу керек;
- программалық жүйелерді құрушылар автоматтандырылған пәнді салалар
бойынша маман емес, ал пәндік салалардағы маман проблеманы қажетті
деңгейде тұжырымдай алмайды.
2. Дискретті жүйелердің іс- қимылын сипаттайтын қанағаттанарлық құралдардың
жоқтығы. Программалық жүйелерді құру процесінде салыстырмалы түрде төменгі
деңгейлі тілдер қолданылды. Бұл операциялардың ерте детализациялануына алып
келді. Сондықтан, құрылатынпрограммалық жабдықтың көлемін арттырып
жібереді. Күрделі дискретті жүйелердің іс- қимылын әмбебап программалық
тілдерінен басқа жоғарғы деңгейде сипаттайтын құралдар кездеспейді.
3. Ұжымдық дайындау.
Көлемі үлкен болғандықтан жобаларды мамандардың ұжымдары дайындайды.
Каликтивте жұмыс істегенде мамандар жобаның толықтылығын сақтай отырып
өзара байланыс сақтауы керек. Сондай-ақ ұжымдардың саны неғұрлым ұлғайған
сайын жұмыс процесін ұйымдастыру соғұрлым күрделі екені түсінікті.
4. Кодтардың қайталану дәрежесін арттыру қажеттілігі
Құрылатын программалық өнімнің күрделілігіне компаниялардың еңбек
өнімділігін арттыру мақсатымен кейінніен қолдану үшін құрған компоненттер
библиотекасы да әсер етеді. Бірақ мұндай компоненттердің әдеқайда әмбебап
ету қажет болғандықтан, оларды құру күрделілігі арта түседі.

Күрделі жүйелерді құрудың блоктық- иерархиялық жолы.

Тәжірибе көрсетіп отырғандай күрделі жүйелердің көпшілігі табиғатта да,
техникада да иерархиялық ішкі құрылымға ие болып келеді.Бұл күрделі
жүйелердің элементтерінің байланысы типі бойынша да, салмағы бойынша да
түрліше болып келуіне байланысты. Сондықтан, бұл жүйелерді қандай да бір
өзара байланысты ішкі жүйелердің жиынтығы деп қарастыруға болады. Мұндай
ішкі жүйелердің элементтерінің ішкі байланыстары ішкі жүйелердің арасындағы
байланыстардан анағұрлым күшті. Мысалы, компьютер процессорында жадтан және
сыртқы құрылғылардан, ал күн жүйесі күннен және оны айналатын планеталардан
тұрады.
Өз кезегінде байланыстардың осы әртүрлілігін пайдалана отырып әрбір
жүйені ішкі жүйелерге бөлуге болады және т.с.с. ең төменгі қарапайым
деңгейге дейін жалғастыруға болады. Элементтерін қарапайым деп есептейтін
деңгейді белгілеу құқығын зерттеуші иеленеді. Қарапайым деңгейде ішкі жүйе
әдетте бірнеше түрліше комбинацияланған және ұйымдастырылған бірнеше ішкі
жүйелердің типтерінен құралады. Осындай типті иеархиялар түтін – бөлім
атауына ие.
Жалпы жүйенің іс- қимылдары әдетте оның жеке бөлімдерінің іс –
қимылдарынан әлдеқайда күрделі болып келеді.
Табиғатта қарапайым – күрделі иерархиясы немесе жүйе эволюция
процесінде дамыту иеархиясы деп аталатын иеархия түрі де кездеседі. Бұл
иеархияда кез-келген жұмыс істеп тұрған жүйе әлдеқайда қарапайым жүйенің
дамуының нәтижесі болып табылады. Дәл осы иеархия түрін ООП-ғы мұраландыру
механизм пайдаланылады.
Табиғи және технологиялық жүйенің көшірмесі сияқты болғандықтан
программалық жүйелер де иеархиялық, яғни жоғарыда аталған қасиеттерге
иеболып келеді. Иеархиялық жүйелер қасиеттеріне сүйене отырып оларды
зерттеудің немесе құру блокты – иеархиялық көзқарасы құрылады. Бұл көзқарас
алдымен мұндай объектілердің бөлімдерін (блок-модуль) құрып алып, соңынан
оларды біріктіруді (объект құруды) көздейді.
Күрделі объектіні салыстырмалы түрде өзара тәуелсіз бөлімдерге бөлу
процесі декомпозиция деп аталады. Декомпозиция кезінде жекелеген бөлімдер
арасындағы байланыстар бөлімдер ішіндегі элементтердің байланысынан әлсіз
екені ескерілді. Мұнан басқа алынған бөлімдерден құралатын объектіні
біріктіру үшін декомпозиция процесіне бөлімдердің өзара байланыстарының
барлық түрін анықтау керек.
Өте күрделі объектілер құру барысында декомпозиция процесі бірнеше
қайтара орындалады, әр блокты өз кезегінде декомпозициялайды және т.с.с.
Осылайша құруға жеңіл блоктар алғанша жалғастыра береді.Бұл әдіс қадамды
детализациялау деген атқа ие болды.
Декомпозициялау процесінде жалпы негізінде құруға болатын ұқсас
блоктарды ажыратуға әрекет жасайды. Осйлайша, кодтардың қаиталану деңгейін
арттырады және сәйкесінше жобаларды құру бағасын төмендетеді.
Декомпозиция нәтижесі әдетте төменгі деңгейінде салыстырмалы қарапайым
блоктар , ал жоғары деңгейінде құрылатын объект орналасқан иеархия схемасы
түрінде сипатталады. Әрбір иеархиялық деңгейде блоктарды сипаттауды нақты
емес детальдардан абстракциялана отырып белгілі бір детализациялау
деңгейімен орындайды. Сәйкесінше әрбір деңгей үшін әр блокта орындалатын
прцестердіңмағынасын бейнелейтін құжаттардың және формалары мен жеке
модельдер пайдаланады. Осылайша, жалпы объект үшін тек жалпы талаптарды
ғана түйіндей аламыз , ал төмендегі деңгейдегі блокта оларждан шын мәнінде
жұмыс істейтін объект құра алатындай етіп спецификациялауы тиіс. Басқаша
айтқанда блоктардың саны көп болған сайын оларды сипаттау соғұрлым
абстракциялануы тиіс.(1 сурет).

Блок1 блок2
блок n

блок1.1 блок2.1
блок n.1.

блок1.к1 блок2к2
блок nк n

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

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

Программалық жабдықтардың өмір сүру циклы деп қандайда бір программалық
жабдықты құру идеясының пайда болуынан бастап оны қандай да фирманың өз
қолдауына алғанға дейінгі аралық өмір сүру цикылы прцесінің құрамы.
ISOIEC 12207: 1995 “Information technology – soft wave life cicle
Processes” халықаралық стандарты арқылы бекітеді.
Мұндағы ISO – стандарттау бойнша халықаралық ұйым.
IEC- электротехника бойынша халықаралық комиссия. Программалық
жабдықтардың өмір сүру циклының құрылымын осы стандарт сипаттайды. Өмір
сүру процесі деп қандайда бір ену мәліметтерін шығу мәліметтеріне
түрлендіруші іс - әрекеттер жиынтығы.
Аталған стандарт бойынша өмір сүру циклының процестері келесі суретте
берілген.

Мұндағы әрбір процесс есептер және оларды шешу әдістерімен, сонай-ақ
бастапқы мәліметтер арқылы сипатталады.
Жоғарыдағы аталған стандартқа сай программалқ жабдықты құру процесі
программист орындайтын іс - әрекеттермен есептерді қамти отырып ,
келесілерді орындауды анықтайды: программалық жабдықтың және оның
компоненттерінің берілген талаптарға сай орындалуы сәйкес жобалық және
пайдалану құжаттарын дайындау программалық өнімнің жұмысқа жарамдылығынжәне
сапасының сәйкестігін тексеруге арналған материалдар пайдаланушыларды
үйренуге қажетті материалдар және т.б.
Аталған стандарт бойынша дайындау процесі келесі іс- әрекеттен тұрады:
1) Дайындық жұмысы- өмір сүру циклінің стандарттарды, әдістердідайындау
құралдарын таңдау және жұмыс жоспарын құру;
2) Жүйеге қойылатын талаптарды талдау – оның функционалдық мүмкіндіктерін
анықтау, пайдаланушы талаптарын, қорғау талаптарын, сыртқы интерфейске
қойылатын талаптарын және т.б. белгілеу;
3) Жүйенің архитектурасын жобалау – қолдаушы персоналдың орындайтын іс-
әрекетін программаның жабдығының және қажетті – құрал жабдықтарының
құрамын анықтау;
4) Программалық жабдыққа қойлатын талаптарды талдау - өнімділік,
компоненттердің қызмет ету ортасы, сыртқы интерфейстерқауіпсіздік
спецификасы,эргономикалық талаптар қолданатын мәліметтерге,
құрылғыларға, құжаттарға қойылатын талаптардың ерекшеліктерін ескере
отырып функционалдық мүмкіндіктерін анықтау;
5) Программалық жабдықтың архитектурасын жобалау – программалық жабдықтың
құрамын анықтау, оның компоненттерінің интерфейстерін құжаттандыру,
пайдаланушы құжаттарының бастапқы нұсқасын дайындау сондай –ақ
тестілеу талаптары мен интеграциялау жоспарын анықтау;
6) Программалық детальды жобалау – программалық жабдықтың компоненттерін
және олардың арасындағы интерфейстерді пайдаланушы құжаттың толық
нұсқасын тестілеу талаптарына қажетті құжаттарды және тестілеу
жоспарын дайындау, компоненттерді интеграциялау жоспарындайындау;
7) Программалық жабдықты кодтау және тестілеу әрбір компонентті дайындау
және құжаттандыру тестілеу процесіне және тестілеуге қажетті
мәліметтерді, компоненттерді дайындау және құжаттандыру, пайдаланушы
құжаттарын жаңарту, интеграциялау жаңарту;
8) Программалық жабдықты интеграциялау – интеграциялау жоспарына сәйкес
программа компоненттерін жинақтау және алдын – ала қойылған талаптарға
сәйкес программалық жабдықты тестілеу;
9) Программалық жабдықты классификациялық тестілеу – программаны тапсырыс
берушінің қатысуымен қойылған талаптарға сәйкестігін және
пайдаланушыға дайындығын көрсету үшін тестілеу. Осы іс-әрекет кезінде
технологиялық және пайдаланушы құжаттарын толықтығы мен дайындығы
тексеріледі.
10) Жүйені интеграциялау – жүйенің барлық компоненттерін программалқ
жабдық пен құрал жабдықтарын қоса отырып жинақтау.
11) Программалық жүйені квалификациялық тестілеу – жүйені оған қойылған
талаптарға сәйкестігіне тестілеу және дайындығын тексеру;
12) Программалық жабдықты орнату – программалық жабдықты тапсырыс
берушінің компьютеріне орнату және оның жұмысына жарамдығын тексеру;
13) Программалық жабдықты қабылдау - программалық жабдықты квалификациялық
тестілеу нәтижелерін және толық жүйені бағалау,
сондай –ақ тапсырыс берушімен бірлесе отырып бағалау нәтижесін
құжаттандыру және программалқ жабдықты тапсырыс берушіге толық өткізу.

Көрсетілген іс - әректтерді программалық жобаны құрудың негізгі
кезеңдері ретінде мынадай топтарға біріктіруге болады:
1. Есептің қойылуы (техникалық тапсырма кезеңі);
2. Талаптарды талдау және спецификацияларды жасау (Эскиздік жоба)
3. Жобалау (Техникалық жоба кезеңі);
4. Пайдалану ( Жұмыстық жоба кезеңі);
5. Қолдау (енгізу кезеңі).

1) Есептің қойылу процесінде программалық жабдықтың атқаратын қызметі
оған қойылатын талаптар нақты анықталады. Мұндағы әрбір талап программалық
жобаның қажетті немесе қалаулы қасиеттерін сипаттайды. Талаптар 2 топқа
бөлінеді: функционалдық және пайдаланушы.
Функционалдық талаптары жасалынатын программалық жобаның орындалуы тиіс
функцияларын анықтайды.
Пайдаланушы талаптары оның қолданылу ерекшеліктерін анықтайды.
Ұқсас программалық жобалары бар программаға қойылатын талаптар бұрынғы
программаның құрылымы мен сипаттарын ескере отырып анықталады. Ал ұқсас
программалық жобалары жоқ программаға қойылатын талаптарды анықтау
барысында кейде жоба алдындағы арнайы зерттеулерді жүргізеді. Мұндай
зерттеулер барысында есептің шешілімділігін анықтайды және кейде оны шешу
әдістерін құрады, сондай –ақ құрылатын программалық жобаның кейбір елеулі
сипаттамаларын анықтайды. Мұндай зерттеулерді жүргізу үшін ғылыми зерттеу
жұмыстарын орындауға арналған келісім шарт дайындалады. Есептің қойылу
кезеңі технологиялық тапсырманы дайындаумен аяқталады.Технологиялық
тапсырма принципиалды талаптарды белгілейді және негізгі жобалық шешімдерді
қабылдайды.
2) Талаптарды талдау.
Спецификациялар деп функциялардың дәл формальды сипатталуын және
программалық жобаның шектеулерін сипаттауды айтамыз. Сәйкесінше
функционалдық және пайдаланушы спецификасы бар. Спецификациялардың жиынтығы
программалық жобаның жалпы логикалық моделін анықтайды.
Спецификацияларды алу үшін технологиялық тапсырманың талаптарын талдайды,
есептің мазмұндық қойылымын анықтайды.Формализациялаудың математикалық
аппаратын таңдайды, зерттелетін облыстың моделін құрады, берілген есепті
ішкі есептерге бөліп, оларды шешу әдістерін таңдайды немесе құрады.
Спецификациялардың кейбір алдын – ала зерттеу процестерінде анықталуы
мүмкін және технологиялық тапсырмаларға тіркелуі мүмкін. Бұл кезеңде
құралатын программалық жобаның қателерін тексеруге арналған тестілерді
құрып алған дұрыс.
3) Жобалау – бұл кезеңнің негізгі міндеті жобаның нақты спецификасын
анықтау болып табылады. Күрделі программалық жүйені жобалау процессі әдетте
мыналарды қамтиды:
1. Жалпы құрылымды жобалау негізгі компоненттерді және олардың байланысын
анықтау;
2. Компоненттерді декомпозициялау және блоктық иерархиялық көзқарас
ұсыныстарына сай құрылымдық иерархия құру;
3. Компоненттерді жобалау.
4) Пайдалану кезеңі – программа кодын таңдалған таңдалған программалау
тілінде кезең – кезеңімен жазу процесін, оларды тестілеу және түзету іс
-әрекетін қамтиды.
5) Қолдау – программалық өнімді құру және оның жаңа нұсқаларын ендіру
процесі болып табылады. Жаңа нұсқаларды ендіруге мыналар себепші:
1. Алдыңғы нұсқаларды қолдану барысында анықталатын қателерді жою
процесі;
2. Алдыңғы нұсқаларды жетілдіру қажеттілігі;
3. Жобаның қолдану орталарының өзгеруі.

Программалық жабдықтың өмір сүру цикылының
модульдерінің эволюциясы.

соңғы 30 жылдың ішінде программалауда программалық жобалаудың өмір сүру
циклының үш түрлі моделі ауысты:
1. Каскатты
2. Аралық бақылауы бар модель
3. Спиральды.
1) Бастапқыда (1970-1985ж) Программалық жабдықтың өмір сүру цикылының
каскатты моделі ұсынылды және қолданылды.

Бұл схема бойынша келесі кезеңге алжыңғы кезеңдегі жобалық амалдардың
барлығы роындалған соң және келесі кезеңге арналған бастапқы мәліметтер
алынған соң ауысу көзделген. каскатты схеманың артықшылықтары мыналар:
1. Толықтылық және келісімділік талаптарына сай келетін аяқталған жобалық
құжаттар;
2. Дайындау процесін жобалаудың қарапайымдылығы.
Күрделі техникалық объектілерді құруда блоктық – иерахиялық тәсілді қолдану
барысында дәл осындай схема қолданылған. Бұл схема проектіні дайындаудың
тиімділігінің аса жоғары параметрлерімен қамтамасыз етеді. Дегенімен бұл
схема тек алдын – ала барлық талаптары дәл және толық анықталған жобаларға
ғана пайдалану мүмкіндігі. Бұл жобаны дайындаудың процесінде алдыңғы
кезеңдерге тиімсіз шешімдер қабылдауға байланыста проблемалардың апйда болу
ықтималдылығын кемітеді. Іс – жүзінде мұндай программалық жабдықтар өте
сирек кездеседі. Жалпы түрде алдыңғы кезеңдерге қайту қажеттілігі мынадай
себептермен түсіндіріледі:
1. Анықталуы дайындау процесінде қабылданған шешімдерді қайта қарау
қажеттілігіне алып келетін дәл емес спецификациялар;
2. Тапсырыс берушінің жобаны дайындау прцесінде талаптарды өзгертуі;
3. Қолданылатын технологиялық және программалық құралдардың жылдам
моральдық ескіруі;
4. Есептің қойылуы, талдау, жобалау кезеңдерінде дайындауды сипаттаудың
қанағаттанарлық құралдардың жоқтығы.
Спецификаларды анықтаудан бас тарту аяқталған өнімнің пайдаланушылар
қажетін қанағаттандырмайды. Құрал – жабдықтар мен программалық ортаны
ауыстырудан бс тартқаны пайдаланушы моральдық ескірген өнім алады, ал
сәтсіз жобалық шешімді қайта қараудан бас тарту программалық өнімнің
құрылымдарының нашарлауына, сөйтіп оны құру процесін күрделендіруге,
уақытын ұзартуға және бағасын арттыруға алып келеді. Олай болса нақты
дайындау процесін итерациялық сипатта қарастырған дұрыс.
2) Аралық бақылауы бар модель.
Итерациялық сипатты қолдайтын схеманы аралық бақылауы бар схема деп
атайды.Бұл схема бойынша орындалатынбақылау әрбір кезең аяқталған соң
қажеттілігіне орай кез – келген алдыңғы кезеңге қайтуға және қажетті
өзгерістер енгізуге мүмкіндік береді.

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

Дәл осы прототиптеудің апйда болуы программалық жабдықты жетілдіру процесін
жеке маңызды процес деп қарастыруға алып келді.
Прототип деп – құрылып жатқан программалық жабдықтың жекелеген
функциялары мен сыртқы интерфейстерін пайдаланатын және жұмыс істеп тұрған
программалық өнімді айтады.
Схема бойынша алғашқы итерацияда әдетте пайдаланушы интерфейсін
спецификациялайды, жобалайды, қолданады және тестілейді. Екінші итерацияда
қандайда бір шектелген функциялар жиыны қосылады. Келесі кезеңдерде
құрылатын өнімнің мүмкіндіктері арттырыла отырып аталған жиын кеңейтіледі.
Бұл схеманың негізгі артықшылығы белгілі бір функционалдық толықтыққа
жеткен қандай да бір итерациядан бастап өнімді пайдаланушыға ұсынуға
болады. Бұл:
1. Программалық өнімнің алғашқы нұсқаларының пайда болуына дейінгі
уақытты қысқартады;
2. Өнімнің келесі нұсқаларын нарық базарында жылдам өткізе отырып
пайдаланушының қызығушылығын оятады;
3. Өнімді пайдалану тәжірибесінің пайда болуы есебінен спецификациялау
құруды және анықтауды тездетеді;
4. Дайындау барысында жүйенің моральдық ескіруінің ықтималдылығын
кемітеді.
Спиральдық схеманы пайдаланудың негізгі кемшілігі келесі кезеңдерге
ауысу уақытын анықтау болып табылады. Оны шешу үшін әдетте эксперттік
бағалауға сүйене отырып әр кезеңге өту мерзімдеріне шектеу қояды.

CASE – технологияларды пайдалану барысында программалық жабдықтың өмір
сүру циклының өзгеруі.

Дәстүрлі дайындау CASE –құралдар көмегімен дайындау
Негізгі күш кодтауға және Күш талдауға және жобалауға жұмсалады.
тестілеугі жұмсалады.
Қағаз жүзіндегі спецификациялар. Жылдам итерациялық прототиптеу
Қолдан кодтау Кодтардың автоматты генерациялануы
Қолдан құжаттандыру Құжаттардың автоматты генерациялануы
Кодтарды тестілеу Жобаны автоматты бақылау
Кодтарды қолдау Жобалау спецификацияларды қолдау.

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

Дайындау тәсілі Жобаны дайындау кезеңдерінің еңбек шығындары, %
талдау жобалау кодтау тестілеу
Дәстүрлі тәсіл 20 15 20 45
Құрылымдық тәсіл 30 30 15 25
CASE технологиялар 40 40 5 15

Әдістеме қандай да бір тәсіл базасында құрылады және жұмыстың
қадамдарын, олардың тізбектілілігін сондай – ақ әдістердің тармақталу және
тағайындалу ережелерін анықтайды.
Әдіс- қандай да бір мақсатқа жетудің жұмыстық қадамдарын орындаудың
тәсілдерін анықтайды.
Нотация деп модельдердің қандай да бір класын сипаттау үшін
қолданылатын белгілеулер жүйесін айтады.Нотациялардың графиктік және
тексттік түрлері кездеседі.
CASE технологиясында нотациялардан жобаланатын жүйе құрылымын
берілгендер элементтерін және өңдеу кезеңдерін сипаттау үшін қолданады.
Құрал – жабдықтар бұл әдістерді қолдануға арналған аспаптар, яғни
графикалық жобаны құру және редактірлеудің, проектіні абстракциялар
деңгейінің иеархиясы түрінде ұйымдастырудың сондай - ақ түрлі деңгейдегі
компоненттердің сәйкестілігін тексеруге арналған құралдар. Құралдардың екі
түрі бар:
1. Қойылған талаптарды талдауға, спецификалар мен құрылымдарды жобалауға
және интерфейстерді редактірлеуге арналған құралдар.(CASE – I ұрпағы).
2. Бастапқы текстті генерациялайтын жәнепрограммалық жобаны құрудың толық
өмір сүру циклын қолдайтын интегралдық ортаны қолданатын CASE
құралдар. (CASE – II ұрпағы ).

Программалық жыбдық құруды жылдамдату.
RAD технологиясы.

Программалық жабдықтың өмір сүру циклының спиральды моделінің құрылуы және
CASE технологиясын пайдалану программалық жабдықты құрудың мерзімдерін
кемітуге мүмкіндік беретін жағдайлар жасайды. Қазіргі кездегі программалық
жабдықты жобалау, дайындау, қолдану технологиясы келесі талаптарды
қанағаттандыруы тиіс.
1. Программалық жабдық толық өмір сүру циклын қолдау.
2. Тиісті сапамен жіне белгіленген уақытқа дайындау мақсаттарына кепілді
жету.
3. Ірі жобаларды кішігірім орындаушылар топтары орындайтын ішкі жүйеоерге
бөлу мүмкіндігі. Құрамдас бөліктерді интеграйиялау жіне жалпы жобаны
орындауды координациялау мүмкіндігімен қосады.
4. Жұмысқа жарамды жобаны алудың минимум уақыты.
5. Жоба квалификацияларын басқару, жоба нұсқаларын жүргізу және әрбір
жоба бойынша жобалық құжаттарды автоматты дайындау мүмкіндіктері.
6. Дайындалатын жобаның орындалу орталарына тәуелсіздігі.
7. Өзара келісілген CASE құралдардың комплексін қолдау.(Бұл CASE
бағдарламасы өмір сүру кезеңдерінің барлық кезеңдерінде орындалатын
прцестерді автоматтандыруды қамтамасыз етеді).
Осы аталған талаптарға RAD (Rapid Application Devolopment –
қосымшаларды жылдам дайындау) технологиясы толық жауап бере алады. Бұл
технология дайындалып жатқан ПЖ алғашқы версияларын жылдам алуға
бағытталған. Ол келесі шарттардың орындалуын қамтамасыз етеді:
1. Жобаның басқарылуын жақсартуға мүмкіндік беретін кішігірім жүйелерді
жобалауға және орындауға арналған 3-7 адамнан тұратын программистер
топтарын жинақтау.
2. Жұмысқа жарамды прототипті алу уақытын азайтуға мүмкіндік беретін
итерациялық тәсілді пайдалану.
3. Жұмыстың тиімділігін арттыруға бағытталған 3 айдан артық емес уақытқа
белгіленген жұмыс істеу графигін анықтау.
Мұндай жағдайдағы жобаны дайындау келесі кезеңдерге бөлінеді:
1. Пайдаланушының талаптарын талдау және жоспарлау.
2. Жобалау
3. Дайындау
4. Пайдалануға енгізу.
Пайдаланушы талаптарын талдау және жоспарлау кезде жобаның көлемін
шектеуге мүмкіндік беретін талаптар анықталады.
Жобалау кезде CASE құралдарын пайдалана отырып, жүйенің процестерін
бірыңғай сипаттап шығады. Мәліметтермен жұмыс істеуге арналған шектеулерді
бекітеді және қажетті құжаттарының құрамын анықтайды. Осы кезде дербес
протатип құрылады, яғни процестердің экрандық формасымен диалог құрылады.
Процестерді талдау нәтижесі бойынша функионалдық нүктелер саны анықталады
және ішкі жүйелердің сондай – ақ сәйкесінше дайындау процесінде
қолданылатын компоненттер саны анықталады. RAD технологиясында
функционалды нүкте деп дайындалатын жүйенің келесі функционалды
элементтерінің кез – келгенін айтады.
1. Қосымшаның ену элементі. (ену құжаты және экрандық форма).
2. Қосымшаның шығу элементі (есеп, құжат және экрандық форма).
3. Сұраныс (сұрақ - жауап).
4. Логикалық файл.
5. Қосымша интеофейсі (басқа қосымшаларға берілетін немесе олардан алынатын
мәліметтер жиынтығы).
Функционалдық нүктелерді орындаушыларға қойылатын мынадай талаптар
анықталған:
1.Мың функционалдық нүктеден аз болса бір адам.
2. Мыңнан – 4000 дейін бір топ дайындаушы..
3. 4000 функционалдық нүктеден артық болса, онда әрбір 4000 бір топ.
Осы нормаларға сәйкес жүйені ішкі жүйелерге ендіру. Олар мәліметтер
және функциялар юойынша әлсіз байланысқан және түрлі бөлімдер арасындағы
дәл анықталған болуы тиіс.
CASE құралдарын пайдалану мұндай жағдайларда боба жөніндегі
ақпараттардың бір екендігін беру процесі түрлі келеңсіздіктерді жоюға
мүмкіндік береді.
Дайындау процесі арықарай топтар арқылы жүргізіліп олардың әрқайсысы
жүйенің өзіне қатысты бөлігін орындап іске асырады. Түрліше топтардың іс -
әрекеті орталықтан басқарылуы және дұрыс координациялануы тиіс.
Жобаны дайындау кезеңінде нақты жүйенің құрылуы іскеасырылады. Бұл
кезеңде жобаны қолданушыға жүйені дайындау процесіне қатыстырылады. Түрлі
бөлімдер кезең – кезеңімен үлкен жүйеге қосылып олардың әрқайсысы қосылған
кеде тестілеу процесінен өтеді. Дайындау кезеңінің соңында жүйенің жұмыс
істеуіне қажетті БҚ құрудың қажеттілігі анықталады. Сонан соң ақпаратты
құралдарға қойылатын талаптарды анықтайды, жұмыс өнімділігін арттыру
тәсілдерін бекітеді және жоба бойынша тиісті құжаттардың дайындалуын
анықтаәды.
Енгізу кезінде пайдалануды оқытады және жаңа жүйеге ауысуды
іскеасырады. Жаңа жүйе іске толық қосылғанша алдыңғы нұықаулары қолданыстан
шығарылмайды.
RAD технологиясы нақты тапсырыс берушіге арналған кішігірім жобаларды
орындауға кеңінен қолданылады. Мұндай жүйелер жоспарлаудың биік деғгейін
және жобалаудың қатаң тәртібін талап етпейді. Бұл технология күрделі
есептеу программаларын, операциялық жүйелерді немесе күрделі объектілерін
басқару программаларын құру үшін пайдаланылмайды. Сондай – ақ бұл
технология адам өміріне қауіп туғызатын жүйелердің жобаларын дайындауда
пайдаланылмайды. Мысалы, ұшақтарды басқару жүйелері немесе АЭС басқару
жүйелері, т.б.
Себебі RAD технологиясы жобаның алғашқы бірнеше нұсқаулары толық жұмыс
істемейді деген принципті жоққа шығара алмайды. Ал мұндай принцип жоғарыда
аталған салаларда үлкен қауіп – қатер туғызады.

ПЖ құру процесінің сапасын бағалау.
ПЖ саласындағы бәсекелестікті реттеу үшін олардың сапасын бағалау
дұрыс жолға қойылуы тиіс. Жобалауды құру кезеңдері бойынша сапаны бағалау
тәсілдері де өзгеріп отырады. Жалпы жоба сапасын келесі әлемдік
стандарттар бойынша анықтайды:
1. ISO 9000 (ISO 9000-9004) халықаралық стандарттар сериясы.
2. СММ – capability Matuvity Model – ПЖ құру процесінің жетілдіру моделі.
Бұл стандартты SEI – Softwere Engineering Institute ұсынған
3. ISOIES 15504:Infovmation technology Softwere Process Assessment –
халықаралық стандарттық жұмыс нұсқасы . Бұл стандартты Spice атауымен
кең қолданылады.

ПЖ технологиялылығы

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

Сіз бұл жұмысты біздің қосымшамыз арқылы толығымен тегін көре аласыз.
Ұқсас жұмыстар
Бағдарламалау(программалау) технологиясы
Программалау тілдерінің маңызы
Программалауды оқытудың замануи технологиялары
Программалауды оқытуда оқушылардың шығармашылық белсенділігін дамыту
Мәліметтердің динамикалық құрылымы
Жадыны динамикалық үлестіру
Бағдарламалау тілдері
Нақты жұмыс кезеңдер немесе осы кезеңдердің есептерін шешуде қолданылатын технологиялар
Информатиканы оқытудың мақсатты жүйесі
Орта мектепте информатика пәнін оқытудың негіздері
Пәндер