Для чего нужна система DERSA. Краткий ответ - для проектирования, разработки и реинжиниринга объектно-ориентированных приложений любой природы. Рассмотрим систему клиент-сервер. Структура клиентской части как правило определяется платформой, на которой ведётся разработка. И там всё более-менее формализовано и разложено по полочкам. Клиентская часть состоит обычно из набора форм, которые или отображают информацию, или пересылают введённую пользователем информацию на сервер. При разработке клиентской части много внимания уделяется:
- красивому оформлению
- удобству работы
- интуитивной понятности интерфейса
Иначе обстоит дело с разработкой серверной части. Для огромного числа разработчиков "front-end" серверная часть - это всего лишь набор API для обслуживания разных форм. Но если при разработке приложения ориентироваться только на API, который оно обеспечивает, - ничего хорошего не выйдет. Наверняка все, кого заинтересовал проект DERSA, знакомы с принципами ООП. В многочисленных статьях на тему ООП подробно рассматриваются причины, по которым сложную систему жизненно важно делать как объектно-ориентированную. Но какую помощь может оказать сторонний разработчик ПО в построении объектно-ориентированной системы? Ведь набор объектов этой системы будет уникальным для каждого случая. Разумеется, у разработчика есть большой выбор объектно-ориентированных языков программирования. Но имея только компилятор - остаёшься наедине со сложносями представления связей внутри системы. Слишком много подробностей приходится держать в уме. И тут на помощь как раз и приходит такой инструмент, как DERSA. Автор этих строк ещё 20 лет назад познакомился с системами, помогающими визуализировать связи объектов системы с помощью ER-диаграмм Но все известные системы на момент появления "родителя" DERSA, программы Foxtail, написанной А.Шкварунцом в 1997 г., обладали двумя существенными недостатками:
- предоставляли возможность отобразить связи на диаграмме и даже создать для них таблицы в БД, но не позволяли привязать к объекту какие-то его методы
- не позволяли вносить изменения в логику превращения диаграммы во что-то иное (например таблицу БД), эта логика была жёстко вшита в ER-инструмент
Основная рабочая единица DERSA - сущность (ENTITY). Сущности собраны в дерево. Сущности отличаются между собой в первую очередь тем, к какому стереотипу (STEREOTYPE) они относятся. Сущности, произведённые из одного стереотипа, отличаются между собой набором атрибутов. Чтобы добавить сущность в дерево, нужно перетащить (Drag and Drop) стереотип из набора стереотипов на дерево сущностей или воспользоваться командой Insert из контекстного меню дерева. Во втором случае после добавления новой сущности нужно обновить родительский узел, чтобы увидеть вновь созданную сущность. У сущностей есть атрибуты (ATTRIBUTE), которые можно увидеть и отредактировать, выбрав команду Properties в контекстном меню. Между сущностями можно установить отношения (RELATION). Простейшая система может быть построена из сущностей Entity (это уже название стереотипа, что создаёт некоторую путаницу) , Attribute и отношений между сущностями, Relation. Для удобства организации дерева разные ER-системы можно складывать в разные папки (Package).
Как работать с DERSA.
- 1 - Зарегистрироваться.
- 2 - Войти в систему с полученными логином/паролем.
- 3 - Выбрать работу в общем проекте или персональном проекте. Для выбора нажать на имя пользователя (отображается темно-зеленым цветом справа вверху). Выбрать "работа в общем проекте" true/false (текстом). После выбора обновить страницу.
- 4 - Проектировать свою систему или тренироваться на общем проекте. Управление производится через контекстные меню (нажатие правой кнопки мыши) и перетаскивание узлов дерева на диаграмму при редактировании диаграммы. Выход из режима редактирования диаграммы - снятие флажка Diagram edit mode. Чтобы задать связь (RELATION), нужно выбрать диаграмму (или создать новую диграмму), перетащить обе сущности на диаграмму, создать между ними связь на диаграмме и выйти из режима редактирования диаграммы с сохранением. Если потом обновить соответствующий узел дерева - созданная связь будет отображена и в дереве.