автореферат диссертации по информатике, вычислительной технике и управлению, 05.13.18, диссертация на тему:Интегрированная среда разработки для информационно-расчётных задач

кандидата физико-математических наук
Иссам Мустафа Ибрагим
город
Казань
год
2008
специальность ВАК РФ
05.13.18
Диссертация по информатике, вычислительной технике и управлению на тему «Интегрированная среда разработки для информационно-расчётных задач»

Автореферат диссертации по теме "Интегрированная среда разработки для информационно-расчётных задач"

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

Иссам Мустафа Ибрагим

ИНТЕГРИРОВАННАЯ СРЕДА РАЗРАБОТКИ ДЛЯ ИНФОРМАЦИОННО-РАСЧЁТНЫХ ЗАДАЧ

I

—/

Специальность 0513.18 - математическое моделирование, численные методы и комплексы программ

Автореферат диссертации на соискание ученой степени ■кандидата физико-математических наук

II

003164533"

Казань - 2008

Работа выполнена на кафедре теоретической кибернетики, факультета ВМК, Казанского государственного университета им. Ульянова- Ленина.

Научный руководитель:

Официальные оппоненты:

кандидат физико-математических наук, доцент Еникеев Арслан Ильясович

доктор технических наук, профессор Латыпов Рустам Хафизович

кандидат физико-математических наук, доцент Гайфуллин Рашид Рахматуллович

Ведущая организация: Казанский государственный

технический университет им АН Туполева

Защита диссертации состоится 6 марта 2008г в 16 часов 30 мин на заседании диссертационного совета Д 212 08121 при Казанском государственном университете им. В.И Ульянова-Ленина по адресу 420008, г. Казань, ул. Кремлевская, 18, корпус 2, аудитория 218

С диссертацией можно ознакомится в научной библиотеке им НИ Лобачевского Казанского государственного университета

Автореферат разослан 5 февраля 2008г

Учёный секретарь Диссертационного совета,

д.ф.-м.н., доцент О А^Д ¿„ Задворнов Олег Анатольевич

Актуальность темы

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

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

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

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

рассматривать как результат специализации некоторого абстрактного фрейма разработки Использование фреймов разработки при создании приложений предусматривает построение специализированных классов или конкретных объектов для соответствующей проблемной области на основе множества абстрактных классов

Дель работы

Основной целью диссертационной работы является создание методологии построения специализированной интегрированной

программной среды, обеспечивающей увеличение производительности процессов проектирования, разработки и реализации приложений для автоматизации решения информационно-расчетных задач Кроме этого предусматривается выбор формальной математической теории, которая позволила бы адекватно описать модель упомянутой выше специализированной интегрированной среды разработки, а также возможность проведения исследований свойств модели Для программной реализации поставленных задач использована программная среда, основанная на средствах объектно-ориентированной СУБД Visual FoxPro

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

1 изучить стандартные средства объектно-ориентированных баз данных,

2 изучить механизм так называемых паттернов проектирования (Design Patterns),

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

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

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

Методы исследования

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

Научная новизна результатов

1 Создание специализированной объектно-ориентированной модели и интегрированной программной среды на основе аппарата фреймов разработки с целью

повышения производительности процессов создания приложений из области информационно-расчетных задач

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

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

Практическая ценность результатов

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

На защиту выносятся:

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

2 Формализованные средства для адекватного описания спецификаций классов, составляющих фрейм разработки

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

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

Апробация работы и публикации

Основные научные результаты диссертационной работы докладывались на следующих научно-технических конференциях-

• Международная молодежная научная конференция, посвященная 1000-летию города Казани « Туполевские четения », Казань, Ноябрь 2005

• VII Международная научно-практическая конференция « Общество, государство, личность проблемы взаимодействия в условиях рыночной экономики », Апрель 2006

• Итоговые научные конференции Казанского государственного университета в период 2005-2007

Структура работы

Диссертационная работа изложена на 109 страницах текста, включающего в себя пять глав основного материала, 37 рисунков, 3 таблицы и список литературы, включающий 24 наименования

КРАТКОЕ СОДЕРЖАНИЕ РАБОТЫ

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

Первая глава содержит обзор основных принципов организации объектно-ориентированных баз данных, включающих в себя вопросы однозначной идентификации, структурной организации, поведения, и инерционности объектов, а также механизм именования объектов Далее приведен обзор стандартной объектной модели « ODMG 3 0 », включая принципы объектной модели, язык определения объектов (ODL), язык запросов (OQL), а также связь объектной модели « ODMG 3 0 » с языком программирования С++

В той же главе представлен обзорный материал по так называемым паттернам проектирования ( Design Patterns ), включающий в себя такие методы, как шаблонный метод (Template Method), "посредник" (Mediator), фабричный метод (Factory method), абстрактный фабричный метод (Abstract Factory), делегирование (Bridge) и метод упаковки (Wrappers).

Далее предложено описание так называемых фреймов разработки (frameworks), в том числе их сферы применения, механизмы адаптации, их способы взаимодействия с создаваемыми приложениями, их изменяемые области ( hot spots ) и "замороженные" области, которые не подлежат изменениям ( frozen spots), их способы взаимодействия с создаваемыми приложениями, и создание приложений на основе фреймов разработки, реализуемое с помощью так называемых хуков (Hook-функций) На рис 1 выделены следующие части фрейма разработки

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

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

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

- приложение состоит из ядра, библиотеки фрейма разработки и надстройки,

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

Неиспользуемая Библиотека ; Ядро

часть библиотеки фрейма ; фрейма

классов разработки ; разраоотки

рейм разработки

Надстройка для

специализированных приложений

Приложение

Рис 1 Структурная диаграмма разработки приложения на основе фрейма разработки

Кроме этого в данной главе представлены примеры фреймов разработки

"ЕТ++ SwapsManager", "ITHACA" и "San Francisco"

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

1) описание модели поведения системы представляется на основе алгебраических операций и аксиом,

2) сложные спецификации подлежат декомпозиции на более простые путем использования операций конструирования, дополненных операциями из теории категорий,

3) для описания абстрактных структур используется аппарат так называемой многосортной (многоосновной) алгебры, в которой каждому типу данных соответствует некоторый сорт (множество элементов, над которыми определены функции из сигнатуры алгебры),

4) функции в многосортной алгебре определяются сигнатурой, представляющей множество конструкций вида/ ■$/* Х2У х ->, где (г=1 п) - сорта аргументов функции , б -сорт значения функции , при п-0 функция вырождается в константу ,

5) алгебраическая спецификация формируется из сигнатуры и ассоциированных с сигнатурой аксиом

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

1) для каждой пары С-объектов X и 7 задано отображение / X -> Г, называемое морфизмом и обозначаемое как МОКс(ХУ),

2) для пары морфизмов / = МОЯс (Х,У) и ^ = МОЯ,- (У,2) определена композиция g*f= МОНс(Х,2О,

3) для каждого С- объектах задан тождественный морфизм = МОКс (XX) причем выполняются две аксиомы

А1) операция композиции ассоциативна к * (£ - (к * g) */,

А2) для любых /= МОЯ с (X. У) ¡с1х */=/ ъ % = МОКс (2,Х) Я * = Я

Отсюда, если функция / реализует морфизм, очевидно, что область определения функции / (обозначаемая как ¿отф) и область значений функции / (обозначаемая как сос1ф~) представляются множествами С-объектов Если а = (Зотф и Ь = сос1(зЕ) мы представляем это как

/ а->Ъ

Каждое такое отображение определяет понятие С-отображения, а множество С-отображений образует морфизм

Ориентированный граф, вершины которого определяют С-объекты, а дуги -С-отображения, называется диаграммой

В качестве примера можно привести категорию множество, где каждое множество представляет в этом смысле С-объект, а в качестве С-отображений фигурируют функции и отношения над множествами Другим примером является категория спецификация В этом случае каждая из спецификаций рассматривается как С-объект, а в качестве С-отображений фигурируют отображения вида / < S, Q > ->< S , Q> , где сорта S одной спецификации отображаются в совместимые сорта S' другой, а сигнатура Q - в сигнатуру Q другой, причем аксиомы первой спецификации являются теоремами второй спецификации

Далее дается описание структуры классов с помощью аппарата алгебраических спецификаций тип класса определяется сигнатурой Е = <s,fi> и множеством аксиом Ф над сигнатурой Е, где

S - множество сортов , включающих сорт класса ,

Q - множество функций, заданных на множестве S Сорта из S используются для описания наборов значений данных в спецификации В отличие от других сортов, сорт класса представляет множество всевозможных объектов класса, или, с точки зрения алгебраического подхода - множество всевозможных абстрактных представлений объектов класса

Функции из множества Q классифицируются как атрибуты, атрибуты состояния, события и операции Атрибуты определяются непосредственно функциями, которые возвращают в качестве значений специальные элементы данных Каждый атрибут определяется атрибутным описанием в классе С следующим образом

имя атрибута имя класса -> тип атрибута данных

Методы классов формально представляются как

имя метода имя класса, pi рп _> имя класса

где

имя класса представляет объект соответствующего класса, pi рп-параметры метода

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

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

имя операции имя класса, pi р„.> тип операции данных

В третьей главе приводится описание аппарата фрейма разработки, реализованного автором на основе объектно-ориентированной СУБД Visual

FoxPro Представляемый аппарат фрейма разработки рассматривается здесь как расширение реляционной СУБД (в данном случае Visual FoxPro) с целью гибкого сочетания реляционных средств со средствами эффективного представления иерархии абстракций

Создание приложений на основе фреймов разработки реализуется с помощью так называемых хуков (Hook функций), представляющих из себя специальные области фрейма, в которых осуществляется определение новых функций или переопределение старых в соответствии со спецификой приложения Механизм хуков обеспечивает гибкость процессов построения, настройки и перенастройки приложений в пределах определенного класса задач Фреймы разработки содержат в себе изменяемые области (hot spots) и "замороженные" области, не подлежащие изменениям {frozen spots) Изменяемая область может заполняться объектами и свойствами, специфичными для создаваемого с помощью фрейма разработки приложения В то же время замороженные области содержат компоненты, являющиеся общими для соответствующего класса задач Изменяемая область может содержать хуки, в замороженной области они не могут появиться Фреймы разработки различаются сферой их применения и механизмами адаптации. По сфере применения различают универсальные и специализированные Различают механизмы адаптации, построенные на принципах композиции ( "черный ящик"), или на принципах наследования ("белый ящик")

Представляемый здесь фрейм разработки основан на принципах "белого ящика" В этих фреймах механизмы адаптации реализуются через изменяемые области, основными компонентами которых являются хуки, представляемые в виде шаблонных методов ( template methods ) и паттернов проектирования (design patterns)

Фрейм разработки определяется совокупностью абстрактных классов, которая обеспечивает общую инфраструктуру для приложений определенной предметной области Пользователь фрейма разработки должен понять внутреннюю структуру фрейма разработки для того, чтобы использовать его для построения соответствующего приложения Для описания структуры фрейма разработки, использованы UML диаграммы (диаграмма классов, объектов, и последовательности) и UML-F - совокупность стереотипов в форме Профиля UML, которая используется для определения модели фреймов разработки Профиль UML представляет собой часть языка UML и расширяет его с помощью стереотипов, предназначенных для специальных целей Стереотипы являются механизмом расширения ядра языка UML Стереотипы записывается с помощью текста, заключенного в кавычки (например «framework») , однако они могут также изображаться с помощью пиктограммы стереотипа В табл 1 представлены стереотипы UML диаграмм, которые используются для описания классов фрейма разработки

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

Рис 2 Концептуальная модель фреймов разработки

- интерфейсный уровень (Presentation Layer) - представляется средствами построения и управления экранными формами на основе классов "Aform", "DataEntryForm", "FWLogmForm" "FWButton", "FWTXTBox", "FWEditBox", "ExitButton" и "DataEntryCMDButton" ,

- уровень взаимодействия данных (Data Connection) и система правил (Business Rules) вместе представляют единый логический уровень, используемый для представления так называемых Бизнес-Объектов (объектов используемой предметной области) Здесь используются классы "AdataEnvironment'Y'FWDataEnvirronment", "Acursor", "FWCursor" ,

- уровень хранения данных (Data) представляет базы данных

В зависимости от принадлежности к различным частям структурной диаграммы разработки приложения на основе фрейма разработки (см рис 1), различают

1 Классы, представляющие ядро фрейма разработки

{ "DataEntryForm", "FWDataEnvirronment", "FWCursor"},

2 Классы, представляющие библиотеку фрейма разработки. Эти классы в свою очередь делятся на три группы

А Классы для конфигурирования среды {AEnvironment", "DataSessionEnv", "AppEnv", "SaveEnv"},

Б Классы, представляющие совокупности {"FWCollection", "FWStack", "FWSet", "FWList"} и

В Классы элементов управления для экранных форм {"FWButton","FWTXTBox","FWEditBox","ExitButton","DataEntryCMD Button", }

Табл 1 Значение Стереотипов UML-F

Стереотип Значение

Графическое представление класса содержит часть списка атрибутов и методов

О Графическое представление класса содержит полный список атрибутов и методов

«unif-ТН» Класс содержит шаблонные методы (Т) и методы зацепки (хуки- hooks (Н)) адаптация класса будет осуществляться с помощью наследования.

«unif-t» Шаблонный метод (Template Method)

«unif-h» Хук метод (Hook Method)

«Framework» Класс принадлежит фрейму разработки

«Application» Класс принадлежит приложению

«Bridge- Abstraction» Класс представляет абстракцию паттерна Моста (Bridge Pattern)

«BridgeImplementation» Класс представляет реализацию паттерна Моста (Bridge Pattern)

«Bridge-operation» Метод принадлежит классу, представляющему абстракцию паттерна Моста (Bridge Pattern)

«Bridge-operationlmp» Метод принадлежит классу, представляющему реализацию паттерна Моста (Bridge Pattern) и используется для реализации метода класса, представляющего абстракцию Паттерна Моста (Bridge Pattern)

«Bridge-Imp» Отношение между классами, реализующими Мост Паттерн (Bridge Pattern)

«adapt-static» Класс используется во время разработки Методы доопределяются в подклассах Можно добавлять новые методы и атрибуты к подклассу, а существующие хук- методы могут быть доопределены в подклассах

На рис 3 представлена диаграмма классов конфигурирования среды Известно, что в СУБД Visual FoxPro специфика выполнения многих команд и операций зависит от конфи!урации среды. Приведенный на рис 3 набор классов используются для сохранения, установки и восстановления

параметров конфигурации среды функционирования системы Сюда включены следующие классы

- йшахевзюпет,

- аррепу,

- $ал>еет>,

- аетпгоптеШ

Рис 3 Классы конфигурирования среды для сессии данных и приложений

"DataSessionEnv" класс обеспечивает сохранение, установку и восстановление параметров конфигурации соответствующей сессии данных ( date, decimal, deleted, exact, ) "AppEnv" класс «отвечает» за сохранение, установку и восстановление параметров для переменных в приложениях (path, procedure, classhb, ) "SaveEnv" класс, являющийся подклассом класса "DataSessionEnv", обеспечивает сохранение состояния до вызова некоторого процесса с последующим восстановлением исходного состояния после выхода из процесса "Aenvironment" класс — суперкласс, объединяющий все перечисленные выше классы в качестве подклассов Этот класс играет роль буфера между классами конфигурирования среды фрейма разработки и классами СУБД Visual FoxPro

Далее дается описание основных классов, входящих в концептуальную модель фрейма разработки

- "DataEntryForm" класс используется для представления интерфейсного уровня Этот класс наследует свойства от класса "AForm" Класс "Aform" играет роль буфера между классами экранных форм Visual FoxPro и классами

фрейма разработки, представляющими интерфейсный уровень На рис 4 представлена диаграмма классов интерфейсного уровня, а в табл 1 дано описание 11МЬ стереотипов, использованных в диаграмме классов

Рис 4 Диаграмма классов Интерфейсного уровня фреймов разработки

- Класс 'ук><1маепУ1гоптепГ используется для представления так называемых бизнес-объектов Класс бизнес-объектов предназначен для представления сущностей внешнего окружения разрабатываемых приложений. Класс бизнес-объекта имеет внутреннее и внешнее представления Внутреннее представление этого класса, определяется информацией о сущности реального окружения, а его внешнее представление определяется через набор атрибутов и функций, связанных с сущностью реального окружения "^Л^аетггоптепГ представляет связь между интерфейсным уровнем и базой данных Разработчик приложения определяет бизнес-правила внутри этого класса Бизнес-правила используются для определения истинности информации о сущности реального окружения На рис 5 представлена диаграмма классов "рмйагаегтгоптепГ

Объекты класса ""fwdataenvironment" играют роль контейнеров объектов класса "fwcursor"

- Класс "adataenvironmenf' играет роль буфера между классом Visual FoxPro и классами фрейма разработки, представляющими логический уровень

Рис 5 Диаграмма классов "FWDataEnvironment"

-Класс "FWCursor" представляет уровень взаимодействия данных и включен с целью распространения принципов объектно-ориентированного программирования на так называемые курсор-объекты СУБД Visual FoxPro, представляющие ссылки на таблицы баз данных Известно, что аппарат обработки курсор-объектов в СУБД Visual FoxPro ограничен процедурной ориентацией

Класс "FWCursor" наследует свойства от Класса "ACursor" Класс "ACursor" непосредственно наследует свойства класса "Cursor" в системе Visual FoxPro Этот класс играет роль буфера между классами Visual Fox Pro и классами фрейма разработки, представляющими уровень взаимодействия данных На рис 6 предоставлена диаграмма этого класса

Далее приводится описание отношений между классами фрейма разработки На рис 7 дается описание отношений между интерфейсным классом "ОМаЕЫгуРогт" и классом логического уровня "Рмс1ШаегтгоптепГ

"Visual "Fox Pro Cursor j

Рис 6 Диаграмма классов "рмсиюог"

« Fiame work » « Bridge-Abstraction » DataEntrjForm . - « Bridge-imp » « Framework » « Bridge-implementation » FWDataEnvironment ...

ODE

New()« Bridge-operation» Save()« Bridge-operation» Undo()« Bridge-operation» New()« Bndge- operationlmp » Sa"ve()« Budge- opeiationlmp » Undo()« Budge- operationlmp »

« Adapt-Static » « Adapt-Static »

« Application » APPJDataEntryForm ... « Application » APP_DataEnvironment ...

Рис 7 Отношения между классами фрейма разработки

Отношения между этими классами реализованы путем использования так называемого «Моста» паттерна проектирования (Bridge pattern) "DataEntryForm" абстрагирует «Моста» паттерн, а "FWDataEnvironmenf выполняет реализацию этого паттерна «Мост» паттерн используется для обеспечения гибкости фрейма разработки С помощью «Мост» паттерна обеспечивается относительная независимость между классами

интерфейсного уровня и классами логического уровня Таким образом классы, принадлежащие этим уровням, могут изменяться вне зависимости друг от друга

Далее дается описание основных операций фрейма разработки с помощью UML диаграмм последовательности Например, на рис 8 представлено описание сценария операции "save", которая используется для сохранения ожидающих редактирование, (pending edits) всех таблиц одного бизнес-объекта На рис 8 определены хуки, с помощью которых, пользователь фрейма разработки может изменить поведение операции с целью адаптации к соответствующим требованиям Суть этой операции сводится к следующему

1 На диаграмме последовательности объекты классов ( "DataEntryForm", "FWDataEnvironment", и "FWCursor") изображаются прямоугольниками на вершине вертикальной пунктирной линии Эта вертикальная линия представляет собой жизненный цикл объекта в процессе взаимодействия

2 Сообщения представляются стрелками между линиями жизни объектов ( например SaveO сообщение) Порядок следования сообщений устанавливается сверху вниз Рекурсивные вызовы - сообщения, которые объекты посылают самим себе (например ValidO) При передаче такого сообщения стрелка указывает на ту же самую линию жизни

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

4 Управляющая информация представлена двумя способами Первое -указывается Условие передачи сообщения ( пример, [ODE exist] ) Условие указывается в квадратных скобках Сообщение посылается, тогда, когда это условие истинно Второе - использование итерации при многократной передаче сообщения для множества принимающих объектов Такая итерация указывается в квадратных скобках с предшествующей звездочкой ( на пример *[ for each cursor] ).

5 Возвраты изображаются пунктирной линией Возврат указывает возврат от переданного ранее сообщения (например, llok- Local Logical OK)

DataEntrvForm

SaveQ

FWDataEnvironment

FWCuisor

[ODEeMstl SaveQ

Hooks

llsavefeuccess

ValidO

*[for each cursor] validate!}

llok

»[for each record] ísvalidQ

llok

llok

[llok] OhbeforesaveO

'trué] llsavesucpess = dosaveQ

*[for each cursor]

Usavesuccess = save()

Oj:befiire|aveQ

llok

true

Oi afle •saveQ

[llok] OnAftpsaveQ

О

%

sifeditMode(f)

-Refrestó)

UT

ONSavef)

Рис 8 UML диаграмма описания операции "SaveQ"

В четвертой главе предложено описание двух разработанных модулей Это - модуль безопасности и модуль передачи сообщений для фрейма разработки Свойства этих модулей наследуются из класса иР1¥Оа(аЕпУ1гоптепГ

Модуль безопасности работает на основе спецификации приложения, включающего в себя определение пользователей, групп пользователей и списка логических секций приложения

Каждый элемент управления в фреймовой разработке имеет "сЗесиШуБеШгщ" свойство, которое ссылается на логическую секцию приложения При передаче этого элемента управления модулю безопасности, значение его свойства 'сБесигйуЗеШгщ" определяет режим работы модуля безопасности В табл 2,3 и на рис 9 дано описание работы модуля безопасности На рис 10 представлена диаграмма описания объектов этого модуля

Рис 9 Пример использования модуля безопасности

Рис 10 Диаграмма Объектов модуля безопасности

Табл 2 Пример описания спецификации приложения

Группы Пользователей

Логические секции приложения Г1 Г2 ГЗ

Л1 RW

Л2 RO

ЛЗ HID

FORM

В примере из табл 2 представлены { Л1, Л2, ЛЗ, }логических секцией, набор групп пользователей { Г1, Г2, ГЗ, } и описание кодов для установки соответствующего режима работы модуля безопасности (КО, КЖ )

Табл 3 Описание Кодов для модуля безопасности.

Установка Абревиатура Свойства

Чтение-Запись RW Enabled = t Visible = t

Только-Чтение RO Enabled = f Visible = t

Невидимый HID Visible = f

Форма FORM NA (not allowed)

Далее дается описание модуля передачи сообщений Основное предназначение этого модуля заключается в возможности удобного изменения текстов, выдаваемых на экран из фрейма разработки, а также способов их вывода Модуль передачи сообщений наследует свойства из класса ^РШОмаетпгоптеп^ На рис 11 представлена диаграмма описания объектов модуля передачи сообщений

Рис 11 Диаграмма Объектов модуля службы сообщений

В пятой главе дано описание демонстрационного приложения, сгенерированного с помощью аппарата фрейма разработки (см рис 12) Приложение демонстрируется на примере выписывания счетов клиенту Приведенное приложение демонстрирует способ использования классов фрейма разработки в процессе создания приложения

Customei Oidei

Custro CustNo Name Family Creditlimit 0 CO OrderED OrderNo Orderdesc Date Custro

1

CalototaK)

Oi del line Item

OidrlmlD ItemID

OrdrlinNo ItemNo

Orlndesc l Itemdesc

itemID It Price

Amount

order ID

Рис 12 Диаграмма классов приложения демонстрационного примера

ОСНОВНЫЕ ВЫВОДЫ И РЕЗУЛЬТАТЫ

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

2 Предложены адекватные средства формализованного описания модели на основе аппарата алгебраических спецификаций вместе с операциями теории категорий для эффективного представления внутренней структуры классов объектов и отношений между ними

3 На основе классов фрейма разработки спроектирована и выполнена программная реализация модуля безопасности и модуля передачи сообщений

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

ОСНОВНЫЕ ПУБЛИКАЦИИ ПО ТЕМЕ ДИССЕРТАЦИИ

1 Ибрагим И М Интегрированная среда разработки для информационно-расчетных задач / Ибрагим ИМ // Основные особенности применения объектно-ориентированных СУБД на современном этапе Международная молодежная научная конференция, посвященная 1000-летию города Казани «Туполевские чтения» -Казань Изд-во Казанского государственного технического университета, Ноябрь 2005 - С 27-28

2 Ибрагим И М Интегрированная среда разработки для информационно-расчетных задач / Ибрагим ИМ // Один из подходов к созданию специализированной интегрированной среды разработки VII Международная научно-практическая конференция « Общество, государство, личность проблемы взаимодействия в условиях рыночной экономики » - Казань Издательский центр Академии управления «ТИСБИ», Апрель 2006 - С 348-349

3 Ибрагим И М. Интегрированная среда разработки для информационно-расчетных задач / Ибрагим И М, Еникеев А И // Принципы построения специализированной интегрированной среды разработки на основе фреймовых структур - Казань, «Исследования по прикладной математике и информатике» КГУ, вып. 26, Изд-во КГУ, 2006. - С 50-60

4. Ибрагим ИМ. Интегрированная среда разработки для информационно-расчётных задач / Ибрагим И М, Еникеев А.И. // О Методологии создания специализированных объектно-ориентированных приложений на основе фреймовых структур Исследования по информатике Вып И - Казань1 Изд-во " Отечество", 2007 - С 109-122

5. Ибрагим ИМ Интегрированная среда разработки для информационно-расчётных задач / Ибрагим И.М // Принципы разработки специализированных объектно-ориентированных приложений. Системы управления и информационные технологии. Научно-технический журнал № 1 1(27) - Воронеж: Изд-во «Научная книга», 2007. - С 155-159.

Отпечатано в ООО «Печатный двор», г. Казань, ул. Журналистов, 1/16, оф 207

Тел: 272-74%59,541-76-41,541-76-51. Лицензия НД №7-0215 от 01112001 г. Выдана Поволжским межрегиональным территориальным управлением МПТР РФ Подписано в печать 29.01.2008г. Усл. п.л 1,4 Заказ МК-6501 Тираж 100 экз Формат 60x841/16. Бумага офсетная. Печать - ризография

Оглавление автор диссертации — кандидата физико-математических наук Иссам Мустафа Ибрагим

ВВЕДЕНИЕ

1. ПРИНЦИПЫ РАЗРАБОТКИ 11 1.1. Паттерны проектирования 14 1.1.1.Структурные паттерны

1.1.1.1. Мост - паттерн (Bridge Pattern)

1.1.1.2. Фасад - паттерн ( Facade Pattern) 16 1.1.1.2. Порождающие паттерны, Фабричный метод (Factory method) 17 1.1.1.2. Паттерны поведения (Template метод) 19 1.2 Объектно-ориентированные базы данных

1.2.1. Основные принципы организации объектно-ориентированной базы данных

I 1.2.1.1. Идентификация объектов

1.2.1.2. Структура объекта

1.2.1,З.Операции

1.2.1.4. Временные характеристики и механизм именования объектов

1.3. Объектная Модель

1.3.1,Основные понятия

1.3.2. Спецификация и реализация типов

1.3.3.Подтипы и наследование поведения

1.3.4. Наследование состояния 29 1.4 Примеры фреймов разработки

1.4.1 ЕТ++ SwapsManager (Менеджер обмена)

1.4.2 ITHACA

1.4.3 San Francisco

2. ОПИСАНИЕ МАТЕМАТИЧЕСКОЙ МОДЕЛИ 32 2.1. Введение

2.2. Основы алгебраического подхода

2.2.1. Классы объектов

2.2.1.1. Структура Классов

2.2.1.2. Поведение классов

2.2.1.2.1. События

2.2.1.2.2. Методы классов

2.2.1.2.3. Операции над классами

2.2.2. Механизм наследования

2.2.3. Множественное наследование 40 2.4 Агрегация

3. РЕАЛИЗАЦИЯ ФРЕЙМА РАЗРАБОТКИ

3.1. Концептуальная модель Фрейма разработки

3.2 Класс уровня взаимодействия данных (FWCursor)

3.2.1. Определение параметров и Методов Класса "FWCursor"

3.2.1.1. Параметры класса "FWCursor"

3.2.1.2. Методы класса "FWCursor"

3.3. Объекты предметной области (Business Objects)

Класс среды данных «FWDataEnvironment» 51 3.3.1. Определение параметров и методов класса FWDataEnvironment "

3.3.1.1 Параметры класса " FWDataEnvironment "

3.3.1.2 Методы, операции и события класса "FWDataEnvironment"

3.4. Интерфейсный уровень

3.4.1. Атрибуты класса "AForm"

3.4.2. Функции класса "AForm"

3.4.3. Атрибуты и Функции класса формы для входных данных "DataentryForm"

3.4.4. Регистрационная Экранная Форма (Login Form - "Fwloginform")

3.5. Библиотека классов Фрейма разработки 64 3.5.1. Классы Конфигурирования Среды

3.5.1.2. Параметры и Функции класса "AppEnv"

3.5.1.3. Класс "DataSessionEnv" 69 3:5:2. Классы для Совокупности 70 3.5.2.1. Класс "FWColIection"

3.6. Взаимодействие классов фрейма разработки

3.6.1 Взаимодействие классов "dataentryform" и "fwdataenvironment"

3.6.2 Взаимодействие классов "Dataentryform" и "FWColIection"

3.6.3 Взаимодействие классов "Fwdataenvironmenf'H "DataSessionEnv"

3.6.4 Описание Основных операций фрейма разработки

3.6.4.1. Операция "SaveO"

3.6.4.2. Операция "New" 80 3.6.4:3. Операция "DeleteQ"

3.6.4.4. Операция "EditO" 84 3.6.4:5. Операция "UnDoO"

4. СЛУЖБЫ ФРЕЙМА РАЗРАБОТКИ

4.1. Служба безопасности

4.1.1. Функции модуля безопасности

4.1.2. Защита элементов,не принадлежащих объектно-ориентированной среде

4.2. Служба сообщений

5. ДЕМОНСТРАЦИОННОЕ ПРИЛОЖЕНИЕ 98 5.2. Создание демонстрационного приложения

5.2.1. База данных демонстрационного приложения

5.2.2. Бизнес-классы демонстрационного приложения

5.2.3. Пользовательский интерфейс демонстрационного

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

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

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

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

Цель работы: Основной целью диссертационной работы является создание методологии построения специализированной интегрированной программной среды, обеспечивающей увеличение производительности процессов проектирования, разработки и реализации приложений для автоматизации решения информационно-расчетных задач. Кроме этого предусматривается выбор формальной математической теории, которая позволила бы адекватно описать модель упомянутой выше специализированной интегрированной среды •разработки, а также возможность проведения исследований свойств модели. Для программной реализации поставленных задач использована программная среда, основанная на средствах объектно-ориентированной СУБД Visual FoxPro.

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

1. изучить стандартные средства объектно-ориентированных баз данных;

2. изучить механизм так называемых паттернов проектирования (Design Patterns);

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

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

5. построить приложение в области информационно-расчётных задач на* основе предложенного фрейма разработки с целью демонстрации и оценки* адекватности предлагаемого множества абстрактных классов, образующих функциональный базис фрейма.

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

Научная новизна результатов:

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

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

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

Практическая ценность результатов: Расширение реляционной модели путем включения аппарата фреймов обеспечивает процесс эффективного построения и упорядочения иерархии абстракций при проектировании и разработке приложений из области информационно-расчетных задач. Уровни абстракций, получаемые при этом, соответствуют степеням специализации разрабатываемого приложения и позволяют разработчику адекватно выделять обобщающие аспекты различных частей приложения на каждом уровне. Такой подход уменьшает вероятность появления в разрабатываемом проекте дублирующих компонент и исключает в идеале необоснованную избыточность разрабатываемого проекта. С другой стороны, этот подход, предусматривающий адекватную структуризацию процесса разработки и проектирования приложения, оказывается полезным для повторного использования созданных при этом компонент в практической разработке других подобных приложений. I

На защиту выносятся:

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

2. Формализованные средства для адекватного описания спецификаций классов, составляющих фрейм разработки.

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

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

Заключение диссертация на тему "Интегрированная среда разработки для информационно-расчётных задач"

ЗАКЛЮЧЕНИЕ

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

При решении поставленных в диссертационной работе задач предложены адекватные' средства формализованного описания модели на основе аппарата алгебраических спецификаций вместе с операциями теории категорий для эффективного представления внутренней структуры классов объектов и отношений между ними.

В диссертационной работе решены следующие задачи:

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

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

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

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

107

Библиография Иссам Мустафа Ибрагим, диссертация по теме Математическое моделирование, численные методы и комплексы программ

1. Adair, D. (1995а). Building Object-Oriented Frameworks Parti // AlXpert online,February-1995,http://www.developer.ibm.com/library/aixpert/feb95/feb95toc.html>

2. Ader M., Nierstrasz O., McMahon S., Miiller G., Profrock A-K.: The ITHACA Technology: A Landscape for Object-Oriented Application Development. In: Proc. Of ESPRIT'90 Conference, pp. 31-51. Kluwer Academic Publishers, 1990.

3. Beck, K. and Johnson, R. 1994. Patterns Generate Architectures. Proceedings of ECOOP 94.139-149.

4. Cline M.P. Pros and Cons of Adapting and Applying Patterns in the RealWorld // Communications ofthe ACM. October 1996 , vol.39(10). - P. 47-49.

5. DeLoach, S. A., Hartrum, Т. C. A theory-based representation for object oriented domain models // IEEE Transactions on Software Engineering, Vol.26, No. 6, 2000, P.500-517.

6. Eggenschwiler Т., Gamma E.: ET++ SwapsManager: Using Object Technology in the Financial Engineering Domain. In: Proc. of OOPSLA^92, ACM SIGPLAN

7. Notices, Vol. 27, No. 10, 1992, pp. 166-177: ' •

8. Eroehlich, G., Hoover, H.J., Liu L. and Sorenson, P.G. Hooking into Object-Oriented Application Frameworks // Proceedings of the 19th International Conference on Software.Engineering, Bostonj May 1997, P. 491-50L '

9. Fugini M., Nierstrasz.O., Pernici В.: Application Development Through Reuse: The ITHACA Tools Environment. ACM SIGOIS Bulletin, vol. 13, no. 2, August 1992, pp. 38-47.

10. Gamma E., Helm R., Johnson R., Vlissides J. Design Patterns: Elements of Reusable Object-Oriented Software. // Reading Mass., Addison-Wesley, 1995.

11. Garry Froehlich, H. James Hoover, Ling Liu, Paul Sorenson. "Handbook of Object Technology", CRC Press, 1998.

12. IBM Inc.: "IBM Shareable Frameworks.", http:// www.softmall.ibm.com/ sf/overview.html., August 1996.

13. IBM Inc.: "IBM Shareable Frameworks Technical Overview." http://www.softmall.ibm.com/ sf/ techov.html. October 1996.

14. M. Fontoura, W. Pree, B. Rumpe; "The UML Profile for Framework Architectures", Addison Wesley, 2001, 240 pages.

15. Navathe, Elmasri; "Fundamentals of database systems", third edition, Addison Wesley, 2000, 917 pages.

16. Pree W. Design patterns for object-oriented software development. // Reading (Mass.): Addison-Wesley,1995. — 268p.

17. R.G.G. Gattell, Douglas K. Barry. The Object Data Standard: ODMG 3.0// Morgan Kaufmann Publishers, San Francisco, California, 2000.

18. Schmidt D.C., Fayad M., Johnson R.E; "Introduction to Software Patterns", CACM, 1996, volume 39(10): 37-39.

19. Scott A. DeLoach, Thomas G. Hartrum, "A Theory-Based Representation for Object-Oriented Domain Models", IEEE transactions on. software engineering, vol. 26, no. 6, June 2000.

20. Srinivas Y.V. , "Algebraic specifications for domains in software development and maintenance", Communications of the ACM, v.33 n.6, June 1990, P.658-667.109/

21. Wolfgang Pree; "Design PatternsMbr Object Oriented Software Development", Addison-Wesley, Reading, Massachusetts, 1995, 268 pages.

22. Y.V. Srinivas, "Category Theory Definitions and Examples," Technical Report TR 90-14, Dept. of Information and Computer Science, Univ. of California at Irvine, Feb. 1990.

23. Y.V. Srinivas, "Algebraic Specification: Syntax, Semantics, Structure," Technical report TR 90-15, Dept. of Information and Computer Science, Univ. of California at Irvine, June 1990.