
- •Содержаhие
- •2. Классические математические
- •3. Стохастические модели
- •4.4. Имитация случайных событий…………………..… 78
- •5. Обработка результатов
- •6. Моделирование вероятностных
- •7. Модели систем
- •8. Алгоpитмизация пpоцеccов
- •9. Унифицированный
- •Введение
- •1. Концепция моделирования
- •1.1. Понятие модели
- •1.2. Концепции определения моделей
- •2. Классические математические модели
- •2.1. Примеры моделей в виде дифференциальных уравнений
- •2.2. Классические модели в виде дифференциальных уравнений
- •2.3. Инерционные модели
- •2.4. Модели на основе передаточных функций
- •2.5. Конечные автоматы
- •3. Стохастические модели объектов
- •3.1. Математические модели случайных процессов
- •3.2. Классификация моделей случайных процессов
- •3.3. Модели марковских процессов
- •4. Имитация случайных событий
- •4.1. Понятие статистического моделирования
- •4.2. Датчики случайных чисел
- •4.3. Проверочные тесты
- •4.4. Имитация случайных событий
- •4.5. Имитация непрерывных случайных величин
- •4.6. Имитация марковского процесса
- •5. Обработка результатов моделирования на эвм
- •5.1. Выбор числа опытов
- •5.2. Значимость оценки
- •5.3. Формулы и алгоритмы для оценки результатов моделирования
- •6. Моделирование вероятностных автоматов
- •6.1. Аналитическое определение вероятностных автоматов
- •6.2. Табличное задание функций переходов и выходов
- •6.3. Имитационное моделирование вероятностных автоматов
- •7. Модели систем массового обслуживания
- •7.1. Общие сведения
- •7.2. Модель входного потока заявок и времени обслуживания
- •7.3. Модель Эрланга
- •7.4. Исследование модели пуассоновского процесса с помощью производящих функций
- •7.5. Модель для определения времени задержки в виде интегро-дифференциальных уравнений Линди-Такача-Севастьянова
- •7.6. Имитационное моделирование одноканальной смо
- •7.7. Имитационные модели многофазных смо
- •7.8. Имитационные модели многоканальных смо
- •7.9. Алгоритмизация имитационной модели смо произвольной структуры
- •8.1. Моделиpующие алгоpитмы
- •9. Унифицированный язык моделирования uml
- •9.1. Основные компоненты
- •9.2. Понятия и компоненты
- •9.3. Диаграммы вариантов использования
- •9.4. Диаграммы классов
- •Вертикальная координата : : Подвеска : : Машина
- •9.5. Типы связей между классами
- •9.6. Расширения понятия класса в uml
- •9.7. Связи между объектами
- •9.8. Диаграммы взаимодействия
- •9.9. Диаграммы состояний
- •9.10. Диаграммы деятельностей
- •10. Объектно-ориентированное моделирование
- •10.1. Определение объекта
- •10.2. Наследование
- •10.3. Полиморфизм
- •10.4. Типы данных и пакеты
- •Библиографический список
- •Аналитические и имитационные модели
9.6. Расширения понятия класса в uml
В UML существует несколько разновидностей класса: интерфейс, шаблон, утилита и др.
Интерфейс (interface) ‑ класс, задающий набор операций, но не содержащий в себе поля и реализации этих операций. Класс, реализующий интерфейс, сам определяет содержимое этих операций.
Шаблон (template) или параметризованный класс (parameterixed class). Шаблоны UML очень похожи на шаблоны С++. Они определяют семейство классов, отличающихся значением некоторых формальных параметров.
Утилита (utility) ‑ класс, объединяющий группу общедоступных (глобальных) переменных и процедур.
Для указания вида класса в UML введено понятие стереотипа (stereotype). Стереотип как бы определяет подтип некоего глобального типа класс. Соответственно, классы-интерфейсы имеют стереотип «interface», а классы - утилиты – «utility».
Интерфейс (interface) в UML является описанием группы функций, которые он предоставляет другому классу. Логика работы этих функций не определяется. Имеется возможность задать неформальное описание того, что от них требуется.
Класс поддерживает интерфейс, если он содержит методы, реализующие все операции интерфейса. На диаграмме классов UML интерфейс можно изобразить двумя способами: развернутым и сокращенным. В случае развернутого способа интерфейс изображается на диаграмме как класс со стереотипом «interface» и без секции атрибутов (см. рис. 9.13). Допустимо также сокращенное изображение интерфейса - небольшой кружок с именем интерфейса возле него.
На рис. 9.13 изображен класс «Грузовая машина», который реализует интерфейс «Машина». Связь между ними называется детализацией и представляется на диаграмме в виде пунктирной линии с треугольником на конце. Класс «Грузовая машина» должен предоставить метод, реализующий операцию движение, унаследованную от интерфейса «Машина». На рис. 9.14 изображен класс «Грузовая машина», использующий интерфейс «Машина». Связь между ними называется зависимостью и представляется на диаграмме в виде пунктирной линии со стрелкой на конце. Такая связь говорит о том, что если интерфейс «Машина» изменить, то класс «Грузовая машина» тоже может претерпеть некоторые изменения.
Рис. 9.13
Рис. 9.14
В некоторых случаях в модели необходимы классы со схожей структурой, которые отличаются некоторыми параметрами. Например, имеется описание нескольких динамических массивов для элементов разных типов, а многие операции над их элементами совпадают. Целесообразно определить такую структуру данных, чтобы с ее помощью было бы легко получить динамические массивы, и делать это можно было бы уточнением параметров. Для этого в UML вводится понятие параметризованных классов (parameterixed class), которые еще называют шаблонами (template).
Параметризованный класс или шаблон ‑ это описание множества классов с одним или более неопределенным формальным параметром. Шаблон нельзя использовать как обычный класс, т.к. его параметры должны быть привязаны к определенным значениям. Шаблон не может участвовать в большинстве отношений между классами. Существует два вида отношений, в которых он может участвовать - связи между шаблоном и классом, порожденным от него подстановкой параметров (помечается ключевым словом «bind»), и направленные ассоциации. Направленная ассоциация должна идти от шаблона.
Операции и атрибуты экземпляров шаблонов не отображаются на диаграмме. Иногда требуется добавить новые свойства в класс. В таких случаях следует создать новый класс, чьим предком будет экземпляр шаблона, и далее добавить нужные операции и атрибуты. Иногда при описании классов используют глобальные функции и переменные. Для удобства программирования введено понятие утилита (utility) - класс специального вида, в котором собираются подобные функции и переменные. На диаграмме утилита изображается как класс со стереотипом «utility», и может иметь как атрибуты, так и операции.