автореферат диссертации по информатике, вычислительной технике и управлению, 05.13.09, диссертация на тему:Инженерия утилизации программного обеспечения систем управления и ЭВМ

доктора технических наук
Сидоров, Микола Олександрович
город
Киев
год
1995
специальность ВАК РФ
05.13.09
Автореферат по информатике, вычислительной технике и управлению на тему «Инженерия утилизации программного обеспечения систем управления и ЭВМ»

Автореферат диссертации по теме "Инженерия утилизации программного обеспечения систем управления и ЭВМ"

Національна академія наук України Інститут проблем моделювання в енергетиці

На правах рукопису

СИДОРОВ Микола Олександрович

ІНЖЕНЕРІЯ УТИЛІЗАЦІЇ ПРОГРАМНОГО ЗАБЕЗПЕЧЕННЯ СИСТЕМ УПРАВЛІННЯ ТА ЕОМ

05.13.09 — математичне та програмне забезпечення обчислювальних машин і систем

Автореферат дисертації на здобуття наукового ступеня доктора технічних наук

Інститут кібернетики імені В. М. Глушкова НАН України

Київ

1995

Дисертацією є. рукопис. :

Робота виконана в Інституті кібернетики ім.,В. М. Глушкова НАН України.

Офіційні опоненти: член-корєспондент, доктор фізико-мате-матичних наук, професор ЮЩЕНКО К. Л.,

■ доктор технічних наук, професор

ІИКГПіІ А. 1.,

доктор технічних наук, професор С ГАС 10К Л. І.

Провідна організація: Інститут прикладної інформатики.

Захист відбудеться «—3-&» — 195^' р. 0 ■

год. на засіданні спеціалізованої вченої ради Д 01.91.01 прй Інституті проблем моделювання в енергетиці НАН України за адресою:

252680 МСД, Київ 164, вул. Генерала Наумова, 15.

З дисертацією можна ознайомитися в науковій бібліотеці інституту.

Автореферат розісланий « »------—------- 199 р.

Учений секретар спеціалізованої вченої ради

СЕМАГІНА Є. П.

Загальна характеристика роботи

АктуальністьДисертаційну роботу присвячено дослідженню задач вторинного використання, переробки та відновлення програмного забезпечення (П3,| систем керування та ЕОМ. : .

Теоретики і практики, розроблюючи для1 підвищення продуктивності програмування кращі засоби організації колективів і керування їми, підвищуючи ефективність процесів ПЗ, усуваючи або автоматизуючи окремі етапи у його виробництві, кожного разу знову розробляють ПЗ, не використовуючи накопичений досвід. Це знайшло аоє відображення у моделях життєвого циклу ПЗ, котрі обмежуються фазою супроводження. Такі моделі є не тільки неповними з теоретичної точки зору, але й не відповідають сучасній практиці створення ПЗ, дають невірне уявлення про реальний "коловоріт" програмних ресурсів та витрат. Тому особливо актуальна у теперішній час проблема забезпечення тривалого результатизного застосування ПЗ та окремих програмних ресурсів, один раз уведених у життєвий цикл. Комплексне дослідження вторинного використання, переробки та відновлення ПЗ сприяє вирішенню зазначеної проблеми.: / .

Стан проблеми. Перші роботи, що були спрямовані на використання програмного досвіду у розробці нового ПЗ, заходжувалися давно у різних галузях програмної діяльності. Передусім це стосується розробки й використання макросів, стандартних підпрограм, функці’М у мовах програмування та модулей у системах обробки. Ці роботи розпочиналися у 70-х роках у галузі утворення макроасемблерних та компілюючих систем (В.М.Глушков, КЛ. Ющенко, І.В.ВсльбицькиГі) та інформаційних систем (А.О.Огопіій). Тоді ж були сформульовані основні форми програмування : (А.П.Єршов) та: інгенсигно велися роботи за складальним (В.ВЛипаев, К.МЛавришсва), синтезуючим (Г.Є.Цейтлін, КЛ.Юіцснко) та конкретизуючим (ВЛ-ІЛСас'янов, І.В.Поттосіи) програмуванням. Ідея вторинного використання застосовувалась у розробці мов програмування (КЛ.Юшснко,

І.В.Вельбицький),розподілених систем (P.Wegner) та навчання (ADA). Відновленню та переробці ПЗ вітчизняними вченими приділялося менш уваги (А.І.Нікітім). За кордоном міцний та цілеспрямований імпульс такі роботи отримали після конференції НАТО з технолог її програмування (МсІІгоу, 1969).У 1983 році відбулася перша нарада з проблеми вторинного використання (T.Biggerstaff); Цей рік

вважається початком цілеспрямованого вирішення проблеми. Доменний аналіз для .рішення цієї проблеми вперше був застосований у системі Draco (J.Neighhors). Принципи класифікування беруть по .аток у роботах R.Prieto-Dias. Задача утворення компонентів* іцо вториннр використовуються ш основі існуючого ПЗ, найбільш послідовно вирішується у роботах G.Caldiera, V.Basilli. Реверсивні методи,стосовно до проблеми, що вирішується, були використані у роботах TJMggcntaff,. E.Ghikofsky, J. Cross II. Економічні питания вторинного використання ставилися вперше у роботах B.Barncs, T.Bollinger, а правові проблеми - у роботах P.Samuclson. З 1983 р. були проведені чотири конференції. Остання відбулася у 1994 р. у Бразілії.

Аналіз стану проблеми показує, що у теперішній час існують розрізнені методи, направлені на вирішення окремих за; і. Об'єднання цих задач дозвол. іть ефективніше застосовувати методи й засоби, ставити нові задачі, вирішення котрих забезпечить тривале й результативне застосування ПЗ і окремих програмних ресурсів. У зв'язку з цим актуальною с розробка комплексного підходу.

Мста та задачі дисертаційної роботи полягають у визначенні та Дослідженні нового розділу в інженерії пу 'гримування, методи й засоби Котрого .забезпечують продовження використання програм шляхом їх відновлення, переробки та вторинного використання, а також зменшення вартості розробки та супроводження, прискорення вироблення ПЗ, підвищення якості програм за рахунок використання компонентів існуючого ГіЗ, у новому ПЗ. При цьому повинні бути вирішені такі задачі: Сформулювати основні положення роділу інженерії програмування, який розробляється, вибрати методологію, дослідити, принципи та засобу, на основі результатів досліджень розробити архітектури та реалізувати прототипи засобів для вирішення основних задач інженерії. -

Методіка досліджень. Проблема розробки інженерії утилізації ПЗ розглядається у трьох' аспектах - теоретичному, методологічному та прикладному, теоретичний аспект полягає у формулюванні та дослідженні цілей, предмету, задач, принципів, аналізі: існуючих методів та засобів с точки зору, застосування їх укгчак розділу. Меіодол«. її мй аспект полягає у виборі та дослідженні такого підходу, який дозаолмь ни і мити основні об'єкти та відношення, що складають суть рішення задач--.'роадп. «нжеисрії програмування, який досліджується. Прикладний аспект полягне у розробці засобів, які дозволяють перевірити вірніст ь прийнятих рішень та відробити практичні навики з і* реалізації.' ” • : 1

Основні результати дисертаційної роботи. Визначено розділ інженерії програмування, що називається інженерією утилізації ПЗ. Інженерний напрямок забезпечує розробку та цілеспрямоване застосування методів, засобів та реалізацію процесів, що дозволяють з урахуванням технічних, економічних та соціальних факторів продозжити результативне використання ПЗ, один раз уведеного у жіттсвий цикл, шляхом застосування його у колишньому визначенні (після відновлення) або шляхом застосування його або компонентів, ідо входять до нього, по іншому призначенню (після переробки або вторинним використанням). Розроблено наукові основи, досліджено методи й засоби інженерії утилізації ПЗ. У межах роботи, стосовно до розділу, гісліджено питання вторинного використання ПЗ, прямої та зворотної інженерії ПЗ, розуміння програм, застосування гіпертекстової технології у інженерії утилізації ПЗ, економічної оцінки ефективності утилізації ПЗ. Розроблено та перевірено на діючих прототипах методи побудови засобів зберігання, пошука та застосування компонентів, що вторинно використовуються; засобів розуміння ПЗ; зрсобів відновлення та переробки програм; засобів уявлення ПЗ.

Наукова новіша. На основі комплексного підходу до задач вторинного використання, переробки та відновлення ПЗ з застосуванням доменного аналізу як методології розроблено новий розділ інженерії програмування - інженерія утилізації ПЗ. ■ . ■ -

Практична цінність. Методи й засоби, що розроблені й досліджені у. дисертації, можуть використовуватися у практичному програмуванні, при масовому виробництві й супроводженні програм.

Автор захшцас; І) інженерію утилізації ПЗ як комплексний підхід до вторинного використання, відновлення та переробки ПЗ; 2) отримані моделі, підходи, засоби, схеми, що складають теоретичну базу інженерії утилізації; 3) розроблені на основі отриманих результатів прототипи інформаційно-програмних засобів, вирішуючих основні задачі утилізації ГІЗ.

Реалізація роботи здійснювалася у межах таких НДР і ДКР, що виконувалися у різні часи в Інституті кібернетики >м. В.М.Глушкова НАН України під науковим керівництвом та при участі автора: •

- НДР/ДКР "Дослідження га розробка експсріментального зразка засобів програмування на основі принципу вторинного використання. програмного забезпечення", 1989-1991 p.p., - r/jf952-89, м. Зеленої рад, ІІВО ЕЛАС;

- НДР "Розробка технології утилізації інформаційно-програмного забезпечення

. систем управління та ЕОМ”, 1991-1992 р.р. - Постанова ДК СРСР з науки і техніки, Ьід 7 травня 1991 p. N 702; , • •• . • .

-НДЬ Вторинневикористання інформацію, ю-програмного забезпечення систем управління та ЕОМ", 1992-1995 p.p. - Постанова ДК України з питань науки і технологій від 28.02.92, N 5; • •• .• ; ;; ■ -- ■■■ . ■

- НДР "Розробка інформаційно-програмних засобів для створення та

супроводження програм вбудованих систем на основі принципу вторинного використання" 1992-1995 p.p. - Постанова ДК України з питань науки й технологій від 04.05.92, N 12;

- НДР "Розробка інформа :йно-програмного модуля, забезпечуючого

гілертекстову інформаційну технологію у державних автоматизованих системах інформатизації наукової діяльності", 1993-1996 р.р. - Постанова ДК України з питань науки і технології від 05.03.93, N 39;

- НДР "Дослідження технології програмування в інтересах утворення Единої

автоматизованої системи уг'авління Озброєних сил України", 1995-1998 p.p. -Програма фундаментальних та пошукових робіт в інтересах Міністерства оборони України, 1992 р. .

Практично реалізовані компоненти складаються з таких систем;

’ - "ГІПС Плюс'1 - інструментальна система для утворення й обробки

гіпертекстової інформації в інженерії програмування; ;■■■

- "ПУЛ” - система для утворення, зберігання й використання компонентів, що

вторинно використовуються, у мові Модула^; _

- "Реверс"- система для переробки програм на ба-*’ CASE-Аналітнк.

Отримані у дисертації результати покладено у основу реалізованих засобів для

вторинного використання компонентів мови Модула-2, засобі», розуміння-початкового коду програм, засобів утворення й використання гіпертекстової інформації, засобів реверсивної інженерії та переробки програм (Фортран, Паскаль, Модула-г2). Результати були використані у практиці розробки ПЗ для бортових ЕОМ (11 ГЦ ЕЛШС. м.'Зеленоград), використовуються у межах CASE технології (GASE* Аналітик, ІТГП £іігекс,м, Москва, і Ц1Т ДКПНіТ, м,Бердянськ), використовувалися у 113 КОМ Пошуі;-2 {НВО Електронмаш, м. Київ); в учбовому процесі (Київський педагогічний інститут) та у проведенні наукових досліджень (Інститут проблем

моделювання у енергетиці, м.Київ).

Публікацїі та апробації роботи. За темою дисертації автором опубліковано 25 наукових робіт. Роботи [4-6, 10,15,21, 23,24] написано разом з колегами з Інституту кібернетики імені В.М.Ґлушкова НАН України, які реалізовували під керівництвом автора ПЗ засобів утилізації. У цих роботах автору належить постановка задач, розробка методів та архітектури засобів. Крім того автор приймав участь у реалізації ПЗ засобів, що описані. Роботу [15] написано разом із студенткою (Горобець С., Політехнічний університет, м.Киів), яка виконувала під керівництвом автора дипломну роботу.

Матеріали дисертаційної роботи докладалися на таких конференціях: "Прикладна інформатика автоматизованих систем проектування, управління, програмної експлуатації", м.Калінінград, 1987; "Синтез модульних систем обробки даних", Кишинів, 1988; "Проблеми управління", Ташкент, 1989; "Автоматизація проектування програмного забезпечення систем управління об'єктами, що рухаються", Харків, 1989; "Програмне забезпечення ЕОМ", Тверь, 1990; "Інструментальні засоби підтримки технологій розробки програмних засобів", Бердянськ, 1991; "Ншпап-СотріДег ІШ:егасіїоп-91", Москва, 1991; "Проблеми підвищення ефективності озброєння та військової техніки Військ ППО", Одеса, 1991; "Нові інформаційні технології у вищій школі", Москва, 1991; "\yE-Human-Computer Ітегааіоп-92", С.-Петербург, 1992; "З'Нитап-СотріПег ІпІегасііоп-93", Москва, 1993, "Методи математичного моя^чюваїшя бойових дій військ та побудови інтелектуальних систем військового призначення", Київ, 1995, а також докладалися у різні часи на різноманітних секціях семінару АН України з проблеми "Кібернетика".

Об'єм роботи. Дисертаційну роботу викладено на 360 сторінках машинописного тексту, вона складається з вступу, шести частик, сімнадцяти глав, висновку, додатків (72 сторінки) та списку цітованої літератури (275 найменувань).

Зміст роботи

Вступ присвячено постановці проблеми, обмірковуванню її актуальності, короткому огляду отриманих результатів. :

У. першій частині дисертаційної роботи обговорюється проблема підвищення

ефективності утворення й супроводження великих програм та обирається для досліджень перспективний шлях її рішення. Перша частина складається з двох глав.

■ У першій главі розглядаються, гсчові проблеми програмування, відзначається неухильний зріст витрат на виробництво й супроводження програм і обговорюються шляхи зниження втрат. При зберіганні темпів росту витрат (12% у рік) у І995 р. у світі на виробництво ПЗ буде потрібно 450 млрд. доларів. Підкреслюється, що збільшення витрат обумовлюється наявністю двох груп факторів: інтенсивних та екстенсивних. До перших належить, наприклад, фактор ускладнення вимог, які пред являють до ПЗ. До других - фактор широкого розповсюдження ЕОМ. Крім того, збільшенню втрат сприяє особистий характер комп'ютерних прогоам. У зв'язку із збільшенням витрат стає все б' іьш актуальною необхідність утворення й супроводження ефективних економічних програмних засобівта засобів, які своєчасно реалізуються. Навіть незначне підвищення продуктивності може привести до суттєвої економ:ї. Аналіз розподілу витрат у фазах жітгсвого ціклу (ЖЦ) ПЗ показує, що важливим є характер довгострокових витрат, пов'язаний з тим, щрі .рограми у процесі тривалого супроводження пі тягають значним змінам; При Цьому коректуючі зміни займають не найзначніше місце. Навпаки великі витрати на супроводження ПЗ, яке удосконалюється, та адаптивне супроводження ПЗ показують на те, що саме у процесі супроводження програмні ресурси накопичують досвід, який доцільно використовувати для зниження витрат як при утворенні таких додатків, так і у суміжних доменах. У теперішній час відомі декілька шляхів, слідуючи котрими можна зменшувати витрати та підвищувати продуктивність програмування. У главі на основі аналізу указаних шляхів як найбільш перспективне обирається вторинне використання існуючого ГІЗ.

У другій главі висловлюються основні положення розділу інженерії програмування, розробленого у дисертаційній роботі на основі комплексного підходу до методів та засобів програмування, який називається інженерією утилізації ПЗ. Формулюються основні визначення й принципи, розглядаються мі.і^ди й засоби, показано зв'язок з системними дослідженнями.

Утилізація і 13 - цеінженерімш напрям, забезпечуючий р яробку методів і засобів та реалізацію процесів, які дозволяють з урахуванням технічних, економічних та соціальних факторів продовжувати результативне використання ПЗ, один раз уведсноп V ЖЦ і зіпсувавшогося. Продовження використання ПЗ здііТсітмься

шляхом застосування його в минулому визначенні (після відновлення) або шляхом застосування його або увіходжуючих до нього компонентів за іншим призначенням (після переробки або вторинним використанням).

Наведемо декілька прикладів утилізації ПЗ.

Приклад 1. У процесі супроводження ПЗ для виконання коректуючих модифікацій, як правило, використовуються швидкі зміни, тобто здіснюється виправлення безпосередньо початкового коду. Швидкі зміни призводять до того, що текст програми стає погано структурованим, а документація не відповідає новим можливостям програми. Це призводить до утрати ефективності експлуатації ПЗ та врешті решт, до припі іеиня його використання. Щоб продовжити результативне використання ПЗ, треба змінити початковий код і (або) документацію. І (е здійснюється шляхом їх відновлення методами утилізації.

Приклад 2. Коли супроводження програми стає невигідним або коли вона перестає задовольняти вимоги, що д<$ неї пред'являють, її знімають з експлуатації та знищують. Проте у процесі тривалого супроводження у програмі акумулюється досвід, який доцільно використати знов у ЖЦ ПЗ, тому виділення з ліквідусмих програм окремих компонентів з метою їх вторинного використання дозволить зберегти накопичений досвід і зменшити витрати, які необхідні при утворенні таких нових додатків.

Приклад 3. Застосування CASÉ технологій підвищує продуктивність програмування. CASÉ дозволяє не тільки швидко й високоякісно створювати ПЗ, але й ефективно його супроводжувати. Проте у теперішній час сотні мільонів рядків програм, які експлуатуються на різних мовах, написано без застосування CASE. Щоб знизити витрати на їх супроводження і час.-о щоб продовжити їх ефективне використання, доцільно застосовувати переведення цих програм у ту чи іншу CASE -технологію.

Ооиовиі цілі утилізації ПЗ спрямовано на досягнення загальних цілей програмної інженерії, тобто розробка високоякісного ПЗ з меншими витратами, надійного у експлуатації та ефективного у супроводженні. Відміна міститься у підході до досягнень цих цілей, котрий головним чином засновується на вторинному використанні. Також як у програмній інженерії, в утилізації ПЗ досліджуються й загальносистемні і проолемно-орієнтовані аспекти ПЗ. Ра >ом з тим перші результат« застосування методів утилізації у розробці й супроводженні ПЗ показали, що

незважаючи на очевидні передумови, не усе ПЗ однаково ефективно утилізується,

■ тому для зменшення витрат на утилізацію необхідні спеціальні дослідження.

Предметом інженерії утилізації « ПЗ та його компоненти у тих їх власт ивостях та відношеннях, котрі сприяють якомога тр«шалішому та результативнішому (ефект ивному) їх використанню у ЖЦ. Тому основна відміна мет,одів утилізації від інших методів інженерії полягає у тому, що останні завжди передбачають розробку ПЗ знов, тоді як перші грунтуються на існуючому досвіді.

. Для ефективного рішеннязадач утилізації ПЗ повинні бути вивчені ті властивості 113 (документації, спецификацій, архітектур» кодів, даних, тестів, мов програмування і т.д.) та його компонентів (процедур, модулів, об'єктів, класів і т. д.), які забезпечують високу утилізуємість. Вивченню підлі: ;ать також пррцеси, методи й і; соби утворення й супроводження ПЗ та його компонентів з метою ефект ивної реалізації принципів у тилізації ПЗ. , ■ . .

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

Задачі інженерії утилізації ПЗ тісно пов'язані з практичною реалізацією указаних, принципів та особливо ПВВ: Основна задача інженерії утилізації ПЗ 6 створення компонентів,' що вторинно використовуються, на ревові . існуючого ПЗ та частосування їх у діючому або новому ПЗ. Такі компоненти - це конструкції ПЗ, які несуть у собі досвід, акумульований у процесі розробки й супроводження ПЗ.

Методологія утилізації ПЗ. Для вирішення задач утилізації, використовуючи відповідні методи й засоби, необхідно Привертати шиг кий і різноманітний досвід, накопичений в області 113, що утилізується. Тому важливу роль в утилізації відіграє аналіз існуючого ПЗ. Предметом аналізу одночасно повинна бути не одна, а ряд реалізованих систем Г13 (додатків). Треба привертати методи, які дозволяють чістаилягн рішення ¡¡'обирати найбільш важливе для майбутніх додатків. У зв'язку з цим обрано доменний аналіз (ДА) як методологічну оиюву і'іженсрії утилізації ПЗ.. ДЛ - цс лктрла’іс-і і;!, ьідімііІдію якій інформація, однії раз викор-істана у розробці ПЗ, ідентифікується, організується та .зберігається. з метою вторинного використання її при утворенні НОНОІЧ.І ПЗ. :

Мста ДА подяї аі не тільки у тому, щоб на оеноиі аналізу різних додатків у

домені ідентифікувати, інкапсулювати й стандартизувати операції та відношення, що дійсно повторюються, але й у тім, щоб підібрати й структурувати загальну (допоміжну) інформацію, необхідну для утилізації програм на протязі ЖЦ.

У закінченні глави пропоновано модель утилізації ПЗ, яку засновано на відношеннях понять основних процесів утилізації -..відновлення, вторинного використання й переробки ПЗ у контексті корисності ПЗ. Показано, що основним системостворюючйм принципом утилізації є ПВВ, а основні процеси утилізації - це аспекти (сторони) процесу застосування ПВВ. При цьому відновлення ПЗ - це "off-white box" вторинне використання-ПЗ, яке порушує конструкцію ПЗ, але не порушує його функціональність використання компонентів ПЗ (те, що звичайно називають reuse) - це "black box" вторинне використання ПЗ як воне є, переробка ПЗ - це "white box" вторинне використання ПЗ, яке порушує і функціональний і конструктивний аспекти ПЗ.

У другій частині дисертаційної роботи досліджуються методи вторинного використання ПЗ. Друга частина складається з п'яти глав, присвячених відповідно ПВВ, компонентам, що вторинно використовуються, їх утворенню і застосуванню, засобам вторинного Використання та економічному аспекту вторинного використання.

У третій главі розглядається ПВВ. Суть ПВВ полягає у застосуванні в новій ситуації раніше отриманих результатів, а вторинна використованість - це ступені свободи, з якою у новій ситуації можуть застосовуватися раніше отримані результати.

Вторинне використання ПЗ - це використання програмних знань ' або компонентів існуючого ПЗ у процесах побудови нового ПЗ.

Вторинна використованість ПЗ - це спроможність ПЗ або його компонентів до використання у проектуванні, конструюванні, документуванні та супроводженні нових програм. Компоненти ПЗ, у яких виявляється така спроможність, називаються компонентами, що вторинно використовуються - КВВ.

Застосування КВВ у ПЗ не обмежується початковим кодом, тому КВВ - це будь-який результат діяльності у рамка* ЖЦ ПЗ, зберігаючий досвід та володіючий вторинною використованістю. .

Дослідження показують, що у ПЗ застосування ПВВ - це більше, ніж просто техніка, придатна для утилізації одних систем і непридатна для інших. У ЖЦ ГІЗ застосування ПВВ, впливає на усі процеси ПЗ, тому воно має свої характерні

особливості. У главі досліджуються ці особливості.

. У процесах застосування ПВВ важливу роль відіграють такі фактори: об'єкти вторинного використання (специфікації, вимоги, проект, документація, код і т.д.); межи вторинного використання (фазова, яка вибачається місцем застосування ПВВ у ЖЦ ПЗ та організаційна, яка визначається організаційним контекстом застосування ГІВВ, головним чином, місцем виробника і споживача КВВ у процесах розробки ПЗ); витрати на вторинне використання (пов'язані, по-перше, з рішенням задачі утворення КВВ, по-друге, з рішенням власно задач вторинного використання, які полягають у пошуку КВВ, розумінні їх функцій та особливостей* вбудовані КВВ у ПЗ, що знову створюється, по-третє, з необхідністю підвищення ефективності цих процесів).

У главі розглядаються проце вторинного використання (уворення КВВ, пошук, порозуміння^ настроювання і вбудовування КВВ у нове ПЗ) і проблеми вторинного використання - технічна, економічна* правова та соціальна.

Четверту главу присвячено КВВ. КВВ - це передусім програмний компонент (ІІК), тому в главі розглядається поняття ПІС. Наводиться декілька шдомих визначень ПК (C.Lins, G. Booch). Розгл таються дві групи ПК - відкриті (макрос - Асемблер, локальний модуль - Модула-2, файл - Сі и т.д.) та закриті (стандартні підпрограми, процедури, модулі и т.д.). Показано розділення ПК на два типи: пасивні (постійні складові частини ПЗ, котрі не змінюються при використанні, наприклад, процедури) та активні (моделі частин ПЗ, які змінюються при використанні, наприклад, пакети типу generic у мові АДа). Показано існування форм ПК, які обумовлені тим, що для однієї функції можна побудувати родину ПК, які відрізняються часої^ виконання, потрібною памЧ.тью і т.д. Звертається увага на існування ПК, віповідаючих певним абстракціям-операція,функція, данй,процес, мегамо,"'’Ль.

Для кращого розуміння усього розмаїття ПК, деяких деталей їх будови, а також для ефективного рішення задач їх застосування необхідно використовувати класифікації, тому у главі та у Додатку А розглядається декілька відомих класифікацій

пк. . '

У главі уводиться поняття типу ПК, яке зв'язуєт ься є оазами ЖЦ на основі принципу багаторівневого уявлення ПЗ, тому можуть мати місце ПК вимог, специфікацій, архітектури, ліюе^у.ко^'тесгім/та^кумета.ці!-

Далі у і лані досліджується поняття КВВ ПЗ. У теперішній час відомо небагато ишначеиь КВВ (С, Lins, G: Boocb, В.В,Лин»св). Беручи до уваги, що основні

особливості КВВ, йкі відрізняють їх від ПК, можна виявити у контексті процесів застосування ПВВ, у дисертаційній роботі уводиться модель КВВ, яка є розширенням відомої ЗК моделі. Розширення полягає у тому, що основні властивості ПК (Концепція - ПК вираз чітко визначеної функціональності, яка описується абстрактно; Конструкція - виявлення концепції ПК у вигляді однієї або декількох форм -реалізацій; Контекст - виявлення, по-перше, вимог релевантності середовища і концепції ПК - концептуальний контекст та, по-друге, релевантності середовища й конструкції ПК - конструкційний контекст) описуються ' поняттями, характеризуючими вторинну використаність (користь, спільність, примітивність, достатність і закінченість), які в свою чергу забезпечуються факторами, обов'язковими для досягнення вторинної викорисТаності ПК. До цих факторів належать правові (''з.. .оішість"), економічні ("вигідність"), технічні ("ефективність") та конструктивні ("якість"), досягнення яких пов'язане з рішенням основних проблем утилізації ПЗ. Далі у главі розглядається стиль уявлення КВВ (стиль проектування, стиль застосування мови й оформлення) і структура КВВ, яка визначається уведеною моделлю та уявляє собою три частини: опис КВВ (концепція), реалізація КВВ (конструкція) та інтерфейс КВВ (контекст). У закінченні глави розглядається задача класифікування КВВ, яка є однією з фундаментальних у вторинному використанні ПЗ. Ця задача Вирішувалася традиційно у трьох аспектах. По-перше, необхідно вибрати або розроб ти найбільш ефективну' техніку класифікування, по-друге, необхідно розробити відповідні інформаційно-програмні засоби, які забезпечують зберігання й пошук КВВ відповідно обраній класифікації, по-третє, необхідно утворити на базі обраної класифікаційної схеми та Інформаційно-програмних засобів конкретну колекцію КВВ. У Додатку Б на прикладі трьох конкретних класифікацій КВВ (абстрактних типів даних у Аді, КВВ у рамках IPSE, класифікація G.Booch) розглядаються принципи класифікування КВВ і форми (по G.Booch) КВВ ПЗ.

У П'ятій главі розглядаються задачі утворення й застосування КВВ. Задачі утворення й Застосування ПК у npot ;і розробки ПЗ складають суть нових підходів програмної інженерії (наприклад, структурного й об'єктно-оріснтованого). КВВ у відміну від ПК зберігають досвід, накопичений у процесі розробки й супроводження ПЗ, та застосовують для підвищення ефективності програмування, якості проектів і т.д. не за рахунок розподілу великих програм на маленькі частини, а за рахунок вторинного застосування накопиченого у них досвіду. Утворення й застосування КВВ

. ' ' ' -■ . 12 1 . ' вимагає реалізації ряда специфічних процесів (утворення КВВ, зберігання, розуміння,

. налагодження КВВ і т.д.), а витрати на їх виконання повиниі бути меншими ніж ті, ідо 'потрібні для написання просто ПК знову. Тому утворення й застосування КВВ вимагають спеціальних підходів, а ефективність Листосування ПВВ визначається тим, наскільки швидко задовольняються запити на пошук або утворення потрібно;» КВВ. Вибір шляху й засобів утворення й застосування КВВ є складна задача. У роботі. пропонуються три засоби утворення КВВ: утилітарний, індуктивний, та дедуктивний. .Далі у главі пропонується схема утворення КВВ, ТІри масовій розробці КВВ необхідно оцінювати широкий спекчр;властивоСтЄй і вирішувати дві такі задачі: зменшення, кількості ПК, які оцінюються вручну і які виділені з ГІЗ; оцінювання властивостей ПК, забезпечуючих й< ¡у вторинну використаність. І [а першому рівні оцінюються ті властивості ПК, які-дозволяють визначити кандидатів у КВВ ПЗ. Звичайно таких ПК близько 5-10%% від усіх виділених гранулятором з І ІЗ, що утилізується. Це дозволяє виключити з подальшого розглядання ті ПК, котрі очевидно не вдовольняють вимоги, пред'явлені до КВВ. Тут може використовуватися атрибутна модель (V.Basilli).1 'я другому рівиіпроцес оцінювання має більш складний хар. ктер, бо властивості необхідно оцінювати точніше з урахуванням вимог нового ПЗ. Він базується на понятті моделі КВВ і включає до себе три стадії .-ідентифікація ПК, моніторинг ПК, утворення КВВ. : •

' Другу частину глави присвячено дослідженім»' шляхів та,засобів застосування .

КВВ. У роботі пропонується підхід до упровадження ІТВВ у організації, який передбачає рішення таких задач: , , • .. . , . •

1. вивчення та підготовка організації до застосування ПВВ,. вирішується шляхом

розробки програми, яка повинна включати три розділи моніторинг, розробка плану застосування ПВВ, реалізація плану; •

2. утворення середовища розробки ПЗ з урахуванням І1ВВ - вирішується розширенням моделі середовища розробки ПЗ, яке розглядається як SDi^JSoftware Development Environment) =X{S},{M},{P}), де {SJ - множина сгруктур, 'ібто об'єктів або агрегатів об'єктів, які представляють ПЗ у тіроцесі його розробки; {ivlj - множина механізмі», тобто мов, інструментів або фрагментів інегрумектів, котрі, оперуючи структурами, автоматизують процеси розробки ПІ; {Р} - множина вимог, котрі у процесі розробки ПЗ середовище; лреД'якіїяс ;■ користувачу. Кожен компонент сгредошіща уі йорюсгься з урахуванням вимог застосування ПВВ ,

3. Утворення інфраструктури, яка необхідна для застосування ПВВ - вирішує ться утворенням усередині органпації відповідної інфраструктури, яка підтримує реалізацію плану вторинного використання. Інфраструктура повинна складатися з двох компонентів - організаційного й технічного.

У шостій главі досліджуються засоби, необхідні для застосування ПВВ, які поділяються на мови програму чия і системи для вторинного використання ПЗ. Розглядено основні властивості моз програмування (класифікація й композиція), що забезпечують застосування ПВВ, пропоновано методику дія оцінювання властивостей вторинної вйкористаності мов програмування композиційного типу і визначено показники вторинної використанеєгі мов FORTRAN, PL/l, PASCAL, BASIC, С, АДА розглядено основні механізми, що забезпечують реалізацію КВВ у композиційних мовах (видимість, типізація, прихованість, параметризація, поліморфізм, "перепакування"), досліджено принципи й механізми побудови систем вторинного використання ПЗ, у Додатку В зроблено огляд конструкцій найбільш поширених систем.

У сьомій главі досліджується економічний аспект утилізації ГІЗ. Однією з цілей застосування ПВВ є підвищення продук гивності програмування, однак організація застосування ПВВ потребує витрат. Економічний аспект застосування ПВВ стосується кількісних і якісних моделей, відображуючи процеси формування й

• раціонального розподілу цих витрат. У економічному аспекті застосування І1ВВ розглядаються такі три напрямки:

!). Розробка загальних моделей застосування ПВВ;

2); Розробка моделей для кількісних та .якісних оцінок витрат на застосування ПВВ, продуктивності й ефективності;

3). Розробка моделей підвищення ефективності застосування ПВВ.

Усі напрямки засновано на концепції, суть якої полягає у аналізі ефекту в>д застосування ПВВ Via фоні витрат на розробку ПЗ знов, при цьому у теперішній час використовуються Лі»., підходи. Відповідно першому базова концепція у кількісних моделях виявляєт ься у вигляді такої формули: 113 - New + Reuse, де New - частина ГІЗ, утворена знову, Reuse - чаегнна, яка вторинно використовується, тому загальне рівняння витрат приймає вигляд С« (0-R)*d-' Й*І», де С - витрати на розробку ПЗ; О і R - об'єм усього ПЗта йою частини, що вторинно використовується, відповідно; d і Ь- витрати на написання ПЗ знову та вторинно використання частн;іи R відповідач

Другий є підхід ''еталонного" проекту, суть якого виявляється формулою ГО - ІІЗСот, + ІІЗу„, де ПЗСога! - постійна ("еталонна") частина ПЗ, ПЗУа,. перемінна його частина, Оцінка витрат в цьому підході будується на подібності витрат для кодюьих компонентів, а не на обчислюванні їх, наприклад, на основі продуктивності. Загальне р'вйяння витрат матиме Такий вигляд: С =0^^ + С^,, де 0^ - вартість постійної еталонної частини додатку, а - вартість тієї частини нового додатку, яка відрізняє його від егалонної. ■ '

' У дисертаційній р^ 'оті при дослідженні економічного аспекту утилізації ПЗ приймається першим підхід. Для економічної оцінки застосуваания ПВВ уводяться показники застосування ПВВ (гіоі:азник вторинного використання ресурсів, показник безвідхідності ПЗ) і у межах трьох пропонованих моделей (натуральна, ефективна натуральна й товарна) досліджуються вартість розробки ПЗ із застосовуванням ПВВ, продуктивність, доход від застосовування ПВВ, ефективність витрат на застосовування ПВВ, показник вторинного використання ресурсів, показник безвідхідності ПЗ, У закінченні надаються рекомендації для зменшенйя витрат на застосовування ПВВ. ■ ■

У третій частині дисертації, яка складається з трьох глав, досліджуються методи утилізації, які забезпечують відновлення ПЗ. При цьому у восьмій главі розглядаються загальні питання відновлення ПЗ, дев'яту главу присвячено проблемі розуміння ПЗ, яка вирішується методами відновлення інформації, у десятій главі розглядаються методи й засоби відновлення програм.

У восьмій главі з урахуванням ПВВ розглядається взаємозв'язок двох розділів програмної інженерії, які у теперішній час все частіше використовуються разом - це пряма інженерія, яка вже давно досліджується, і менш відома зворотна інженерія, виявляється зв'язок між ними таї розглядаються основні методи, які використовує зворотна інженерія, уводяться два аспекти відновлення ПЗ. Необхідність зворотної інженерії у теперішній час виникаєу трьох випадках; при утворенні КВВ з існуючого ПЗ; при відновленні ПЗ, наприклад, у процесі супроводження; при переробці ПЗ, наприклад, у процесі миграції, або внаслідок змінювання господарсько-економічних зв'язків додатку, або для застосування нових технологій у додатку. До методів зворотної інженерії належать такі: відновлення проектної інформації, реінженерія, реструктуризація, редокументація. Стосовно П3 основні цілі зворотної інженерії полягають не в утворенні дубліката системи, а в отриманні інформації для кращого

порозуміння систем, з тим щоб підвищити ефективність супроводження, переробити систему або виділити з неї деякі компоненти, що відповідають заданим вимогам. У главі досліджуються аспекти відновлення ПЗ. Відновлення - це регенерація необхідних властивостей, утрачених ПЗ, з метою поновлення його нормального функціонування. У дисертаційній роботі відновлення ПЗ пропонується дослідити у двох таких аспектах: інформаційний - в і; >влення інформації про ПЗ; конструктивний -відновлення загублених властивостей конструкції ПЗ.

Дев'яту главу присвячено методам Та засобам, призначеним для ефективної реалізації процесів порозуміння ПЗ. Відзначається, що інтерес до проблеми підсилювався тричі - при появі можливості обміну алгоритмами, написаними на мові високого рівня, при вирішенні задач супроводження великих програмних комплексів, при вторинному використанні існуючого ПЗ. Однією з головних задач у вирішенні проблеми розуміння ПЗ є відновлення інформації. У главі розглядено фактори, що впливають на сприйняття інформації у процесах утилізації, аспекти проблеми розуміння ПЗ, шляхи й методи її вирішення. Описано склад, структуру та особливості інформаційно-програмних засобів, забезпечуючих автоматизацію процесів розуміння ПЗ. Особлива увага приділяється засобам, .розробленим на основі гіпертекстової технології. . .

У десятій главі розглядається задача відновлення ПЗ у конструктивному аспекті. Показується роль відновлення ПК у процесах ЖЦ, розглядаються методи й засоби шдновлення конструкцій ■ програм. Окремо представлено методи відношення конструкцій програм для поновлення функціонування, які засновані на реверсивній інженерії. Методи та засоби відновлення конструкцій програм, що розглядені у главі, орієнтовані на початковий код і виконуються за допомогою його модифікації. Це пояснюється Тим, що р основному усі конструктивні властивості, які забезпечують корисність ПЗ, можуть бути відновлені шляхом маннпулювання з конструкцією ПЗ, виявленням якої, зокрема, є початковий код. Усі методи можна поділити на дві групи. У першу входять методи відновлення початкової корисності, а в другу - методи відновлення контекстної корисності. Найбільш характерними для першої групи є методи відновлення стилю програмування, а для другої - методи, які забезпечують застосування ПВВ. Засоби відновлення конструкцій ПЗ звичайно використовують методи зворотної інженерії, що передбачас обов'язкове відновлення інформації про програму. До цих методів належать такі: структурне -формування програм,

lfr

стандартизація стилю програмування, відновлення з використанням препроцесору, відновлення ПК з метою їх вторинного використання.

Четверта частина дисертаційної роботи складається з двох глав та приспячьна дослідженню методі» і засобів переробки ПЗ,

У одинадцятій главі розглядаються види й способи переробки програм. Переробка ПЗ - це перетворення існуючого ПЗ з метою отримання максимальної користі від нього при зніманні його з супровождения. Умови, що викликають переробку ПЗ, звичайно іникакпь при нових зовнішніх факторах, коли вимагаються його миграції в інші технічні й технологічні платформи або внаслідок змін ділових (господарсько-економічних) процесів, що відбуваються у даному домені (додатку), коли вимагається реінженерія господарьско-економічних зв'язків і, як наслідок, переробка ПЗ, або нарешті при раз'єднанні ПЗ з метою створення репозитарію КВВ. У главі особлива увага приділяється таким способам переробки програм, які застосовуються у реверсивній інженерії: логіко-базований, трансформаційний, аспектний, програмно-функціональний, заснований на кліше, рішення-оріентований, заснований на обчислювальних планах.

У дванадцятій главі розлядаються засоби переробки програм, показується . загальна-' схема засобів, описуються деякі реалізації засобів, показується уявлення інформації у засобах переробки ПЗ та розглядається зв'язок Переробки програм і CASE систем. Дослідження методів вторинного використання (утворення КВВ), відновлення й переробки ПЗ показують, що значна частина засобів, реалізуючих ці методи, є загал ьною по архітектурі. її основу складають два компоненти: екстрактор (на основі аналізу початкової інформації будує уявлення, яке відповідає мовному рівню знань про ПЗ), абстрактор (на основі побудованого екстрактором уявлення будує уявлення, які відповідають програмно-архітектурному і доменному рівням знань про ПЗ). У дисертації розглядаються особливості реалізацій указаних компонентів засобів переробки ПЗ, заснованих на уведених засобах переробки програм та описуються уявлення знань у них. У закінченні розглядається роль CASE у вирішенні задач відновлення й переробки ПЗ, відзначається її велике значення.

П’ята частина дисертаційної роботи складається з двох глав, її присвячено ДА-методології утилізації ПЗ. У цій частині Дано основні визначення ДА, виконано огляд підходів до ДА - Lubars, Kaptur. Prieto-Dias, FODA, Synthesis (Додаток Г) та обрано підхід як методологію утилізації ПЗ, розглядено роль ДА у прямій та зворотній

інженерії та пропоновано методіку ДА для відновлення й переробки ПЗ.

Тринадцяту главу присвячено порівнянню підходів до ДА та вибору підходу, придатного як методологія утилізації ПЗ. У теперішній чає відомі підходи до ДА відрізняються поглядом на місце ДА у процесах розробки ПЗ, методами реалізації ДА, цілями й результатами і т.д. Обираючи підхід,, використовують такі фактори: вимоги процесу розробки ПЗ, ста існуючого і ІЗ, економічні цілі ДА, стан доменних знань, наміри використовувати результати ДА. Кожний фактор знаходить виявлення через ряд критеріїв (наприклад^ предмет ДА, фокус ДА, характер дсменної моделі і т.д.), за значеннями котрих і обирається підхід. У главі розглядено фактор:) й критерії та обрано ДА (R.Prieto-Dias) для утилізації ПЗ.

У чотирнадцятій главі розглядається розширення обраного підходу ДА і пропоновано методику ДА для забезпечення процесів відновлення й переробки ПЗ. Основна ціль ДА полягає у отриманні структур ПЗ, які вторинно використовуються. Проте цієї інформації виявляється недостатньо для виконання процесія відновлення й переробки ПЗ. Реверсивні методи, які мають місце при виконанні цих процесів, вимагають додаткової специфічної інформації (наприклад, класифікацій понять, програмних кліше, компонентів ПЗ із зазначенням динамічних і функціональних властивостей і т.д.). Вона визначається тільки нг. основі аналізу існуючого ПЗ та знань, накопичених у домені, та може бути результатом ДА. У главі пропонуються відповідне розширення інфраструктури, яка забезпечує ефективне застосування ПВВ у ЖЦ з урахуванням реверсивних процесів, та на прикладі показується методіка, що розширює обраний підхід до ДА.

Шоста частина дисертаційної роботи складається з грьох глав, її присвячено опису реалізації теоретичних та методологічних результатів, отриманих у роботі у вигляді додатків - гіпертексгова система ГІПС Плюс, яка забезпечує інформацією процеси відновлення ПЗ, система ПУЛ для утворення, зберігання й заст осування KBD (Модула-2), прототип РЕВЕРС засобів вторинного використання, переробки та відновлення ПЗ.

У п'ятнадцятії"! главі розглядається застосування ппертекстової технології у процесах утилізації ПЗ, надасться класифікація гіпертекстових систем, що пропонуються на основі Dexter Hypertext Г.с-fercnce Model (скануючі, зі схемою гіпертексту, на основі СУБД, на основі системи управління гипертекстом і однорівневою та багаторівневою схемами), та обирається модель гіпертексіл з

напіввизначеними вузлами, яка розроблена на основі предикатної моделі :іпертексту для застосування в утилізації ПЗ. У Додатку Д уводяться основні визначення гіпертекстових систем. Традиідійних властивостей гіпертекстових систем для ефективного застосування їх у програмній інженерії виявляється недостатньо, тому у роботі на основі предикатної моделі гіпертексту запропоновано модель, що дозволяє утворювати й обробляти вузли, які використовують напіввизначені інформаційні об'єкти та .EXE і .СОМ файли, які гнучко підключаються до них. Цю модель реалізовано у гіпсртекс) зій системі ГЙіС Плюс, яка е першою системою у СНД і Україні, для підтримки процесів розробки ПЗ, що забезпечу«:,інтеграцію у середовищі гіпертексту гетерогенних документів, виконання програм різного походження; прототипуванчя і т.д. У главі розглядається конструкція системи та її застосування у програмній інженерії, зокрема, для утворення засобів розуміння ПЗГ Швидкого прототипуваннк та інтеграції на основі ПВВ гетерогенної інформації.

У шістнадцятій главі описано систему ПУЛ, яка призначена для утворення, зберігання й застосування КВВ у мові Модула-2. Система здійснює прийняття, класифікацію, роз міщення у пепозотарії та ефективне ведення КВВ: Засоби надають такі можливості: '

- утворення та ведення класифікаційної схеми для домена або окремого додатку;

- утворення, класифікацію та розміщення КВВ у репозитарії; ;

• ведення репозитарію КВВ;

- пошук у репозитарії необхідних КВВ та інформації про КВВ за вимогою

користувачів; ' _ ,

- застосовування КВВ v і ІЗ, яке розроблюється.

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

У сімнадцятій главі описано прототип зі’собів РЕВЕРС, які об'єднують у єдиний комплекс описані вище засоби і CASE систему, забезпечуючи тим самим усі процеси

утилізації ПЗ - вторинне використання, відновлення й переробку ПЗ.

У основу архітектури засобів покладено розширену концепцію "екстрактор-абстрактор", розглядену в роботі. •

Відновлення. У прототипі відновлення розуміється як утворення семантично еквівалентних уявлень початкового коду у межах одного й того ж абстрактного рівня. Відновлення виконується за допо- югою гіпертекстового інструментарію ГШС Плюс, а результатом відновлення е перехресні посилення у початковому коді, стоуктуриа діаграма програми (блох-схемаі, діафама управління, д'аграма потоків даних і т.д. Абстракгор, призначений для відновлення інформації, використовує як вихідні дані модель програмних знань та будує модель для відновлення, яка уявляє собою гіпертекст у форматі гіпертекстово; системи ГІПС іілюс. 1

Вторинне використання. У прототипі вторинне використання виявляється у виділенні із існуючого ПЗ тих ПК, які розглядаються як кандидати у КВВ, та подальшому оцінюванні ПК - кандидатів для отриманій КВВ ПЗ. Та.сим чином основним процесом є виявлення конструкцій програм, які можуть бутл вторинно використані, тому ціль процесіз реверсивно'1' інженерії полягає у підготуванні інформації для цього. Остаточний склад інформації залежите від конкретних механізмів визначення КВВ. Проте можна виділити інформацію двох виді і1:

- синтаксична, яку визначено класифікацією конструкцій програм, котрі можуть бути кандидатами у КВВ ПЗ;

- статистичн і, яка визначається даними про ті чи інші елементи початкового коду, котрі використатимуться пря оцінюванні вторинної використаності.

Результат роботи абстрактору у вигляді КВВ надходить на вхід системи ПУЛ для розміщення у репозитарії з метою подальшого використання.

Переробка. У прототипі переробка виконується за допомогою CASE, тому ціні реверсивної інженерії визначаються вимогами, які пред'являє CASE до способу подання програмних конструкцій. Обравши конкретну CASE систему, необхідно, використовуючи ії класифікацію конструкцій, установити відповідні конструкції програми, що переробляється. Переробка ПЗ, яке утилізується, у розробленому прототипі здійснюється за допомогою CASE засобів. Як CASE засоби використовується система CASE-Аналітик, розроблена підприємеї вом Ейтекс.

Додаь.едо дисертаційної роботи складаються з шест>і,мастн (А; Б, В, Г, Д, Е), у яких подано: класифікації ПК і КВВ, описи 12 систем вторинного використання,

описи/систем розуміння ПЗ, підходи до ДА, основні визначення гіпертекстової технології. • ; . . ■

. ^ ВИСНОВКИ

Основні результати дисертаційної роботи: ' ;■ ■ ■

( .... 1 . Звернено увагу на фактори, що пояснюють зріст витрат на утворення великих програм: зовнішні, п-ч'язані із зміною вимог до програм та з широким розповсюдженням ЕОМ, та внутрішні, пов’язаніз особистим характером програм як об'єктів розробки, й супроводження; показано на необхідність перенесення уваги ррзроблірвачів ПЗ з короткострокових на довгострокові витрати якомога тривалішого застосування розробленого ПЗ та його компонентів;

, , 2. Сформульовано основні положення інженерії утилізації ПЗ- пропонованого

комплексного підходу; пропоновано основні, напрямки, у які слід групувати методи й засоби утилізації ПЗ; виконано аналітичний огляд принципів, застосованих у утилізації Г|3 та пропоновано методологію утилізації ПЗ; пропоновано модель утилізації ПЗ, яку засновано на відношеннях понять основних процесів утилізації -відновлення, вторинного використання та переробки ПЗ у контексті корисності ПЗ. Показано, що основним системоутворюючим принципом утилізації є принцип вторинного використання, а основні процеси утилізації - аспекти (сторони) процесу застосування принципу вторинного використання. ‘

3. Сформульовано принцип вторинного використання ПЗ та уведено по'мзані з ним поняття (вторинне використання, вторинна аикористаність ПЗ, компоненти, що вторинно використовуються, фактори, які впливають на застосування принципу і т.д.); досліджено особливості застосування принципу у контексті життєвого циклу ПЗ й описано. основні процеси застосування; розглядено проблеми вторинного використання ПЗ, ,

4. Пропоновано й досліджено модель компоненту, шо вторинно використовується, котра являє собою якості, характеристики, фактори (умови) та відношення між ними, які відображують загальні вимоги, що ставлять до програмного компоненту у контексті; процесів вторинного використання; запроваджено й описано принципи уявлення компонентів, що вторинно

використовуються, шляхи їх утворенії*, пропоновано й описано засоби їх утворення,

•' ’ : . - . ' - '.$г'

схему процесу утворення компонентів, що вторинно використовуються, та схему упровадження принципу вторинного використання в організаціях, розробляючих ПЗ, описано основні особливості її складових частин - модель процесу підготовки організації до упровадження принципу, модель середовища розробки ПЗ та модель інфраструктури.

5. Виконано аналіз оснс них принципів, що застосовуються у мовах програмування для забезпечення вторинного використання програм (композиція і класифікація), пропоновано методіку та на її основі для найбільш розповсюджених мов виконано оцінку їх властивостей, забезпечуючих вторинну використаність; приведено вимоги до композиційної мови та на прикладі мови Модула-2 розглядено механізми, які використовуються при утворенні КВВ; зроблено аналітичний огляд реалізованих експериментальних систем, забезпечуючих вторинне використання ПЗ.

6. Зроблено аналітичний огляд основних напрямків моделювання економічного аспекту вторинного використання ПЗ; уведено показники для оцінки економічної доцільності застосовування принципу вторинного використання (показник вторинного використання ресурсів, показник безвідхідності ПЗ); уведено й досліджено три моделі процесів застосовування принципу вторинного використання, які дозволяють обирати шлях утилізації ПЗ й оцінювати доцільність витрат; приведено рекомендації для зменшення витрат на вторинне використання.

.. 7. Надано характеристику зворотної інженерії у контексті проблеми, яка

досліджується; зроблено аналітичний огляд методів зворотної інженерії та уведено поняття аспектів відновлення ПЗ, указано їх особливості; розглядено задачу розуміння ПЗ й шляхи » рішення методами зворотної інженери', зроблено аналітичний огляд методів розуміння ПЗ. та засобів, побудованих на їх основі; уведено та розглядено види переробки програм як дії, направлені на ефективне використання витрат, зроблених на ПЗ; зроблено аналітичний огляд способів обробки інформації у процесах переробки ПЗ й розглядено загальну схему засобів, реалізуючих процеси відмовлення й переробки U3; зроблено аналітичний огляд застосування засобів зворотної інженерії у переробці ПЗ, у кожному засобі визначено роль 'головних компонентів загальної схеми - екстрактора і абстрактора; розглядено роль CASE у реалізації процесів утилізації ПЗ; ;

8. Уведено основні поняття доменного аналізу, фактори й критерії, за якими для утилізації ПЗ можна досить обгрунтовано обирати підхід до доменного аналізу;

■ 22 ' . ■ зроблено аналітичний огляд підходів до виконування доменного аналізу та обрано підхід шляхом використання факторів доменного аналізу і значень критеріїв, які визначаться особливостями процесів утилізації ПЗ; показано роль домен,юго аналізу у прямій та зворотній інженерії у контексти життєвого циклу ПЗ та розширено обраний підхід для задач відновлення й переробки ПЗ.

9. Зроблено аналітичний огляд нового гипертекстового методу уявлення та обробки інформації і запропоновано.класифікацію гіпертекстсвих систем на основі Dexter Hypertext Referen ' Model; розглядено застосування гіпертекстової технології у програмній інженерії та її зв'язок з CASE; пропоновано й досліджено модель гипертексту з напіввизначеними вузлами, яка орієнтована на застосування у програмній інженерії.

10. Розроблено під керівництвом автора й реалізовано першу у колишньому СРСР інструментальну гіпертекстову систему ПИС Плюс, призначену для вирішення задач програмної інженерії/описано її застосування у контексті проблеми, що розглядається; розроблено під керівництвом автора архітектуру та реалізовано з його участю інформаційно-програмну систему, яка забезпечує основні процеси вторинного використання компонентів,написаних у мові Модула-2; розроблено під керівництвом автора архітектуру та реалізовано прототип системи, забезпечуючий усі процеси утилізації Г13. Як інструментальні програми використано розроблені у дисертації засоби гіпертекстового уявлення та обробки інформації (відновлення), засоби утворення, зберігання, пошука й застосування компонентів, що вторинно використовуються (вторинне використання), CASE-Аналітик, АО Ейтекс (переробка).

Основні положення дисертації опубліковані в таких працях:

1. Сидоров H.A. Повторное использование программного обеспечения//Кибернетика.

- 1989. - N 3,- С. 46-50.

2. Сидоров И.А. Утилизация программного обеспечения. Экономический аспект// Кибернетика и сист. анализ,-1994.-N 2.- С. 15Ы67.

V Сидоров H.A. Экономические модели утилизации программного обеспечения// Кибернетика и вычисл. техника.- 1993,- N 99,- С. 104-11Я

4. Сидоров H.A., Шсрсла А.Н. Средства для утилизации программного обеспечения

//УСиМ,- 1990 -N 5 -C. 50-57.

5. Сидоров H.A., Щерепа А.Н., Копач В.Б. Средства хранения и поиска повторно

используемых компонентов//Там же.-.1991.-N6.-С.'4448. .

6. Сидоров Н,А., LUepena А.Н., Копач В.Б. Инструментарий для понимания утилизируемого программного обеспечения //Там же.-1992.- N 7/8,- С. 62-70.

7. Сидоров H.A. Гипертекстовая гстема-новый инструмент программной инженерии //Там же,- 1993,- N 4,- С. 61-74.

8. Сидоров Н:А. Классификация гипертекстовых систем// Там же.- ’.994.- N 6,- С.

37-53. , ; . . : - . ' ■ ' ' " : '

9. Сидоров H.A. Повторное использование программного обеспечения на основе языка Ада // Программное обеспечение систем автоматизированного проектйрования.-Рига: Рйжск.полйтехн,ин-т, 1988.-С. 60-69.

10. Сидоров H.A., Шерепа А.Н. Средства создания повторно используемых компонент программного обеспечения// Исследование процедур поддержки принятия решений в автоматизированных системах,- Киев' Йн-т кибернетики им.В.М. Глушкова АН УССР, 1989.- С. 40-45.

11. Сидоров H.A. Свойства высокопроизводительных вычислительных систем // Математическое и электронное моделирование в информационном обеспечении технических систем,- Киев: КНИГА, 1989, С.38-42.

12. Сидоров H.A. Инженерия утилизации программного обеспечения // Методы

проектирования интеллектуальных прикладных программных систем - Киев: Ин-т кибернетики им.В.М.Глушкова НАН Украины, 1992 - С. 15-22. -

13. Сидоров Н.А. Исследование повторного использования программного обеспечения.-М.: ВИНИТИ, 1987.-18 с.-Деп. 15.03.87; N 5457-B87

14. Сидоров H.A. Повторное использование программ на основе языка- Ада // Реализация и применение языка Ада.- Рига: Политехи, ин-т, 1987,- С. 73-74.

15. Sidorov N.. Gorobelz S., Kopach V. Model of hypertext with the partly defined nodes //3-WE Human Computer Interaction'93.- Moscow: MICSTI, 1993.- P 210-217

16. Сидоров H.A. Повышение качества программного обеспечения информационных систем методом адаптивной настройки //Надежность и качество программного обеспечения.* Киев: Йн-т кибернетики им. В, М. Глушкова АН УССР. 1985.'- С. 193195.

17. Сидоров H.A. Средства реализации информационноч'правочных задач в системах

организационноготипа//Проблемы автоматизацииорганизационногоуправления-Тбилиси: ГКНТ СССР, 1985.- С. 275-276.

18. Сидоров H.A. Адаптация программных систем управляемая синтаксическим описанием // Прикладная информатика систем проектирования.- Калиниград 1986.-С. 119.

19. Сидоров H.A. Система повторного использования программного обеспечения//

Там же.-Калининград, 1987:-С. 67, ^ г

20. Сидоров H.A. Повт< ное использование • метод утилизации модульного программного обеспечения// Синтез модульных систем обработки данных.* Кишинев, 1988,- С. 35.

21. Сидоров H.A., Шерепа А Н. Повторное использование программного обеспечения при разработке систем управления // Проблемы управления.* Москва: ИПУ АН СССР, 1989.- С. 85.

22. Сидоров H.A. Средства повторного использования программного обеспечения//

Всесоюз. совещ. по автоматизированному проектир. програм. обеспеч. систем управления движущимися объектами.- Харьков: ХАИ.-1989.- С. 84. >

23. Сидоров H.A. Шергпа А.Н., Копач В.Б. Средсгва хранения и поиска

программных компонентов в системе повторного использования программного обеспечения// Программное обеспечение ЭВМ.-Тверь: НПО Центрпрограммсистем, 1990.-С. 180-184. .

24. Сидоров H.A. Шерепа A.H., Копач В.Б. Интерфейс гиперсреды для понимания утилизируемого ПО//Взаимодействие человека с компьютером,-М.: ММЦНТИ, 1991,-С. 280-283.

25. Сидоров H.A. Применение гипертекста в исследовании повторной

используемости.программного обеспечения // Новые информационные технологии в высшей школе,-М.: МИЭТ, 1991,-С. 41. '

Sidorov N.A. Control Systems and Computers Software Engineering Recycling. Thesis

for a Doctor's degree in the field of "Soft ware for Computers and Computer-Aided Systems

- 05.13.09'', Institute of Problems Modeling in Energetics, National Academy: of Sciences,

Kiev. Ukraine, 1995. .

The following results are defended: software engineering recycling as a complex

approach to reuse, recovery and remaking of software systems; the received models, approaches, methods, schemes as a theoretical base of software engineering recycling; realized prototypes of software systems designed for the decision of main tasks of software engineering recycling.

The results received are to reduce expenditures for the software development and maintenance and to improve its quality and reliability.

Сидоров Н. А. Инженерия утилизации программного обеспечения систем. управления и ЭВМ (рукопись). Диссертация на соискание ученой степени доктора технических наук по специальности 05.13.09 —■ математическое и программное обеспечение вычислительных машин и систем, Институт проблем моделирования в энергетике НАН Украины, Киев, 1995. Защищаются следующие результаты: инженерия утилизации программного обеспечения как комплексный подход к повторному использованию, восстап эвлению и переработке программных систем; полученные модели, подходы, способы, схемы, составляющие теоретическую базу инженерии утилизации; разработанные на основе полученных данных прототипы информационно-программных средств, практически решающие основные задачи утилизации программного обеспечения.

Применение полученных результатов позволит снизить затраты на создание и сопровождение программного обеспечения, повысить его качество и надежность.

Ключові слова: інженерія програмування, вторинне використання,

реверсивна інженерія, гіпертекстова технологія.

Піди, до друку 02.11.95. Формат 60X84/16. Папір офс. Офс. друк. Ум. друк. арк. 1,46. Ум. фарб>відб. 1,51. Обл.-вид. арк. 1,50.' Зам. 827. Тираж 100 прим. '

Редакційно-видавничий відділ з поліграфічною дільницею Інституту кібернетики імені В. М. Глушкова НАН України 252022 Київ 22, проспект Академіка Глушкова, 40