Разработка инструментального комплекса для создания и семантического анализа распределенных информационных систем тема диссертации и автореферата по ВАК РФ 05.13.11, кандидат технических наук Костарев, Александр Николаевич

  • Костарев, Александр Николаевич
  • кандидат технических науккандидат технических наук
  • 2004, Москва
  • Специальность ВАК РФ05.13.11
  • Количество страниц 186
Костарев, Александр Николаевич. Разработка инструментального комплекса для создания и семантического анализа распределенных информационных систем: дис. кандидат технических наук: 05.13.11 - Математическое и программное обеспечение вычислительных машин, комплексов и компьютерных сетей. Москва. 2004. 186 с.

Оглавление диссертации кандидат технических наук Костарев, Александр Николаевич

Введение.

Глава 1. Анализ развития промышленных программных систем.

1.1 Гибкость и расширяемость программного обеспечения.

1.1.1. Программные комплексы, создаваемые на заказ.

1.1.2. Тиражные программные комплексы.

1.2. Подсистемы программирования.

1.2.1. Этапы развития.

1.2.2. Недостатки первых подсистем программирования.

1.2.3. Механизмы взаимодействия приложений в операционных средах Microsoft Windows.

1.2.4. Интеграция с компонентной архитектурой Microsoft ActiveX.

1.3. Параллельные и распределенные вычисления.

1.4. Выводы по главе 1.

Глава 2. Технология построения контейнеров управляющих элементов ActiveX.

2.1. Общие принципы создания ActiveX-контейнеров.

2.2. Архитектурные решения.

2.2.1. Устройство объекта контейнера.

2.2.1.1. Класс CAxContLight.

2.2.1.2. Класс CAxContBase.

2.2.1.3. Класс CAxFormBase.

2.2.1.4. Класс CForm.

2.2.2. Устройство объекта связи с управляющим элементом.

2.2.2.1. Классы CChildAx и CChildAxCreator.

2.2.2.2. Класс CAxSiteBase.

2.2.2.3. Класс CAxFormSiteBase.

2.2.2.4. Класс CSite.

2.2.3. Устройство объекта расширенного управляющего элемента.

2.2.3.1. Класс CAxItemBase.

2.2.3.2. Класс CItem.

2.2.4. Подходы к использованию библиотеки.

2.3. Автоматизация процесса разработки ActiveX-контейнера.

2.4. Выводы по главе 2.

Глава 3. Методы обнаружения исключительных ситуаций.

3.1. СП-метод.

3.1.1. Пример использования.

3.2 АС-метод.

3.2.1. Пример использования.

3.3. Сравнительный анализ представленных методов.

3.4. Метод обнаружения исключительных ситуаций в \Ут32-приложениях.

3.4.1. Теоретическое обоснование.

3.4.1.1. Операционная семантика функции CreateThread.

3.4.1.2. Операционная семантика критических секций.

3.4.1.3. Операционная семантика функции WaitForSingleObject.

3.4.1.4. Операционная семантика функции WaitForMultipleObjects.

3.4.1.5. Операционная семантика семафоров.

3.4.1.6. Операционная семантика событий.

3.4.1.7. Операционная семантика мьютексов.

3.4.2. Пример работы.

3.5. Выводы по главе 3.

Глава 4. Инструментальный комплекс RS-Forms.

4.1. Архитектура приложений RS-Forms.

4.2. Структура RS-Forms.

4.3. Средства разработки RS-Forms.

4.3.1. Особенности Дизайнера RS-Forms.

4.3.2. Генератор кода.

4.3.3. Редактор исходного кода.

• 4.3.4. Особенности экранных форм.

4.3.5. Механизм вывода информации на печать.

4.3.6. Компонентный подход.

4.3.7. Настраиваемые элементы управления.

4.3.8. Окна в RS-Forms.

4.3.9. Особенности меню в RS-Forms.

4.3.10. Связь форм с данными.

4.3.11. Редактор списков иконок. it 4.4. Компоненты RS-Forms, созданные на основе предложенной технологии построения ActiveX-контейнеров.

4.4.1. Контейнер — оконная оболочка для одного ActiveX-элемента.

4.4.2. Управляющий элемент "форма".

4.4.3. Управляющий элемент "печатная страница".

4.4.4. Управляющий элемент "табулятор".

4.4.5. Объект "меню".

4.4.6. Представление форм в виде самостоятельных управляющих элементов ActiveX.

4.5. Выводы по главе 4.

Рекомендованный список диссертаций по специальности «Математическое и программное обеспечение вычислительных машин, комплексов и компьютерных сетей», 05.13.11 шифр ВАК

Введение диссертации (часть автореферата) на тему «Разработка инструментального комплекса для создания и семантического анализа распределенных информационных систем»

Актуальность проблемы. Особенностью создания крупных программных комплексов является включение в их состав подсистем программирования, предназначенных для решения задач настройки и адаптации комплекса для конкретных условий его применения. Наличие таких подсистем позволяет расширять функциональные возможности комплекса в ходе его промышленной эксплуатации.

Большинство подсистем программирования, поставляемых с ориентированными на исполнение в операционных средах Microsoft Windows зарубежными информационными системами, построены на основе технологии Microsoft ActiveX. В то же время инструментальные средства, интегрированные в отечественные комплексы, по существу, не поддерживают указанную технологию. Это приводит к значительному ограничению набора управляющих элементов, пригодных для создания пользовательского интерфейса расширений комплексов. Последнее, в свою очередь, приводит либо к большим временным затратам на разработку расширений, либо к расширениям, реализованным не наилучшим образом.

Основным компонентом, обеспечивающим взаимодействие с управляющими элементами ActiveX, является контейнер управляющих элементов ActiveX.

Учитывая, что корпорация Microsoft не предоставляет инструментальных средств поддержки разработки ActiveX-контейнеров, а также малое количество публикаций, посвященных рассматриваемой тематике, можно говорить об актуальности проблемы создания технологии построения контейнеров управляющих элементов ActiveX.

Другой характерной особенностью создания промышленных программных систем, в частности, инструментального комплекса, ориентированного на разработку распределенных приложений, является наличие параллелизма и асинхронности вычислений. Как показывает практика, и это подтверждается исследованиями [24], обнаружение в многопоточных Windows-приложениях ошибок, связанных с исключительными ситуациями -блокировками и зацикливаниями, является одним из наиболее трудоемких процессов.

Типичная проблема любых тупиков заключается в том, что они возникают асинхронно. Кроме того, существуют ситуации, которые похожи на тупики, но таковыми не являются. Например, поток может находиться в ожидании ресурса, требующего некоторое время для доступа. Следует также отметить, что большинство современных отладочных систем (debuggers) оказываются плохими помощниками для поиска ошибок такого рода.

Приведенные аргументы свидетельствуют о необходимости разработки формального метода анализа исходного кода Win32-nporpaMM с целью обнаружения в них ситуаций, приводящих к блокировкам.

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

Для достижения указанной цели в диссертации поставлены и решены следующие задачи:

- рассмотрены основные тенденции развития промышленных программных систем;

- проведен анализ подсистем программирования, поставляемых в составе отечественных и зарубежных информационных систем;

- проведены исследование и сравнительный анализ базирующихся на различных теоретических подходах методов обнаружения в программах исключительных ситуаций — блокировок и зацикливаний;

- разработан формальный метод обнаружения блокировок в Win32-приложениях;

- создана технология построения контейнеров управляющих элементов ActiveX;

- на основе предложенной технологии выполнена практическая реализация ряда основных компонент инструментального комплекса разработки приложений RS-Forms.

Методы исследований. В диссертации используются методы семантической теории языков программирования, теории множеств, теории конечных автоматов, аппарат сетей Петри, методы объектно-ориентированного анализа, проектирования и программирования. Научная новизна. В работе:

- создана новая методика построения контейнеров управляющих элементов ActiveX, позволяющая упростить и значительно ускорить процесс их разработки;

- предложена классификация контейнеров управляющих элементов ActiveX по предоставляемым функциональным возможностям;

- предложен новый, базирующийся на семантической теории языков программирования, подход к анализу Win32 С++-программ с целью обнаружения в них ситуаций, приводящих к блокировкам;

- показано, что семантическое значение Win32 С++-программы может быть представлено конечной системой рекурсивных уравнений;

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

Достоверность основных результатов подтверждается:

- доказательством теоретических результатов и их апробацией на модельных примерах;

- результатами внедрения работы в технологические процессы компании R-Style Softlab.

Практическая ценность. В работе:

- создана технология построения контейнеров управляющих элементов ActiveX, позволяющая упростить и значительно ускорить процесс их разработки; основу технологии составляет библиотека С++-классов, функциональные возможности, расширяемость и гибкость которой позволяют использовать ее в промышленных программных проектах;

- разработана программа автоматизации процесса создания (на основе предложенной технологии) ActiveX-контейнера посредством генерации исходного С++-кода, обеспечивающая быстрое построение остова контейнера и позволяющая на примерах познакомиться с предлагаемой технологией, испытать технологию в действии;

- разработан семантический метод, позволяющий автоматизировать процесс анализа исходного кода Win32-nporpaMM с целью обнаружения в них ситуаций, приводящих к блокировкам;

- разработан набор базовых компонент для построения графического интерфейса пользователя, входящих в состав инструментального комплекса RS-Forms.

Реализация результатов работы. На основе разработанной технологии построения контейнеров управляющих элементов ActiveX в компании R-Style Softlab создан инструментальный комплекс разработки приложений RS-Forms.

Апробация работы. Основные результаты работы докладывались: на 8-ой международной научно-технической конференции "Радиоэлектроника, электротехника и энергетика" (г. Москва, 2002); на международных конференциях "Информационные средства и технологии" (г.Москва, 2001, 2002); на семинарах в Управлении программных разработок компании R-Style Softlab; на семинарах кафедры ПМ МЭИ (ТУ). Программный комплекс RS-Balance компании R-Style Softlab, созданный с использованием результатов работы, был представлен на 14-ой ежегодной российской выставке информационных технологий "СОФТУЛ'2003".

Публикации. По теме диссертации опубликовано 7 работ.

Структура и объем работы. Диссертация состоит из введения, четырех глав, заключения, списка литературы и четырех приложений. Общий объем основного текста включает 138 стр., в том числе 35 рис. и 2 таблицы. Список литературы состоит из 64 наименований.

Похожие диссертационные работы по специальности «Математическое и программное обеспечение вычислительных машин, комплексов и компьютерных сетей», 05.13.11 шифр ВАК

Заключение диссертации по теме «Математическое и программное обеспечение вычислительных машин, комплексов и компьютерных сетей», Костарев, Александр Николаевич

4.5. Выводы по главе 4

1. Рассмотрена структура инструментального комплекса RS-Forms, архитектура создаваемых на его основе приложений, входящие в его состав средства разработки. Показаны ключевые отличия RS-Forms от существующих аналогов.

2. Показана применимость предложенной во второй главе настоящей работы технологии построения контейнеров управляющих элементов ActiveX при реализации современного инструментального комплекса разработки приложений, в частности, для создания контейнера-представления, ориентированного на работу с одним произвольным ActiveX-объектом; управляющих элементов "форма", "печатная страница", "табулятор"; s-контейнера меню.

3. Рассмотрен подход к быстрой разработке управляющих элементов ActiveX. Показано, что в основе этого подхода лежит элемент управления "форма".

ЗАКЛЮЧЕНИЕ

1. Предложен новый базирующийся на семантической теории языков программирования формальный подход к анализу Win32 С++-программ с целью обнаружения в них ситуаций, приводящих к блокировкам. Показано, что семантическое значение Win32 С++-программы эквационально характеризуемо. Доказана применимость подхода для анализа программ, создаваемых под платформу Win32 на любом языке программирования.

2. Создана технология построения контейнеров управляющих элементов ActiveX (контейнеров-форм, контейнеров-представлений, s-контейнеров), позволяющая упростить и значительно ускорить процесс их разработки; основу технологии составляет библиотека С++-классов, функциональные возможности, расширяемость и гибкость которой позволяют использовать ее в промышленных программных проектах.

3. На основе предложенной технологии:

- реализована программа автоматизации процесса создания ActiveX-контейнера посредством генерации исходного С++-кода;

- в компании R-Style Softlab создан инструментальный комплекс разработки приложений — RS-Forms, в рамках которого автором реализованы:

• контейнер-представление, ориентированный на работу с одним произвольным ActiveX-объектом;

• управляющие элементы-контейнеры "форма", "печатная страница", "табулятор";

• s-контейнер меню;

• инструментальные средства быстрой разработки управляющих элементов ActiveX.

Список литературы диссертационного исследования кандидат технических наук Костарев, Александр Николаевич, 2004 год

1. Борланд Р. Эффективная работа с Word 7.0 для Windows 95: Пер. с англ. — СПб.: Питер, 1996. - 1104 с.

2. Крейг Д., Уебб Д. Microsoft Visual Basic 6.0. Мастерская разработчика: Пер. с англ. М.: Русская редакция, 2001. - 720 с.

3. БиллигВ. VBA в Office 2000. Офисное программирование: Пер. с англ. — М.: Русская редакция, 1999. — 400 с.

4. Колесов А., Павлова О. Microsoft Office 97 — инструмент для разработчиков бизнес-приложений // PC Week/RE. 1997. - № 25. - С. 33.

5. Кубрин С. Object RSL — объектно-ориентированная версия языка RSL // RS-Club. 1997. - №4. - С. 63-67.

6. Кубрин С. Эволюция RSL — от простейшей генерации отчетов до объектно-ориентированного программирования // RS-Club. 2000. — №3. - С. 75-78.

7. Волошин В. Visual RSL: компонентный подход к созданию системы обработки и анализа информации // RS-Club. 1998. - №2. - С. 75-77.

8. Резницкий Д., Кубрин С. Отладчик для интерпретатора Object RSL // RS-Club. 2001. - №2. - С. 70-73.

9. Аудит-Оптим. ascContainer средство создания динамического пользовательского интерфейса // Электронный ресурс. — 2000. — Режим доступа: http://www.optim.ru/Software/rus/ascContainer/asccontainer.asp.

10. BCGSoft Ltd. BCG ControlBar Library // Электронный ресурс. 2001. -Режим доступа: http://www.bcgsoft.com.

11. Котов В. Е. Сети Петри. М.: Наука, 1984. - 160 с.

12. Мельников В. Е., Харитонов Д. И. Применение сетей Петри при разработке графического языка программирования // Электронный ресурс. 2000. — Режим доступа: http://www.iacp.dvo.ru/labl l/pab/pub02.html.

13. Кораблин Ю. П. Семантика языков программирования. М.: Изд. МЭИ, 1992. -100 с.

14. Кораблин Ю. П. Семантика языков распределенного программирования. — М.: Изд. МЭИ, 1996. 102 с.

15. Кораблин Ю. П. Алгебраический подход к заданию семантики языков распределенного программирования // Известия академии наук. Теория и системы управления. 1995. - №5. — С. 34-41.

16. Кораблин Ю. П. Язык асинхронных функциональных схем и его операционная семантика // Известия академии наук. Теория и системы управления. 1996. - №5. - С. 42-53.

17. Кораблин Ю. П., Налитов С. Д., Куликова Н. JI. Распределенное программирование на языке АФС. М.: Изд. МЭИ, 1995. - 40 с.

18. Кораблин Ю. П. Семантические методы анализа распределённых систем. Дис. на соиск. уч. ст. д-ра техн. наук. М., 1994. - 272 с.

19. Кораблин Ю. П. Курс лекций по схематологии программ / М., 1999. 49 с.

20. Хоар Ч. Взаимодействующие последовательные процессы. — М.: Мир, 1989. -264 с.

21. Asche R. R. Detecting Deadlocks in Multithreaded Win32 Applications // Электронный ресурс. 1994. - Режим доступа: MSDN Library, Technical Articles.

22. Asche R. R. Putting DLDETECT to Work // Электронный ресурс. 1994. -Режим доступа: MSDN Library, Technical Articles.

23. Asche R. R. The Implementation ofDLDETECT.EXE // Электронный ресурс. 1994. - Режим доступа: MSDN Library, Technical Articles.

24. Буч Г. Объектно-ориентированный анализ и проектирование с примерами приложений на С++. 2-е изд.: Пер. с англ. - М.: Издательство Бином; СПб.: Невский диалект, 1998. — 562 с.

25. Фаулер М., Скотт К. UML в кратком изложении. Применение стандартного языка объектного моделирования: Пер. с англ. -М.: Мир, 1999. 191 с.

26. Буч Г., Рамбо Д., Джекобсон А. Язык UML. Руководство пользователя: Пер. с англ. М.: ДМК Пресс, 2001. - 432 с.

27. Приемы объектно-ориентированного проектирования. Паттерны проектирования / Гамма Э., Хелм Р., Джонсон Р., Влиссидес Дж. : Пер. с англ. — СПб.: Питер, 2001.-368 с.

28. Шаллоуей А., ТроттДж. Шаблоны проектирования. Новый подход к объектно-ориентированному анализу и проектированию: Пер. с англ. — М.: Вильяме, 2002. 288 с.

29. Ларман К. Применение UML и шаблонов проектирования: Пер. с англ. — М.: Вильяме, 2001.-496 с.

30. Чеппел Д. Технологии ActiveX и OLE: Пер. с англ. М.: Русская редакция, 1997.-320 с.

31. Роджерсон Д. Основы СОМ: Пер. с англ. М.: Русская редакция, 1997. -376 с.

32. Коберниченко A. Visual Studio 6. Искусство программирования. — М.: Нолидж, 1999. 256 с.

33. Трельсен Э. Модель СОМ и применение ATL 3.0: Пер. с англ. СПб.: BHV, 2000.-928 с.

34. Оберг Р. Технология СОМ+. Основы и программирование: Пер. с англ. — М.: Вильяме, 2000. 480 с.

35. Рихтер Д. Windows для профессионалов. 2-е изд.: Пер. с англ. - М.: Русская редакция, 1995. — 720 с.

36. Рихтер Д. Windows для профессионалов. 4-е изд.: Пер. с англ. — СПб.: Питер; М.: Русская редакция, 2001. — 752 с.

37. Круглински Д., Уингоу С., Шеферд Д. Программирование на Visual С++ 6.0 для профессионалов: Пер. с англ. — М.: Русская редакция, 2000. — 854 с.

38. White К. АррWizardry in 12 Easy Steps // Visual С++ Developer. 2000. - №5. -C. 20-28.

39. Крокет Ф. MFC. Мастерская разработчика: Пер. с англ. М.: Русская редакция, 1998.-400 с.

40. Тосс В. Visual С++ 5. Энциклопедия пользователя: Пер. с англ. — Киев: ДиаСофт, 1998.-688 с.

41. Kernighan В., Ritchie D. The С Programming Language. 2-nd. - Englewood Cliffs: Prentice-Hall PTR, 1988. - 274 c.

42. Керниган Б., Пайк P. Практика программирования: Пер. с англ. СПб.: Невский диалект, 2001. — 381 с.

43. Липпман С. Основы программирования на С++: Пер. с англ. — М.: Вильяме, 2002.-256 с.

44. Страуструп Б. Язык программирования С++. 3-е изд.: Пер. с англ. — СПб.: Невский диалект; М.: Бином, 1999. - 991 с.

45. Страуструп Б. Дизайн и эволюция С++: Пер. с англ. М.: ДМК Пресс, 2000. -448 с.

46. Мейерс С. Эффективное использование С++. 50 рекомендаций по улучшению ваших программ и проектов: Пер. с англ. М.: ДМК, 2000. - 240 с.

47. Мейерс С. Наиболее эффективное использование С++. 35 новых рекомендаций по улучшению ваших программ и проектов: Пер. с англ. М.: ДМК Пресс, 2000.-304 с.

48. Мейерс С. Эффективное использование STL. Библиотека программиста: Пер. с англ. СПб.: Питер, 2002. - 224 с.

49. Элджер Дж. С++: библиотека программиста: Пер. с англ. СПб.: Питер, 2000.-320 с.

50. ФаулерМ. Рефакторинг: улучшение существующего кода: Пер. с англ. — СПб.: Символ-Плюс, 2003. 432 с.

51. Брукс Ф. Мифический человеко-месяц или как создаются программные системы: Пер. с англ. — СПб.: Символ-Плюс, 2001. — 304 с.

52. Кнут Д. Искусство программирования: В 3-х т: Пер. с англ. — М.: Вильяме, 2000. — Т. 1. Основные алгоритмы. 3-е изд. - 720 с.

53. Кнут Д. Искусство программирования: В 3-х т: Пер. с англ. — М.: Вильяме, 2000. — Т.2. Получисленные алгоритмы. — 3-е изд. — 832 с.

54. Кнут Д. Искусство программирования: В 3-х т: Пер. с англ. М.: Вильяме,2000. Т.З. Сортировка и поиск. — 2-е изд. — 832 с.

55. Кораблин Ю. П., Костарев А. Н. Метод обнаружения исключительных ситуаций в приложениях Windows // Известия академии наук. Теория и системы управления. 2003. - №4. - С. 124-131.

56. Костарев А. Создание контейнеров элементов управления ActiveX // Byte. —2001. -№ 8.-С. 28-33.

57. Костарев А., Павлов JI. RS-Forms — новый инструмент для разработки приложений // RS-Club. 2002. - №3. - С. 18-22.

58. Костарев А. О создании контейнеров управляющих элементов ActiveX // Доклады Международной конференции "Информационные средства и технологии". 16-18 октября 2001 г. В 3-х т. М.: Изд-во "Станкин", 2001. - Т.З. -С. 30-33.

59. Кораблин Ю. П., Костарев А. Н. Методы обнаружения исключительных ситуаций в программах // Доклады Международной конференции "Информационные средства и технологии". 16-18 октября 2001 г. В 3-х т. — М.: Изд-во "Станкин", 2001. Т.З. - С. 70-73.

60. Кораблин Ю. П., Костарев А. Н. Метод обнаружения исключительных ситуаций в Win32-пpилoжeнияx // Доклады Международной конференции "Информационные средства и технологии". 15-17 октября 2002 г. В 3-х т. — М.: Янус-К, 2002. Т.2. - С. 40-42.

61. Костарев А. Концепция работы с клавиатурой и фокусом ввода в технологии ActiveX // Восьмая междунар. науч.-техн. конф. студентов и аспирантов: Тез. докл. В 3-х т. М. Изд-во МЭИ, 2002. - Т.1. - С. 272-273.

Обратите внимание, представленные выше научные тексты размещены для ознакомления и получены посредством распознавания оригинальных текстов диссертаций (OCR). В связи с чем, в них могут содержаться ошибки, связанные с несовершенством алгоритмов распознавания. В PDF файлах диссертаций и авторефератов, которые мы доставляем, подобных ошибок нет.