Поможем написать учебную работу
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
16
Національний технічний університет України
“Київський політехнічний інститут”
Пантелеймонов Андрій Анатолійович
УДК 681.3.06
МЕТОДИ ТА ЗАСОБИ РЕІНЖЕНЕРІЇ МОБІЛЬНИХ
ЗАСТОСУВАНЬ ІЗ ГРАФІЧНИМ ІНТЕРФЕЙСОМ
01.05.03 математичне та програмне забезпечення
обчислювальних машин і систем
Автореферат
дисертації на здобуття наукового ступеня
кандидата технічних наук
Київ
Дисертацією є рукопис.
Робота виконана в Інституті кібернетики імені В.М.Глушкова НАН України
Науковий керівник: кандидат фізико-математичних наук, доцент
Петрухін Володимир Олексійович,
Інститут кібернетики імені В.М. Глушкова НАН України, провідний науковий співробітник
Офіційні опоненти: доктор технічних наук, професор
Теленик Сергій Федорович,
Національний технічний університет України “Київський політехнічний інститут”, зав. кафедрою автоматики та управління в технічних системах
доктор технічних наук, професор
Сидоров Микола Олександрович,
Національний авіаційний університет Міносвіти України, декан факультету інформатики, зав. кафедрою інженерії програмного забезпечення
Провідна установа: Інститут програмних систем НАН України,
відділ програмної інженерії, м. Київ
Захист відбудеться 7 червня 2004 р. о 16 годині на засіданні спеціалізованої вченої ради Д26.002.02 при Національному технічному університеті України “Київський політехнічний інститут” за адресою: 03056, Київ-56, пр. Перемоги, 37, корп. 18, ауд. 306.
Відзиви на автореферат у двох примірниках, завірені печаткою, просимо надсилати за адресою: 03056, м. Київ, пр. Перемоги, 37, вченому секретарю НТУУ “КПІ”
З дисертацією можна ознайомитись у бібліотеці НТУУ “Київський політехнічний інститут”.
Автореферат розісланий “6” травня 2004 р.
Вчений секретар
спеціалізованої вченої ради Орлова М.М.
ЗАГАЛЬНА ХАРАКТЕРИСТИКА РОБОТИ
Актуальність теми. Всезростаюча складність і висока вартість створення надійного та якісного програмного забезпечення (ПЗ) стимулювали розвиток теоретично обґрунтованих методів та засобів його розробки. Виникла необхідність розглядати розробку й супровід ПЗ як промисловий технологічний процес. Біля витоків теоретичного програмування і технології програмування стояли В.М.Глушков, А.П.Єршов, К.Л.Ющенко. Їхні ідеї розвинули, заснувавши самостійні школи теоретичного програмування, І.В.Вельбицький, В.П.Іванников, В.Н.Редько, І.В.Сергієнко, А.О.Стогній. Вагомий внесок у розвиток галузі технології програмування внесли П.І.Андон, К.М.Лавріщева, О.Л.Перевозчикова, М.О.Сидоров, С.Ф.Теленик, Г.О.Цейтлін та інші вчені.
Одним із важливих напрямків технології програмування є програмна реінженерія, яка зорієнтована на процеси еволюції і відновлення ПЗ. В індустрії розробки ПЗ відбувся перехід від монолітних апаратно-залежних систем до розподілених гетерогенних паралельних клієнт-серверних компонентних систем. Щоб продовжити життєдіяльність морально старіючих систем при їхньому перенесенні на сучасні платформи та операційні системи (ОС), потрібно створити нові механізми еволюції, адаптації та успадкування їхніх функцій і властивостей відповідно до умов операційних середовищ, що змінюються. Тому вивчення особливостей і принципів створення нових методологій реінженерії широкого класу найбільш масово використовуваних компонентів ПЗ графічного інтерфейсу користувача (ГІК, GUI) є важливими й актуальними.
ГІК зарекомендував себе як засіб наочного сприйняття, аналізу й обробки інформації користувачем. З появою ГІК сформувалися стабільний набір основних візуальних елементів, способи їхнього групування і комбінування, а також засоби візуального проектування віконних графічних інтерфейсів.
Величезна фактична кількість розроблених застосувань з ГІК, які використовують апаратно-залежні програмні засоби, що важко переносяться, під конкретні ОС і платформи не відповідає сучасним вимогам до ГІК і мобільності ПЗ. Розробка стратегії і механізмів багатошарової реінженерії таких застосувань становить економічно ефективну альтернативу підходу, що ґрунтується на заміні успадкованих систем заново розробленими сучасними системами. Системне перетворення компонентів існуючої системи з додаванням шару ПЗ є значно дешевшим і менш ризикованим, ніж розробка нової системи.
Запропонована в дисертаційній роботі сукупність моделей, методів і засобів методології реінженерії ґрунтується на виділенні ділянок застосування з ГІК, системному і якісному їхньому перетворенні до вимог і умов нового середовища побудови мобільних клієнтських компонентів. Ця методологія розроблена на основі вивчення тенденцій і особливостей розробки ГІК для різних середовищ, а також багаторічного досвіду роботи автора з модернізації і виготовлення графічних інтерфейсів застосувань у ряді програмних проектів. У результаті сформульовані нові рішення, принципи і механізми реінженерії інтерфейсів користувача.
Життєва практична необхідність перенесення численних функціонуючих великих програмних продуктів у сучасні розподілені клієнт-серверні середовища підтверджує актуальність теми дисертаційного дослідження.
Зв'язок роботи з науковими програмами, планами, темами. Основні результати дисертаційного дослідження були отримані автором як відповідальним виконавцем наступних наукових тем Інституту кібернетики імені В.М.Глушкова НАН України:
Частина наукових і практичних результатів також була отримана автором під час участі в реалізації грантів:
Мета і задачі дослідження. Основною метою дисертаційної роботи є розробка методології компонентної реінженерії графічного інтерфейсу (КРГІ) застосувань, що забезпечує високу мобільність і продуктивність ГІК, а також вирішення задач з її реалізації.
Для досягнення поставленої мети в дисертації ставляться і вирішуються наступні задачі:
Об'єкт дослідження процеси реінженерії програмних систем.
Предмет дослідження процедури реінженерії керованих подіями застосувань із графічним інтерфейсом користувача.
Методи дослідження. В основу проведених досліджень покладені ідеї і методи об'єктно-орієнтованого і компонентно-орієнтованого програмування розподілених програмних систем, візуального проектування графічних інтерфейсів. Апарат теорії графів застосовувався для формалізації задачі локалізації місця поділу компонентів. Елементи теорії формальних мов були використані для побудови засобів автоматичного та граматичного аналізу специфікацій графічних ресурсів. Методи та засоби криптографії й захисту інформації знайшли втілення у схемах початкової авторизації та звязування компонентів. Для підтвердження ефективності технології, розробленої в рамках методології КРГІ, використовувалися методи експериментальної оцінки продуктивності.
Наукова новизна одержаних результатів, що виносяться на захист, полягає в тому, що:
Методологія КРГІ, представлена у вигляді технологічної послідовності перетворень вихідних текстів застосування з ГІК, займає проміжне положення між існуючими підходами реінженерії ГІК шляхом заміни графічного інтерфейсу за допомогою емулюючих бібліотек (на рівні прикладного інтерфейсу GUI API) і методами реверсивної інженерії, що базуються на відновленні специфікації та структури застосування.
Практичне значення одержаних результатів. Практична цінність розроблених методів і засобів реінженерії застосувань із графічним інтерфейсом полягає в значному зменшенні часових витрат і зниженні ризиків, зв'язаних з перенесенням старих програмних систем у нові середовища. Індивідуальний підхід до задачі виділення ГІК-компонента дозволяє поліпшити такі показники, як обсяг переданих даних і частоту передачі, кількість точок входження розподіленого інтерфейсу, а також спростити процедуру відображення візуальних компонентів у нове середовище за рахунок більш високого рівня абстракції міжкомпонентного інтерфейсу. Перетворення тільки частини коду, пов'язаного із забезпечувальною функціональністю графічного інтерфейсу, дозволяє знизити трудомісткість процедури відновлення специфікації застосування.
Достовірність наукових положень, висновки і практичні рекомендації, що наведені в дисертації, підтверджені під час виконання ряду проектів з реінженерії ГІК складних бізнес-застосувань, систем інформаційного обслуговування і моніторингу телекомунікаційних мереж, які виконувались ТОВ “Сайбервижн”(Російська Федерація), програмного комплексу земельного проектування Інституту землеустрою УААН (Черкаський філіал), про що свідчать акти впровадження, наведені в додатку дисертаційної роботи.
Окремі положення дисертації були використані в учбовому процесі базової кафедри МФТІ при Інституті кібернетики імені В.М. Глушкова НАН України для навчання студентів у рамках курсу “Об'єктно-орієнтоване програмування”.
Особистий внесок здобувача. Наукові положення, висновки, рекомендації, викладені в дисертації і винесені на захист, розроблені автором особисто. У роботі [1], що виконана в співавторстві, автору належать концепція трасування на основі розподілених потоків керування, ідея здатної до нарощування структури інтерфейсів, а також викладення аспектів реалізації моделі.
Апробація результатів дисертації. Результати дисертаційної роботи доповідалися й обговорювалися на наукових конференціях:
Результати дисертаційної роботи також доповідалися, обговорювалися й одержали позитивну оцінку на семінарах Інституту програмних систем та Інституту кібернетики імені В.М. Глушкова НАН України.
Публікації. За темою дисертації опубліковано 8 робіт, у тому числі 4 статті в українських журналах за профілем і спеціальністю відповідно до списку ВАК, доповідь на міжнародній конференції CSMR, 1 стаття депонована в ГНТБ України, тези доповідей на XLIV і XLV наукових конференціях МФТІ “Сучасні проблеми фундаментальних і прикладних наук”.
Структура та обсяг роботи. Дисертація складається зі вступу, 3 розділів, висновків, списку використаної літератури з 130 найменувань і 2 додатків. Загальний обсяг роботи становить 141 сторінку, з них 116 сторінок основного тексту. Текст дисертації містить 19 малюнків і 7 таблиць.
У вступі обґрунтована актуальність дисертаційної роботи, сформульовані основна мета і задачі дослідження, перераховані застосовані методи дослідження, обґрунтований зв'язок обраного напрямку з науковими темами, подана коротка анотація нових наукових положень автора з проблем реінженерії програмних систем, наведені відомості про апробацію і впровадження результатів роботи.
Перший розділ присвячений огляду методів, моделей і засобів реінженерії програмних систем. Проведено систематизацію існуючих підходів до реінженерії й обґрунтована доцільність розробки нової методології реінженерії для застосувань виділеного класу, орієнтованої на досягнення якісних характеристик (мобільність, розподіленість) і використання сучасних технологій проектування ГІК.
Дано характеристику основних тенденцій розвитку і поточного стану програмної інженерії. Наведено загальні поняття методів та засобів реінженерії, як складової її частини. Програмна реінженерія (software reengineering), або далі для стислості просто реінженерія, розглядається як сукупність методів, засобів і процесів, спрямованих на зміну існуючої програмної системи з метою відновлення її функцій, кількісних і якісних характеристик, контрольованих інженерією якості. Докладно розглянуто такий важливий показник якості, як мобільність властивість ПЗ, що полягає в здатності його пристосування для роботи в іншому середовищі. Межею цього показника є сумісність здатність програми працювати в новому оточенні без будь-яких змін. Розглядається поняття інтероперабельність як здатність кількох об'єктів, протоколів, застосувань або середовищ обмінюватися інформацією і спільно використовувати ресурси, незважаючи на відмінності в їхній будові та внутрішній структурі.
Наведено класифікацію методів реінженерії, в основу якої покладено наступні критерії: ступінь автоматизації, рівень представлення, порушений шар, спосіб зв'язування, засоби реалізації ГІК, спосіб зворотної інженерії. Виділено клас керованих подіями застосувань з ГІК об'єктів реінженерії пропонованої методології.
На обраному базисі сформульовані наступні вимоги до технології реінженерії з урахуванням її практичної здатності до реалізації за допомогою сучасних доступних засобів і технологій:
На основі аналізу сучасних методів реінженерії зроблений висновок про те, що серед доступних у відкритому друці робіт не представлені методи і засоби, що мають перераховані вище властивості. Тому задача розробки методології КРГІ як сукупності моделей, методів і засобів підтримки технології реінженерії з наведеними властивостями, є актуальною.
У другому розділі викладена концепція, формальні основи і структура методології КРГІ. Для структурних одиниць об'єкта реінженерії введені умовні позначки. Методологія КРГІ являє собою сукупність моделей, методів і засобів технології виділення з компонента К вихідного застосування, усередині якого інтегровані функції ГІК, двох компонентів, один із яких ГІК-компонент І легкої ваги, інший основне ядро Б: (див. рис. 1).
Після закінчення процесу інженерії компонент І містить тільки підтримку ГІК і має можливість віддаленого запуску на великій кількості різних платформ. У компоненті Б сконцентрована тільки бізнес-логіка вихідного компонента К. Платформа компонента Б збігається з платформою вихідного компонента К. Компоненти І та Б зв'язані між собою за допомогою транспортного протоколу Т, що забезпечує міжкомпонентну взаємодію як у рамках одного комп'ютера, так і в гетерогенному розподіленому середовищі.
Сформульовано загальні вимоги до технології й об'єктів реінженерії, визначених методологією КРГІ:
Визначено клас застосувань з ГІК, до яких уживана методологія КРГІ, з наступними вимогами:
Питання використання методології КРГІ для інших класів застосувань у роботі не вивчалося.
Запропонована декомпозиція процесів реінженерії за методологією КРГІ у контексті життєвого циклу наведена на схемі (рис. 2).
Виходячи з цієї схеми, допускається паралельне виконання етапів реінженерії. Суть виділених етапів технологічного ланцюга полягає в наступному:
Етап 1. Локалізація місця розділу компонента К згідно з такими критеріями, як мінімізація кількості точок входу, що визначають міжкомпонентний інтерфейс, підвищення рівня абстракції роботи з даними, мінімізація розміру переданих даних і кількості викликів, а також обсягу перетвореного програмного коду. Нижче наведено основні результати проведеної в роботі формалізації задачі знаходження лінії поділу:
Упорядкуємо вершини графа викликів компонента К вихідного застосування за рівнями. Рівнем вершини v назвемо довжину найкоротшого серед усіх неорієнтованих ланцюгів від вершини x до будь-якої вершини з множини вершин GUI API. Правильним поділом назвемо такий поділ вихідного графа (V множина вершин графа, E множина дуг графа) на підграфи і , що виконуються наступні твердження:
Лінією поділу при правильному поділі назвемо множину дуг, таких, що .
Переходячи від якісного опису критеріїв до їхньої чисельної оцінки, сформулюємо задачу знаходження лінії розділу як задачу оптимізації лінійної комбінації введених критеріїв:
+ + + ,
,
, де
кількість точок входу, що визначають інтерфейс;
міра ступеня абстракції типів параметрів;
, кількість викликів і сумарний обсяг переданої інформації під час прогону базового сценарію (типової послідовності дій користувача, що працює із застосуванням, яка охоплює усю функціональність застосування);
обсяг програмного коду;
, постійна затримки реакції і пропускна спроможність i-го типу віддаленого з'єднання (модель віддаленого запуску може передбачати кілька способів з'єднання, і в цьому випадку найбільш типовий позначимо нульовим);
константи, що підбираються, виходячи з контексту кінцевого апаратного і програмного оточення, наданих засобів і ресурсів на розробку та супровід застосування;
кількість людино-годин, виділених на проект;
середній обсяг коду, що виробляє одна людина за годину.
Одна з оцінок числа можливих комбінацій проведення лінії розділу дає , де n кількість функцій API, m загальна кількість функцій. Тобто переборний алгоритм буде малоефективний для більшості практичних задач. Приблизно цю задачу можна вирішувати при спеціальній структурі графа, а саме: коли до деякого рівня граф розпадається на незв'язані між собою підграфи, тобто незалежні один від одного фрагменти коду:
Тоді задача пошуку лінії поділу розпадається на підзадачі меншої розмірності і формулюється окремо для кожного фрагмента . Перевірка на практичних прикладах показала, що такий метод поділу видає в більшості випадків прийнятні рішення. Але в деяких випадках кращий результат поділу досягався в напівавтоматичному режимі, коли висококваліфікований фахівець мав можливість змінювати передбачувану лінію правильного поділу на візуально відображуваному графі викликів або його фрагментові. При цьому автоматично обчислювалися і відображалися значення кожного з уведених критеріїв.
Етап 2. Ізоляція викликів функцій графічного інтерфейсу і специфікація інтерфейсу. У процесі виконання цього етапу і після його завершення працездатність компонента К, що модифікується, а значить, і застосування в цілому зберігається. Використовуються ті ж самі платформи і мовні засоби. Шар компонента К глибше ізолюючих об'єктів-адаптерів стає незалежним від графічного API, він далі в процесі реінженерії не змінюється.
Етап 3. Побудова відображення елементів ГІК і конвертування графічних ресурсів. На цьому етапі будується коректне відображення елементів ГІК (widgets, layout managers) шляхом доповнення і розширення базового набору цільового ГІК. У разі великої кількості екранних форм автоматизується процес конвертування за допомогою програми, що аналізує структури графічних ресурсів вихідного застосування і генерує згідно з ними ресурсні модулі в синтаксисі інструментального середовища компонента І.
Етап 4. Побудова трасувального інструментарію, що забезпечує засобами контролю стану системи взаємодіючих компонентів І та Б, а також послідовності операцій, що ними виконуються, враховуючи фактор розподіленого паралельного функціонування. Використовується концепція розподіленого потоку керування (РПК) як узагальнення поняття потоку керування на випадок розподіленого застосування.
Етап 5. Виділення інтерфейсу в окрему бібліотеку. Інтерфейси комунікаційної бібліотеки і бібліотеки, зібраної з вихідного коду виділеного ГІК-шару, повинні збігатися, що дасть можливість на наступних етапах переключати застосування з розподіленого режиму в вихідний і навпаки.
Етап 6. Реалізація ГІК-компонента. Під час проектування компонента І розглядається можливість використання різних шаблонів проектування (design patterns), оскільки ієрархія визначеного інтерфейсу свідомо не збігається з ієрархією класів нового GUI API. Уведення проміжного рівня абстракції забезпечує незалежність від конкретної реалізації бібліотеки віконного інтерфейсу.
Етап 7. Реалізація функцій початкового зв'язування, авторизації, розгортання застосування. Побудова схеми розгортання застосування ґрунтується на принципах розмежування прав доступу, що спочатку здійснювалися вбудованими засобами ОС компонента К.
Етап 8. Реалізація функцій нормального й аварійного закриття застосування. У разі нормального завершення компонент І очікує спеціальний виклик, розміщений наприкінці shutdown-процедури компонента Б, після чого звільняє системні ресурси і завершує свою роботу. Аварійне завершення роботи одного з компонентів відстежується в режимі періодичного опитування, сигнальному режимі або дублюється обома шляхами.
Етап 9. Реалізація розподіленої черги обробки подій. Після виділення ГІК-компонента в окремий процес ОС виникає два цикли обробки подій. Перший цикл, розміщений з боку компонента І, обробляє події, ініційовані під час взаємодії з користувачем. Другий, що приймає системні події (операції введення/виведення, таймерні події та ін.), розміщений з боку компонента Б. Запропонована схема реалізації, що передбачає відкладене виконання подій компонента Б в контексті циклу обробки повідомлень компонента І. Нова розподілена схема обробки повідомлень максимально повторює первісну схему обробки повідомлень обох типів у рамках одного циклу.
Етап 10. Виключення рудиментарного коду і бібліотек ГІК. На заключному етапі перевіряється правильність проведення ізоляції викликів функцій графічного інтерфейсу. Наявність нерозв'язаних посилань при спробі складання проекту без підключення до компонента Б GUI-бібліотек сигналізує про те, що в компоненті Б помилково містяться частини коду, що працюють із графічним інтерфейсом. Тоді всі перераховані етапи технологічного ланцюга застосовуються до виявлених фрагментів.
Успішне складання не є критерієм закінчення процесу реінженерії. Таким критерієм може бути тільки результат ретельного тестування на предмет функціональної еквівалентності вихідної і кінцевої систем.
Вивчено умови використання й обмеження технології на базі методології КРГІ. Порівняно з вихідним застосуванням кінцева розподілена система ставить підвищені вимоги до обчислювальних ресурсів. Кожен запущений ГІК-компонент породжує окрему копію процесу компонента Б. Постійно функціонує активатор. Ускладнюється адміністрування системи. Показано на прикладі додавання нової екранної форми, що архітектура застосування, яку отримують в результаті реінженерії, зберігає його відкритість для внесення подальших функціональних змін.
Третій розділ присвячений питанням реалізації технології на базі КРГІ. На прикладі реінженерії системи, що автоматизує керування сигнальними конфігураціями телекомунікаційного мережного устаткування різних типів (NetPilot), виділені базові концепції й основні програмні засоби підтримки технології. Сформульовано цілі і задачі реінженерії цієї системи, розглянуто особливості процесу і наведено варіанти рішень проблем, що виникли в процесі реалізації.
Запропоновано і реалізовано засоби трасування і моніторингу розподіленого застосування, суть яких полягає у відстеженні РПК, що виникають при міжкомпонентній взаємодії, характерній для архітектури, що отримується в результаті застосування технології на базі КРГІ. В термінах мови CORBA IDL як засобу опису розглянуто компонентну архітектуру нарощуваної системи трасування з динамічною фільтрацією і маршрутизацією. Розглянуто докладніше принципи реалізації графічного інтерфейсу та функціональних можливостей трасувальника.
Реалізація ГІК-компонента виконана за допомогою стандартних шаблонів проектування, застосування яких дозволило побудувати дві незалежні бібліотеки графічних елементів, що переключаються динамічно. Одну на базі бібліотеки AWT (Abstract Window Toolkit), іншу на базі бібліотеки Swing, яка реалізує набір ГІК-компонентів зі змінними представленнями (рис. 3).
На основі аналізу засобів початкового зв'язування компонентів у середовищі CORBA автором запропонована схема отримання початкового посилання, що ґрунтується на інтеграції серверного сокета (socket) у диспетчер подій VisiBroker.
Виконано аналіз тупикових ситуацій (deadlocks), що можуть виникати в межах запропонованої реалізації компонентної взаємодії. Одне із джерел можливих тупикових ситуацій це рекурентне виконання. Розглянуто ситуації, коли РПК здійснює вкладений зворотний виклик компонента І. Одне з рішень складається в повторному використанні потоку керування циклом обробки подій. Запропонований у роботі алгоритм побудований з використанням одного семафора і розрахований на вкладеність глибини 1, оскільки її досить для моделі взаємодії, побудованої для системи NetPilot, але він може бути узагальнений і для зворотних викликів довільної вкладеності.
Описано особливості процесу реінженерії системи NetPilot, наводиться структурна організація кінцевого продукту (рис. 4), проаналізована його продуктивність і запропоновані методи її підвищення.
Сформульовано методи підвищення продуктивності Java-реалізації компонента І в умовах жорстких ресурсних обмежень, такі як: профілювання працюючого застосування; побудова ГІК на основі бібліотеки AWT; використання 24-бітових графічних режимів sRGB; завчасне створення об'єктів і їхнє повторне використання; створення канонічних таблиць незмінних об'єктів; примусове звільнення пам'яті від об'єктів, що не використовуються; зменшення кількості анонімних обробників; зменшення кількості інтерфейсних об'єктів між розподіленими компонентами; мінімізація кількості розподілених викликів у рамках трансакції; побудова ефективної трасувальної системи.
У висновках сформульовані наукові результати і практична значимість виконаної роботи. Розглянуто перспективи розвитку методології КРГІ. Надалі удосконалення методології КРГІ повинно бути спрямоване на повну автоматизацію етапів технологічного ланцюга. Зокрема, цікавими напрямками є використання нотації XML для запису структури графічних ресурсів, а також дослідження перспектив повторного використання компонентів, що отримуються після реінженерії за даною методологією. Крім того, можуть удосконалюватися евристичні і формальні методи визначення лінії розділу, а також методи застосування стандартних шаблонів проектування з метою створення власних шаблонів реінженерії ГІК.
У додатку А наведені UML діаграми класів системи NetPilot, у додатку Б документи щодо впровадження результатів дисертаційної роботи.
Наукові і практичні результати. У дисертаційній роботі запропоновано нове рішення проблеми реінженерії програмних продуктів з ГІК, розроблених на базі морально і фізично застарілих програмно-технічних комплексів, що полягає в системному та якісному перетворенні їхнього графічного інтерфейсу до вимог і умов нового середовища побудови мобільних клієнтських компонентів. Розроблена в роботі методологія КРГІ є результатом узагальнення досвіду практичних напрацювань і технічних прийомів, використаних автором під час виконання ряду науково-технічних проектів.
У дисертаційній роботі отримані наступні основні результати:
Рекомендації щодо використання отриманих результатів. Розроблені процеси методології КРГІ становлять ефективну альтернативу заміні застарілих систем новоствореними сучасними системами і можуть бути рекомендовані для реінженерії широкого класу застосувань з ГІК, користуючись розглянутим технологічним ланцюгом з варіантами розвязання можливих проблем на кожному етапі.
Методологія трасування може використовуватися як базова з метою побудови засобів аналогічного призначення для розподілених систем у середовищі компонентної моделі CORBA. Запропоновані методи підвищення продуктивності графічного інтерфейсу є універсальними і можуть бути використані для класу Java-застосувань з ГІК, що експлуатуються за умов жорстких обмежень на ресурси.
Список опублікованих робіт за темою дисертації
Пантелеймонов А.А. Методи та засоби реінженерії мобільних застосувань із графічним інтерфейсом. Рукопис (російською мовою).
Дисертація на здобуття наукового ступеня кандидата технічних наук за спеціальністю 01.05.03 математичне та програмне забезпечення обчислювальних машин і систем. Національний технічний університет України “КПІ”, Київ, 2004.
Дисертаційна робота присвячена розробці методології реінженерії керованих подіями програмних застосувань із графічним інтерфейсом користувача, яка ґрунтується на побудові мобільних графічних інтерфейсів на базі розподілених компонентів, вивченню проблем її реалізації. Наведено концепцію, формальні основи і структуру методології. Виконано декомпозицію технологічних процесів реінженерії запропонованого підходу на етапи життєвого циклу.
У межах побудованої методології запропоновано компонентну модель із змінною топологією та динамічною фільтрацією, методи і засоби трасування та моніторингу розподілених застосувань. Розроблено схеми реалізації початкового звязування та синхронізації компонентів, організації розподіленої черги обробки подій, повторного використання потоку управління подіями для обробки рекурентних викликів в рамках однієї трансакції. Проаналізовано шляхи підвищення продуктивності графічного інтерфейсу модифікованої системи.
Ключові слова: програмна реінженерія, технологія, графічний інтерфейс, мобільність, розподілені компонентні моделі.
Пантелеймонов А.А. Методы и средства реинженерии мобильных приложений с графическим интерфейсом. Рукопись.
Диссертация на соискание ученой степени кандидата технических наук по специальности 01.05.03 математическое и программное обеспечение вычислительных машин и систем. Национальный технический университет Украины “КПИ”, Киев, 2004.
Диссертация посвящена разработке методологии реинженерии событийно-управляемых приложений с графическим интерфейсом пользователя, основанной на построении мобильных графических интерфейсов на базе распределенных компонентов, изучению проблем ее реализации.
Проведена систематизация существующих подходов к реинженерии и обоснована целесообразность разработки новой методологии реинженерии для приложений выделенного класса, ориентированной на достижение таких качественных характеристик, как мобильность, распределенность и возможность использования современных технологий проектирования ГИП.
Рассмотрены концепция, формальные основы и структура методологии. Технология, положенная в основу методологии, оперирует на уровне исходных текстов и моделей, затрагивает только слой ГИП, позволяя значительно повысить мобильность графического интерфейса, ориентирована на применение компонентной модели CORBA с возможностью удаленного запуска графического интерфейса, предоставляет ГИП с окнами верхнего уровня и возможностью визуального проектирования экранных форм, обеспечивает эквивалентность графических интерфейсов исходного и конечного приложений с точки зрения пользователя, позволяет избежать трудоемкий этап восстановления спецификации, применима к выделенному классу приложений.
Проведена декомпозиция технологических процессов в предложенной методологии реинженерии на следующие этапы: локализация линии раздела приложения, изоляция вызовов функций графического интерфейса и спецификация интерфейса, построение отображения элементов ГИП и конвертирование графических ресурсов, построение трассировочного инструментария, выделение интерфейса в отдельную библиотеку, реализация компонентов графического интерфейса, реализация функций развертывания приложения, реализация функций нормального и аварийного закрытия приложения, реализация распределенной очереди обработки событий, исключение рудиментарного кода и библиотек ГИП. Структура этапов предложенной методологии реинженерии такова, что допускается распараллеливание процесса разработки.
Выделены базовые концепции и средства поддержки технологии на примере реинженерии конкретной программной системы. Сформулированы цели и задачи реинженерии системы, выделены особенности процесса и приведены варианты решений возникших проблем реализации. В рамках построенной методологии предложены компонентная модель, методы и средства трассировки и мониторинга распределенных приложений. Модель обеспечивает изменяемую топологию компонентов и динамическую фильтрацию. Разработаны схемы реализации начального связывания и синхронизации компонентов, организации распределенной очереди обработки событий, повторного использования событийного потока управления для обработки рекуррентных вызовов в рамках одной транзакции. Проанализированы пути повышения производительности графического интерфейса модифицированной системы, включая фоновое создание объектов заранее, повторное использование объектов, хеширование неизменяемых объектов. Рассмотрена компонентная модель адаптеров переключаемых библиотек графических компонентов с использованием архитектуры CORBA и стандартных шаблонов проектирования.
Разработанная технология может быть рекомендована для применения в проектах реинженерии широкого класса приложений с графическим интерфейсом. Описанная в работе методология трассировки может использоваться в качестве базовой с целью построения средств аналогичного назначения для распределенных систем в среде компонентной модели CORBA. Предложенные методы повышения производительности также достаточно универсальны и могут быть использованы для широкого класса Java-приложений с ГИП и жесткими ограничениями на ресурсы.
Ключевые слова: программная реинженерия, технология, графический интерфейс, мобильность, распределенные компонентные модели.
Panteleymonov A.A. Methods and facilities of portable GUI application reengineering. Manuscript (in Russian).
Thesis for a candidate scientific degree in technical sciences by specialty 01.05.03 mathematical support and software of computing machines and systems, National Technical University of Ukraine “KPI”, Kiev, 2004.
The dissertation is devoted to development of reengineering methodology for event-driven GUI applications based on construction of portable distributed GUI client, study of its implementation problems. The concept, formal bases and structure of methodology are discussed. The decomposition of technological reengineering processes on stages of life cycle is carried out for proposed method.
Within the framework of the constructed methodology the component model with mutable topology and dynamic filtration, methods and facilities of trace and monitoring of the distributed applications are offered. The implementation schemes of component initial binding and synchronization, organization of the distributed event queue, reusing of a event dispatching thread for recurrent call processing within the same transaction are developed. The ways of GUI performance increase for the modified system are analyzed.
Key words: software reengineering, technology, GUI, portability, distributed component models.