Методи та засоби реінженерії мобільних застосувань із графічним інтерфейсом
Характеристика основних тенденцій розвитку і поточного стану програмної інженерії. Поняття методів реінженерії, як складової її частини. Принципи реалізації графічного інтерфейсу та функціональних можливостей трасувальника. Архітектура системи NetPilot.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | автореферат |
Язык | украинский |
Дата добавления | 28.07.2014 |
Размер файла | 72,2 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Національний технічний університет України
Київський політехнічний інститут
Пантелеймонов Андрій Анатолійович
УДК 681.3.06
МЕТОДИ ТА ЗАСОБИ РЕІНЖЕНЕРІЇ МОБІЛЬНИХ ЗАСТОСУВАНЬ ІЗ ГРАФІЧНИМ ІНТЕРФЕЙСОМ
01.05.03 - математичне та програмне забезпечення обчислювальних машин і систем
Автореферат
дисертації на здобуття наукового ступеня
кандидата технічних наук
Київ - 2004
Дисертацією є рукопис
Робота виконана в Інституті кібернетики імені В.М.Глушкова НАН України
Науковий керівник: кандидат фізико-математичних наук, доцент Петрухін Володимир Олексійович, Інститут кібернетики імені В.М. Глушкова НАН України, провідний науковий співробітник
Офіційні опоненти: доктор технічних наук, професор Теленик Сергій Федорович, Національний технічний університет України “Київський політехнічний інститут”, зав. кафедрою автоматики та управління в технічних системах доктор технічних наук, професор Сидоров Микола Олександрович, Національний авіаційний університет Міносвіти України, декан факультету інформатики, зав. кафедрою інженерії програмного забезпечення.
Провідна установа: Інститут програмних систем НАН України, відділ програмної інженерії, м. Київ.
Захист відбудеться 7 червня 2004 р. о 16 годині на засіданні спеціалізованої вченої ради Д26.002.02 при Національному технічному університеті України “Київський політехнічний інститут” за адресою: 03056, Київ-56, пр. Перемоги, 37, корп. 18, ауд. 306.
Відзиви на автореферат у двох примірниках, завірені печаткою, просимо надсилати за адресою: 03056, м. Київ, пр. Перемоги, 37, вченому секретарю НТУУ “КПІ”
З дисертацією можна ознайомитись у бібліотеці НТУУ “Київський політехнічний інститут”.
Автореферат розісланий “6” травня 2004 р.
Вчений секретар спеціалізованої вченої ради Орлова М.М.
ЗАГАЛЬНА ХАРАКТЕРИСТИКА РОБОТИ
трасувальник архітектура графічний інтерфейс
Актуальність теми. Всезростаюча складність і висока вартість створення надійного та якісного програмного забезпечення (ПЗ) стимулювали розвиток теоретично обґрунтованих методів та засобів його розробки. Виникла необхідність розглядати розробку й супровід ПЗ як промисловий технологічний процес. Біля витоків теоретичного програмування і технології програмування стояли В.М.Глушков, А.П.Єршов, К.Л.Ющенко. Їхні ідеї розвинули, заснувавши самостійні школи теоретичного програмування, І.В.Вельбицький, В.П.Іванников, В.Н.Редько, І.В.Сергієнко, А.О.Стогній. Вагомий внесок у розвиток галузі технології програмування внесли П.І.Андон, К.М.Лавріщева, О.Л.Перевозчикова, М.О.Сидоров, С.Ф.Теленик, Г.О.Цейтлін та інші вчені.
Одним із важливих напрямків технології програмування є програмна реінженерія, яка зорієнтована на процеси еволюції і відновлення ПЗ. В індустрії розробки ПЗ відбувся перехід від монолітних апаратно-залежних систем до розподілених гетерогенних паралельних клієнт-серверних компонентних систем. Щоб продовжити життєдіяльність морально старіючих систем при їхньому перенесенні на сучасні платформи та операційні системи (ОС), потрібно створити нові механізми еволюції, адаптації та успадкування їхніх функцій і властивостей відповідно до умов операційних середовищ, що змінюються. Тому вивчення особливостей і принципів створення нових методологій реінженерії широкого класу найбільш масово використовуваних компонентів ПЗ - графічного інтерфейсу користувача (ГІК, GUI) - є важливими й актуальними.
ГІК зарекомендував себе як засіб наочного сприйняття, аналізу й обробки інформації користувачем. З появою ГІК сформувалися стабільний набір основних візуальних елементів, способи їхнього групування і комбінування, а також засоби візуального проектування віконних графічних інтерфейсів.
Величезна фактична кількість розроблених застосувань з ГІК, які використовують апаратно-залежні програмні засоби, що важко переносяться, під конкретні ОС і платформи не відповідає сучасним вимогам до ГІК і мобільності ПЗ. Розробка стратегії і механізмів багатошарової реінженерії таких застосувань становить економічно ефективну альтернативу підходу, що ґрунтується на заміні успадкованих систем заново розробленими сучасними системами. Системне перетворення компонентів існуючої системи з додаванням шару ПЗ є значно дешевшим і менш ризикованим, ніж розробка нової системи.
Запропонована в дисертаційній роботі сукупність моделей, методів і засобів методології реінженерії ґрунтується на виділенні ділянок застосування з ГІК, системному і якісному їхньому перетворенні до вимог і умов нового середовища побудови мобільних клієнтських компонентів. Ця методологія розроблена на основі вивчення тенденцій і особливостей розробки ГІК для різних середовищ, а також багаторічного досвіду роботи автора з модернізації і виготовлення графічних інтерфейсів застосувань у ряді програмних проектів. У результаті сформульовані нові рішення, принципи і механізми реінженерії інтерфейсів користувача.
Життєва практична необхідність перенесення численних функціонуючих великих програмних продуктів у сучасні розподілені клієнт-серверні середовища підтверджує актуальність теми дисертаційного дослідження.
Зв'язок роботи з науковими програмами, планами, темами. Основні результати дисертаційного дослідження були отримані автором як відповідальним виконавцем наступних наукових тем Інституту кібернетики імені В.М.Глушкова НАН України:
§ ВФ.160.06 “Дослідження питань реалізації моделей теледіагностики в середовищі мережі Інтернет” (1998-2000 рр., № ДР 0198U000321);
§ ВФ.160.09 “Дослідження і розробка системи представлення й інтерпретації знань у динамічних предметних середовищах” (початок 1 кв. 2001 р., закінчення - 2005 р., № ДР 0101U000074).
Частина наукових і практичних результатів також була отримана автором під час участі в реалізації грантів:
§ Фонду “Євразія” - проект ДО95-0531 “Information integration project (backbone) for the Institute of Cybernetics”;
§ Фонду “Відродження” - проект KV-96-REM-3-2397-4-5-1-1 “Підтримка інфраструктури мережі Інтернет в Інституті Кібернетики НАНУ, що забезпечує сервіс Інтернет для широкого кола організацій освітнього та наукового профілю, некомерційних організацій”.
Мета і задачі дослідження. Основною метою дисертаційної роботи є розробка методології компонентної реінженерії графічного інтерфейсу (КРГІ) застосувань, що забезпечує високу мобільність і продуктивність ГІК, а також вирішення задач з її реалізації.
Для досягнення поставленої мети в дисертації ставляться і вирішуються наступні задачі:
§ систематизація і класифікація основних напрямків реінженерії ГІК;
§ розробка основних методів і програмних засобів методології КРГІ та декомпозиція її процесів стосовно широкого класу застосувань;
§ визначення умов і обмежень використання методології КРГІ в цьому класі застосувань;
§ розробка схем зв'язування і синхронізації розподілених компонентів, що виділяються у рамках методології КРГІ;
§ реалізація ефективної моделі трасування й тестування процесів взаємодії цих компонентів;
§ дослідження шляхів підвищення продуктивності компонента ГІК.
Об'єкт дослідження - процеси реінженерії програмних систем.
Предмет дослідження - процедури реінженерії керованих подіями застосувань із графічним інтерфейсом користувача.
Методи дослідження.
В основу проведених досліджень покладені ідеї і методи об'єктно-орієнтованого і компонентно-орієнтованого програмування розподілених програмних систем, візуального проектування графічних інтерфейсів. Апарат теорії графів застосовувався для формалізації задачі локалізації місця поділу компонентів. Елементи теорії формальних мов були використані для побудови засобів автоматичного та граматичного аналізу специфікацій графічних ресурсів. Методи та засоби криптографії й захисту інформації знайшли втілення у схемах початкової авторизації та зв'язування компонентів. Для підтвердження ефективності технології, розробленої в рамках методології КРГІ, використовувалися методи експериментальної оцінки продуктивності.
Наукова новизна одержаних результатів, що виносяться на захист, полягає в тому, що:
§ запропоновано нове рішення проблеми реінженерії широкого класу морально старіючих застосувань, що полягає в перетворенні їх ГІК у сучасні середовища, використовуючи розподілені клієнт-серверні технології;
§ розроблено методологію реінженерії КРГІ, придатну для широкого класу застосувань з ГІК;
§ формалізовано задачу виділення ділянок програмного коду, які містять елементи ГІК в окремий компонент і запропоновані методи їхнього перетворення до вимог сучасних середовищ;
§ розроблено схеми і засоби взаємодії компонентів, що виділяються у рамках методології КРГІ, які забезпечують синхронізацію черг подій, обробку вкладених зворотних викликів у контексті потоку керування з обробки подій, індикацію довгострокових операцій;
§ розроблено модель і процедури ефективного трасування й тестування компонентів, що базуються на моніторингу розподілених потоків керування, які дозволяють побудувати розширювану багаторівневу систему трасування.
Методологія КРГІ, представлена у вигляді технологічної послідовності перетворень вихідних текстів застосування з ГІК, займає проміжне положення між існуючими підходами реінженерії ГІК шляхом заміни графічного інтерфейсу за допомогою емулюючих бібліотек (на рівні прикладного інтерфейсу GUI API) і методами реверсивної інженерії, що базуються на відновленні специфікації та структури застосування.
Практичне значення одержаних результатів.
Практична цінність розроблених методів і засобів реінженерії застосувань із графічним інтерфейсом полягає в значному зменшенні часових витрат і зниженні ризиків, зв'язаних з перенесенням старих програмних систем у нові середовища. Індивідуальний підхід до задачі виділення ГІК-компонента дозволяє поліпшити такі показники, як обсяг переданих даних і частоту передачі, кількість точок входження розподіленого інтерфейсу, а також спростити процедуру відображення візуальних компонентів у нове середовище за рахунок більш високого рівня абстракції міжкомпонентного інтерфейсу. Перетворення тільки частини коду, пов'язаного із забезпечувальною функціональністю графічного інтерфейсу, дозволяє знизити трудомісткість процедури відновлення специфікації застосування.
Достовірність наукових положень, висновки і практичні рекомендації, що наведені в дисертації, підтверджені під час виконання ряду проектів з реінженерії ГІК складних бізнес-застосувань, систем інформаційного обслуговування і моніторингу телекомунікаційних мереж, які виконувались ТОВ “Сайбервижн” (Російська Федерація), програмного комплексу земельного проектування Інституту землеустрою УААН (Черкаський філіал), про що свідчать акти впровадження, наведені в додатку дисертаційної роботи.
Окремі положення дисертації були використані в учбовому процесі базової кафедри МФТІ при Інституті кібернетики імені В.М. Глушкова НАН України для навчання студентів у рамках курсу “Об'єктно-орієнтоване програмування”.
Особистий внесок здобувача.
Наукові положення, висновки, рекомендації, викладені в дисертації і винесені на захист, розроблені автором особисто. У роботі [1], що виконана в співавторстві, автору належать концепція трасування на основі розподілених потоків керування, ідея здатної до нарощування структури інтерфейсів, а також викладення аспектів реалізації моделі.
Апробація результатів дисертації. Результати дисертаційної роботи доповідалися й обговорювалися на наукових конференціях:
1. XLIV Наукова конференція МФТІ. Росія, Москва - Долгопрудний, 23-30 листопада 2001 р.;
2. VI Європейська конференція з супроводу та реінженерії програмного забезпечення CSMR'2002. Угорщина, Будапешт, 11-13 березня 2002 р.;
3. XLV Наукова конференція МФТІ. Росія, Москва - Долгопрудний, 29-30 листопада 2002 р.
Результати дисертаційної роботи також доповідалися, обговорювалися й одержали позитивну оцінку на семінарах Інституту програмних систем та Інституту кібернетики імені В.М. Глушкова НАН України.
Публікації. За темою дисертації опубліковано 8 робіт, у тому числі 4 статті в українських журналах за профілем і спеціальністю відповідно до списку ВАК, доповідь на міжнародній конференції CSMR'2002, 1 стаття депонована в ГНТБ України, тези доповідей на XLIV і XLV наукових конференціях МФТІ “Сучасні проблеми фундаментальних і прикладних наук”.
Структура та обсяг роботи. Дисертація складається зі вступу, 3 розділів, висновків, списку використаної літератури з 130 найменувань і 2 додатків. Загальний обсяг роботи становить 141 сторінку, з них 116 сторінок основного тексту. Текст дисертації містить 19 малюнків і 7 таблиць.
ОСНОВНИЙ ЗМІСТ
У вступі обґрунтована актуальність дисертаційної роботи, сформульовані основна мета і задачі дослідження, перераховані застосовані методи дослідження, обґрунтований зв'язок обраного напрямку з науковими темами, подана коротка анотація нових наукових положень автора з проблем реінженерії програмних систем, наведені відомості про апробацію і впровадження результатів роботи.
Перший розділ присвячений огляду методів, моделей і засобів реінженерії програмних систем. Проведено систематизацію існуючих підходів до реінженерії й обґрунтована доцільність розробки нової методології реінженерії для застосувань виділеного класу, орієнтованої на досягнення якісних характеристик (мобільність, розподіленість) і використання сучасних технологій проектування ГІК.
Дано характеристику основних тенденцій розвитку і поточного стану програмної інженерії. Наведено загальні поняття методів та засобів реінженерії, як складової її частини. Програмна реінженерія (software reengineering), або далі для стислості просто реінженерія, розглядається як сукупність методів, засобів і процесів, спрямованих на зміну існуючої програмної системи з метою відновлення її функцій, кількісних і якісних характеристик, контрольованих інженерією якості. Докладно розглянуто такий важливий показник якості, як мобільність - властивість ПЗ, що полягає в здатності його пристосування для роботи в іншому середовищі. Межею цього показника є сумісність - здатність програми працювати в новому оточенні без будь-яких змін. Розглядається поняття інтероперабельність як здатність кількох об'єктів, протоколів, застосувань або середовищ обмінюватися інформацією і спільно використовувати ресурси, незважаючи на відмінності в їхній будові та внутрішній структурі.
Наведено класифікацію методів реінженерії, в основу якої покладено наступні критерії: ступінь автоматизації, рівень представлення, порушений шар, спосіб зв'язування, засоби реалізації ГІК, спосіб зворотної інженерії. Виділено клас керованих подіями застосувань з ГІК - об'єктів реінженерії пропонованої методології.
На обраному базисі сформульовані наступні вимоги до технології реінженерії з урахуванням її практичної здатності до реалізації за допомогою сучасних доступних засобів і технологій:
1) високий ступінь автоматизації технологічних процесів;
2) оперування на рівні вихідних текстів і моделей;
3) значне підвищення ступеня мобільності шару ГІК;
4) орієнтація на застосування компонентної моделі CORBA з віддаленим запуском графічного інтерфейсу;
5) надання традиційного ГІК у вигляді вікон верхнього рівня;
6) скорочення етапу відновлення специфікації;
7) уживаність до виділеного класу застосувань.
На основі аналізу сучасних методів реінженерії зроблений висновок про те, що серед доступних у відкритому друці робіт не представлені методи і засоби, що мають перераховані вище властивості. Тому задача розробки методології КРГІ як сукупності моделей, методів і засобів підтримки технології реінженерії з наведеними властивостями, є актуальною.
У другому розділі викладена концепція, формальні основи і структура методології КРГІ. Для структурних одиниць об'єкта реінженерії введені умовні позначки. Методологія КРГІ являє собою сукупність моделей, методів і засобів технології виділення з компонента К вихідного застосування, усередині якого інтегровані функції ГІК, двох компонентів, один із яких - ГІК-компонент І легкої ваги, інший - основне ядро Б: .
Після закінчення процесу інженерії компонент І містить тільки підтримку ГІК і має можливість віддаленого запуску на великій кількості різних платформ. У компоненті Б сконцентрована тільки бізнес-логіка вихідного компонента К. Платформа компонента Б збігається з платформою вихідного компонента К. Компоненти І та Б зв'язані між собою за допомогою транспортного протоколу Т, що забезпечує міжкомпонентну взаємодію як у рамках одного комп'ютера, так і в гетерогенному розподіленому середовищі.
Сформульовано загальні вимоги до технології й об'єктів реінженерії, визначених методологією КРГІ:
§ збереження основної функціональності вихідного застосування і можливість зміни забезпечувальної функціональності;
§ автоматизація більшості етапів процесу реінженерії;
§ оперування на рівні вихідних текстів і моделей;
§ зміна тільки шару ГІК (інші шари і їхнє оточення залишаються недоторканими) для мінімізації внесення помилок у процесі реінженерії;
§ забезпечення роботи ГІК-компонента на різних платформах і його віддаленого запуску з економним використанням ресурсу мережі, використання компонентної моделі CORBA як рішення з необхідним рівнем інтероперабельності;
§ наявність засобу візуального проектування екранних форм для можливого наступного розвитку функціональності застосування;
§ еквівалентність ГІК вихідного і кінцевого застосувань з погляду користувача (використання вікон верхнього рівня з близьким до вихідного розташуванням візуальних елементів усередині, зовнішній вигляд і реакція нових візуальних елементів, що впізнаються користувачами вихідного застосування, з урахуванням угод, прийнятих для нових платформ ГІК);
§ скорочення в технологічному циклі трудомісткого етапу відновлення специфікації вихідного застосування.
Визначено клас застосувань з ГІК, до яких уживана методологія КРГІ, з наступними вимогами:
§ наявність вихідних текстів застосування, які збираються повністю, що обумовлено орієнтацією методології на роботу з вихідними текстами;
§ наявність компонентної моделі CORBA у вихідному середовищі застосування (якщо засоби складання застарілі й несумісні з існуючими брокерами об'єктних запитів, застосування необхідно попередньо перенести на сучасні засоби для забезпечення ефективної інтеграції з CORBA);
§ взаємодія з користувачем за допомогою віконного графічного інтерфейсу з ієрархічною організацією екранних форм із типізованих візуальних елементів інтерфейсу; спеціалізовані графічні інтерфейси (наприклад, ГІС-системи, системи 3D-моделювання, ігрові застосування, що використовують пряме виведення на екран і т.п.) не розглядаються;
§ належність до типу застосувань, керованих подіями (будь-яка активність застосування зв'язується з обробкою деякої події рівня ОС або події, ініційованої діями користувача; події ставляться в загальну чергу й обробляються послідовно в порядку надходження);
§ відсутність спеціальних експлуатаційних вимог (системи високої надійності, реального часу і т.п.).
Питання використання методології КРГІ для інших класів застосувань у роботі не вивчалося.
Виходячи з цієї схеми, допускається паралельне виконання етапів реінженерії. Суть виділених етапів технологічного ланцюга полягає в наступному:
Етап 1. Локалізація місця розділу компонента К згідно з такими критеріями, як мінімізація кількості точок входу, що визначають міжкомпонентний інтерфейс, підвищення рівня абстракції роботи з даними, мінімізація розміру переданих даних і кількості викликів, а також обсягу перетвореного програмного коду. Нижче наведено основні результати проведеної в роботі формалізації задачі знаходження лінії поділу:
Упорядкуємо вершини графа викликів компонента К вихідного застосування за рівнями. Рівнем вершини v назвемо довжину найкоротшого серед усіх неорієнтованих ланцюгів від вершини x до будь-якої вершини з множини вершин GUI API. Правильним поділом назвемо такий поділ вихідного графа (V - множина вершин графа, E - множина дуг графа) на підграфи і , що виконуються наступні твердження
1) ;
2) ;
3) ;
4) ;
5) .
Лінією поділу при правильному поділі назвемо множину дуг, таких, що .
Переходячи від якісного опису критеріїв до їхньої чисельної оцінки, сформулюємо задачу знаходження лінії розділу як задачу оптимізації лінійної комбінації введених критеріїв:
+ + + ,
,
Де - кількість точок входу, що визначають інтерфейс;
- міра ступеня абстракції типів параметрів;
, - кількість викликів і сумарний обсяг переданої інформації під час прогону базового сценарію (типової послідовності дій користувача, що працює із застосуванням, яка охоплює усю функціональність застосування);
- обсяг програмного коду;
, - постійна затримки реакції і пропускна спроможність i-го типу віддаленого з'єднання (модель віддаленого запуску може передбачати кілька способів з'єднання, і в цьому випадку найбільш типовий позначимо нульовим);
- константи, що підбираються, виходячи з контексту кінцевого апаратного і програмного оточення, наданих засобів і ресурсів на розробку та супровід застосування;
- кількість людино-годин, виділених на проект;
- середній обсяг коду, що виробляє одна людина за годину.
Одна з оцінок числа можливих комбінацій проведення лінії розділу дає
де n - кількість функцій API, m - загальна кількість функцій. Тобто переборний алгоритм буде малоефективний для більшості практичних задач. Приблизно цю задачу можна вирішувати при спеціальній структурі графа, а саме: коли до деякого рівня граф розпадається на незв'язані між собою підграфи, тобто незалежні один від одного фрагменти коду:
1)
2)
Тоді задача пошуку лінії поділу розпадається на підзадачі меншої розмірності і формулюється окремо для кожного фрагмента . Перевірка на практичних прикладах показала, що такий метод поділу видає в більшості випадків прийнятні рішення. Але в деяких випадках кращий результат поділу досягався в напівавтоматичному режимі, коли висококваліфікований фахівець мав можливість змінювати передбачувану лінію правильного поділу на візуально відображуваному графі викликів або його фрагментові. При цьому автоматично обчислювалися і відображалися значення кожного з уведених критеріїв.
Етап 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, яка реалізує набір ГІК-компонентів зі змінними представленнями.
На основі аналізу засобів початкового зв'язування компонентів у середовищі CORBA автором запропонована схема отримання початкового посилання, що ґрунтується на інтеграції серверного сокета (socket) у диспетчер подій VisiBroker.
Виконано аналіз тупикових ситуацій (deadlocks), що можуть виникати в межах запропонованої реалізації компонентної взаємодії. Одне із джерел можливих тупикових ситуацій - це рекурентне виконання. Розглянуто ситуації, коли РПК здійснює вкладений зворотний виклик компонента І. Одне з рішень складається в повторному використанні потоку керування циклом обробки подій. Запропонований у роботі алгоритм побудований з використанням одного семафора і розрахований на вкладеність глибини 1, оскільки її досить для моделі взаємодії, побудованої для системи NetPilot, але він може бути узагальнений і для зворотних викликів довільної вкладеності.
Описано особливості процесу реінженерії системи NetPilot, наводиться структурна організація кінцевого продукту, проаналізована його продуктивність і запропоновані методи її підвищення.
Сформульовано методи підвищення продуктивності Java-реалізації компонента І в умовах жорстких ресурсних обмежень, такі як: профілювання працюючого застосування; побудова ГІК на основі бібліотеки AWT; використання 24-бітових графічних режимів sRGB; завчасне створення об'єктів і їхнє повторне використання; створення канонічних таблиць незмінних об'єктів; примусове звільнення пам'яті від об'єктів, що не використовуються; зменшення кількості анонімних обробників; зменшення кількості інтерфейсних об'єктів між розподіленими компонентами; мінімізація кількості розподілених викликів у рамках трансакції; побудова ефективної трасувальної системи.
У висновках сформульовані наукові результати і практична значимість виконаної роботи. Розглянуто перспективи розвитку методології КРГІ. Надалі удосконалення методології КРГІ повинно бути спрямоване на повну автоматизацію етапів технологічного ланцюга. Зокрема, цікавими напрямками є використання нотації XML для запису структури графічних ресурсів, а також дослідження перспектив повторного використання компонентів, що отримуються після реінженерії за даною методологією. Крім того, можуть удосконалюватися евристичні і формальні методи визначення лінії розділу, а також методи застосування стандартних шаблонів проектування з метою створення власних шаблонів реінженерії ГІК.
ВИСНОВКИ
Наукові і практичні результати. У дисертаційній роботі запропоновано нове рішення проблеми реінженерії програмних продуктів з ГІК, розроблених на базі морально і фізично застарілих програмно-технічних комплексів, що полягає в системному та якісному перетворенні їхнього графічного інтерфейсу до вимог і умов нового середовища побудови мобільних клієнтських компонентів. Розроблена в роботі методологія КРГІ є результатом узагальнення досвіду практичних напрацювань і технічних прийомів, використаних автором під час виконання ряду науково-технічних проектів.
У дисертаційній роботі отримані наступні основні результати:
1. Виконано систематизацію і класифікацію основних напрямків реінженерії ГІК. На обраному базисі сформульовано вимоги до нової методології реінженерії КРГІ, яка забезпечує високу мобільність і продуктивність графічного інтерфейсу та придатна для широкого класу застосувань. Визначено умови й обмеження використання методології КРГІ в цьому класі застосувань.
2. Розроблено методи і програмні засоби методології КРГІ. Проведено декомпозицію її технологічних процесів і формалізацію задачі виділення ділянок застосування з ГІК в окремий мобільний компонент.
3. Розроблено схеми зв'язування і синхронізації розподілених компонентів, що виділяються за методологією КРГІ. Ці схеми забезпечують індикацію довгострокових операцій, синхронізацію черг подій, обробку вкладених зворотних викликів у контексті головного потоку керування ГІК-компонента.
4. Реалізовано ефективну модель трасування й тестування процесів взаємодії цих компонентів, що ґрунтується на моніторингу розподілених потоків керування, зі змінюваною багаторівневою топологією, динамічною фільтрацією та реєстрацією компонентів.
5. Розроблено сукупність методів і процедур поліпшення та тонкого настроювання продуктивності Java-реалізації компонента ГІК.
Рекомендації щодо використання отриманих результатів. Розроблені процеси методології КРГІ становлять ефективну альтернативу заміні застарілих систем новоствореними сучасними системами і можуть бути рекомендовані для реінженерії широкого класу застосувань з ГІК, користуючись розглянутим технологічним ланцюгом з варіантами розв'язання можливих проблем на кожному етапі.
Методологія трасування може використовуватися як базова з метою побудови засобів аналогічного призначення для розподілених систем у середовищі компонентної моделі CORBA. Запропоновані методи підвищення продуктивності графічного інтерфейсу є універсальними і можуть бути використані для класу Java-застосувань з ГІК, що експлуатуються за умов жорстких обмежень на ресурси.
Список опублікованих робіт за темою дисертації
1. Петрухин В.А., Пантелеймонов А.А. Трассировка и мониторинг распределенного приложения с использованием архитектуры CORBA // Проблемы программирования. - 2000. - № 1-2. - С. 181-190. (автору належать концепція трасування на основі розподілених потоків керування, ідея здатної до нарощування структури інтерфейсів, а також викладення аспектів реалізації моделі)
2. Пантелеймонов А.А. Методы получения начальной ссылки связываемых компонентов распределенного приложения в архитектуре CORBA // Проблемы программирования. - 2000. - № 3-4. - C. 142-147.
3. Пантелеймонов А.А. Аспекты реинженерии приложений с графическим интерфейсом пользователя // Проблемы программирования. - 2001. - № 1-2. - С. 53-62.
4. Пантелеймонов А.А. Методы повышения производительности Java-приложений с ГИП в условиях жестких ресурсных ограничений // Проблемы программирования. - 2002. - № 1-2. - С. 198-204.
5. Panteleymonov A. Interoperable Thin Client Separation from GUI Applications // Proceedings of the 6th European Conference on Software Maintenance and Reengineering (CSMR'2002). - Budapest (Hungary). - IEEE Computer Society Press, 2002. - P. 211-216.
6. Пантелеймонов А.А. Использование программного обеспечения OPEN CLIENT-SERVER для повышения эффективности работы многопользовательских приложений с сетевыми базами данных. - Ин-т кибернетики НАН Украины. - Киев, 1996. - Деп. в ГНТБ Украины 25.01.96, № 399-Ук96. - 14 с.
7. Пантелеймонов А.А. Синхронизация распределенной очереди обработки сообщений // Тезисы докладов XLIV научной конференции МФТИ “Современные проблемы фундаментальных и прикладных наук”. - Часть VII. Москва-Долгопрудный. - 2001. - С. 21.
8. Пантелеймонов А.А. Двойная буферизация состояния GUI-объектов в распределенной системе с XML-аппаратом синхронизации // Тезисы докладов XLV научной конференции МФТИ “Современные проблемы фундаментальных и прикладных наук”. - Часть VII. - Москва-Долгопрудный. 2002. - С. 39.
Анотація
Пантелеймонов А.А. Методи та засоби реінженерії мобільних застосувань із графічним інтерфейсом. - Рукопис (російською мовою).
Дисертація на здобуття наукового ступеня кандидата технічних наук за спеціальністю 01.05.03 - математичне та програмне забезпечення обчислювальних машин і систем. - Національний технічний університет України “КПІ”, Київ, 2004.
Дисертаційна робота присвячена розробці методології реінженерії керованих подіями програмних застосувань із графічним інтерфейсом користувача, яка ґрунтується на побудові мобільних графічних інтерфейсів на базі розподілених компонентів, вивченню проблем її реалізації. Наведено концепцію, формальні основи і структуру методології. Виконано декомпозицію технологічних процесів реінженерії запропонованого підходу на етапи життєвого циклу.
У межах побудованої методології запропоновано компонентну модель із змінною топологією та динамічною фільтрацією, методи і засоби трасування та моніторингу розподілених застосувань. Розроблено схеми реалізації початкового зв'язування та синхронізації компонентів, організації розподіленої черги обробки подій, повторного використання потоку управління подіями для обробки рекурентних викликів в рамках однієї трансакції. Проаналізовано шляхи підвищення продуктивності графічного інтерфейсу модифікованої системи.
Ключові слова: програмна реінженерія, технологія, графічний інтерфейс, мобільність, розподілені компонентні моделі.
Аннотация
Пантелеймонов А.А. Методы и средства реинженерии мобильных приложений с графическим интерфейсом. - Рукопись.
Диссертация на соискание ученой степени кандидата технических наук по специальности 01.05.03 - математическое и программное обеспечение вычислительных машин и систем. - Национальный технический университет Украины “КПИ”, Киев, 2004.
Диссертация посвящена разработке методологии реинженерии событийно-управляемых приложений с графическим интерфейсом пользователя, основанной на построении мобильных графических интерфейсов на базе распределенных компонентов, изучению проблем ее реализации.
Проведена систематизация существующих подходов к реинженерии и обоснована целесообразность разработки новой методологии реинженерии для приложений выделенного класса, ориентированной на достижение таких качественных характеристик, как мобильность, распределенность и возможность использования современных технологий проектирования ГИП.
Рассмотрены концепция, формальные основы и структура методологии. Технология, положенная в основу методологии, оперирует на уровне исходных текстов и моделей, затрагивает только слой ГИП, позволяя значительно повысить мобильность графического интерфейса, ориентирована на применение компонентной модели CORBA с возможностью удаленного запуска графического интерфейса, предоставляет ГИП с окнами верхнего уровня и возможностью визуального проектирования экранных форм, обеспечивает эквивалентность графических интерфейсов исходного и конечного приложений с точки зрения пользователя, позволяет избежать трудоемкий этап восстановления спецификации, применима к выделенному классу приложений.
Проведена декомпозиция технологических процессов в предложенной методологии реинженерии на следующие этапы: локализация линии раздела приложения, изоляция вызовов функций графического интерфейса и спецификация интерфейса, построение отображения элементов ГИП и конвертирование графических ресурсов, построение трассировочного инструментария, выделение интерфейса в отдельную библиотеку, реализация компонентов графического интерфейса, реализация функций развертывания приложения, реализация функций нормального и аварийного закрытия приложения, реализация распределенной очереди обработки событий, исключение рудиментарного кода и библиотек ГИП. Структура этапов предложенной методологии реинженерии такова, что допускается распараллеливание процесса разработки.
Выделены базовые концепции и средства поддержки технологии на примере реинженерии конкретной программной системы. Сформулированы цели и задачи реинженерии системы, выделены особенности процесса и приведены варианты решений возникших проблем реализации. В рамках построенной методологии предложены компонентная модель, методы и средства трассировки и мониторинга распределенных приложений. Модель обеспечивает изменяемую топологию компонентов и динамическую фильтрацию. Разработаны схемы реализации начального связывания и синхронизации компонентов, организации распределенной очереди обработки событий, повторного использования событийного потока управления для обработки рекуррентных вызовов в рамках одной транзакции. Проанализированы пути повышения производительности графического интерфейса модифицированной системы, включая фоновое создание объектов заранее, повторное использование объектов, хеширование неизменяемых объектов. Рассмотрена компонентная модель адаптеров переключаемых библиотек графических компонентов с использованием архитектуры CORBA и стандартных шаблонов проектирования.
Разработанная технология может быть рекомендована для применения в проектах реинженерии широкого класса приложений с графическим интерфейсом. Описанная в работе методология трассировки может использоваться в качестве базовой с целью построения средств аналогичного назначения для распределенных систем в среде компонентной модели CORBA. Предложенные методы повышения производительности также достаточно универсальны и могут быть использованы для широкого класса Java-приложений с ГИП и жесткими ограничениями на ресурсы.
Ключевые слова: программная реинженерия, технология, графический интерфейс, мобильность, распределенные компонентные модели.
Abstract
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.
Размещено на Allbest.ur
...Подобные документы
Опис основних етапів розробки архітектури програмної системи: структурування системи, моделювання управління, декомпозиція підсистем. Ознайомлення із кроками створення інтерфейсу користувачів як однієї із фаз проектування програмного забезпечення.
реферат [20,7 K], добавлен 24.11.2010Виявлення основних сутностей предметної області. Побудова схеми реляційної бази даних. Вбудовані процедури і тригери. Опис архітектури програмної системи і концептуальної моделі бази даних, програмної реалізації та інтерфейсу користувача додатку.
курсовая работа [4,3 M], добавлен 05.12.2012Cтворення системи для впорядковування інформації про файли, що зберігаються на компакт-дисках або інших знімних носіях. Загальні вимоги до розробки. Технології розробки Windows-додатків. Опис функціональних можливостей і програмної реалізації системи.
дипломная работа [891,7 K], добавлен 25.10.2012Android, iOS та Windows як основні платформи для розробки додатків для мобільних пристроїв. Перелік вимог до програмної системи. Основні вимоги, які є критичними для працездатності мобільного додатку. Аналіз основних напрямків розвитку системи.
курсовая работа [1,1 M], добавлен 19.08.2016МАС-адреса як унікальний ідентифікатор мережевого інтерфейсу (зазвичай мережевої карти) для реалізації комунікації пристроїв в мережі на фізичному рівні. IP-адреса: поняття та призначення, принципи та етапи настройки. Основи роботи з утилітами TCP/IP.
лабораторная работа [161,6 K], добавлен 15.10.2013Створення програми скріпт мови управління віконним інтерфейсом. Можливості середовища програмування С++ BILDER фірми Borland. VCL для прикладних програмістів. Палітра компонентів з піктограмою TLahel. Типи компонентів. Оболонка графічного інтерфейсу.
курсовая работа [464,2 K], добавлен 24.03.2009Методи первинної обробки даних - згладжування та характеристика сплайнів. Загальна характеристика об'єктно-орієнтованої мови Java. Принципи побудови графічного інтерфейсу. Розробка алгоритму програми та інтерфейсу користувача програмного продукту.
дипломная работа [3,3 M], добавлен 10.10.2013Апаратні особливості та порівняльна характеристика мобільних пристроїв. Огляд програм-аналогів. Інструментальні засоби для реалізації, вхідні та вихідні дані, специфікація вимог, проектування моделі і архітектури програмного забезпечення для Android.
дипломная работа [3,2 M], добавлен 10.06.2014Знайомство з графічним інтерфейсом користувача Linux, призначення менеджерів вікон, менеджерів дисплея, а також інших складових системи X Window. Мережна архітектура типу "клієнт-сервер". Перемикання між різними консолями і праця в будь-якій з них.
реферат [16,6 K], добавлен 15.03.2009Характеристики вузлів системи автоматичного закривання жалюзі. Розробка схеми електричної функціональної. Блок-схема алгоритму роботи пристрою. Середовище розробки програмної частини пристрою. Основні компоненти розробки програмної частини системи.
курсовая работа [1,0 M], добавлен 06.12.2014Загальні поняття про файлові менеджери Windows XP: Провідник, Windows Commander, Far. Опис основних можливостей та функціональних особливостей даних файлових менеджерів, їх відмінні риси. Використання методів і способів їх роботи на практиці на сьогодні.
курсовая работа [1,7 M], добавлен 10.02.2011Розробка інформаційної системи для виконання перегляду відомостей про вулиці м. Києва, їх розташування, параметри та історію. Концептуальна і даталогічна модель бази даних. Зв’язки між сутностями. Oпис реалізації клієнтських застосувань та інтерфейсу.
курсовая работа [498,6 K], добавлен 26.07.2013Поняття та принципи проектування системи оновлень. Вибір оптимальної комбінації методів оновлення. Розгортання служби SUS та захист сервера. Проектування клієнтської частини інфраструктури оновлення системи безпеки. Моніторинг та тестування виправлень.
курсовая работа [875,7 K], добавлен 30.01.2012Опис та аналіз діаграм компонентів, послідовності, розгортання. Опис NoSQL бази даних. Архітектура програмної системи та обрані технології. Мова програмування Kotlin. Структури обміну даними. Патерн проектування MVP. Тестування мобільних пристроїв.
дипломная работа [8,6 M], добавлен 19.08.2016Незалежно компільований програмний модуль. Програми: "Облік програмного забезпечення" та "Інвентаризація програмного забезпечення на комп'ютерах мережі". Вимоги до функціональних характеристик основної частини системи. Вимоги до програмної документації.
курсовая работа [660,9 K], добавлен 14.12.2010Інформаційні системи ти засоби їх програмної реалізації. Створення файлу даних на магнітному диску. Опис створення програми. Прийоми проектування і реалізації реляційних баз даних і таблиць в СУБД Visual FoxPro 6.0. Характерна риса файлового підходу.
курсовая работа [4,1 M], добавлен 16.01.2011Засоби візуального моделювання об'єктно-орієнтованих інформаційних систем. Принципи прикладного системного аналізу. Принцип ієрархічної побудови моделей складних систем. Основні вимоги до системи. Розробка моделі програмної системи засобами UML.
курсовая работа [546,6 K], добавлен 28.02.2012Розробка програми для моделювання роботи алгоритму Дейкстри мовою C# з використанням об’єктно-орієнтованих принципів програмування. Алгоритм побудови робочого поля. Програмування графічного інтерфейсу користувача. Тестування програмного забезпечення.
курсовая работа [991,4 K], добавлен 06.08.2013Призначення і основні характеристики систем автоматизації конструкторської документації. Основні методи створення графічних зображень і геометричних об’єктів. Методи побудови та візуалізація тривимірних об’єктів. Опис інтерфейсу користувача системи.
дипломная работа [1,7 M], добавлен 26.10.2012Визначення вимог до програмного забезпечення. Проектування архітектури програми, структури даних та інтерфейсу. Програмування графічного редактора, специфікація його класів та алгоритм роботи. Зміна архітектури редактора згідно нових вимог замовника.
дипломная работа [1,2 M], добавлен 05.01.2014