Рисунок 2.7 – Диаграмма объектов в системе «Расчёт колебательных систем»
Итак, мы разработали статическую структуру нашего ПМК, теперь необходимо разработать поведение нашего ПМК, для этого необходимо рассмотреть представление взаимодействия.
Объекты осуществляют некоторое поведение путём взаимодействия между собой Представление взаимодействия является более общим и всеобъемлющим взглядом на объекты. Эта точка зрения на систему моделируется при помощи понятия кооперации. Кооперация – это описание нескольких объектов, которые взаимодействуют между собой для реализации определённого поведения. Статическое представление модели описывает присущие классу свойства. Например, связь имеет два указателя на объекты, которые связывает. Кооперация же описывает те свойства, которые конкретный экземпляр класса получает в результате участия в кооперации. У кооперации есть два аспекта – структурный и поведенческий. Поведенческий аспект кооперации описывает обмен сообщениями, между объектами, играющими в ней определённые роли [37]. Такой обмен сообщениями называется взаимодействием. Взаимодействие моделирует выполнение операции, варианта использования или другой поведенческой сущности. Сообщение представляет собой одностороннюю коммуникацию между двумя объектами в виде передачи управления от отправляющего объекта к получающему. Последовательность сообщений может быть показана на двух видах диаграмм: диаграмме последовательности, которая заостряет внимание на временной составляющей обмена сообщениями, и диаграмме коопераций, которая обращает внимание на структурные отношения между объектами. Для реализации мною выбрана диаграмма последовательностей.
Построение диаграммы последовательностей для подсистемы «Графический редактор»
Рассмотрим взаимодействие системы с пользователем, когда пользователь выполняет построение моделируемой системы, вводя в систему массы и связи. Во взаимодействие вступает внешняя сущность «Пользователь», класс главного окна приложения в роли Redactor, класс STDPanel в роли поля ввода, классы PointMassa и Support в роли соединяемых масс. Пользователь выполняет следующие действия. Сначала выбирает, какой тип массы он хочет создать, для этого необходимо нажать соответствующий переключатель на панели редактора; потом выполнить щелчок на поле ввода (STDPanel), это событие вызовет конструктор создания массы соответствующего вида.
На рисунке 2.8 изображена диаграмма последовательностей для создания двух масс.
Рисунок 2.8 – диаграмма последовательностей для создания двух масс в графическом редакторе
Теперь построим диаграмму для создания пользователем связи. Диаграмма изображена на рисунке 2.9.
Рисунок 2.9 – диаграмма последовательностей для создания связи между двумя элементами
Для того, что бы создать связь между элементами пользователь должен выполнить следующие действия: на панели редактора установить флаг добавления связи; потом выделить две связи, для которых будет создана связь и когда пользователь отпустит кнопку мыши над второй массой, будет создана связь.
Рассмотрим взаимодействие пользователя с подсистемой «Расчёт колебательных систем». Основная задача этого приложения – выполнить расчёт параметров модели. Последовательность действий изображена на рисунке 2.10.
Рисунок 2.10 – диаграмма последовательностей для процесса расчёта модели
При расчёте параметров модели выполняется следующее:
Класс Model вызывает для каждой связи метод CalcForce(p), этот метод рассчитывает с какой силой связь действует на соединяемые массы;
После того как рассчитаны реакции всех связей, Model вызывает для каждой массы метод Calculate. Этот метод, зная, какая сила, действует на массу и значение этой массы решает задачу Коши методом, выбранным пользователем с заданными параметрами. Таким образом, определяется положение каждой массы на следующем шаге, процесс продолжается до тех пор, пока не закончится время моделирования, установленное пользователем.
Структура нашего комплекса представлена двумя блоками модулей, первый блок – блок модулей графического редактора, его задача принять от пользователя данные о системе в виде графа, записать информацию на диск. Назначение второго – считать данные и по ним построить модель системы выполнить расчёт параметров модели во времени с параметрами, которые укажет пользователь.
В состав первого блока входят следующие модули:
Управляющий модуль – управляет работой графического редактора. Реагирует на действия пользователя и вызывает методы экземпляров соответствующих классов.
Обслуживающая часть представлена блоком модулей, в которых описаны классы графического редактора.
Модуль «Tprocess» - в этом модуле описан класс Massa. Этот класс изображает узел системы, управляющий модуль создаёт экземпляры потомков класса Massa PointMassa и SupportMassa и записывает их в массив items.
Классы PointMassa и SupportMassa описаны в модулях PointMassa и SupportMassa.
Модуль «Link» - в модуле описан класс Link,управляющий модуль создаёт экземпляры класса, записывая их в массив links.
Модуль «relation» - в модуле описан класс relation.
Модули «Spring», «Screw», «Dempfer» и другие модули описывающие потомков класса relation, экземпляры этих классов создаются при создании экземпляра класса Link.
Управляющий модуль так же выполняет запись информации в файл.
В состав второго блока входят следующие модули:
Управляющий модуль – управляет работой программы расчётов.
Модуль «Model» - здесь описан класс Model, создаётся экземпляр класса. Модуль «Model» так же играет управляющую роль, так как управляет работой таких модулей как PointMassa и SupportMassa, и всеми модулями описывающими классы – потомки класса Relation.Так же считывает информацию о модели с жесткого диска.
Обрабатывающая часть.
Модули PointMassa и SupportMassa – содержат описание классов PointMassa и SupportMassa, отвечают за редактирование параметров конкретного элемента, представления выходной информации в виде графиков и визуализации.
Модули «Spring», «Screw», «Dempfer» и другие модули описывающие потомков класса relation, отвечают за редактирование параметров конкретного элемента, представления выходной информации в виде графиков и визуализации.
Модульная структура представлена на рисунке 2.11.
Рисунок 2.11 – Модульная структура проектируемого ПМК
Аппаратное обеспечение ПМК.
Для функционирования ПМК необходим следующий минимальный состав аппаратных средств:
- процессор Intel Pentium II и выше;
- минимум 64 MB ОЗУ;
- монитор SVGA, Видео карта.
Основные требования накладывает программа расчёта колебательных систем, так как для каждой массы на каждом шаге решается система ДУ, то при достаточно большом количестве масс в моделируемой системе, при использовании ЭВМ с меньшей производительностью значительно увеличатся затраты времени на выполнение моделирования.
Программное обеспечение ПМК.
Для функционирования ПМК необходима операционная система Windows 98, NT, 2000, XP. Приложения ПМК, графический редактор и программа расчёта колебательных систем функционируют независимо, поэтому на жестком диске могут располагаться в различных местах. Графический редактор на диске занимает 749056 байт. Программа расчётов параметров колебательных систем 1695546 байт.
Выходные данные.
Выходными данными в нашем ПМК являются параметры моделируемой системы: скорость, сила, перемещение для подвижных масс, сила для неподвижных, сила для связей. Выходные данные представляют массив (от начального момента времени до конечного момента времени с заданным шагом).
Между приложениями в ПМК предусмотрен обмен информацией с помощью ini – файла.
2.5 Разработка рабочего проекта ПМК
Обоснование выбора средств разработки.
В качестве средств разработки выбрана среда разработки Delphi 6.0. Выбор данной среды разработки обусловлен широкой функциональностью, распространенностью и хорошей документированностью. Delphi 6.0 в сравнении с другими аналогичными средствами визуальной разработки и поддерживающими объектно - ориентированую модель, является средой, которая наиболее быстро позволяет разрабатывать приложения.
Итак, согласно разработанной нами схеме модулей ПМК теперь приступим к непосредственной разработке модулей.
Управляющий модуль графического редактора, главный модуль приложения, который выполняет всю работу посредствам вызова вспомогательных модулей, так же этот модуль описывает главное окно приложения. В модуле описан так же вспомогательный класс ItemList – список элементов и класс linkList – список связей. Эти классы используются для описания списка выделенных объектов. На этом окне расположен элемент STDPanel (поле ввода), расположены элементы ToolBar содержащие кнопки управления. Окно реагирует на следующие события:
FormCreate (создание окна) – при создании окна динамически формируется панель, на которой установлены переключатели типов масс. Создаются экземпляры классов linkList и ItemList.