Файл: Сафи тебаев атындаы аунг кеа 6В07101ндірісті автоматтандыру жне басару.docx
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 09.12.2023
Просмотров: 125
Скачиваний: 2
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
СОДЕРЖАНИЕ
1. Автоматтандырылған жобалаудағы құрылымдық көзқарас және деректер модельдерін құру
1.1 Құрылымдық талдау құралдары
1.2 Құрылымдық талдаудың принциптері
2. Автоматтандырылған жобалау мәселесін қоюдағы құрылымдық тәсіл түрлері
2.1 Құрылымдық тәсілдің бастапқы функциялары
Дәстүрлі түрде жұмыс істейтін кейбір кәсіби бағдарламашылар байқамауға тырысатын екінші маңызды аспект - бұл бағдарламаны жөндеу.
Бағдарламаларды құру кез келген техникалық құрылғыны шығару сияқты технологиялық процеске айналуы үшін бағдарламаны жобалауға деген көзқарасты түбегейлі өзгерту қажет болды. Алайда, бағдарламаларды құрудың технологиялық процесін әзірлеу, оны өнеркәсіптік негізде қою қиын міндет болып шықты және бүгінгі күнге дейін шешімін таппай келеді.
Құрылымдық дизайн - бұл олардың сапасын, сенімділігін және оларды жаппай пайдалану мүмкіндігін арттыра отырып, оларды құрудың күрделілігін азайтуға бағытталған маңызды қадам.
Құрылымдық жобалаудың негізгі принциптері:
1. жоғарыдан төмен дизайн;
2. модульдік бағдарламалау;
3. құрылымдық бағдарламалау (кодтау);
4. құрылымдық бақылау.
Жоғарыдан төмен жобалау есептерді шешудің иерархиялық тәсіліне негізделген, оны бірінші және екінші кезеңде, есептің қойылымы қалыптасып, математикалық аппарат таңдалған кезде қолданған жөн.
Біріншіден, иерархияның жоғарғы деңгейінде шешуді қажет ететін негізгі функцияны бөліп көрсетеміз; көбінесе бұл функция тапсырманың мақсаты ретінде қызмет етеді. Содан кейін функцияның егжей-тегжейлері біртіндеп жүреді. Иерархияның келесі деңгейінде негізгі функцияны орындауға мүмкіндік беретін функциялар орналасқан. Келесі деңгейде иерархияның жоғарғы деңгейінің функцияларын орындауға мүмкіндік беретін функциялар және т.б.
Әрбір функция тіктөртбұрышқа салынған және сызықтардың көмегімен алдыңғы және кейінгі деңгейлердің функцияларымен байланысады. Болашақта тәуелсіз мәні бар бұл функциялар модульдер деп аталады.
Иерархиялық схеманы құру кезінде келесі ережелерді сақтау керек:
1. Әрбір модульді тек бір жоғарғы деңгейлі модульмен және бірнеше төменгі деңгейлі модульдермен байланыстыруға болады. Оның да бір кіреберісі бар. Төменгі деңгей модульдерінің шығысы да бірдей, өйткені егер жоғарғы деңгей модулі төменгі деңгей модулін шақырса, оны орындағаннан кейін басқаруды жоғарғы деңгей модуліне беруге болады, ол басқа төменгі деңгейді шақыра алады. деңгейлік модуль. Жоғарғы деңгейлі модульден бірнеше шығыстардың болуы төменгі деңгей модульдерінің жоғарғы деңгейлі модульдерге бағынатынын білдіреді.
2. Модульдер арасындағы байланыс жоғарыдан төменге қарай ұйымдастырылған.
3. егер бір модульге үндеу ұйымдастыру қажет болса, онда ол сонша рет және қажет жерлерде сызылуы керек. Мұндай модуль оң және сол жақтағы екі тік сызықпен арнайы белгіленген және бір бағдарлама ретінде жүзеге асырылатын болады.
Айта кету керек, жоғарыдан төмен жобалау неғұрлым мұқият және егжей-тегжейлі жүзеге асырылса, бағдарламаларды бағдарламалау және жөндеу оңайырақ болады.
Модульдік бағдарламалау – әрбір модульді дербес бағдарламалау. Бағдарламалау әдетте жоғарғы деңгейден жасалады. Біріншіден, жоғары деңгейлі модульдердің шектеулі саны үшін бағдарлама құрастырылады және бүкіл тапсырма сыналады, ал қалған модульдер бағдарламаланбайды, бірақ олар үшін stub деп аталатындар жасалады. Мысалы, print операторы жиі қолданылады.
Бағдарламаға бір уақытта бірнеше модульді енгізуге жол берілмейді. Келесі модуль әзірленгеннен кейін ол негізгі бағдарламаға қосылады және сынақтан өтеді.
Әрбір жаңа модуль толық тексерілгеннен кейін ғана негізгі бағдарламаға енгізіледі.
Құрылымдық бағдарламалау (кодтау) - белгілі бір құрылымдарды пайдаланып алгоритмдік тілде бағдарламалау процесі. Құрылымдық бағдарламалаудың негізгі ережелері:
1. Кез келген программа үш типті негізгі алгоритмдік құрылымдар негізінде құрастырылады: сызықтық, тармақталған және циклдік.
2. осы құрылымдар арасында басқару тек алға қарай беріледі, ол құрылымдық схемада жоғарыдан төмен қарай сызықтардың бағытына сәйкес келеді.
3. бағдарламада басқаруды бағдарламаның бір орнынан екінші орынға сөзсіз беру үшін арнайы команданы пайдалануға жол берілмейді (мысалы, GOTO).
Құрылымдық кодтау жеке модульдерді бағдарламалау үшін қолданылады. Алдымен 1, 2, 3 ережелері негізінде алгоритм әзірленеді, содан кейін негізгі алгоритмдік конструкциялар белгілі бір тілдің сәйкес конструкцияларымен ауыстырылады.
Құрылымдық бақылау ондаған және жүздеген модульдерді қамтитын күрделі тапсырмаларды әзірлеу кезінде қажет. Бұл бағдарламалық жасақтаманы әзірлеу процесін бақылаудың жаңа түрі, оған бірнеше адам қатысады. Тапсырманы әзірлеу барысында осы тапсырма бойынша жұмыс материалдары қызметкерлердің белгілі бір тобына мерзімді түрде таратылады. Олар олармен танысады, содан кейін бірлескен талқылау барысында бағдарламаны әзірлеуші жақын арада жоюы тиіс осы кезеңдегі кемшіліктер анықталады.
Мұндай бақылау әсіресе бүкіл жүйенің іргетасы қаланған кезде есепті құрастыру мен алгоритмдеуде тиімді.
Бағдарламалау мен дизайндағы құрылымдық тәсілді жасаушы - Э.Дейкста. Шындығында, құрылымдық бағдарламалау - бұл бағдарламалық қамтамасыз етудің бірінші толық әдістемесі.
АЖ әзірлеудегі құрылымдық тәсілдің мәні оның автоматтандырылған функцияларға ыдырауында (бөлуінде) жатыр: жүйе функционалдық ішкі жүйелерге бөлінеді, олар өз кезегінде ішкі функцияларға, тапсырмаларға және т.б. Бөлу процесі арнайы процедураларға дейін жалғасады. Бұл ретте автоматтандырылған жүйе барлық құрамдас бөліктер өзара байланысқан тұтас көріністі сақтайды.
Құрылымдық әдістер жүйелік талдау мен жобалаудың қатаң пәні болып табылады, яғни бұрын қиындығымен және қиындығымен танымал болған әрекеттер.
Құрылымдық талдау және жобалау әдістері үлкен жүйелерді бөліктерге («қара жәшіктер») бөлу және осы қара жәшіктерді иерархиялық тәртіпте ұйымдастыру арқылы олардың күрделілігін жеңуге тырысады. Қара жәшіктерді пайдаланудың артықшылығы - олардың пайдаланушысы олардың қалай жұмыс істейтінін білудің қажеті жоқ, тек кірістер мен шығыстарды және олардың мақсатын (яғни, олар орындайтын функция).
Бізді қоршаған әлемде қара жәшіктер көптеп кездеседі. Музыкалық орталық мысалында олардан құралған жүйелердің артықшылықтарын көрсетейік.
· Қара жәшік жүйесінің дизайны айтарлықтай жеңілдетілген. Кірістірілген күшейту блогын құру туралы алаңдамау қажет болмаса, магнитофонды немесе айналмалы табақты жобалау әлдеқайда оңай.
· Мұндай жүйелерді тестілеу жеңілдетілген. Динамиктердің бірінен нашар дыбыс естісеңіз, динамиктерді ауыстыруға болады. Егер ақаулық бағанмен бірге қозғалса, оны жөндеу керек; егер олай болмаса, мәселе күшейткіште, магнитофонда немесе олар қосылған жерде.
· Қара жәшік жүйесін оңай қайта конфигурациялауға болады. Егер динамик ақаулы болса, оны жөндеу шеберханасына жібере аласыз, ал сіз моно режимде жазбаларыңызды тыңдай бересіз.
· Түсіну және меңгеру үшін қолжетімділік жеңілдетілген. Шешендерді терең білмей-ақ, магнитофон маманы болуға болады.
· Өзгерту кезінде ыңғайлылықтың жоғарылауы. Жоғары сапалы динамиктерді және күшті күшейткішті алуға болады, бірақ бұл сізге үлкенірек айналмалы табақ қажет дегенді білдірмейді.
Осылайша, күрделі жүйені жеңілдетудің бірінші қадамы оны қара жәшіктерге бөлу болып табылады және мұндай бөлу келесі критерийлерді қанағаттандыруы керек:
Әрбір қара жәшік жүйенің бір функциясын жүзеге асыруы керек;
Әрбір қара жәшіктің қызметі оны іске асырудың күрделілігіне қарамастан оңай түсінілуі керек (мысалы, зымырандарды басқару жүйесінде оның қону орнын есептеуге арналған қара жәшік болуы мүмкін: алгоритмнің күрделілігіне қарамастан, функция қара жәшік анық - «қосу нүктесін есептеу»);
Қара жәшіктер арасындағы байланыс жүйенің сәйкес функциялары арасында байланыс болған жағдайда ғана енгізілуі керек (мысалы, бухгалтерлік есепте бір қара жәшік қызметкердің жалпы жалақысын есептеу үшін қажет, ал екіншісі салықтарды есептеу үшін қажет - осы қара жәшіктер арасындағы байланыс қажет: салықтарды есептеу үшін жалақы мөлшері қажет);
· Қара жәшіктер арасындағы байланыс олардың арасындағы тәуелсіздікті қамтамасыз ету үшін мүмкіндігінше қарапайым болуы керек.
Бұрын айтылғандай, құрылымдық тәсілдің мәні функционалдық принцип бойынша программаның немесе бағдарламалық жүйенің декомпозициясында жатыр. Барлық ұсынылған декомпозиция әдістері қарапайым типтегі интерфейстерді пайдаланады: қарапайым интерфейстер және дәстүрлі мәзірлер және деректер құрылымдарын да, оларды өңдейтін бағдарламаларды да талдауға және жобалауға арналған.
Сонымен қатар, көп жағдайда өңдеу компоненттерін жобалау бірінші реттік болып саналады, ал деректер құрылымдарын жобалау параллель орындалады. Сондай-ақ альтернативті тәсіл бар, онда деректерді жобалау бастапқы болып саналады, ал өңдеу бағдарламалары алынған деректер құрылымдарын талдау арқылы алынады.
Кез келген жағдайда бағдарламалық жасақтаманы жобалау оның құрылымын анықтаудан басталады.
Күрделі бағдарламалық қамтамасыз етуді жобалау процесі оның құрылымын нақтылаудан, яғни құрылымдық компоненттерді және олардың арасындағы байланыстарды анықтаудан басталады. Құрылымды нақтылау нәтижесі құрылымдық және/немесе функционалдық диаграммалар және компоненттердің сипаттамалары (спецификациялары) түрінде ұсынылуы мүмкін.
2.3Құрылымдық тәсілдің мәні
АЖ әзірлеудегі құрылымдық тәсілдің мәні оның автоматтандырылған функцияларға ыдырауында (бөлуінде) жатыр. Жүйе функционалдық ішкі жүйелерге бөлінеді, олар өз кезегінде ішкі функцияларға, тапсырмаларға және т.б. Бөлу процесі арнайы процедураларға дейін жалғасады. Бұл ретте автоматтандырылған жүйе барлық құрамдас бөліктер өзара байланысқан тұтас көріністі сақтайды. Жүйені жеке тапсырмалардан бүкіл жүйеге дейін «төменнен жоғарыға» әзірлеу кезінде тұтастық жоғалады, жеке компоненттердің ақпараттық қондыруында проблемалар туындайды.
Құрымдық тәсілдің әдістемесі келесі принциптерді пайдаланады:
-
«бөліп ал және жең» - күрделі мәселелерді түсінуге және шешуге оңай көптеген кішігірім тәуелсіз тапсырмаларға бөлу арқылы шешу; -
иерархиялық реттілік – әрбір деңгейде жаңа бөлшектерді қосу арқылы мәселенің құрамдас бөліктерін иерархиялық ағаш құрылымдарға ұйымдастыру; -
абстракция - жүйенің маңызды аспектілерін бөліп көрсету және маңызды емес нәрселерден назар аудару; -
формализация – мәселені шешуде қатаң әдістемелік тәсілдің қажеттілігі; -
консистенциясы – элементтердің негізделуі және сәйкестігі; -
деректерді құрылымдау – деректер құрылымды және иерархиялық түрде ұйымдастырылуы керек.
АЖ жобалау кезеңінде модельдер кеңейтіледі, нақтыланады және программалық қамтамасыз ету құрылымын көрсететін диаграммалармен толықтырылады: бағдарламалық қамтамасыз ету архитектурасы, бағдарламалардың ағын диаграммалары және экран пішінінің диаграммалары. Көрсетілген үлгілер бірге АЖ-ның бар немесе жаңадан әзірленгеніне қарамастан толық сипаттамасын береді. Әрбір нақты жағдайда диаграммалардың құрамы жүйені сипаттаудың қажетті толықтығына байланысты.
Құрылымдық (жүйелік) жобалау – бұл ішкі жүйелерді, құрамдас бөліктерді және олардың қосылу тәсілдерін анықтау, жүйе жұмыс істеуі тиіс шектеулерді орнату, жүйені енгізу үшін адамдардың, машиналар мен бағдарламалық қамтамасыз етудің ең тиімді комбинациясын таңдау әдісі.
Мысал ретінде осындай жобалау үшін кеңінен қолданылатын жүйелердің бірін қарастырайық – SADT (Structured Analysis and Design Technique – құрылымдық талдау және жобалау технологиясы) – бұл графикалық белгілеу және жүйелерді сипаттау тәсілі.
SADT бағдарламалық қамтамасыз ету талаптарын, т.б. анықтау алдында жүйені және оның ортасын сипаттауға арналған. Ол күрделілігі орташа жасанды жүйелерді сипаттауды және түсінуді жеңілдетеді. SADT жүйені елестетуден бұрын түсіну үшін графикалық тілді және талдау процедураларының жиынтығын пайдаланады. Ол әдетте жүйені әзірлеу процесінің басында қолданылады, көбінесе «жүйенің өмірлік циклі» деп аталады.