Смекни!
smekni.com

на тему (стр. 8 из 9)

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

2.3 Существующие программные средства и их соответствие требованиям активного компьютерного эксперимента

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

Особое место среди пакетов, предназначенных для изучения естественнонаучных

дисциплин, занимают специализированные учебные пакеты, такие как Modellus, xyZET. Они ориентированы на школьников, школьных преподавателей и студентов университетов, где компьютерное моделирование изучается как один из возможных способов познания действительности. Эти пакеты просты для освоения, содержат достаточно выразительную графику и прекрасно приспособлены для изучения простых неструктурированных моделей, заданных системами дифференциальных уравнений невысокого порядка. Более подробную информацию о них можно найти в [5, 6, 8].

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

К числу универсальных пакетов, которые используются и для обучения, можно отнести компоненты пакета MATLAB, а именно Simulink и Stateflow, и построенные по их образу и подобию пакеты VisSim, МВТУ. Пакет Simulink пользуется заслуженной популярностью, а его язык блок-схем во многих публикациях стал средством описания изучаемых объектов. Но именно он и подвергается наибольшей критике со стороны авторов языка Modelica, выступающих за «физический» способ построения моделей из неориентированных блоков. В пакете Simulink практически невозможно наглядно реализовать гибридное поведение. Нерешаясь на коренные переделки для реализации гибридного автомата, авторы пакета создают компоненту Stateflow, позволяющую к существующей модели добавлять карту состояния Харела, управляющую сменой поведения модели. Такой способ несколько ранее был реализован в пакете Model Vision 2.1, но от него решено было отказаться, так как модели становились чрезвычайно сложными для восприятия. Это приводило к многочисленным ошибкам при проектировании, и возникали сложности численного моделирования в окрестности точки смены поведения из-за возможных разрывов правой части дифференциальных уравнений.

Среди пакетов для моделирования специально выделим пакет Dymola, поддерживающий продолжающий развиваться универсальный язык моделирования Modelica. Несмотря на то, что Modelica поддерживает как ориентированные, так и неориентированные блоки, основным достоинством авторы этого пакета считают возможность соединять неориентированные блоки с помощью контактов. В этом плане, несомненно, достигнуто очень много. Однако и здесь смена поведения остается камнем преткновения. Если проследить за развитием языка в ежегодно публикуемых документах, то можно увидеть, как сокращаются возможности смены поведения блока. И это не случайно, так как возникают трудности математического характера при построении совокупной системы уравнений при соединении неориентированных блоков, меняющих свое поведение.

Пакеты Model Vision Studium [3], AnyLogic наиболее приспособлены для проведения активных компьютерных экспериментов. Они используют современные объектно-ориентированные входные языки. Пакеты Model Vision Studium, AnyLogic используют гибридные автоматы как элементы входного языка, однако не могут работать с неориентированными блоками. Пакет Model Vision Studium снабжен редактором трехмерной анимации (рис. 2), компактен и прост в освоении. Пакет AnyLogic позволяет строить апплеты, описывать поведение непосредственно на языке Java. Следовательно, он более приспособлен для создания моделей со сложным дискретным поведением.

Здесь будет уместно перечислить достоинства гибридного автомата при использовании его в пакетах моделирования. Гибридный автомат:

- компактно и наглядно описывает все возможные варианты смены поведения подобно тому, как конечный автомат столь же наглядно описывает все допустимые цепочки принимаемого им языка;

- требует указания в явном виде особых событий, приводящих к смене поведения, и облегчает работу численных методов в окрестности точки смены поведения;

позволяет ввести «алгебру» локальных поведений, упрощая тем самым применение объектно-ориентированного подхода;

- позволяет легко описать сложные эксперименты с моделью, облегчая проектирование испытательных стендов;

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

Не останавливаясь на описании других пакетов, можно утверждать, что все они настолько различны (и в данном случае это недостаток), что нельзя выделить какой-либо один. Это чрезвычайно важно как для отдельного пользователя, так и для учебного процесса в целом.

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

2.4 Модульный подход к разработке универсальных пакетов. Проект CoLoS.

Количество универсальных существующих и разрабатываемых пакетов для моделирования все увеличивается. Это дает право утверждать, что мы имеем дело с востребованной областью вычислительного эксперимента, и позволяет сделать некоторые обобщения. Нам представляется, что в этой новой области мы имеем сейчас ситуацию аналогичную той, которая предшествовала созданию первых специализированных коллекций, таких как EISPACK и LINPACK.

Накопленного опыта достаточно для того, чтобы сформулировать единые требования к пакетам для проведения активного вычислительного эксперимента. По крайней мере, все яснее вырисовывается их структура и требования к отдельным компонентам.

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

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

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