- •Б. Б. Желваков
- •Моделирование систем
- •Учебное пособие
- •Санкт-Петербург
- •Составитель
- •Подготовлено на кафедре
- •230201 – Информационные системы и технологии
- •1. Основные понятия теории моделирования систем 6
- •2. Классификация моделей и методов моделирования 21
- •3. Математические методы моделирования 35
- •4. Имитационное моделирование. 62
- •5. Моделирование организационных систем 116
- •6. Методика и стандарты функционального моделирования 140
- •7. Объектно-ориентированное моделирование 166
- •8. Моделирование бизнес-процессов 221
- •9. Моделирование систем с soa-архитектурой 226
- •10. Модели систем с «облачной» архитектурой 237
- •Введение
- •1. Основные понятия теории моделирования систем
- •1.1. Системный подход и понятие «система»
- •1.2. Системный анализ
- •1.3. Понятия «модель» и «моделирование»
- •1.4. Моделирование систем как процесс формирования знаний.
- •1.5. Моделирование больших и сложных систем.
- •2. Классификация моделей и методов моделирования
- •2.1. Основные типы системных моделей
- •2.2. Классификация методов моделирования сложных систем
- •3. Математические методы моделирования
- •3.1. Принципы и подходы к построению математических моделей
- •3.2. Этапы построения математической модели
- •3.3. Примеры математических моделей
- •3.3.1. Модель целенаправленной системы
- •3.3.2. Модель абстрактной системы с неопределённой структурой
- •3.3.3. Модель целенаправленной системы с управлением.
- •3.3.4. Модель оптимального планирования доставки товаров потребителям
- •3.3.5. Модель в контуре управления экономической системы
- •4. Имитационное моделирование.
- •4.1. Понятие имитационного моделирования
- •4.2. Автоматизация имитационного моделирования
- •4.3. Дискретно-событийное моделирование
- •4.3.1. Системы массового обслуживания
- •4.3.2. Механизмы продвижения времени
- •4.3.3. Обозначения смо-систем
- •4.3.4. Параметры систем массового обслуживания
- •4.3.5. Критерии оценки работы систем массового обслуживания
- •4.3.6. Компоненты дискретно-событийной имитационной модели и их программная организация
- •4.4 Этапы исследования системы с помощью имитационного моделирования
- •4.5. Преимущества, недостатки и ошибки имитационного моделирования
- •4.6. Моделирование по методу Монте-Карло
- •4.7. Программное обеспечение имитационного моделирования
- •4.7.1. Классификация программных средств имитационного моделирования
- •4.7.2. Общие элементы моделирования
- •4.7.3. Универсальные пакеты имитационного моделирования
- •4.7.4. Предметно-ориентированные пакеты имитационного моделирования
- •5. Моделирование организационных систем
- •5.1. Концепции и стандарты организационного моделирования
- •5.2. Метамоделирование
- •5.3. Метамодель общих хранилищ данных (cwm)
- •5.4. Моделирование организационных систем
- •6. Методика и стандарты функционального моделирования
- •6.1. Методика функционального моделирования sadt
- •6.2. Диаграммы «сущность-связь»
- •6.3.Стандарты idef
- •6.3. Система моделирования бизнес-процессов AllFusion Process Modeler
- •7. Объектно-ориентированное моделирование
- •7.1. Принципы и методология объектно-ориентированного подхода.
- •7.2. Унифицированный язык моделирования uml
- •7.2.1. Архитектура uml
- •7.2.2. Диаграммы uml
- •7.2.3. Использование uml при моделировании систем реального времени
- •7.2.4. Преимущества uml
- •7.2.5. Унифицированный Процесс разработки по компании Rational
- •7.3. Архитектура, управляемая моделями
- •7.4. Разработка, управляемая моделями (mdd)
- •7.5. Объектно-ориентированное программирование
- •7.6 Инструментальные средства поддержки оо‑технологий
- •8. Моделирование бизнес-процессов
- •9. Моделирование систем с soa-архитектурой
- •9.1. Композитная структура программ
- •9.2. Концепция soa
- •9.3. Сервис-ориентированное моделирование
- •10. Модели систем с «облачной» архитектурой
- •Заключение
- •Литература
7.5. Объектно-ориентированное программирование
Созданный проект превращается в программный продукт в процессе объектно-ориентированного программирования (Object-Oriented Programming, OOP) – такой методологии программирования, которая основана на представлении программного продукта в виде совокупности объектов, каждый из которых является экземпляром определенного класса, а классы образуют иерархию на принципах наследования. Таким образом, при объектно-ориентированном подходе исчезает понятие исполняемой программы. Решение поставленной задачи сводится к построению необходимых классов, и управлению взаимодействиями создаваемых ими объектов-экземпляров.
Фундаментальная концепция OOP состоит в том, что объекты и классы взаимодействуют друг с другом путем передачи сообщений. Для этого необходимо, чтобы в программе определялись не данные (переменные, константы), а объекты вместе со своими характеристиками (атрибутами) и операциями над ними. В процедурной части такой программы определяется алгоритм попарного взаимодействия определённых в программе объектов. Процесс такого взаимодействия сильно напоминает диалог между парами объектов: один из объектов пары инициирует выполнение одного из методов своего партнёра, меняя тем самым его состояние. Операция вызова (запуска) метода партнёра по взаимодействию внешне очень похожа на передачу ему одноимённого сообщения (запроса на выполнение данного метода). Получив такое сообщение, объект-партнёр должен запустить и выполнить соответствующий метод и известить объект-инициатор о завершении его выполнения.
При традиционном процедурном стиле программирования в программе определяются не объекты, а данные (переменные, не имеющие никакого отношения к свойствам программных объектов), которые затем передаются на произвольную (никак не связанную с поведением объектов) алгоритмическую обработку в программные процедуры (функции) как параметры. Для программирования в таком стиле – стиле «обработки (произвольных) данных», ‑ предназначены все традиционные алгоритмические языки программирования – от ассемблеров (низкоуровневых, машинно-зависимых) до высокоуровневых, машинно-независимых (Fortran, Algol, C и др.).
Язык программирования называется объектно-ориентирован-ным, если:
есть поддержка объектов как абстракций данных, имеющих интерфейсную часть в виде поименованных операций, и защищенную область локальных данных;
все объекты относятся к соответствующим типам (классам);
классы могут наследовать характеристики и методы поведения суперклассов.
любые данные определяются и хранятся как атрибуты объектов, размещаемые с автоматическим выделением и освобождением памяти. Определять и обрабатывать их вне классов объектов запрещено (принцип скрытия данных в моделирующих программах).
Работать с определёнными в программе объектами можно только через попарный диалог между ними, когда инициирующий объект передаёт сообщение объекту-партнёру с запросом на выполнение одного из его методов.
Принято различать чисто объектно-ориентированные языки программирования, такие как Smalltalk, Actor, Java, C#, от гибридных языков программирования, в которых используются оба принципа – процедурный и объектный (Object Pascal, C++, Visual Basic, Python, [15]).