Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
СУБД_жауаптар.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
915.46 Кб
Скачать
  1. Абстракция: анықтама, мысалдар.

Адам әдетте бір мезгілде ақпаратты белгілі-бір мөлшерде ғана қабылдай алады. Және қабылдаған ақпараты оның мазмұнына тәуелді емес. Миллер айтқандай: "Біздің жадымыздың көлемі біз қабылдай алатын, өңдей алатын және есте сақтай алуымызбен толы болады.Бір мезгілде бірнеше каналдан келетін ақпаратты белгілі бір көлемін ғана қабылдап қалған бөлігін шегеруімізге тура келеді" .

Жаңа терминология бойынша бұл процесті абстракця деп атаймыз.

Программалық жүйенің проектілеу әдістері

Метод дегеніміз моделдер пайда болуының қалыпты процесі,өңделіп жатқан программалық жүйені анықталған шарттарымен сипаттайтын.

Методология өмір циклында қолданылатын программалық жабдықталудың өңделуі.

Әдістер бірнеше себептері бойынша маңызды. Біріншіден олар топтағы барлық адамға түсінікті болатындай етіп күрделі жүйелердің құрылу кезеңін қадағалайды. Екіншіден менеджердің процесс өңделу кезіндегі қозғалу деңгейі мен тәуекелін қадағалауға мүмкіндік береді.

Компьютерлер алғаш өндіріске ене бастағанда үлкен программаларды құру қте қиын болды, өйткені компьютер мүмкіндігі өте аз еді.Шектеулер оперативті жадының аздығынан, ақпаратты жай оқудан,процестің жай болуынан шықты.Кейіннен негізгі элементтерінің пайда болуынан алгоритмдік жоғары дәрежелі тілдер пайдаланыла бастады.Ол тілдер программисттер мен разработчиктердің күрделі программалық жүйелерді кең қолдануына зор мүмкіндік берді. Құрылымдық программалауда дәс осындай амал қолданылады:алгоритмдік декомпозиция үлкен тапсырманы кіші бөліктерге бөлуге пайдаланылады.

Барынша тиімді әдістерді Петерсом, Йеном мен Цаи және TeledyneBrown фирмасы жасап шығарды.Саммервилль оларды негізгі 3 топқа бөлуді ұсынады:

1.құрылымды проектілеудің жоғарыдан төменге әдісі;

2.мәліметтер ағымы әдісі;

3.обьектіге бағытталған программалау.

Құрылымдық әдіс абстракцияны бөліп көрсете алмайды және мәліметтерге кіру құқығына қауіпсіздік бере алмайды.

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

  1. Иерархия: анықтама, мысалдар.

Маңызды ықшамда күрделі тапсырманы иерархиялық құрылымның абстракциясы арқылы шешеміз. Иерархияны келесі түрде анықтаймыз:

Иерархия- абстракцияның реттілеуі, олардың деңгейлерге ,бөлінуі.

Иерархиялық құрылымның күрделі жүйелерде түрлері: класстың("isa" иерархиясы) құрылымы және нысанның("part of" иерархиясы) құрылымы болып табылады.

Иерархияның негізгі түрі "isa" болып табылады. "isa" жоғарғы мұрагерлік концепсияны тұжырымдайды.Мұрагерлік класстар арасындағы қатынаста мынадай мағына береді(ұрпақтық қатынас): бір класс құрылымдық немесе функциялық басқа бір немесе бірнеше класс бөлігін пайдаланған жағдайда (сәйкесінше, жеке және көпшілік мұрагерлік).

Мұрагерлік класс тармақтары бір немесе бірнеше суперкласстан кейін құралатын абстракцияның иерархиясын құрады.

Жиі жағдайда класс тармақтары жоғарғы класстың компонентін құрап бітіреді немесе көшіріп алады.

Мысалы:

Бақша жүйесінде өсімдіктің түрлерін қарастырамыз.

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

C++ "жеміс" жоспары

// Бақша типі

typedef unsigned int Yield;

class FruitGrowingPlan : public GrowingPlan {

public:

FruitGrowingPlan(char* name);

virtual ~FruitGrowingPlan();

virtual void establish(Day, Hour, Condition&);

void scheduleHarvest(Day, Hour);

Boolean isHarvested() const;

unsigned daysUntilHarvest() const;

Yield estimatedYield() const;

protected:

Boolean repHarvested;

Yield repYield;