
- •Программалық қамтамасыз етудiң күрделiгi: анықтама, мысалдар.
- •Қарапайым программалық жүйелердің 4 мысалын келтіріңіз.
- •Күрделi программалық жүйелердің 4 мысалын келтіріңіз.
- •Программалық қамтамасыз етудiң күрделiгiнiң себебтері.
- •Күрделi жүйелердің белгiлері.
- •Декомпозиция, алгоритмдік декомпозиция, объектті бағыттылған декомпозиция: анықтама, мысалдар.
- •Абстракция: анықтама, мысалдар.
- •Иерархия: анықтама, мысалдар.
- •Программалық жобалау қандай элементтерден тұрады?
- •Oop, ood және ооа: анықтама, айырмашылықтары.
- •Программалаудың негiзгi парадигмалары: олардың ерекшелiктері.
- •Абстрактциялау: анықтама, мысалдар.
- •Инкапсуляция
- •Модулдік анықтама, мысалдар.
- •Иерархия
- •Типтелу: анықтама, мысалдар.
- •Параллелизм: анықтама, мысалдар.
- •Сақталатындық: анықтама, мысалдар.
- •Объектiлердiң мысалдарын келтірiңiз.
- •Объекттiң күйі және тәртібі: анықтама, мысалдар.
- •Байланысқа қатысатын объектiлердiң рөлдері: анықтамалар, мысалдар. (актер, сервер, агент)
- •Агрегация: анықтама, мысалдар.
- •Кластардың мысалдарын келтірiңiз.
- •Кластардың интерфейсі және реализациясы: анықтама, мысалдар.
- •Кластардың арасындағы қатынастар: мысалдар. (ассоциация, мұрагерлік, агрегация, пайдалану, метакласс)
- •Классикалық категориялау, концептуалды кластерлеу, түптұлғалар теориясы. Осы тәсiлдерден қандайы жақсы және нелiктен?
- •Аж жобада белгiлеу жүйесі не үшiн қажет?
- •Аж логикалық және физикалық үлгiлері: анықтама, мысалдар.
- •Аж статикалық және динамикалық үлгiлері: анықтама, мысалдар.
- •Кластар диаграммасы: тағайындау, мысал.
- •(1)Класстар диаграммасындағы кластың графикалық суретінің нұсқалары
- •Кооперация диаграммасы: тағайындау, мысал.
- •Жобалаудың микропроцессi: анықтама, мысалдар.
- •Жобалаудың макропроцессi: анықтама, мысалдар.
- •Тәуекелдердi басқару: анықтама, мысалдар.
- •Аж өңдеушiлердiң рөлдері.
- •Аж релиздерді басқару
- •Аж тестілеу
- •Аж әзiрлеу кезінде қайтадан пайдалану.
- •Программалық өнiмнің сапасын өлшеу.
- •Аж документациясын әзiрлеу.
Программалық қамтамасыз етудiң күрделiгi: анықтама, мысалдар.
Біз программалық жүйелердің барлығы дерлік қиын бола бермейтіндігін біліміз.Бір адам өңдейтін,қолданатын,ойлап табатын көптеген программалар бар.Әдетте бұл профессионал немесе енді бастап келе жатқан программист болуы мүмкін.Мұндай программалардың барлығы жақсы жасалмаған деп айта алмаймыз.Бірақ олардың өмірі қысқа болады.Әдетте мұндай программаларды қайта қолданып немесе кеңейткеннен гөрі жаңасымен ауыстырған дұрыс.Мұндай программалар қиын емес шаршатыңқы болып келеді,сондықтан мұндай процесс адамдарды қызықтырмайды.Өнеркәсiптiк бағдарламаның маңызды сызығы-бұл күрделілік дәрежесі:бір өңдеуші жүйенің барлық аспектісін қамти алмайды.Брукс айтқандай "Программалық қамтамасыз етудiң күрделiгi - оның мүлде кедейсоқ емес қасиеттері".
Күрделiлiк төрт негiзгi себептердi шақырады:
Әзірлеуде тапсырысты аралап шығатын нақты заттар саласының күрделiлiгі;
Әзiрлеу процесiн басқарудың қиыншылығы;
Программаның жеткілікті иілгіштігін қамтамасыз ету қажеттілігі;
Үлкен дискреттi жүйелердің мiнез-құлықтарын қанағаттанарлықсыз тәсiлдерiмен сипаттау.
Нақты дүниенiң күрделiлiгi. Біз программалық қамсыздандыру көмегімен шешуге ұмтылған меселелер,сөзсіз жиі күрделі элементтерді тұтынады,ал тиісті программаға көп, кейде бірін-бірі жоққа шығаратын талаптар көрсетіледі. Ұшақтың көп моторлы электронды жүйесі,ұялы телефонның комутаторлы жүйесі мен жұмысының қажетті характеристикасын қарастырайық. Тіпті әрбір шекте мұндай жүйенің қалай жұмыс істейтінін түсіну жеткілікті қиын.Енді осыған ыңғайлылық, өнiмдiлiк, құн, тiрi қалу және сенiмдiлiк сияқты қосымша талаптар(жиі құрастырылмаған анық) қосылады.Тапсырманың күрделілігі Брукс жазған программалық өнімнің күрделілігін тудырады. Бұл сыртқы күрделiлiк әдетте жүйе қолданушыларының және өндеушілерінің арасындағы "ұштаспаушылыққа" байланысты туындайды:қолданушылар өңдеушілерге не істеу керектігін түсіндіретін форманы қиындықпен түсіндіреді.Кейде қолданушы болашақ программалық жүйеден не қажет екенін күнгірт көрсетеді.Негізінде бұл сол немесе басқа жақтың қателігінен емес;тек группадан әрқайсысы өз ортасында мамандандырылғандықтан оны серіктестің білімі жалықтырады.
Әзiрлеу процесiн басқарудың қиыншылығы.
Өңдеушінің негізгі міндеті қолданушыларды түсіндіріліп отырған бұйымның немесе процестің күрделілігінен қорғау үшін иллюзия құрастыру болы табылады.Программалық жүйесiнің түпнұсқаларының өлшемi тіпті оның ең маңызды қасиеттерінің санына да кірмейді,сондықтан біз түпнұсқаны қулықты және қуатты әдiстерді қолдана отырып мүмкіндігінше ықшамдырақ етіп жасауға тырысамыз,сонымен қатар өңдеу ортасында бар жобалар мен программалар да қолданылады.Өңдеуші қаншалықты көп болса,соншалықты олардың арасындағы байланыс пен келісімділік қиын болады, әсiресе өте үлкен жоба кезінде қатысушылар географиялық жағынан алшақта жұмыс жасаса.Қорыта келгенде,жобаны ұжымдасып орындауда басшылықтың маңызды міндеті болып өңдеудің бірлігі мен бүтіндігі болып табылады.
Программаның жеткілікті иілгіштігін қамтамасыз ету қажеттілігі.Үй құрылыс компаниясы әдетте өзіне полиматериалдар жеткізіп отыратын өзінің жеке орманы болмайды.Алайда программалық индустрияда мұндай тәжірибе қарапайым іс болып табылады.Айырмашылығы:программалау шектi иiлгiштiкке ие болады және өңдеушi кез-келген деңгейдегі абстракцияға тиісті өзiн қажеттi барлық элементтермен қамтамасыз ете алады.Мұндай иiлгiштiк өте қызығарлықтай.
Ол өңдеушіні абстракцияның мейілінше биік дәрежелі элементтерінен құралатын болашақ конструкцияның базалы құрылыстық блоктарын өз күшімен құрастыруға мәжбүрлейді.Құрылыстық индустриядан айырмашылығы,көптеген конструктивті элементтер мен сапалы материалдардың бірыңғай стандарты бар,программалық индустрияда мұндай стандарттар мүлде жоқ.
Үлкен дискреттi жүйелердің мiнез-құлықтарын қанағаттанарлықсыз тәсiлдерiмен сипаттау.
Үлкен қолданбалы программа ішiнде жүздеген немесе мыңдаған айнымалылыр және бірнеше басқару ағындары болады.Айырмашылығы:осы айнымалалардың толық жинағы,олардың ағымдағы мәндері,ағымдағы мекен-жайы мен әр процесс үшiн шақырудың стегi қолданбалы программаның күйiн әрбір уақытта суреттейдi.Бiздiң бағдарламаны орындау цифрларланған компьютерде жүзеге асырылғандықтан,біз дискретті күйлер жүйесін аламыз.Лақтырылған доптың қозғалысы сияқты аналогты жүйе керісінше үздіксіз болып табылады.Д.парнас жазады: "Біз сөйлеген кезде жүйе үзiлiссiз функция болып суреттеледі,біз онда бүркеме тосын сыйлар жоқтығын айтамыз. Ену параметрлерiндегі шағын өзгерiстер әрқашан шығуда шағын өзгерiстерді шақырады".Басқа жағынан дискретті жүйелер өз табиғатында ақырлы сандардың мүмкіндікті күйіне ие,алайда үлкен жүйелерде бұл сан комбинаториканың ережелерiне сәйкес өте үлкен.Біз жүйелерді бір бөлігі екіншісіне минималды әсер ететіндей бөліктерге бөліп жобалауға тырысамыз.Әрбір оқиға сыртқы программалық жүйеге қатысты оны жаңа күйге ауыстыруы мүмкін және бір күйден екінші күйге ауысу әрқашан анықтала бермейді.
Мысал.Персоналды компьтерді күрделі жүйе мысалы ретінде қарастыруға болады. Көптеген персоналды компьютерлер жүйелік плата, пренетақта, монитор, қандай да бір типтегі сыртқы жады құрылғысы сияқты негізгі бірдей бөліктерден тұрады. Біз бұл бөліктердің кез келгенін алып тағы да басқа бөліктерге бөле аламыз. Мысалы жүйелік плата оперативті жад, орталық процессор және шинадан тұрады. Және бұл бөліктердің әрқайсысын тағы бөліктерге бөлуге болады. Орталық процессор регистр мен басқару схемасынан тұрады. Ал бұлардың өзі диод,транзистор және т.б. қарапайым бөліктерден тұрады. Бұл күрделі иерархиялық жүйе мысалы болып табылады.