ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 25.11.2019
Просмотров: 682
Скачиваний: 1
Розумний в гору не піде, розумний гору обійде.
Народне прислів'я (від І.Б. Задихайло)
Лекція 16.
КОМП'ЮТЕРНА ПІДТРИМКА РОЗРОБКИ І СУПРОВОДУ ПРОГРАМНИХ ЗАСОБІВ
Програмні інструменти в життєвому циклі програмних засобів. Інструментальні середовища і інструментальні системи підтримки розробки програмних засобів, їх класифікація. Комп'ютерна технологія (CASE-технология) розробки програмних засобів і її робочі місця. Загальна архітектура інструментальних систем технології програмування
16.1. Інструменти розробки програмних засобів.
При розробці програмних засобів використовується в тій чи іншій мірі комп'ютерна підтримка процесів розробки і супроводу ПС [16.1]. Це досягається шляхом уявлення хоч би деяких програмних документів ПС (перш за все, програм) на комп'ютерних носіях даних (наприклад, на дискетах) і наданню в розпорядження розробника ПС спеціальних ПС або включених до складу комп'ютера спеціальних пристроїв, створених для якої-небудь обробки таких документів. Як таке спеціального ПС можна вказати компілятор з якої-небудь мови програмування. Компілятор позбавляє розробника ПС від необхідності писати програми на мові комп'ютера, який для розробника ПС був би украй незручний, замість цього він складає програми на зручній йому мові програмування, які відповідний компілятор автоматично перекладає мовою комп'ютера. Як спеціальний пристрій, що підтримує процес розробки ПС, можна вказати, наприклад, емулятор якої-небудь мови. Емулятор дозволяє виконувати (інтерпретувати) програми на мові, відмінній від мови комп'ютера, що підтримує розробку ПС, наприклад, на мові комп'ютера, для якого ця програма призначена.
ПС, призначене для підтримки розробки інших ПС, називатимемо програмним інструментом розробки ПС, а пристрій комп'ютера, спеціально призначений для підтримки розробки ПС, називатимемо апаратним інструментом розробки ПС.
Інструменти розробки ПС можуть використовуватися протягом всього життєвого циклу ПС [16.2] для роботи з різними програмними документами. Так текстовий редактор може використовуватися для розробки практично будь-якого програмного документа. З погляду функцій, які інструменти виконують при розробці ПС, їх можна розбити на наступні чотири групи:
-
редактори
-
аналізатори
-
перетворювачі
-
інструменти, що підтримують процес виконання програм.
Редактори підтримують конструювання (формування) тих або інших програмних документів на різних етапах життєвого циклу. Як уже згадувалося, для цього можна використовувати один який-небудь універсальний текстовий редактор. Проте, сильнішу підтримку можуть забезпечити спеціалізовані редактори: для кожного виду документів свій редактор. Зокрема, на ранніх етапах розробки в документах можуть широко використовуватися графічні засоби опису (діаграми, схеми і тому подібне). У таких випадках вельми корисними можуть бути графічні редактори. На етапі програмування (кодування) замість текстового редактора може виявитися зручнішим синтаксично керований редактор, орієнтований на використовувану мову програмування.
Аналізатори проводять або статичну обробку документів, здійснюючи різні види їх контролю, виявлення певних їх властивостей і накопичення статистичних даних (наприклад, перевірку відповідності документів вказаним стандартам), або динамічний аналіз програм (наприклад, з метою виявлення розподілу часу роботи програми по програмних модулях).
Перетворювачі дозволяють автоматично приводити документи до іншої форми уявлення (наприклад, форматери) або перекладати документ одного вигляду до документа іншого вигляду (наприклад, конвертори або компілятори), синтезувати який-небудь документ з окремих частин і тому подібне
Інструменти, що підтримують процес виконання програм, дозволяють виконувати на комп'ютері описи процесів або окремих їх частин, представлених у вигляді, відмінному від машинної коди, або машинний код з додатковими можливостями його інтерпретації. Прикладом такого інструменту є емулятор коди іншого комп'ютера. До цієї групи інструментів слід віднести і різні відладчики. По суті, кожна система програмування містить програмну підсистему періоду виконання, яка виконує програмні фрагменти, найбільш типові для мови програмування, і забезпечує стандартну реакцію на тих, що виникають при виконанні програм виняткові ситуації (таку підсистему ми називатимемо виконавчою підтримкою). Таку підсистему також можна розглядати як інструмент даної групи.
16.2. Інструментальні середовища розробки і супроводу програмних засобів і принципи їх класифікації.
Комп'ютерна підтримка процесів розробки і супроводу ПС може проводитися не тільки за рахунок використання окремих інструментів (наприклад, компілятора), але і за рахунок використання деякої логічно зв'язаної сукупності програмних і апаратних інструментів. Таку сукупність називатимемо інструментальним середовищем розробки і супроводу ПС.
Часто розробка ПС проводиться на тому ж комп'ютері, на якому воно застосовуватиметься. Це досить зручно. По-перше, в цьому випадку розробник має справу тільки з комп'ютерами одного типу. А, по-друге, в ПС, що розробляється, можуть включатися компоненти самого інструментального середовища. Проте, це не завжди можливо. Наприклад, комп'ютер, на якому повинно застосовуватися ПС, може бути незручний для підтримки розробки ПС або його потужність недостатня для забезпечення функціонування необхідного інструментального середовища. Крім того, такий комп'ютер може бути недоступний для розробників цього ПС (наприклад, він постійно зайнятий іншою роботою, яку не можна переривати, або він знаходиться ще в стадії розробки). У таких випадках застосовується так званий інструментально-об'єктний підхід [16.1]. Суть його полягає в тому, що ПС розробляється на одному комп'ютері, званим інструментальним, а застосовуватися буде на іншому комп'ютері, званим цільовим (або об'єктним).
Інструментальне середовище не обов'язково повинне функціонувати на тому комп'ютері, на якому повинно буде застосовуватися що розробляється за допомогою її ПС.
Сукупність інструментальних середовищ можна розбивати на різні класи, які розрізняються значенням наступних ознак:
-
орієнтованість на конкретну мову програмування
-
специализированность
-
комплексність
-
орієнтованість на конкретну технологію програмування
-
орієнтованість на колективну розробку
-
інтегрованість.
Орієнтованість на конкретну мову програмування (мовна орієнтованість) показує: чи орієнтовано середовище на яку-небудь конкретну мову програмування (і на якій саме) або може підтримувати програмування на різних мовах програмування. У першому випадку інформаційне середовище і інструменти істотно використовують знання про фіксовану мову (глобальна орієнтованість), через що вони виявляються зручнішими для використання або надають додаткові можливості при розробці ПС. Але в цьому випадку таке середовище виявляється не придатним для розробки програм на іншій мові. У другому випадку інструментальне середовище підтримує лише найзагальніші операції і, тим самим, забезпечує не дуже сильну підтримку розробки програм, але володіє властивістю розширення (відвертості). Останнє означає, що в це середовище можуть бути додані окремі інструменти, орієнтовані на ту або іншу конкретну мову програмування, але ця орієнтованість буде лише локальною (в рамках лише окремого інструменту).
Специалізірованность інструментального середовища показує: чи орієнтовано середовище на яку-небудь наочну область чи ні. У першому випадку інформаційне середовище і інструменти істотно використовують знання про фіксовану наочну область, через що вони виявляються зручнішими для використання або надають додаткові можливості при розробці ПС для цієї наочної області. Але в цьому випадку таке інструментальне середовище виявляється не придатним або мало придатною для розробки ПС для інших наочних областей. У другому випадку середовище підтримує лише найзагальніші операції для різних наочних областей. Але в цьому випадку таке середовище буде менш зручним для конкретної наочної області, чим спеціалізована на цю наочну область.
Комплексність інструментального середовища показує: чи підтримує вона всі процеси розробки і супроводу ПС чи ні. У першому випадку продукція цих процесів повинна бути узгоджена. Підтримка інструментальним середовищем фази супроводу ПС, означає, що вона повинна підтримувати роботу відразу з декількома варіантами ПС, орієнтованими на різні умови застосування ПС і на різну пов'язану з ним апаратуру, тобто повинна забезпечувати управління конфігурацією ПС [16.1, 16.3].
Орієнтованість на конкретну технологію програмування показує: чи орієнтовано інструментальне середовище на фіксовану технологію програмування [16.2] або немає. У першому випадку структура і зміст інформаційного середовища, а також набір інструментів істотно залежить від вибраної технології (технологічна визначеність). У другому випадку інструментальне середовище підтримує найзагальніші операції розробки ПС, не залежні від вибраної технології програмування.
Орієнтованість на колективну розробку показує: чи підтримує середовище управління (management) роботою колективу чи ні. У першому випадку вона забезпечує для різних членів цього колективу разные права доступу до різних фрагментів продукції технологічних процесів і підтримує роботу менеджерів [16.1] по управлінню колективом розробників. У другому випадку вона орієнтована на підтримку роботи лише окремих користувачів.
Інтегрованість інструментального середовища показує: чи є вона інтегрованою (і в якому сенсі) чи ні. Інструментальне середовище вважається інтегрованим, якщо взаємодія користувача з інструментами підкоряється одноманітним правилам, а самі інструменти діють по заздалегідь заданій інформаційній схемі, зв'язані по управлінню або мають загальні частини. У відповідність з цим розрізняють три види інтегрованості:
-
інтегрованість по призначеному для користувача інтерфейсу
-
інтегрованість по даним
-
інтегрованість по діях (функціям)
Інтегрованість по призначеному для користувача інтерфейсу означає, що всі інструменти об'єднані єдиним призначеним для користувача інтерфейсом. Інтегрованість за даними означає, що інструменти діють відповідно до фіксованої інформаційної схеми (моделлю) системи, що визначає залежність один від одного різних використовуваних в системі фрагментів даних (інформаційних об'єктів). В цьому випадку може бути забезпечений контроль повноти і актуальності програмних документів і порядку їх розробки. Інтегрованість по діях означає, що, по-перше, в системі є загальні частини всіх інструментів і, по-друге, одні інструменти при виконанні своїх функцій можуть звертатися до інших інструментів.
Інструментальне середовище, інтегроване хоч би по даним або по діях, називатимемо інструментальною системою. При цьому інтегрованість за даними припускає наявність в системі спеціалізованої бази даних, званої репозиторієм. Під репозиторієм розумітимемо центральне комп'ютерне сховище інформації, пов'язаної з проектом (розробкою) ПС протягом всього його життєвого циклу [16.1].
16.3. Основні класи інструментальних середовищ розробки і супроводу програмних засобів.
В даний час виділяють [16.1] три основні класи інструментальних середовищ розробки і супроводу ПС (мал. 16.1):
-
інструментальні середовища програмування
-
робочі місця комп'ютерної технології
-
інструментальні системи технології програмування.
Мал. 16.1. Основні класи інструментальних середовищ розробки і супроводу ПС.
Інструментальне середовище програмування призначене в основному для підтримки процесів програмування (кодування), тестування і відладки ПС. Вона не володіє розглянутими вище властивостями комплексності, орієнтованості на конкретну технологію програмування, орієнтованості на колективну розробку і, як правило, властивістю інтегрованості, хоча є деяка тенденція до створення інтегрованих середовищ програмування (в цьому випадку їх слід було б називати системами програмування). Іноді середовище програмування може володіти властивістю специализированности. Ознака ж орієнтованості на конкретну мову програмування може мати різні значення, що істотно використовується для подальшої класифікації середовищ програмування.
Робоче місце комп'ютерної технології орієнтоване на підтримку ранніх етапів розробки ПС (системного аналізу і специфікацій) і автоматичній генерації програм по специфікаціях [16.1, 16.4]. Воно істотно використовує властивості специализированности, орієнтованості на конкретну технологію програмування і, як правило, інтегрованості. Пізніші робочі місця комп'ютерної технології володіють також властивістю комплексності ([16.4]). Що ж до мовної орієнтованості, то замість мов програмування вони орієнтовані на ті або інші формальні мови специфікацій. Властивістю орієнтованості на колективну розробку вказані робочі місця в даний час, як правило, не володіють.
Інструментальна система технології програмування призначена для підтримки всіх процесів розробки і супроводу протягом всього життєвого циклу ПС і орієнтована на колективну розробку великих програмних систем з тривалим життєвим циклом. Обов'язковими властивостями її є комплексність, орієнтованість на колективну розробку і інтегрованість. Крім того, вона або володіє технологічною визначеністю або набуває цієї властивості в процесі розширення (настройки). Значення ознаки мовної орієнтованості може бути різним, що використовується для подальшої класифікації цих систем.
16.3. Інструментальні середовища програмування.
Інструментальне середовище програмування включає, перш за все, текстовий редактор, що дозволяє конструювати програми на заданій мові програмування, а також інструменти, що дозволяють компілювати або інтерпретувати програми на цій мові, тестувати і відладжувати отримані програми. Крім того, можуть бути і інші інструменти, наприклад, для статичного або динамічного аналізу програм. Взаємодіють ці інструменти між собою через звичайні файли за допомогою стандартних можливостей файлової системи.
Розрізняють наступні класи інструментальних середовищ програмування (див. мал. 16.2):
-
середовища загального призначення
-
мовно-орієнтовані середовища.
Інструментальні середовища програмування загального призначення містять набір програмних інструментів, що підтримують розробку програм на різних мовах програмування (наприклад, текстовий редактор, редактор зв'язків або інтерпретатор мови цільового комп'ютера) і зазвичай є деяким розширенням можливостей використовуваної операційної системи. Для програмування в такому середовищі на якій-небудь мові програмування буде потрібно додаткові інструменти, орієнтовані на цю мову (наприклад, компілятор).
Ріс.16.2. Класифікація інструментальних середовищ програмування.
Мовно-орієнтоване інструментальне середовище програмування призначене для підтримки розробки ПС на якому-небудь одній мові програмування і знання про цю мову істотно використовувалися при побудові такого середовища. Внаслідок цього в такому середовищі можуть бути доступні достатньо могутні можливості, що зважають на специфіку даної мови. Такі середовища розділяються на два підкласи: