
- •1 Объектті-бағытталған жүйелерді тестілеу
- •2 Гибкие технологии: экстремалді жобалау және пқ орындалуының унифицирленген процесі
- •3 Программалық қамтаманы құрастыру процесі
- •4 Талаптарды талдау. Талдау әдістері
- •5 Архитектуралық жобалау. Моделдер, каркастар, паттерлі жобалау және компоненттер.
- •6 Бөлшектік жобалау
- •7 Объектті-бағытталған жоба
- •8 Қолданушы интерфейсін жобалау
- •9 Программалық қамтама модернизациясы және мұрегерленген жүйелер
- •10 Мұрагерлік дегеніміз не? Мұрагерлік типтері.
- •11 Кластың статистикалық және статистикалық емес мүшелерінің арасындағы айырмашылық.
- •12 Енгізілген функция. Оның артықшылықтары мен кемшіліктері.
- •13 Конструкторлар,деструкторлар және мұрагерлік.
- •14 Абстрактілі класс. Полиморфты класс.
- •15 Ассоциативті контейнер мен тізбекті контейнер.
- •16 Архитектура және оның моделі түрлері.
- •17 Полиморфизм дегеніміз не және ол қалай орындалады.
- •18 Параметрлер тізімі мен аргументтер тізімі арасындағы айырмашылықтар
- •19 Таратылған жүйенің негізгі 6 сипаттамасы.
- •20 Объекті – бағытталған жоба процесінің негізгі кезеңдері.
9 Программалық қамтама модернизациясы және мұрегерленген жүйелер
Аталған тақырыптың мақсаты студенттерді “қорлық жүйе” түсінігімен таныстыру және осындай жүйенің құрылымын көрсету. Бизнестің көптеген кеңістігінде компаниялардың өркендеуіүшін осындай жүйенің мәнін білуге тура келеді; қорлық жүйенің жалпы құрылымы; фукционалды – программалау жобалау принциптерін түсіну.
Программалаушылардың жұмысының негізгі бөлігі жаңа заттарды әзірлегенде емес, қатысатын жүйелерді кеңейткенде немесе оларды жаңа қосымшаларды пайдаланғанда қалыптасады. Мұндай жүзеге асатын программалау “сақтау” қосымшалары деп аталады.
Жаңа программалық қамтамалар қымбат тұрады, жұмсалған шығынды өтеу үшін программалық заттарды ұзақ мерзімге пайдалану керек. Мұндай программалық заттардың көбісі ірі компаниялар қызметіне тәуелді болады, және оның аздаған кемшілігі жұмыстық активтігінен тысқары да өтеді. Осындай жүйелер () “қорлану жүйелері” атау алған.
Экономика эволюциясы, нарық өзгерісі, заңдар және менеджмент өзгерісі сияқты жаңа заманғы факторлар мен бизнестің құрылымдық түрлендірулері программалық талаптары өзгерісін жүзеге асыру немесе жаңа өзгерістерді туғызу үшін қызмет етеді. Сақталған жүйелердің мүмкіндігін кеңейту үшін біз оған жаңа мүмкіндіктер беруіміз мүмкін немесе талап ету қосымшаларын жеке құрастыруымызға болады.
Сақтау жүйесін пайдаланғандағы тарату мәселелері мұның не істейтінін және қалай жұмыс істейтінін түсіну қиын. Сақталған жүйені пайдалану өте қарапайым түрде болады, егер оны құрастырғанда программалық қамтаманы әзірлеу практикасы есепке алынған болса.
Сақтау жүйелерін пайдаланғанда мәселелерді минималдау үшін, программалық қамтаманы әзірлеу үшін қандай сұрақтарды шешу қажет болады?
Мұндай сұрақтарға мыналарды енгізу қажет болады: таңдау және әзірлеу процесіне дайындық; ашық кемшіліктер санын азайту; мағлұматты бақылаудың біржақтылығы (клнфигурациямен басқару); тесттің толық тізімінің және оның нәтижелерінің біржақтылығы және тестілеу процесінің автоматизациясы; программалау тілінің қандай да бір түрде жүзеге асуы; жаңа функциялдық мәніне қосымша, құрылым-әзірлеу тапсырысымен тұрақты қатысу құрылымы.
10 Мұрагерлік дегеніміз не? Мұрагерлік типтері.
Мұрагерлік – С++ тіліндегі объектті бағытталған бағдарламалаудың басты механизмдерінің бірі. Оның көмегімен жалпыдан жекеге ауыса отырып өте күрделі кластарды құруға болады, сонымен қатар қортынды кластардан айрықшаланатын жаңа кластарды өсіруге болады.
Жаңа класты жобалай отырып алдын-ала оның объектілері қандай анағұрлым жалпы ерекшеліктерге ие болу керектігін анықтау және ұқсас дайын кластың бар жоқтығын тексеру қажет. Басқаша айтқанда, басында қайта өндіретін класс жоспарын « ірі көріністермен» құрған жөн, ал кейін бір уақытта жаңа қасиеттерді ала отырып, тәртіп пен қасиеттерді (яғни мүше мәліметтер мен класс әдістері) мұраға алатын жаңа кластарды құрылған класс негізінде құра отырып, рет-ретімен бөлшектенуіне көшеміз.
Түрлі класс объектілері мен кластардың өздері алдын-ала құрастырған кластар иерархиясына сай келетін объектілер иерархиясы құрылған кезде мұрагерлік қатынасында бола алады.
Бір класс екінші класс мұрагері болғанда жазбаның келесі негзгі пішіні қолданылады:
{ class_ класс_ аты_ as базалық_ класс_ аты _ туынды
{ туынды класының анықтамасы
Мұндағы as – рұқсат ету спецификаторы ( access specifier) базалық класс элементтері ( base class) туынды класқа (derived class) қалай мұрагер болатынын анықтайды.
Егер as public болса онда барлық ашық мүшелері туынды да да ашық болып қалады. Егер as private шешуші сөзі болса, онда базалық кластың барлық мүшелері туынды класта жабыққа айналады. Екі жағдайда да базалық кластың барлық private мүшелері туынды класта қалай мұрагер болуына тәуелсіз, жабық және рұқсатсыз болып қалады.
Егер as private болса, онда базалық кластың ашық мүшелері туынды класта жабық болуына қарамастан олар туынды кластың функция – мүшелері үшін рұқсат етілген болып қалатынын ескерген жөн.
Техникалық жағынан рұқсат ету спецификаторы міндетті емес. Егер ол көрсетілмеген туынды класс class шешуші сөзімен анықталса, онда базалық класс struct қызметші сөзімен үнсіздік бойынша ашық сияқты мұра болады.
Нақтылық үшін рұқсат ету спецификаторын нақты түрде беру дұрыс.
Public спецификаторымен мұрагерлік мысалын көрсетейік:
class Base
{ int x;
public:
void setx (int n) {x=h;}
void showx( ) { cout « x «endl ;}
};
class Derived: public Base
{ int y;
public:
void setx (int n) {x=h;}
void showx( ) { cout « x «endl ;}
};
int main (void)
{ Derived obj;
obj.setx (10);
obj.sety (20);
obj showx( );
obj showy( );
return 0;
}
Base класы ашық болып мұаға қалдырылатындықтан оның ашық функциялары туынды класқа ашық болып қалады және сондықтан да бағдарламаның кез келген бөлігінен рұқсат етілген болады. Бұл функцияларды main ( ) функциясынан сәйкесінше дұрыс шақыру керек.
Базалық кластың мүшелері рұқсат етілмеген болады, сондықтан туынды класс ішінде х айнымалысына тікелей рұқсат алуға талаптану әрекеті дұрыс емес. Ал базалық кластың ашық функциясы арқылы бұл мүмкін болады.
Егер класс сияқты жабық мұраға қалса, онда базалық кластың барлық мүше берілгенднрі мен туынды класта жабық болады және одан тыс қана рұқсат етілген болады. (Derived типті берілген объекттер үшін олар жабық болады).
Рrivate спецификаторын қолдана отырып мұра ету кезінде базалық кластың ашық мүшелері туынды класта жабық болады.