Файл: Моделирование предметной области «Учет товаров» с помощью UML).pdf

ВУЗ: Не указан

Категория: Курсовая работа

Дисциплина: Не указана

Добавлен: 22.05.2023

Просмотров: 275

Скачиваний: 3

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

Обычно различают три способа получения случайных величин:

 из заранее составленных таблиц случайных чисел;

 физические генераторы случайных чисел;

 с помощью формул (генераторов или датчиков) псевдослучайных чисел.

Поскольку "качество" используемых в имитационном моделировании случайных чисел проверяется с помощью специальных тестов, можно не интересоваться тем, как эти числа получены: лишь бы они удовлетворяли принятой системе тестов.

Числа, получаемые по какой-либо формуле и имитирующие значения случайной величины X, называются псевдослучайными числами. Под словом "имитирующие" подразумевается, что эти числа удовлетворяют ряду тестов так, как если бы они были значениями этой случайной величины.

Основой или «сырьем» для моделирования случайных величин с заданным законом распределения являются так называемые базовые случайные числа. [8]

Определение

Совокупность {Ri}, i=1,2, … независимых равномерно распределенных на отрезке [0,1] случайных величин называется последовательностью базовых случайных чисел.

Мы называем эти числа псевдослучайными потому, что фактически они остаются полностью детерминированными в том смысле, что если каждое обращение к соответствующей формуле (точнее, к алгоритму) начинается с одними и теми же исходными данными (константами и начальными значениями), то на выходе получаются одинаковые последовательности чисел R.

В настоящее время почти все стандартные библиотечные программы вычисления равномерных случайных чисел основаны на конгруэнтных 1 методах, разработанных Лемером.

Основная формула мультипликативного конгруэнтного метода Лемера имеет вид:

+1 = aRi(mod m), (5)

где а и m - неотрицательные целые числа.

Согласно этому выражению, нужно взять случайное число Ri, умножить его на постоянный коэффициент а и взять модуль полученного числа по m (т.е. разделить на аRi и остаток считать как Ri+1). Поэтому для вычисления (или генерирования) последовательности Ri нам необходимы начальные значения R0, множитель а и модуль m. Выбираются а, R0 и m так, чтобы обеспечить максимальную длину (или, как говорят период) неповторяющейся последовательности Ri и минимальную корреляцию между генерируемыми числами. Базовые случайные числа позволяют генерировать новые случайные последовательности, подчиняющиеся любому закону распределения. [5]

Существует два основных пути преобразования базовых случайных чисел {Ri}, в случайные числа {yi}, распределенные по заданному закону распределения.


Один из них, который называется методом инверсии, состоит в реализации определенных арифметических операций над базовым числом Ri, чтобы получить уi.

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

Пусть событие а имеет вероятность р(а), тогда процедура его моделирования с помощью равномерного распределения (0,1) чисел производится следующим образом:

 Выбирается очередное случайное число равномерно - распределенное.

 Проверка неравенства Xi≤p(a), устанавливается принадлежность X ε (0,p(a)]. Если неравенство выполнено, то событие а - наступило, в противном случае нет.

Аналогично выглядит процедура распределения дискретной величины с заданным законом распределения. Известен закон распределения случайной величины.

=(a1,a2,an)(p1,p2,pn)

а1, а2, … - дискретные величины р1, р2, … -вероятность дискретных величин

Разобьем (0,1) на n-интервалов, причем длины интервалов выберем равные вероятностям дискретных величин.

Моделирование сводится к следующему: для получения очередного значения Z, разрабатывается равное значение Xi , при попадании этого числа в j-интервал значение Z=Zi.

Все разнообразие методов получения случайных величин можно разделить на 2 группы: точные и приближенные методы. [1]

Пусть равномерно-распределенная величина в интервале [0;1] - X, получается из случайной величины Y с помощью неслучайной f-x=η(y), тогда очевидно следующее равенство: P(x<X, x+dx)=P(y<Y, y+dy). Выражая левую и правую часть через соответствующие плотности распределения получают:

=f(y)*dy =>

По определению первообразная, f(y) - интегральная функция распределения случайной величины у.

Найдем функцию η(y) совпадающую с интегральным законом: η(y)=F(y)

Для получения очередного значения yi случайной величины Y рассмотренной в интервале (а,в), с законом распределения -f(y) соответствующему значению xi, необходимо решить уравнение. .

Подобная методика находит ограниченное применение, в связи с двумя обстоятельствами:


. Для многих законов распределения интеграл правой части распределения в конечном виде не берется

. Даже если удается взять интеграл правой части в конечном виде, то формулы получаются слишком громоздкими, требующих больше затрат машинного времени. [1]

Глава 2. Проектная часть

1. Диаграмма использования

Диаграммы использования были предложены Иваром Якобсоном в их нынешней графической форме еще в 1986 году. Диаграммы использования являются, безусловно, самым стабильным элементом UML - они не менялись уже двадцать лет с лишним, фактически, приняли законченную форму задолго до появления языка. Одновременно эти диаграммы имеют самую простую нотацию: всего два основных типа сущностей (действующие лица и варианты использования), а также 4 четыре типа отношений, устанавливаемых между ними:

 ассоциация между действующим лицом и вариантом использования;

 обобщение между действующими лицами;

 обобщение между вариантами использования;

 зависимости (различных типов) между вариантами использования. [2]

В данной диаграмме использования показано взаимодействие и функции всех сотрудников.

Актеры (действующие лица) диаграммы:

- «zav_sklad» (заведующий складом), который управляет вариантами использования:

- «oborot_mes» (оборот за месяц);

«reviziya» (ревизия);

«klad» (кладовщик), управляющий следующими вариантами использования:

- «get_tovar» (принять товар);

- «send_tovar» (отправить товар);

- «inventar» (инвентаризация).

Между вариантами использования и действующими лицами используется вязь коммуникации (communication). Направление стрелки позволяет понять, кто инициирует коммуникацию.

Для построения остальных диаграмм, выбран прецедент «get_tovar» (принять товар), который описывает получение нового товара от поставщика и создание карточки складского учета.

Рисунок 1 - Диаграмма использования.

На основании построенной модели составляется план разработки системы.

Диаграммой прецедентов, или использования (use case diagram) называется диаграмма, на которой показана совокупность прецедентов и актеров, а также отношения (зависимости, обобщения и ассоциации) между ними.

Она позволяет выделить внешние системы, контактирующие с системой, основные процессы и их взаимосвязь. Диаграммы прецедентов дают возможность выделить функциональную структуру системы, не вдаваясь в детали ее реализации. Кроме того, производится предварительное выделение объектов системы и их классификация. На основании построенной модели составляется план разработки системы.


Элементы диаграммы:

- вариант использования - это логическое описание определенной части деятельности системы. Он не представляет собой четкую конструкцию, которую можно напрямую реализовать в программном коде. Каждый вариант использования определяет последовательность действий, которые должны быть выполнены проектируемой системой при взаимодействии ее с соответствующим актером.

- актер представляет собой любую внешнюю по отношению к моделируемой системе сущность, которая взаимодействует с системой и использует ее функциональные возможности. Актеры используются для моделирования внешних по отношению к проектируемой системе сущностей, которые взаимодействуют с системой и используют ее в качестве отдельных пользователей.

отношения ассоциации устанавливают, какую конкретную роль играет актер при взаимодействии с экземпляром варианта использования.

2. Создание диаграммы последовательности

Диаграмма последовательности (sequence diagram) - это диаграмма взаимодействий, акцентирующая внимание на временной упорядоченности сообщений. Она отражают поток событий, происходящих в рамках варианта использования. Конкретный экземпляр потока событий называется сценарием.

В диаграммах последовательности действий взаимодействие объектов в системе происходит посредством приема и передачи сообщений объектами-клиентами и обработки этих сообщений объектами-серверами. При этом в разных ситуациях одни и те же объекты могут выступать и в качестве клиентов, и в качестве серверов.

На диаграмме последовательности объект изображается в виде прямоугольника на вершине пунктирной вертикальной линии. Эта вертикальная линия называется линией жизни (lifeline) объекта. Она представляет собой фрагмент жизненного цикла объекта в процессе взаимодействия.

Каждое сообщение изображается в виде стрелки между линиями жизни двух объектов. Сообщения появляются в том порядке, как они показаны на странице, сверху вниз. Каждое сообщение помечается как минимум именем сообщения; при желании можно добавить также аргументы и некоторую управляющую информацию и, кроме того, показать самоделегирование (self-delegation) -сообщение, которое объект посылает самому себе, при этом стрелка сообщения указывает на ту же самую линию жизни.

В данной модели для создания диаграммы последовательности был использован вариант использования «get_tovar» (принять товар), взятый из предыдущей диаграммы прецедентов (рисунок 3.1).


Рисунок 2 - Диаграмма последовательности «get_tovar» (принять товар)

На данную диаграмму помещены следующие объекты:

- «klad» (кладовщик) - действующее лицо;

- «Add/Select Tovar Form» - содержит форму ввода или выбора товара;

«Add/Select Postav Form» - содержит форму ввода или выбора поставщика товара;

«Card Sklad_Uchet» - форма карты складского учета, которая создается после ввода всех данных и является итоговым документом;

«DataBase» - содержит информацию о поставщиках и товарах, на основании информации этого объекта формируется карта складского учета

Сообщения между объектами на диаграмме:

- «Open» - открыть форму;

- «Cancel» - отмена действия;

«Query to DataBase» - запрос к базе данных на выбор товара;

«Answer from DataBase» - наименование товара;

«Query to DataBase on generation Sklad_Uchet card» - запрос к базе данных на выбор поставщика и генерацию карты складского учета;

«Generate» - карта складского учета.

После создания объектов и сообщений между ними было выполнено соотнесение объектов с классами, а сообщений с операциями. Все названия объектов и сообщений совпадают с названиями классов и операций соответственно.

Выводы

1. На диаграмме последовательности «get_tovar» (принять товар), размещены пять объектов и девять сообщений между ними.

2. Каждый объект был соотнесен с классом, а сообщение с операцией.

3. Диаграмма классов

Диаграмма классов служит для представления статической структуры модели системы в терминологии классов объектно-ориентированного программирования. Диаграмма классов может отражать, в частности, различные взаимосвязи между отдельными сущностями предметной области, такими как объекты и подсистемы, а также описывать их внутреннюю структуру и типы отношений.

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

Строка-свойство служит для указания значений атрибута, которые не могут быть изменены в программе при работе с данным типом объектов. Фигурные скобки обозначают фиксированное значение соответствующего атрибута для класса в целом, которое должны принимать все вновь создаваемые экземпляры класса без исключения. Это значение принимается за исходное значение атрибута, которое не может быть переопределено в последующем.