Событийно-управляемое программирование основывается на
множестве событий E={ e1, e2, … en } и множестве методов (процедур или функций ) P={ p1, p2, … pn }, запускаемых при активизации соответствующих событий . Более детально это можно выразить следующими соотношениями : e1 -> p1 , e2 -> p2 , … , en -> pn , где активизация события ei предусматривает запуск метода pi ( i=1..n ) . Примерами событий могут быть возникновение какой либо ошибки в процессе выполнении программ , выполнение определенного запланированного условия , выбор элемента меню , активизация командной кнопки , нажатие функциональной клавиши и т.п. . Для описания модели событийно-управляемого программирования идеально подходит теория CSP , представленная в разделе 2.6 .
Параллелизм предусматривает одновременную активизацию двух или более событий с параллельным запуском соответствующих методов .
Сохранение целостности базы данных является более характерным
для объектно-ориентированных СУБД и предусматривает наличие механизма , обеспечивающего целостность . Понятие целостности данных обычно трактуется как наличие специальных выделенных соотношений , являющихся инвариантными по отношению к любым допустимым преобразованиям базы данных . Если эта инвариантность нарушается , то говорят о нарушении целостности данных .
Визуальное программирование основано на визуальном представлении
объектов программирования , обеспечивая наиболее естественное
компъютерное отображение реальной среды . Использование визуальной формы представления данных может помочь пользователю
охватить , проанализировать и понять огромные информационные массивы , а также эффективно управлять ими .
Реализация объектно-ориентированных систем программирования , по сравнению с процедурно-ориентированными , является более сложной задачей , так как требуется создание так называемой интегрированной среды разработки , представляющей библиотеку сервисных программ для автоматизации процессов разработки , моделирования , программирования и отладки .
Переход от традиционного процедурного стиля программирования к объектно -ориентированному , который успешно преодолели многие программисты ведущих индустриальных государств , представляет принципиально новый шаг в направлении концептуального
программирования , сопоставимый по своей важности с переходом от машинно -ориентированного программирования к языкам высокого уровня . За время своего развития этот современный стиль программирования обогатился средствами обработки баз данных и визуального представления обрабатываемой информации . Существенное продвижение по пути к стандартизации , повышение производительности труда программистов ,возможность одновременного проектирования , разработки и реализации приложений - все это далеко не полный перечень преимуществ , предоставляемых объектно -ориентированными системами .
2.6.2. Visual FoxPro - пример объектно-ориентированной СУБД.
Visual FoxPro [ 7 ] представляет собой принципиально новую версию широко известной СУБД Microsoft FoxPro,которая может функционировать практически во всех версиях операционной системы WINDOWS .
Visual FoxPro обеспечивает совместимость с предыдущими версиями процедурно-ориентированной СУБД FoxPro, позволяя сравнительно просто переносить ранее созданные приложения в среду WINDOWS. Эта СУБД разработана в полном соответствии со стандартами фирмы Microsoft, что позволяет сравнительно легко обмениваться данными с другими приложениями WINDOWS. Кроме этого поддерживается доступ к наиболее популярным SQL-серверам баз данных - Microsoft SQL Server, ORACLE, INFORMIX и к другим , используя стандарт ODBC.
В настоящее время широко используются последние версии Visual FoxPro (6.0 , 7.0 , 8.0 ) .
В отличие от предыдущих версий система Visual FoxPro предлагает новый подход к программированию , известный как событийно -
- управляемое программирование, суть которого сводится к определению некоторого множества событий (Click-нажатие левой кнопки мышки , Load- момент загрузки объекта и т .п.), каждое из которых может быть связано с соответствующим программным модулем (методом), запускаемым при активизации соответствующего события . Основные принципы событийно -управляемого программирования наиболее полно реализуются при использовании объектно -
-ориентированной среды , когда элемент на экране, с которым манипулирует пользователь, имеет связь с объектом ,созданным программистом . Событийно - управляемая программа достаточно хорошо приспособлена к изменению внешней ситуации и позволяет программисту сравнительно просто добавлять новые средства обработки событий . Визуальные средства представления объектов ,
заложенные в Visual FoxPro , обеспечивают естественность зрительного восприятия объектов и позволяют существенно повысить эффективность
процессов проектирования , разработки , тестирования и отладки приложений .Другой важной особенностью объектно - ориентированной среды является возможность одновременного проектирования , разработки и реализации приложений , обеспечиваемая за счет соединения информационных , логических и алгоритмических связей в единое целое в рамках определяемого объекта обработки ,успешно избегая многих ошибок , возникающих при нарушении принципов адекватности между проектом и его реализацией . Более того , этот принцип позволяет успешно описывать постановку задачи на программирование средствами объектно-ориентированной СУБД .
Создание разветвленной и достаточно объемной интегрированной среды , обеспечивающей объектно - ориентированные , визуальные и событийно - управляемые средства программирования , безусловно является дорогим “удовольствием ”, за которое приходится расплачиваться большим расходом памяти , замедлением времени
работы приложений и , наконец , громоздкостью системы в смысле ее освоения . Последнее является наиболее уязвимым объектом критики сторонников традиционного процедурно - ориентированного программирования . Однако , необходимо иметь в виду , что грамотное использование всех перечисленных выше возможностей , позволяет существенным образом повысить производительность разработки программ и создавать в итоге высококачественный программный
продукт , удовлетворяющий соответствующим стандартам . Об этом свидетельствует богатый опыт разработки многих приложений объектно-ориентированных СУБД .С другой стороны переход от процедурно -
-ориентированной модели мышления к объектно - ориентированной -
- процесс достаточно долговременный и болезненный . Поскольку объектно-ориентированные системы , как правило , содержат в качестве собственного подмножества процедурно - ориентированную среду , многие программисты часто при переходе от процедурного способа программирования к объектно -ориентированному продолжают по инерции программировать по старому , не используя преимуществ объектно - ориентированной среды .
Процесс проектирования и разработки приложений в среде СУБД Visual FoxPro начинается с создания проекта (Project), являющегося главным составляющим разрабатываемого приложения . Механизм
развертывания последующих этапов разработки проекта определяется
следующей структурой :
PROJECT ( проект )
DATA ( базы данных )
DOCUMENTS ( документы )
FORMS ( экранные формы )
REPORTS ( формы вывода на печать )
CLASSES ( классы )
CODE ( программы и приложения )
PROGRAMS ( программы )
APPLICATIONS ( приложения )
OTHER ( другие объекты )
MENU ( меню )
TEXT FILES ( текстовые файлы )
База данных определяется структурой :
DATA
DCB-файлы ( контейнеры данных )
DBF - файлы (), входящие в состав
соответствующих контейнеров
FREE TABLES ( свободные таблицы : DBF-файлы, не входящие в
состав ни одного из контейнеров )
В отличие от предыдущих версий в СУБД Visual FoxPro введено понятие
контейнера данных (базы данных ), представляемого в виде структурированного DCB - файла, который включает в себя множество таблиц (DBF -файлов ) , связываемых друг с другом структурно -
-логическими отношениями вида "один к одному" , "один к многим" и "много к многим". Таблицы , входящие в состав контейнера данных,
называются связанными.Все остальные таблицы являются свободными .
В СУБД Visual FoxPro встроен эффективный механизма защиты
целостности баз данных , позволяющего автоматически контролировать и предотвращать нарушения структурных связей в базах данных при выполнении операций над базами данных . Этот механизм основывается на средствах , позволяющих устанавливать структурно - логические отношения между таблицами базы данных и определять специальные функции проверки (триггеры) для разрешения или запрета операций
удаления , вставки и модификации записей таблиц в зависимости от
определяемых условий .
Документы включают в себя экранные формы ( FORMS ) и формы для
вывода на печать (REPORTS).Создание каждого нового документа предусматривает как правило установление связи документа с соответствующими базами данных (DATA ENVIRONMENT) и заполнение документа различными объектами на основе встроенной или определяемой библиотеки классов объектов. Для каждого из объектов устанавливаются свойства (Properties), определяющие различные характеристики объекта (связи с полями таблиц , способ размещения на экране , и т .п.).Кроме этого с каждым объектом можно связать некоторое множество событий и запланировать вызов соответствующих подпрограмм (методов), запускаемых автоматически при возникновении тех или иных запланированных событий .Такая возможность позволяет реализовать принцип событийно-управляемого программирования (Event-Driven Programming), обеспечивающего существенное повышение эффективности технологии производства программ .
Класс объектов представляет из себя некий абстрактный объект , обобщающий свойства соответствующих однотипных объектов