Мегаобучалка Главная | О нас | Обратная связь


Разработка логической структуры ПМК



2020-02-03 224 Обсуждений (0)
Разработка логической структуры ПМК 0.00 из 5.00 0 оценок




 

Наш программный комплекс будет проектироваться как комплекс двух программ. Задача первого – обеспечить ввод от пользователя информации о моделируемой системе в виде графа, записи её на диск. Задача второго считать информацию с диска построить по этим данным систему и промоделировать её работу. По результатам моделирования необходимо построить графики, выдать отчёты и т. д. Разработку логической структуры будем производить с помощью языка UML (Unified Modeling Language).

UML – Унифицированный язык моделирования, язык визуального моделирования для решения задач общего характера, который используется при определении, визуализации, конструировании и документировании артефактов программной системы. UML состоит из четырёх частей, описывающих различные аспекты системы: статические, динамические, организационные и относящиеся к окружению [37].

Разработку логической структуры начнём с представления использования, диаграмма, иллюстрирующая это представление – диаграмма использования. Представление использования описывает поведение системы с точки зрения пользователя. Деятельность разбивается на транзакции, которые называются вариантами использования (use cases). Вариант использования описывает взаимодействие системы с одним или несколькими действующими лицами (actors), в виде последовательности сообщений [38]. В понятие действующее лицо входят люди, компьютерные системы и процессы. Актёр – это идеализированная внешняя сущность, вступающая во взаимодействие с системой, подсистемой, или классом. Каждый актёр вступает во взаимодействие с одним или несколькими вариантами использования. Вариантом использования называется блок внешне наблюдаемой деятельности системы. Вариант использования описывает некоторую часть поведения системы, не вдаваясь при этом в особенности её внутренней структуры. В нашей модели выделим одного актёра – «Пользователь». Актёр взаимодействует с двумя системами: «Графический редактор» и «Расчёт колебательной системы». Разработанная диаграмма использования представлена на рисунке 2.4.

 
Подсистема «Графический редактор»


 

     
 

 

 


Рисунок 2.4 – диаграмма использования


Описание взаимодействий пользователя с системой «графический редактор»:

«Открыть проект» - загрузка с диска ранее сохранённого проекта

«Редактирование проекта» - редактирование проекта, включает следующие взаимодействия: «Добавить массу» - создаёт в проекте ещё одну массу, «добавить связь» - создание связи, «Удалить элементы» - удаляет элементы из проекта, «Копирование» - копирует и добавляет в систему элементы.

«Сохранение» - сохранение проекта.

«Справка» - справочной информации по системе.

Описание взаимодействий пользователя с системой «расчёт колебательных систем»:

«Загрузить модель» - загружает модель с диска.

«Редактировать модель» - редактирование модели.

«Визуализация» - расчёт модели, визуализация работы модели, вывод графиков.

«Установить параметры моделирования» - Установить параметры моделирования.

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

Разработка статического представления модели ПМК.

Статическое представление – основа языка UML [37]. Статическое представление модели отражает структуру объектов. В статическое представление входит всё, что касается традиционных структур данных, а так же операции с этими данными. И операции и данные разбиваются на классы. Статическое представление описывает сущности обладающие поведением, в виде отдельных элементов модели, но при этом не представляет информацию о динамическом поведении этих сущностей. Статическое представление описывается диаграммами классов и объектов.

Разработка диаграммы классов для графического редактора.

Графический редактор должен обеспечить ввод информации от пользователя и сохранение её в файл для использования в программе расчётов колебательных систем. Как мы условились выше, колебательная система будет представляться в виде неориентированного графа, где каждая вершина соединяется с другой только одной связью, но в модели динамической две массы могут соединяться несколькими связями. Представлять графически два узла соединёнными несколькими связями неудобно для пользователя.В этом случае необходимо бы было изображать достаточно большие узлы, что бы можно было различить несколько связей, соединяющих эти узлы, то есть необходимо, что бы за каждой связью, которая графически изображает связь между массами, был закреплён список из связей которые соединяют эти узлы. В связи со всем выше сказанным была разработана диаграмма классов для графического редактора(см. рисунок 2.5).


                     
 
StdPanel
 
 
ShowWindow() SetParam() GetParam()
 
ShowWindow()
 
 
“Usage”

 


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

 

Итак, в данном представлении были выделены следующие базовые классы:

Панель (StdPanel) – собственно владелец всех объектов, на ней отрисовываются все элементы модели.

Масса (Massa) – вершина нашего графа, который представляет модель. Содержит одно свойство: List:StringList – список строк, в это свойство заносится все наименования и значения параметров объекта. Так же класс содержит три виртуальных метода: ShowWindow() – вызов диалогового окна для ввода параметров объекта, SetParam() – установка в полях ввода диалогового окна параметров объекта (установить параметры), GetParam() – записать информацию из диалогового окна в параметры объекта.

Связь (Link) –графически изображает связи между массами. Класс содержит свойства: First,next:massa – массы которые соединяет данная связь. Метод ShowWindow() вызывает диалоговое окно для ввода параметров связи.

Связь (Relation) – класс описывает абстрактный элемент соединяющий эти массы физически, содержит следующие свойства: Pram:StringList – список параметров, ClassName:String – имя класса (информация необходима для приложения расчётов). ClassName:String – имя объекта. Так же класс содержит три виртуальных метода: InitWindow – вызов диалогового окна для ввода параметров объекта, InitData – установка в полях ввода диалогового окна параметров объекта (установить параметры), GetData – записать информацию из диалогового окна в параметры объекта.

Эти классы связаны между собой следующими отношениями:

Класс StdPanel и классы Massa и Link связаны отношением зависимости, т. е. Massa и Link зависят от класса StdPanel, он является владельцем всех экземпляров данных классов. Классы Massa и Link связаны отношением ассоциации, класс Link содержит свойства типа Massa. Класс Relation используется классом Link (свойство Relations). Остальные классы наследуются от базовых: PointMassa и SupportMassa – наследованы от класса Massa. Отличие от базового класса в том, что классы потомки по-своему реализовывают методы ShowWindow(), SetParam(), GetParam(). Класс потомок знает свой набор параметров (list – определяется в конструкторе класса потомка) и знает, как заносить и извлекать данные из этого списка. Классы Spring, Screw, Dempfer, DryFriction, Hydrocylinder – наследованы от класса Relations. Эти классы описывают реальные объекты, соединяющие массы (пружина, резьбовое соединение, и т. д.), аналогично классам PointMassa и SupportMassa вышеописанные классы так же знают набор своих параметров и как с этими параметрами работать. Таким образом, данная диаграмма классов реализовывает концепцию, что за каждой связью, которая графически изображает связь между массами(Link), был закреплён список из связей, которые соединяют эти узлы(Relations). Хочу отметить, что при разработке приложения «графический редактор» конкретные свойства элементов не задаются, классы имеют только одно свойство – список параметров, что сделано с целью возможности применения данного приложения в других предметных областях

Разработка диаграммы классов для подсистемы «Расчёт колебательных систем»

Программа «Расчёт колебательных систем» должна выполнять следующее – считать данные о системе с диска или принять их от пользователя (должна иметь свой диалог ввода). Выполнить расчёт параметров элементов модели. Изобразить на экране визуально работу моделируемой системы, вывести результаты в виде графиков и файлов данных. Расчёт должен выполнятся методом, выбранным пользователем, с шагом заданным пользователем.

Выделим следующие классы:

Model – Модель, в этом классе будет записаны параметры моделирования системы, t: Tfloat – время моделирования, ht: TFloat - шаг интегрирования, e: Tfloat – точность,CalcMethod: Tmethod – метод интегрирования. Кроме того этот класс является управляющим, то есть управляет работой других классов. Класс содержит один метод, который вызывает диалоговое окно модели, в этом окне можно будет редактировать параметры модели, изменять свойства элементов модели, как мы условились выше, модель будет представлена списком масс и списком связей, выделяем ещё два базовых класса Massa и Relation. Класс Massa описывает массы в нашей системе, класс имеет следующие свойства: X0,Y0:Float – координаты центра масс;H,W:Float – высота и ширина (любой элемент структурно представляем в виде прямоугольника), f – сила, действующая на данный элемент. Класс имеет виртуальный метод Calculate(). Этот метод выполняет расчёт следующего положения в пространстве для данного элемента. Известна сила, действующая на элемент и предыдущее положение элемента в пространстве, далее решается система дифференциальных уравнений с параметрами заданными в классе Model. От данного класса наследованы следующие классы: PointMassa, SupportMassa. Класс SupportMassa описывает неподвижные элементы модели, отличие от базового в реализации класса Calculate(). Класс PointMassa (сосредоточенная масса) описывает подвижные элементы системы, кроме наследуемых свойств имеет свойства M,v0:float – масса и начальная скорость. Следующий базовый класс relation (связь) – класс описывает элементы связи, класс имеет свойства F: Tfloat – сила с которой она действует на соединяемые массы L0,L: Tfloat – длинна в свободном состоянии, и текущая длинна, Eelast: TFloat; - модуль упругости pm1, pm2:Tobject – указатели на соединяемые массы, c: Tfloat – жесткость. Класс имеет виртуальный метод CalcForce(P) – метод рассчитывает силу, с которой связь действует на соединяемые элементы, рассчитывается это следующим образом, через указатели pm1 и pm2 известны координаты центров масс и размеры соединяемых масс, можно рассчитать длину связи, зная длину связи и длину связи в свободном состоянии, можно посчитать силу с которой она действует на соединяемые связи. От класса relation наследован класс Spring (Пружина), кроме наследованных свойств имеет свойство d: Tfloat – диаметр. По своему реализует метод CalcForce. От класса spring наследованы следующие классы:

SpaceSpring (Пружина с зазором) отличается от базового класса реализацией метода CalcForce.

HydroCylinder (гидроцилиндр) имеет кроме наследуемых следующие параметры: p: Tfloat – давление, SHmax:Tfloat - максимальный ход,SH:Tfloat - ход при кодором давление максимально, по своему реализует метод CalcForce.

Cutt (разрезаемая заготовка) имеет кроме наследуемых следующие параметры: Pr: Tfloat – усилие резания, tv: Tfloat – коэффициент внедрения, по своему реализует метод CalcForce.

Dempfer (демпфер) кроме наследуемых имеет свойство Kf: Tfloat – коэффициент демпфирования, по своему реализует метод CalcForce.

Screw (резьбовое соединение) свойства: Fst:Tfloat - статическая сила действующая в начальный момент времени, z:Tfloat – затяжка, Cd, Cb: Tfloat - жесткость деталей и болта, Fd, Fb: Tfloat - силы деталей и болта, Lmax: Tfloat - длина болта, при которой стык раскрывается

StaticForce (статическая сила) свойство Ft: Tfloat – величина силы.

От класса StaticForce наследован класс GeneratorForce. Класс имеет свойства: Am: Tfloat – амплитуда,W: Tfloat – частота, Fi: Tfloat - начальная фаза, значение свойства Ft изменяется по синусоидальному закону.От класса GeneratorForce наследован класс ExpForce значение силы меняется по закону експоненты. От класса Dempfer наследованы классы:

DryFriction (сухое трение), отличается реализацией метода CalcForce.

Space (пространство), имеет свойство Kf: Tfloat – коэффициент восстановления.

От метода Screw наследован класс Butt (поставка или стык), отличается реализацией метода CalcForce.

Следует отметить, что хоть обе части нашего ПМК и оперируют одними и теми же классами (масса, связь), но диаграммы обеих программ отличаются, тат как для графического редактора в принципе, не важны физические свойства конкретных элементов. Поэтому, к примеру, дерево классов, описывающее класс связей в графическом редакторе достаточно просто (каждый класс отличается только списком конкретных параметров). На диаграмме же классов для программы расчётов эта часть имеет разветвлённую структуру, это обусловлено тем, что здесь нас интересуют конкретные физические свойства элементов и то, как этот элемент влияет на модель (реализация метода CalcForce()) Например, от класса Spring (пружина) наследован класс SpaceSpring (пружина с зазором).Диаграмма классов для программы расчётов колебательных систем приведена в приложении А. В данных диаграммах описаны лиш основные аспекты функционирования данных подсистем. Для графического редактора расматривался только аспект представления информации о системе в виде графа и передачи этой информации программе расчётов колебательных систем. Для программы расчётов рассматривался только расчёт параметров системы во времени. Такие аспекты как интерфейс пользователя (как сруктурно будет изображен узел, связь),взаимодействие с системой расчёта для редактора и такие аспекты как визуализация работы моделируемого обьекта, вывод графиков будут расмотрены в последующих разделах. Теперь приступим к разработке диаграммы обьектов.

Статическое представление модели определяет набор объектов, значений и связей могущих сущесвовать в одним снимке системы [38]. В принцепе возможной конфигурацией модели является любая совместимая со статическим представлением комбинация объектов и связей. Диаграмму объектов ещё называют диаграммой “снимка”. Диаграмма объектов изображает всю систему целиком в конкретный момент времени. Эту диаграмму будем использовать в качестве примера системы для иллюстрации сложности структуры данных. Изобразим пример подсистемы “Графический редактор” на диаграмме объектов которая приведена на рисунке 2.6.


Рисунок 2.6 – диаграмма объектов для «системы графический редактор»

 

На диаграмме объектов система изображена в момент когда в системе создано две массы неподвижная опора (Item[1]:SupportMassa) и сосредоточенная масса (Item[2]:PointMassa), эти элементы графически соединяет связь (Links1[1]:Link) которая указывает на два объекта типа (relations[1]:Spring) и (relations[2]:Dempfer). Которые фактически соединяют эти две массы. Список параметров инициируется при создании объектов. Прежде чем приступить к следующему представлению опишем те же объекты в системе «Расчёт колебательных систем». Данная диаграмма поможет нам увидеть чёткое различие в представлении данных в этих двух системах. Диаграмма объектов, иллюстрирующая состояние той же модели в программе расчётов представлена на рисунке 2.7.


 


Рисунок 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. Этот метод, зная, какая сила, действует на массу и значение этой массы решает задачу Коши методом, выбранным пользователем с заданными параметрами. Таким образом, определяется положение каждой массы на следующем шаге, процесс продолжается до тех пор, пока не закончится время моделирования, установленное пользователем.

 



2020-02-03 224 Обсуждений (0)
Разработка логической структуры ПМК 0.00 из 5.00 0 оценок









Обсуждение в статье: Разработка логической структуры ПМК

Обсуждений еще не было, будьте первым... ↓↓↓

Отправить сообщение

Популярное:
Почему двоичная система счисления так распространена?: Каждая цифра должна быть как-то представлена на физическом носителе...
Как вы ведете себя при стрессе?: Вы можете самостоятельно управлять стрессом! Каждый из нас имеет право и возможность уменьшить его воздействие на нас...
Как построить свою речь (словесное оформление): При подготовке публичного выступления перед оратором возникает вопрос, как лучше словесно оформить свою...



©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (224)

Почему 1285321 студент выбрали МегаОбучалку...

Система поиска информации

Мобильная версия сайта

Удобная навигация

Нет шокирующей рекламы



(0.01 сек.)