Название статьи…



жүктеу 76.43 Kb.
Дата06.03.2017
өлшемі76.43 Kb.

Название статьи…

УДК 378:865.336.3

Шаяхметова Б.К., Шаукенова К.С., Искакова Г.Ш., Орумбаева Н.Т.



Карагандинский государственный университет им. Е.А. Букетова, e-mail:OrumbayevaN@mail.ru.

Күрделі жүйелер үшін бағдарламалық нәтижелерді құру

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

Негізгі сөздері: иерархия, блок, декомпозиция, жобалау, бағдарламалық жиынтық, құрылым, үрдіс(процесс), нысан (объект), «қарапайым- күрделі».

Бұл жұмыста сапалы бағдарламалық қамтуды құруда қолданылатын әдістер келтірілген. Ол [1]- мақалада қарастырылған бағдарламалаудың технологиясын оқытудың кейбір сұрақтары зерттелген ойлардың жалғасы болып табылады.

Күрделі жүйе үшін бағдарламалық нәтижелерді құру үшін алдымен оны неғұрлым ұсақ бөліктерге (декомпозиция үдерісі) бөліп, содан кейін есептеп, міндетін қою керек.

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

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

Ішкі жүйелерге ажырату, байланыстың әртүрлілігі сияқты, әрбір ішкі жүйелерді ішкі жүйелерге ең төменгі «қарапайым» деңгейге дейін бөлуге мүмкіндік береді. Бөлшектерін (компоненттерін) қарапайым деп санауға болатын деңгейді анықтау зерттеушінің еркінде. Қарапайым деңгейде жүйе әртүрлі топталған және ұйымдастырылған аздаған ішкі жүйелерден құралады. Осындай түрдегі иерархия «бүтін- бөлік» деген атқа ие болады.

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

Біздің жағдайымызда иерархияға қатысты келесі орын алады: табиғатта тағы да бір иерархия – «қарапайы- күрделі» иерархия орын алады, немесе эволюция үдерісінде жүйе дамуындағы иерархия (күрделенген). Бұл иерархияда кез келген бейнеленуші жүйе неғұрлым қарапайым жүйенің дамуының нәтижесі болып табылады. Иерархияның осы берілген түрі нысанды- бағытталған бағдарламаның зерттеу механизмімен таратылады.

Блоктық-сатылы (блоктық- иерархиялық) амалдар анықтамасына көшейік. Табиғаттық және техникалық жүйелердің мәндік дәрежеде бейнесі болғандықтан, бағдарламалық жүйелер әдетте жоғарыда айтылған қасиеттерге ие болғандықтан иерархиялық болып табылады. Иерархиялық жүйелердің осы қасиеттерге сүйеніп блоктық- сатылы (блоктық- иерархиялық) амал құрылады. Біз блоктық- сатылы амалдарды зерттеумен немесе құрумен айналысамыз. Бұл амалда алдымен осындай нысанның бөлітерін (блоктар, модулдер) құрып, содан кейін олардан нысанды жинау керек [2].

Сонымен бірге біз келесі анықтама беруіміз керек: күрделі нысанды салыстырмалы түрде тәуелсіз бөліктерге бөліктеу үдерісі декомпозиция деп аталады. Декомпозиция кезінде әртүрлі бөліктер арасында байланыс бөліктер ішіндегі элементтер байланысына қарағанда әлсіз болу керектігі ескеріледі. Сонымен бірге, алынған бөліктерден дайындалатын нысанды жинау үшін декомпозициялық процесс барысында барлық өзара байланыс түрлерін анықтау қажет.

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

Олай болса, жоғарыда айтылғандай, бөліктерге бөлу кодтардың қайталану дәрежесін жоғарылатады, сонымен жұмыстың бағасын төмендетеді.

Енді «иерархия» түсінігінің анықтамасын берейік. Блоктық- сатылы тәсілдемеде блоктарды сипаттауда абстрактылы және нақтылы арақатынас сызбасын құра білу керек. Ол жайында төменде сөз болады. Декомпозиция нәтижесі әдетте иерархия сызбасы түрінде болады. Төменгі деңгейде салыстырмалы түрде қарапайым блоктарды орналастырады, ал жоғарғы деңгейде дайындалушы нысан орналастырылады. Әрбір иерархиялық деңгейде блоктарды сипаттау қандай да бір бөліктеу дәрежесіне байланысты кішкене бөлшектерден абстракты түрде орындалады. Осыдан әрбір деңгейге әрбір блокта орындалатын үдеріс маңыздылығын бейнелейтін құжаттың өзіне арналған түрін және өз моделін қолданады.

Бұл жерде алдағы пайымдауға қажетті қандай да бір ереже тұжырымдау керек. Тек қана нысан үшін жалпы талаптар ғана толығымен тұжырымдау мүмкін болады. Ал төменгі деңгейдегі блоктардың өзгешеліктерін арнайы анықтап, олардан шынымен жұмыс істейтін нысан жинауға болатындай тұжырымдау керек. Басқаша айтқанда, блок саны көп болса, оның сипаттау да неғұрлым абстрактылы болу керек (суретті қараңыз).

Объект

Блок 1


Блок 2

Блок n



Блок 1.1

Блок 1.K1

Блок 2.1

Блок 1.K2



Блок n.1



Блок 1.Kn

Конкретизация

Абстракция

0 деңгей


1 деңгей

2 деңгей


Сурет. Блоктық- сатылы тәсілдемеде блоктарды сипаттауда абстрактылы және нақтылы арақатынас

Олай болса, блоктық- иерархиялық тәсілдеме негізінде декомпозиция және иерархиялық реттеу жатады. онымен бірге келесі қағидалар маңызды роль атқаратынын ескеру қажет:

-қайшылықсыздық- элементтердің өзара келісуін бақылау;

-толықтық- артық элементтердің қатысуын бақылау;

-нысандандыру- әдістемелік тәсілдеме қатаңдығы;

-қайталану- дайындауды арзандату және тездету үшін бірдей блоктарды ажырату қажеттігі;

-жергілікті оптимизация- иерархия дейгейінің шектеу оптимизациясы.

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

Екіншісі- жобалау үрдісінде әрбір нысанды ережеге сәйкес жан- жақты қарастыруға тура келеді. Нысанға әртүрлі көзқарасты жобалау аспектісі деп атайды.

Олай болса, жоғарыда айтылғандарды ескеріп, жобалау парадигмасын тұжырымдайық: бағдарламалық жүйелерге блоктық- иерархиялық тәсілдемені қолдану тәсілдеменің жалпы ережелерін нақтылағаннан кейін және жобалау үрдісіне қандай да бір өзгерістер енгізуден кейін ғана мүмкін болды. Сонымен бірге, құрылымдық тәсілдеме иерархияның «бүтін- бөлік» қасиетін ескереді, ал нысандық сонымен бірге иерархияның «қарапайым- күрделі» қасиетін қолданады.

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

Мұнда жобалау үрдісінің негізгі кезеңдерін атап өту керек:

1. Бағдарламалық жиынтық архитектурасынын жобалау.

2. Бірінші кезеңде ажыратылған компоненттердің сыртқы спецификациясын (айрықшылығын) дайындау.

3. Компоненттердің құрылымын жобалау.

4. Жобалаудың үшінші кезеңінде ажыратылған әрбір компоненттің құрылымдық бірлігін (ішкі бағдарлама, класстар, модульдер) спецификациясын (айрықшылығын) дайындау.

5. Әрбір компонентте ажыратылған құрылымдық бірліктің алгоритмдерінің және берілгендерінің құрылымын жобалау.

Одан кейін жоғарыда келтірілген кезеңдерді таладу керек. Алғашқы екі кезең міндетті болып табылмайды және бірінен тәуелсіз компоненттерге (мысалы, бағдарлама жүйесі текстік редакторға, файлдармен басқару, компилятор, анықтама жүйесі және т.с.с) қатысты бөлшектенетін үлкен бағдарламалық жүйелер жобалау кезінде ғана орындалады.

Келесі, үшінші, кезеңді жеке қарастыру керек. Себебі, ол жобалау үрдісі үшін негізгі болып табылады. Олай болса, бағдарламалық жиынтық архитектурасын жобалау кезеңінде келесі анықталады:

-әрбір компонентпен орындалатын функциялар;

-компоненттер арасындағы дәл және бірмәнді түйіндестер (интерфейстер);

- компоненттер арасындағы басқару беру құрылымы;

-мәліметтер ағымының құрылымы;

-асинхронды (параллель) орындалатын үрдістер иерархиялық құрылымы (егер ондай қарастырылса);

- компоненттер арасындағы оперативтік жадын үлестіру құрылымы;

-бөлінетін құрылғылар компоненттерін қолдану құлырылымы (мысалы, ішкі коммуникациядар).

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

Проектирования программного продукта для сложных систем

Для создания программного продукта сложной системы необходимо сначала разбить ее на более мелкие части (процесс декомпозиции), а затем сделать постановку задачи. Подавляющее большинство сложных систем, как в природе, так и в технике имеет иерархическую внутреннюю структуру. В статье освещены приемы, применяемые при создании программного обеспечения, рассмотрены блочно-иерархический подход, сформулированы основные положения постановки задачи, показан процесс декомпозиции сложного программного комплекса.

Shayakhmetova B.K., Shaukenova K.S., Iskakova G.S., Orumbayeva N.T.

Design software for complex systems

To create a complex software system, in the first place is to divide it into smaller parts (decomposition process), and then make a formulation of the problem. The vast majority of complex systems, both in nature and in technology have a hierarchical internal structure. The article highlights the techniques that involved in creating software, block-hierarchical approach are considered, the basic situation of formulation of the problem are given, the process of decomposition of complex software systems are mentioned

Әдебиеттер

Шаяхметова Б.К. Пути повышения качества создания программного обеспечения для информационных специальностей университета /Б.К. Шаяхметова/ Классический университет в парадигме современных знаний/ - Караганда: Издательство КарГУ, 2012.-С.376-378.

Хорев П.Б. Объектно-ориентированное программирование. Учеб. Пособие для студ. учреждений высш. проф. образования /П.Б. Хорев – 3-е изд., испр. – М: Издательский центр «Академия», 2011. – 448 с.



References

  1. Shayakhmetova B.K. The ways to improve the quality of software development for information university’s specialties / B.K. Shayakhmetova / Classical university in the paradigm of modern knowledge / - Karaganda: Издательство КарГУ, 2012.-p.376-378.

  2. Horev P.B. Object-oriented programming. The manual for students of higher education institutions / P.B. Horev - 3rd pub., rev. - M: Издательский центр «Академия», 2011. – 448p.

Серия «Математика». № 1(73)/2014


Достарыңызбен бөлісу:


©melimde.com 2017
әкімшілігінің қараңыз

    Басты бет