КАТЕГОРИИ:
АстрономияБиологияГеографияДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРиторикаСоциологияСпортСтроительствоТехнологияФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника
|
Объектно-ориентированное моделирование"Вместе с ростом числа ЭВМ и задач трудности технологические и организационные все больше стали преобладать над трудностями "чисто научными". Сейчас масштаб и объем этих трудностей настолько вырос, что можно говорить, что задача их преодоления сама стала задачей науки и представляет собой проблему фундаментального значения". Н.Н. Яненко, В.И. Карначук, А.И. Коновалов. "Проблемы математической технологии"/ Численные методы механики сплошной среды. Новосибирск, ВЦ СО АН СССР, 8, 3, 1977. Основные понятия Объектно-ориентированное моделирование (ООМ) предполагает поддержку классов и экземпляров блоков, а также наследования и полиморфизма блоков. Класс определяет некоторый шаблон или прототип блока (например, бассейн вообще). Оперируя с классом, например "Бассейн", нельзя говорить о конкретном значении уровня воды в нем, так как в определении класса присутствуют только информация о типах и именах используемых переменных, но не об их значениях. Экземпляр блока - это конкретный представитель класса блоков, например, Бассейн_1 и Бассейн_2. Каждый экземпляр имеет свои собственные значения переменных (уровни воды в двух бассейнах могут быть разными). При создании нового экземпляра могут быть конкретизированы его параметры - специальные константы, которые не могут быть, как и любые константы, изменены в процессе функционирования, но могут оказаться разными для различных экземпляров. В функциональную схему могут входить несколько экземпляров одного и того же класса, например, выходная труба блока Бассейн_1 может являться входной для блока Бассейн_2. Экземпляры могут быть статическими и динамическими. Статический экземпляр создается при создании модели и уничтожается при ее уничтожении. Например, каскад бассейнов явно является статической структурой. Динамические экземпляры создаются и уничтожаются в ходе моделирования. Например, при моделировании работы системы ПВО число самолетов в зоне видимости радиолокатора переменно. Вообще говоря, понятия класса и экземпляра поддерживались явно или неявно практически всеми языками моделирования. В противном случае достаточно сложно моделировать системы с множеством однотипных блоков и невозможно моделировать системы с динамической структурой. Более сложными понятиями ООМ являются наследование и полиморфизм. Часто возникает необходимость создать новый класс "такой же, но ...". Например, нужно описать бассейн с подогревом воды, дополнив описание стандартного бассейна нужными деталями. В этом новом классе "Бассейн_с_подогревом" описание интерфейса и динамики уровня воды будет точно таким же, как и в классе "Бассейн". К нему добавится свое описание тепловых потоков и динамики температуры. Можно просто перенести в описание нового класса элементы описания старого и добавить новые. Но можно объявить новый класс прямым потомком старого. В этом случае класс "Бассейн" будет являться суперклассом (родителем, базовым классом) для класса "Бассейн_с_подогревом", а тот в свою очередь будет являться подклассом (потомком, производным классом) по отношению к классу "Бассейн". В этом случае производный класс автоматически унаследует все элементы описания своего базового класса. Следует отметить, что наследование не означает простого копирования. Между классами возникает постоянная связь: если в классе "Бассейн" добавить новую переменную состояния (например, показатель хлорированности воды), то она автоматически появится в классе "Бассейн_с_подогревом". Полиморфизм означает возможность использования вместо экземпляра блока некоторого базового класса экземпляра любого его производного класса. Например, для радиолокационной станции все сопровождаемые объекты являются экземплярами класса "Летательный_аппарат" и характеризуются только положением и вектором скорости. На самом же деле эти объекты могут являться самыми разнообразными потомками класса "Летательный_аппарат" от B-52 до птеродактиля.
|