logo
Bolshakov_Poyasnitelnaya_zapiska

2.3.1 Описание логической структуры

Диаграмма пакетов системы приведена на рисунке 2.13. Анализ концептуальной модели и вариантов использования позволяет выделить следующие компоненты.

Рисунок 2.13 – Диаграмма подсистем

Компонент Platform configuring призван сконфигурировать платформу Eclipse в отдельное запускаемое десктоп-приложение. Компоненты из пакета Project Management необходимы для проектно-документной организации файлов и входят в библиотеку Ecipse. SISD представляет собой пакет системы СИПР. Updating основан на платформе Provisioning platform p2 и позволяет производить обновления. ProgramEditors включает в себя три редактора: редактор схемы оборудования, редактор диаграммы задач и текстовый редактор кода программы. Пакет Debugging призван реализовать инструмент отладки, имея доступ к пакету моделирования и графических редакторов. Все основные компоненты имеют соответствующие графические представления из пакета GUI. Интеграция графических представления происходит посредством использования окон, меню и вкладок.

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

2.3.1.1 Модель графического редактора

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

Рисунок 2.14 – Диаграмма классов модели графического редактора

Класс Elem является базовым элементом любого класса модели и инкапсулирует функциональность по организации подписки на модели, предоставляя интерфейсные методы addPropertyChangeListener, removePropertyChangeListener, firePropertyChange.

Класс NodeElem является базовым классом для объекта схемы, который может иметь свои координаты, размеры, имя и соединяться стрелками с другими объектами. Класс содержит методы, позволяющие закрепить на фигуру конец или начало стрелки (addConnection, removeConnection), а также содержит код по установке всех свойств в методе setPropertyValue, принимающем решение о том, какой свойство необходимо установить и какой для этого из дополнительных методов вызвать (setSize, setName, setLocation).

Класс ConnectionElem содержит информацию и методы для создания соединения (стрелки), также имеет свойство и соответствующие методы для установки типа линии (сплошная или пунктирная).

Класс ContainerElem предоставляет методы для добавления и удаления потомков (согласно иерархической структуре): addChild, removeChild, getChildren.

Классы TaskElem и PackageElem сходны по функциональности, объявляются контейнерами, и хранят лишь код по предоставлению картинки и текстового представления о фигуре. Аналогичную функциональность предоставляют классы модели TaskPropertyElem и PackagePropertyElem.

Исходный код контролера ContainerShapeEditPart.