Программалы ралдарды деу аспаптары
Скачать 65.36 Kb.
|
6 Программалық құралдарды өңдеу аспаптары Программалық құралдарды сол немесе басқа шамада өңдеу процессінде ПҚ-ды өңдеу процестерін компьютерлік қолдау қолданылады. Бұл ПҚ-дың ең болмағанда бірнеше программалық документтерін берілгендердің компьютерлік тасымалдағыштарында (мысалы, дискеттерде) көрсету және арнайы ПҚ-дың ПҚ өңдеушінің билігін немесе қандай да бір осындай өңдеулер үшін құрылған арнайы құрылғылар компьютерінің құрамына қосылған көрсетулер жолымен жүзеге жетеді. Мұндай арнайы ПҚ ретінде қандай да бір программалау тілінің компиляторын көрсетуге болады. Компилятор ПҚ өңдеушісін ПҚ өңдеушісіне аса ыңғайсыз болатын компьютер тілінде программаларды жазу қажеттілігінен құтқарады, -оның орнына ол компилятор автоматты түрде компьютер тіліне аударатын өзіне ыңғайлы программалау тілінде программалар құрады. ПҚ өңдеу процесін қолдайтын арнайы құрылғы ретінде қандай да бір тілдің эмуляторы қызмет ете алады. Эмулятор ПҚ өңдеуін қолдайтын компьтер тілінен тамаша тілдерде программалар орындауға (интерпретаторлауға) мүмкіндік береді. Басқа ПҚ-ды өңдеуді қамтамасыз етуге арналған ПҚ-ды ПҚ өңдеудің программалық аспабы деп атаймыз, ал ПҚ өңдеуін қолдауға арнайы арналған компьютер құрылғысын ПҚ өңдеудің аппараттық аспабы деп атаймыз. ПҚ өңдеу аспаптары түрлі программалық документтермен жұмыс істеуге арналған ПҚ-дың барлық өмірлік цикл аралығында қолданыла алады. Осылай мәтіндік редактор түрлі программалық документтерді өңдеу үшін қолданыла алады. Функция жағынан алғанда, ПҚ-ды өңдеу кезінде орындайтын аспаптарды келесі төрт топтарға ажыратуға болады: Редакторлар; Анализаторлар; Түрленгіштер; Бағдарламаларды орындау үрдісін қолдайтын аспаптар Редакторлар өмірлік циклдің түрлі этаптарындағы сол немесе басқа программалық документтердің құрылымын(жүйеленуін) қолдайды. Алдын айтылғандай, бұл үшін бір әмбебап(универсальный) мәтіндік редакторды қолдануға болады. Алайда, өте күштірек қолдауды арнайыландырылған редакторлар қамтамасыз ете алады: документтің әр түрі үшін – өзінің редакторы. Өңдеудің алдыңғы этаптарында документтерде сипаттаудың графикалық құралдары (диаграммалар, схемалар және т.б.) кеңінен қолданыла алады. Мұндай жағдайларда графикалық редакторлар аса тиімді болуы мүмкін. Программалау этапында (кодтау) мәтіндік редактор орнына қолданылатын программалау тіліне бағытталған синтаксистік басқарылатын редактор анағұрлым ыңғайлы болуы мүмкін. Анализаторлар оларды басқарудың түрлі түрлерін, олардың анықталған қасиеттерін не анықтау және статикалық берілгендердің(мысалы документтердің көрсетілген стандарттарға сәйкестігін анықтау) жиналуын жүзеге асыра отырып документтердің статикалық өңделуін, не бағдарламалардың динамикалық анализін(мысалы, бағдарлдаманың жұмыс уақытын программалық модульдер бойынша орналастыру мақсатымен) жүзеге асырады. Түрленгіштер документтерді көрсетудің басқа формасына (мысалы, форматерлер) автоматты түрде келтіруге және бір түр документтің документтің басқа түріне (мысалы, конверторлар немесе компиляторлар)аударуға, жеке бөліктерден қандай да бірдокументтерін синтездеуге мүмкіндік береді. Бағдарламалардың орындалу процесін қолдану аспаптары компьютерде процестердің сипаттамасын немесе түрі машиналық кодтан тамаша көрсетілген олардың жеке бөліктерін, немесе оынң интерпретациясының қосымша мүмкіндіктерімен машиналық кодты орындауға мүмкіндік береді. Мұндай аспаптың мысалы басқа компьютер кодының эмуляторы болып табылады. Аспаптардың мұндай тобына түрлі ретке келтірулерді жатқызуға болады. Негізінде, программалаудың әрбір жүйесі программалау тіліне арналған едәуір типтік программалық фрагменттерді орындайтын және программаларды орындау кезінде туындайтын ерекше ахуалдарға(мұндай жүйешелерді орындаушы қолдау деп атайтын боламыз) стандартты реакцияларды қамтамасыз ететін орындау периодының программалық жүйешесін құрайды, - сонымен қатар берілген топтың аспабы ретінде қарастыруға болады. Программалық құралдарды өңдеу мен шығарып салудың (сопровождение) аспаптық орталары Қазіргі уақытта программалаудың әрбір жүйелерімен жеке элементтер емес (мысалы, компилятор), ал берілген программалау тілінде ПҚ- ды өңдеу мен шығарып салуды қолдайтын программалық және аппараттық аспаптардың немесе қандай да бір нақты заттық облысқа бағытталған аспаптардың кейбір логикалық жиынтығы байланысқан. Мұндай жиынтықты ПҚ- ды өңдеу мен шығарып салудың аспаптық ортасы деп атаймыз. Мұндай аспаптық орталары былайша сипатталады, біріншіден программалық сияқты аппараттық аспаптарды қолдану, екіншіден анықталған ориентация не нақты программалау тіліне, не нақты заттық облысқа ориентация. Аспаптық ортаны өзінде қолданылатын сол компьютерде ғана функционалдау міндетті емес. Мұндай бірігу жиі- жиі ыңғайлы болады (егер тек қолданылатын компьютер қуаты осыған, мүмкіндік берсе): түрлі тип компьютерлерімен жұмыс істеудің керегі жоқ, ал өңделетін ПҚ-ға ең аспаптық ортаның компоненттерін қосуға болады. Дегенмен, ПҚ қолданылуы керек компьютер осы ПҚ өндірушілері үшін (мысалы, ол үнемі үзуге болмайтын басқа жұмыспен босамаса, немесе ол әліде өңдеу кезеңінде болса), не ПҚ өңдеу үшін ыңғайсыз болса, не бұл компьютердің қуаты аспаптық ортамен талап етілетін функционалды қамтамасыз ету үшін жеткіліксіз болса, онда аспаптық объектілік деп аталатын, жол қолданылады. Оның мәні мынада, ПҚ аспаптық деп аталатын бір компьютерде жасалады, және мақсаттық (немесе объектілік) деп аталатын басқа компьютерде қолданылатын болады. ПҚ- ды өңдеу мен шығарып салу аспаптық ортасының үш негізгі түрін ажыратады (1 сурет): программалау орталары, компьютерлік технологияның жұмыс орындары, программалау технологиясының аспаптық жүйелері. Программалау ортасы негізінен ПҚ-ды программалау (кодтау), тестілеу және ретке келтіру процестерін қолдау үшін арналған. Компьютерлік технологияның жұмыс орны ПҚ-ды жасаудың бұрынғы этаптарын қолдауға және программаларды спецификациялар бойынша автоматты генерациялауға бағытталған. Программалау технологиясының аспаптық жүйесі өңдеудің барлық процестерін қолдау үшін және ПҚ- дың бүкіл өмірлік циклінің аралығында шығарып салу үшін арналған және ұзақ өмірлік циклі бар үлкен программалық жүйелерді ұжымдық өңдеуге бағытталған. Мұндай жүйелер үшін шығарып салу құны әдетте өңдеу құнын арттырады. Сурет 4. ПҚ-ды өңдеумен шығарып салудың аспаптық орталарының негізгі класстары Программалаудың аспаптық орталары Программалаудың аспаптық орталары ең алдымен, программасы берілген программалау тілінде құрылымдауға мүмкіндік беретін мәтіндік редакторды, программаны осы тілде компилярлауға және интерпретаторлауға, сонымен қатар алынған программаларды тестілеу мен ретке келтіруге мүмкіндік беретін аспаптарды қамтиды. Сонымен қатар басқа да аспаптардың болуы мүмкін, мысалы программалардың статикалық және динамикалық анализіне арналған аспаптар. Бұл аспаптар бір- бірімен өзара файлдық жүйенің стандартты мүмкіндіктерінің көмегімен қарапайым файлдар арқылы әсерлеседі. Программалаудың аспаптық орталарының келесі кластарына ажыратады (Сурет 1): 1) жалпы тағайындау (назначение)орталары; 2) тілдік бағытталған орталар. Жалпы тағайындаудың программалау аспаптық орталары түрлі программалау тілдерінде (мысалы, мәтіндік редактор, байланыс редакторы немесе мақсаттық компьютер тілінің интерпретаторы) программалардың өңделуін қолдайтын программалық аспаптардың жиынын қамтиды және әдетте, қолданылатын операциялық жүйенің кейбір мүмкіндіктерінің кеңеюін көрсетеді. Мұндай ортада программалау үшін программалаудың қандай да бір тілінде осы тілге бейімделген (мысалы, компилятор) қосымша аспаптар қажет болады. Сурет 5. Программалаудың аспаптық орталарының классификациясы Программалаудың тілдік- бағытталған аспаптық ортасы қандай да бір программалау тілінде ПҚ өңдеуін қолдау үшін арналған және осы тіл туралы осы орталарда құрылысы қолданылды. Сондықтан бұл осы орталарда осы тілдің спецификациясын үйретуші қуатты мүмкіндіктер болуы мүмкін. Осы орталар екі классқа бөлінеді. Тілдік- білгі бағдарламалаудың аспаптық ортасы ПҚ өңдеуін сүйеу үшін қандай болмасын бір тілде бағдарламалауда және осы тіл туралы білім осы орталарда маңызды қолданылуға арналған. Сол себепті мына осы орталарда тап осы тілдің ерекшелігін үйретуші жеткілікті қуатты мүмкіншіліктер болуы мүмкін. Тап осы орталар екі класқа бөлінеді: 1) түсіндіруші орта; 2) синтаксистік- басқарылатын орта. Бағдарламалауды түсіндіруші аспаптық орта бағдарламалаудың тап осы тілінде бағдарламаларды қамтамасыз етеді, яғни ең алдымен бағдарламалау тілінің интерпретаторы осы ортаны қамтиды. Осындай орта үлгіні (осынайлардың бірі, Лисп сияқты) түсіндіруші бағдарламалау тілдері үшін қажет, бірақ және басқа тілдер (мысалы, аспаптық компьютерлерде) үшін қолданылуы мүмкін. Бағдарламалаудың синтаксистік- басқарылатын аспаптық ортасы бағдарланатын бағдарламалау тілінің синтаксистік біліміне негізделеді. Осындай ортада мәтіндіктің орнына пайдаланушыға мүмкіндік беретін синтаксистік конструкциялардың (нәтижесінде осы өңделетін бағдарлама әрқашанда синтаксистік дұрыс болады) әр түрлі үлгілерінде синтаксистік- басқарылатын редактор қолданылады. Бір уақытта осындай редактор бағдарламамен яғни басқа аспаптармен қолданылуы мүмкін синтаксистік ағашын қалыптастырады. Бағдарламалық құралдарды өңдеудің компьютерлік технологиясының ұғымы және оның жұмыс орны CASE технологиясын (ПҚ өңдеуінің компьютерлік технологиясы) қатал анықтамаларын өндіруде бірсыпыра қиындықтар болады. CASE- бұл ағылшыннан абревиатурасы Computer-Aided Software Engineering (Компьтерлік - Көмектесудің Бағдарламалық Инженериясы). Бірақ компьтердің көмегінсіз (сүйеуінсіз) әлдеқашаннан бері өңделмейді (бірақ құрастырушы қолданылады). Ақиқатта, бұл ұғым көбірек тар (арнайы) мағынаны береді, бірте- бірте шайылып жатыр (мынаның әрқашанда, қандай болмасын ұғымының қатал анықтамасы болмайды). Алғашында CASE бағдарламалық сүйеуді (бағдарламалық аспаптардың) қолданумен, ПҚ (ПҚ сәулетінің және сыртқы суреттеуді өңдеу, талаптарынң анықтамасы) өңдеулерінің ерте кезеңдеріндегі инженериясы ретінде түсінілді. Қазір CASE –пен тек қана осы оқиғада ПҚ-ң барлық инженерияның құжаттарымен бағдарламалар жарым- жарты немесе толық генерирленгенде, ертелерде көрсетілген өңдеу кезеңдерімен алынған тіршілік циклы түсінілуі мүмкін. Осы оқиғада CASE-технологиясы қолдық ( дәстүрлі) ПҚ өңдеуінен принципте айырмашылығы болды: тек қана технологиялық процестердің мазмұны емес, сонымен қатар олардың жиынтығы өзгерді. Осы шақта ПҚ өңдеудің компьютерлік технологиясы талаптардың өңдеуіне арналған бағдарламалық сүйеулер және ПҚ графикалық спецификациясын, бағдарламалардың автоматты генерациялары қандай болмасын бағдарламалау тілінде немесе машиналы кодта (жарым- жарты немесе толық) бағдарламалық сүйеулердің прототипімен сипаттамасы қолданылады. Сонымен қатар, ПҚ өңдеуінің компьютерлік технологиясы, яғни бағдарламалық құжаттардың ұсынуын компьютерде есептегенде "қағазсыз" болып табылады. Бірақ, ПҚ өңдеулерінің қолдық технологиясын компьютерліктен мына белгілермен ажырату қиын. Яғни, ең маңыздысы компьютерлік технологияда белгіленбеген. ПҚ өңдеуінің қолдық технологиясы компьютерліктен негізгі айырмашылығы келесідей болады. Қолдық технология ПҚ-ң әр түрлі өңдеуімен хабарланған, бірдей түсінетін түрлі өңдеушілермен, сол уақытта компьютерлік технология сияқты семантикалық түсінуді қамтамасыз етуге хабарланған (түсіндірудің) құжаттардың компьютерлік технологиясының бағдарламалық сүйеуі. Сол уақытта семантикалық түсіну сияқты бағдарламалардың автоматты генерация мүмкіншілігі құжаттарды бағдарламалық сүйеуге береді, ал сондай түсінуді қамтамасыз етудің қажеттілігін кіріс құжаттардың қажет және әр түрлі графикалық түрлері істейді. Нақ осы ПҚ ере жүрулерін және дәл технологиялық процестерді өңдеуді өзгертуді орынды рұқсат етеді. Өкізілген талқылаулардан компьютерлік технологияны ПҚ тіршілік циклымен байланысты өзгеруді түсінуге болады. Егер өңдеуде қолдық технологияның негізгі күшейтуін қолдансақ ПҚ өзіндік бағдарламалаудың (кодтаудың) кезеңдерінде істелді, яғни ПҚ ( функционалды спецификацияны және талаптарды анықтау) өңдеуімен ертедегі кезеңдерде компьютерлік технологияны қолданумен. Осымен құжаттаманың сипаттамасы өзгерді: формальды емес құжаттардың бүтін бауының орнына, хабарланған тапсырыс берушінің ( пайдаланушының) хабар тапсыруында әр түрлі категорияларды өңдеуші ПҚ прототипі формаланады, ол таңдалынған пайдаланушының интерфейсін және формальды функционалдың спецификациясын қолдаушы, ПҚ (немесе бірақ олардың бөліміне маңызды) бағдарламаларының автоматты синтезіне (генерациясына)өзгерді. |