
- •220400 «Программное обеспечение вычислительных комплексов и автоматизированных систем»
- •Глава 1. Понятие и сущность моделирования. Место компьютерного моделирования в задачах изучения процессов и явлений
- •§ 1. Понятие модели. Функции моделей и их классификация
- •1.1. Понятие и функции моделей
- •1.2. Классификация моделей
- •§ 2. Структура моделей
- •2.1. Структура модели и ее основные составляющие
- •2.2. Анализ и синтез
- •2.3. Требования к модели
- •§ 3. Виды моделирования. Понятие и сущность компьютерного моделирования
- •3.1. Виды моделирования
- •3.2. Понятие и сущность компьютерного моделирования
- •3.3. Искусство моделирования. Действия, выполняемые в процессе моделирования
- •§ 4. Моделирование как искусство. Этапы процесса моделирования
- •4.1. Этапы процесса моделирования
- •4.2. Постановка задачи и определение типа модели
- •4.3. Формулирование модели
- •4.4. Проверка модели
- •4.5. Стратегическое и тактическое планирование
- •4.6. Экспериментирование и анализ чувствительности
- •4.7. Реализация замысла и документирование
- •Глава 2. Объектно-ориентированная технология как современная парадигма компьютерного моделирования. Основные сведения о языке uml
- •§ 5. Объектно-ориентированная технология как современная парадигма компьютерного моделирования
- •5.1. Обстоятельства и причины появления объектно-ориентированной технологии. Основные термины
- •В общем случае объекты обладают двумя качествами:
- •5.2. Принципы объектно-ориентированной технологии
- •§ 6. Назначение и цели унифицированного языка моделирования. Основные концепции uml
- •6.1. Назначение и цели uml
- •6.2. Основные концепции uml
- •§ 7. Статическое представление модели
- •7.1. Классификаторы
- •Типы классификаторов
- •7.2. Отношения
- •7.3. Ограничения
- •§ 8. Структурные представления модели
- •8.1. Представление вариантов использования
- •Виды отношений вариантов использования
- •8.2. Представления программной реализации и развертывания
- •§ 9. Представление в виде конечного автомата как один из видов динамического представления модели
- •9.1. Понятие конечного автомата. Определение события и состояния
- •9.2. Понятие и структура перехода. Типы переходов
- •§ 10. Представления деятельности и взаимодействия как виды динамического представления модели
- •10.1. Представление деятельности
- •10.2. Представление взаимодействия
- •§ 11. Представление управления моделью и дополнительные возможности языка uml
- •11.1. Представление управления моделью
- •11.2. Расширение возможностей языка uml
- •Глава 3. Понятие и виды имитационного моделирования. Инструментарий имитационного моделирования: назначение и краткий обзор
- •§ 12. Понятие и виды имитационного моделирования. Роль языков имитационного моделирования в решении задач компьютерного моделирования
- •12.1. Понятие и виды имитационного моделирования
- •12.2. Роль языков имитационного моделирования в решении задач компьютерного моделирования
- •§ 13. Классификация и краткая характеристика языков имитационного моделирования. Среда и функциональная структура языка моделирования gpss
- •13.1. Классификация языков имитационного моделирования
- •13.2. Принципы организации системы gpss
- •Глава 4. Общие понятия о графическом моделировании и геоинформационных системах
- •§ 14. Способы представления и принципы обработки графических данных на персональных эвм
- •14.1. Представление в компьютере графической информации. Растровая и векторная графика
- •14.2. Модели представления цвета в графических изображениях
- •14.3. Форматы графических файлов
- •14.4. Принципы обработки графических данных на персональных компьютерах
- •§ 15. Геоинформационные системы и особенности моделирования земной поверхности
- •15.1. Основные понятия и организация гис
- •15.2. Проблемы качества векторных цифровых карт для гис
- •§ 16. Классификация программного обеспечения гис и реализация гис-проектов
- •16.1. Классификация и краткая характеристика программного обеспечения гис
- •16.2. Порядок создания гис-проектов
- •Компьютерные модели в информационных технологиях на железнодорожном транспорте
- •127994, Москва, ул.Образцова, 15
§ 7. Статическое представление модели
7.1. Классификаторы
Основные элементы статического представления – классификаторы и их отношения.
Классификатор – это дискретная концепция модели, которая обладает индивидуальностью, состоянием, поведением и находится в определенных отношениях с другими элементами модели. Существует три основных типа классификаторов: классы, интерфейсы и типы данных. Остальные типы классификаторов выражают концепции, относящиеся к поведению, окружению или структуре реализации системы. Типы классификаторов приведены в таблице № 2.
Таблица № 2
Типы классификаторов
Классификатор |
Функция |
Нотация |
Класс (Class) |
Концепция моделируемой системы |
|
Интерфейс (Interface) |
Именованный набор операций, характеризующих некоторое поведение |
|
Тип данных (Data type) |
Дескриптор набора примитивных значений, не обладающих индивидуальностью (например, целое число) |
Имя типа данных |
Актант (Actor) |
Пользователь системы |
|
Класс в определенном состоянии (Class-in-state) |
Класс, который может находиться только в данном состоянии |
|
Роль классификатора (Classifier role) |
Классификатор, используемый определенным образом в кооперации |
Имя роли |
Компонент (Component) |
Физическая часть системы |
|
Узел (Node) |
Вычислительный ресурс |
|
Сигнал (Signal) |
Асинхронное сообщение между объектами |
|
Подсистема (Subsystem) |
Некий блок системы, обладающий спецификацией, программной реализацией и индивидуальностью. Является разновидностью пакета |
|
Вариант использования (Use case) |
Спецификация поведения системы или ее части при взаимодействии с актантами |
|
Класс описывает множество объектов со сходной структурой, поведением и отношениями. Нотация класса выглядит как прямоугольник с разделами для имени класса, атрибутов и операций.
Абонемент |
Имя класса |
Серия: ТекстоваяСтрока Номер: ЦелоеЧисло УровеньСкидки: Категория |
Атрибуты |
РассчитатьСтоимость(): Денежный Зарезервировать (Серия: ТекстоваяСтрока, КлассОбслуживания: КатегорияМеста) ЗавершитьРаботу() |
Операции |
Рис. 4. Нотация класса
Имя класса должно быть уникальным в пределах пакета. Имя класса записывается по центру раздела имени полужирным шрифтом и должно начинаться с заглавной буквы. Рекомендуется в качестве имен классов использовать существительные, записанные без пробелов.
Атрибут класса служит для представления отдельного свойства или признака, который является общим для всех объектов данного класса. Каждому атрибуту должна соответствовать отдельная строка текста. Общий формат записи атрибута:
<видимость><имя>[кратность]:<тип><значение-по-умолчанию>
Операции – это процессы, реализуемые некоторым классом. Между операциями и методами существует очевидное соответствие. Обычно термины «операции» и «методы» используют как взаимозаменяемые, однако бывают ситуации, когда их полезно различать. Основное различие между операцией и методом состоит в том, что операция представляет собой вызов некоторой процедуры, в то время как метод является телом процедуры. Обычно эти два понятия различают, когда имеют дело с полиформизмом.
Полный синтаксис операций в языке UML выглядит следующим образом:
<видимость><имя>(<список-параметров>):<выражение_возвращающее_зна-чение_типа>{<строка_свойств>}
где:
<видимость> может принимать одно трех значений:
«+» - общедоступная (public),
«#» – защищенная (protected),
«-» - закрытая (private);
<имя> - строка символов;
разделенные запятой параметры, синтаксис которых аналогичен синтаксису атрибутов:
<направление><имя>:<тип><значение-по-умолчанию>
Здесь <направление> применяется, чтобы показать характер использования параметра: для входа (in), выхода (out) или в обоих направлениях (inout). По умолчанию параметр рассматривается как входной;
<выражение_возвращающее_значение _типа> - список разделенных запятой значений типов. Большинство разработчиков использует только один тип возвращаемого значения, но допускается использование и нескольких таких типов;
<строка_свойств> - значения свойств, которые применяются к данной операции.
Пример записи операции для счета клиента: +показатьСостояние(дата:Дата): Деньги
У класса может быть ноль и более классов - прямых предков (суперклассов) и несколько классов - прямых потомков (подклассов). Класс наследует поведение и состояние от прямых и прочих предков и определяет при этом состояние и поведение своих прямых и косвенных потомков. Класс обладает уникальным именем в рамках своего контейнера. В качестве такого контейнера обычно выступает пакет или другой класс. У класса есть также видимость, которая определяет, как он может использоваться другими классами, находящимися вне данного контейнера. Кроме того, класс обладает множественностью, указывающей какое количество его экземпляров может существовать в системе одновременно.
Классы могут существовать на нескольких уровнях: аналитическом уровне, уровне проектирования и уровне реализации. На уровне анализа класс представляет собой логическую концепцию предметной области. На уровне проектирования – отражает основные проектные решения по локализации информации и распределению функциональности. При реализации в программном коде класс принимает форму, максимально подходящую для отображения в выбранном языке программирования.
Интерфейс служит для спецификации таких элементов модели, которые видимы извне, но их внутренняя структура остается скрытой от пользователей. Он является классификатором и характеризует только ограниченную часть поведения моделируемой сущности. В контексте языка UML интерфейс является специальным случаем класса, у которого имеются только операции и отсутствуют атрибуты. Применительно к диаграммам классов интерфейсы определяют совокупность операций, которые обеспечивают необходимый набор сервисов или функциональности для акторов. Интерфейсы не могут содержать ни атрибутов, ни состояний, ни направленных ассоциаций. Они содержат только операции без указания особенностей их реализации. Формально интерфейс эквивалентен абстрактному классу без атрибутов и методов с наличием только абстрактных операций.
Тип данных – описание простых значений, у которых нет индивидуальности (т.е. которые не могут существовать независимо), например: числа, строки и нумерованные значения (перечисления). В метамодели UML типы данных используются для объявления типов атрибутов класса. Они записываются в форме строк текста на диаграммах и не имеют отдельного значка «тип данных».
Для определения различных типов данных в языке UML используются различные конструкции: целое число (Integer), строка (String), имя (Name), булевский тип (Boolean), кратность (Multiplicity), тип видимости (VisibilityKind), выражение (Expression), выражение-процедура (ProcedureExpression) и др.
Типы данных, используемые в описании языка UML, могут отличаться от типов данных, которые определяет разработчик для своей модели на языке UML. В этом случае типы данных будут являться частным случаем или экземплярами метакласса «Типы данных», который определен в метамодели. При задании типа данных наиболее часто применяется неформальная конструкция, получившая название «перечисление».