
- •Программалық қамтамасыз етуд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рлеу.
Инкапсуляция
Инкапсуляция бұл нысан элементтерінің бір бірінен алшақтануын және оның құрылымы мен қозғалысын анықтайтын үдеріс(процесс). Инкапсуляция абстракцияның шартты міндеттемелерін оның жүзеге асуынан ажырату үшін келісім- қызмет етеді. Абстракция және инкапсуляция бір бірін толықтырады: абстрактлау бақыланған нысанның (обьект) мінезіне бағытталған ал инкапсуляция ішкі құрылымымен айналысады. Көбіне инкапсуляция арқылы ақпаратты жасыру орындалады, яғни сыртқы тәртіпке әсер етпейтін, барлық ішкі бөлшектерді маскалайды (бүркейді). Әдетте ішкі нысанның құрылымы және оның әдісінің жүзеге асуы жасырылады. Инкапсулияция түрлі абстракциялардың арасындағы ашық шекараларды анықтайды. "Абстракция тек инкапсулияциямен ғана жұмыс істейді "деп бекітілген. Бұл іс жүзінде класс екі бөліктен : интерфейс және жүзеге асу (реализация). Интерфейс класстың барлық нысанының абстракциясын суреттейтін нысанның сыртқы мінезін көрсетеді. Ішкі жүзеге асу осы абстракцияның көрсетілуін және нысан тәртібінің табыс механизмін суреттейді. Интерфейстің және жүзеге асудың бөлінуінің ұстанымы сәйкесінше: интерфейстік бөлікте барлық нысанның кез келген басқа нысанмен әрекеттесуі жинақталған, жүзеге асу нысандардыңың өзара әрекеттесуіне қатысы жоқ барлық бөлшектерді басқа нысандардан жасырады. Бритон және Парнас мұндай бөлшектерді "абстракцияның сырлары" деп атады.
Мысал: Мәселен гидропон теплицалық шаруашылықты қарастырайық. Тағы бір кілттік абстракция бөлмеде қандай да бір температураны ұстайтын қыздырғыш болып табылатын тапсырынды қызуды. Қыздырғыш кіші деңгейлі абстракция болып табылады, сол себептен осы нысанмен небәрі үш әрекетпен шектеу болады: қосу, сөндіру және сұраныс күйлер. Қыздырғыш температураның қалпына жауап бермеуі керек. Біз биік деңгейдің тәртібі туралы айтамыз, себебі ол құрылғының және қыздырғыштың жай тәртібінде негіздейді, оларға қыздырғышты жиі қосусыз қолданылатын гистерезисті қосамыз. Осындай шешім қабылдасақ, біз әр абстракцияны тұтас жасаймыз.
Типтен бастаймыз: // Булевский тип
enum Boolean {FALSE, TRUE};
Ұсынылған үш операцияларды толықтыру үшін, әдеттегі метаоперации және нысанның жоюлулары(құрастырушы және деструктор) керек. Жүйеде бірнеше қыздырғыштардың болуы мүмкін, біз әр қайсысының жасалуында оларға қай жерде тағайындалғанын хабарлап отырамыз, біз TemperatureSensor температура бергішінің класымен жасадық. Heater абстракт қыздырғыштардың C++ жазылған класы. class Heater {
public: Heater(Location);
~Heater();
void turnOn();
void tum0ff();
Boolean is0n() const;
private: };
Модулдік анықтама, мысалдар.
Объектке-бағытталған технология объектті моделге негізделеді.Оның негізгі принциптеріне: инкапсуляция,модульділік,типизация,иерархиялылық,параллелизм және сақталатындық жатады. Мұндағы әр принцип өз бетінше жаңа емес,бірақ бұлар объектті моделде алғашқы рет жиынтық ретінде қолданылуда.
Модулдік өзара баяу тоқулы модультардың ішкі байланыстарында орналасқан сол жүйенің сипаты.
Модульдар логикалық жобалау жүйенің нысандарында(обьект) және класстың анықтамаларында болатын физикалық контейнердің рөлін орындайды. Осындай жағдай жобалаушылардың бүйір компьютерлерінде туады. Логика электрондық жабдық ЕМЕС, ЖӘНЕ ЕМЕС, НЕМЕСЕ ЕМЕС тәрізді элементарлық үлгі құралады, бірақ мынадай стандартты интегралды біріктіруде жазуға болады: мысалы, 7400, 7402 немесе 7404 сериялар.
Абстрактциялаудың, инкапсулияцияның және модулдіктің ұстанымдары өзара толықтырушы болып табылады. Логикалық нысан абстракцияның шекараларын анықтайды, ал инкапсулияция және модулдік оларды физикалық берік жасайды.
Модульдерге бөлу таңдауы кейбір сыртқы жағдайларға әсер етеді.
Бағдарламаның ұжымдық зерттемесінде жұмысты таратушылық модулдік ұстанымға сәйкес қатысушыларға жобаны дұрыс бөліп минимизациялауды жүзеге асырады.
Тәжірибелі бағдарламашылар модульдың интерфейсіне жауап береді, ал азырақ тәжірибелілер жүзеге асырады. Ірі деңгейде осындай қатынастар қосалқы қатынастар үшін жарайды. Жұмысқа қатысушы арасындағы келісім интерфейс модулін орнату үшін абстракцияларды бөлеміз. Құжаттық жобада модуль принципі бойынша модуль сипаттау және администрлеу қызметін атқарады. Он модуль біреуге қарағанда неғұрлым көп, сондықтан құжаттауға сұраныс жобаныңдекомпозициясына (көбіне кері) әсер етеді. Құпиялықтың талаптары болуы мүмкін: кодтың бір бөлігі құпиясыз болуы мүмкін, ал қалғаны құпиямен, соңғысы жеке модуль түрінде орындалады. Класстың есептелуі, жобада нысандар және модулдік құрылымның ұйымы тәуелсіз әрекеттер.
Мысалы:
Гидропонды бақшада модулдіктің жүзеге асуын қараймыз:
Айталық, арнайы аппаратты қамсыздандырудың орынына GUI (Graphical User Interface) интерфейс пайдаланушысын қолданамыз.
GUI көмегімен жаңа жоспарларды жетілдіреді, бар жоспарларды түрлендіреді және олардың орындалуын қадағалайды.
(gplan.h деп аталсын).
// gplan.h
#ifndef _GPLAN_H
#define _GPLAN_H 1
#include "gtypes.h"
#include "except.h"
#include "actions.h"
class GrowingPlan ...
class FruitGrowingPlan ...
class GrainGrowingPlan ...
#endif