ArCon. Дизайн интерьеров и архитектурное моделирование для всех Кидрук Максим Иванович

Объектно-ориентированное моделирование

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

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

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

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

Применение объектного подхода дает множество преимуществ.

На порядок возрастает скорость создания планов и чертежей.

Чертеж или модель становятся более информативными: при выделении (или редактировании) того или иного объекта вы можете легко определить (заменить) его свойства, причем большинство этих свойств, как правило, на обычном чертеже или модели не смогут быть отображены.

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

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

Построенная модель (чертеж) может быть представлена в виде иерархического дерева (рис. 1.1), что облегчает навигацию по проекту, поиск и редактирование его отдельных частей.

Рис. 1.1. Пример иерархического представления строительного плана, созданного на основе объектного подхода

Примечание

Иерархическое представление – далеко не новость в автоматизированном проектировании. Однако в данном случае узлами дерева являются не отдельные части графического изображения, которые, как правило, неинформативны и не несут никакой смысловой нагрузки, а конкретные объекты, разделенные по определенному признаку.

Одним из главных, но вовсе не очевидных преимуществ объектно-ориентированного подхода при создании графических изображений является возможность быстрого и полностью автоматического перехода к трехмерному изображению (другими словами, возможность автоматической генерации трехмерной модели спроектированного объекта). С учетом того, что набор объектов, которыми может оперировать пользователь, в любом случае ограничен, а также учитывая то, что в свойствах каждого объекта можно заложить достаточно информации, чтобы получить полное представление о его форме, становится возможным реализация «поднятия» графического изображения в 3D без каких-либо усилий со стороны пользователя (именно такой подход и реализован в системе ArCon). В итоге пользователь почти мгновенно получает трехмерное представление своего проекта, при этом не затратив практически никаких усилий. Полученную трехмерную модель далее можно будет визуализировать и получить реалистичную картинку или передать в другую систему для дальнейшего редактирования или проведения инженерных расчетов. Более того, в таком случае пользователю вообще не нужно никаких специальных навыков трехмерного моделирования.

Примечание

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

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

В первую очередь (и это очевидно) это ограниченность набора готовых объектов, а также невозможность произвольного их изменения. Это отбирает гибкость у программы, из чего следует, что принцип объектного проектирования может быть применен только в специализированных системах (таких, к примеру, как ArCon, Professional Home Design Platinum и пр.). Разработчикам таких систем необходимо основательно учитывать специфику отрасли, для автоматизации и решения задач которой предназначается программный продукт, а также максимально расширять возможность настройки свойств предлагаемых объектов.

Здесь на первый план выходит вопрос стоимости и функционала системы. Если вы на 100 % уверены в том, что та или иная специализированная программа подходит для ваших целей, сомнений при ее покупке не должно возникать. В противном случае вам необходимо более подробно изучить функционал, чтобы убедиться, можно ли будет решать поставленные задачи или же, в худшем случае, придется потратить деньги на «обычный» и дорогой CAD-редактор.

Вторым недостатком объектно-ориентированных графических инженерных систем является проблема интеграции с другими графическими системами. Речь идет не о каких-либо проблемах при передаче данных – обмен как двухмерной, так и трехмерной информацией давно уже считается стандартом для любых коммерческих программ. Суть проблемы заключается как раз в потере значений свойств объектов, а также всех иерархических связей, выстроенных между объектами. Причина понятна: система, в которую планируется экспортировать проект, может не поддерживать объектного подхода или же иметь у собственных объектов список свойств, отличный от данного. По этой причине при сохранении проекта из программы ArCon в какой-либо другой формат (не ArCon-объект) экспортируется только графическое изображение.

Примечание

Забегая наперед, скажу, что проекты ArCon+ 2005 можно экспортировать в различные как двухмерные, так и трехмерные форматы, используя группу команд Файл? Экспортировать в формате (рис. 1.2). Важно отметить, что в программе поддерживаются такие известные форматы обмена данных, как VRML, DXF, формат системы 3ds Max, а также возможность сохранения проекта в выполнимый EXE-файл (подробнее об этом написано далее).

Рис. 1.2. Поддерживаемые форматы для экспорта проектов из ArCon

Еще хуже дело обстоит с импортом данных из других систем. Если они не приведены к определенному формату, «взять» их внутрь объектной специализированной системы невозможно. Скажем, при импорте чертежа из AutoCAD в ArCon может быть загружено лишь изображение. При этом ArCon никак самостоятельно не сможет распознать, где в открытом изображении окна, двери, стены и т. п., и тем более присвоить отдельным объектам вполне разумные свойства. Это значит, что дальнейшее редактирование чертежа в ArCon, как и «поднятие» его в 3D, невозможно. Импортирование, по существу, становится бессмысленным, поэтому преимущественное большинство объектно-ориентированных проектных систем не имеют функций для чтения графических данных извне.

Однако, несмотря на такие существенные недостатки, легкость в работе, а главное – скорость и наглядность выполнения проектов берут верх. Как следствие, в последнее время системы, подобные рассматриваемой в этой книге программе ArCon, нашли широкое применение при решении различных задач проектирования.

Из книги Питон - модули, пакеты, классы, экземпляры. автора Бройтман Олег

Объектно-ориентированное программирование Питон - объектно-ориентированный язык со множественным наследованием. Можно сказать, что Питон поддерживает классическую ОО-модель с некоторыми особенностями. Классы в Python могут иметь статические переменные, разделяемые

Из книги 3ds Max 2008 автора Верстак Владимир Антонович

Объектно-ориентированное моделирование 3ds Max 2008 – объектно-ориентированная программа, то есть все, что создается в программе, является объектами. Геометрия, камеры и источники света на сцене – это объекты. Объектами также являются модификаторы, контроллеры, растровые

Из книги Эффективное использование C++. 55 верных способов улучшить структуру и код ваших программ автора Мейерс Скотт

Глава 6 Наследование и объектно-ориентированное проектирование Объектно-ориентированное программирование (ООП) существует почти 20 лет, поэтому, вероятно, вы имеете некоторое представление о наследовании, производных классах и виртуальных функциях. Даже если вы

Из книги Основы объектно-ориентированного программирования автора Мейер Бертран

Объектно-ориентированное конструирование ПО У нас уже накоплено достаточно оснований, чтобы попытаться определить ОО-конструирование ПО. Это будет лишь первый набросок, более конкретное определение последует в следующей лекции.ОО-конструирование ПО (определение 1)

Из книги Программирование на языке Ruby [Идеология языка, теория и практика применения] автора Фултон Хэл

Конструирование объектно-ориентированного ПО Мы уже давали определение конструирования ОО-ПО: будучи весьма общим, оно представляет метод следующим образом: "основывать архитектуру всякой программной системы на модулях, полученных из типов объектов, с которыми

Из книги VBA для чайников автора Каммингс Стив

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

Из книги Программирование для карманных компьютеров автора Волков Владимир Борисович

Из книги Основы программирования на Java автора Сухов С. А.

11.1. Рутинные объектно-ориентированные задачи Of his quick objects hath the mind no part, Nor his own vision holds what it doth catch… Вильям Шекспир. Сонет 113 Если вы вообще не знакомы с ООП, то эта глава вас ничему не научит. А если вы понимаете, что такое ООП в языке Ruby, то, наверное, ее и читать не стоит.

Из книги C++ для начинающих автора Липпман Стенли

Объектно-ориентированное программирование и VBA В результате своей эволюции Visual Basic превратился в (почти) объектно-ориентированный язык программирования. Хотя освоение приемов работы с объектами и представляет некоторую трудность в начале знакомства с VBA, ожидаемая

Из книги автора

Глава 12. Объектно-ориентированное программирование. В этой главе...~ Концептуализация объектов~ Понимание свойств, методов и событий - главных компонентов VBA-объектов~ Работа с объектными моделями~ Использование форм как объектов~ Выяснение и установка свойств объектов~

Из книги автора

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

Из книги автора

ОБЪЕКТНО-ОРИЕНТИРОВАННОЕ ПРОГРАММИРОВАНИЕ НА JAVA 7. КЛАССЫ Базовым элементом объектно-ориентированного программирования в языке Java является класс. В этой главе Вы научитесь создавать и расширять свои собственные классы, работать с экземплярами этих классов. Напомним,

Из книги автора

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

Из книги автора

Процедурно-ориентированное программирование В части II были представлены базовые компоненты языка С++: встроенные типы данных (int и double), типы классов (string и vector) и операции, которые можно совершать над данными. В части III мы увидим, как из этих компонентов строятся

Из книги автора

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

Из книги автора

17.1.1. Объектно-ориентированное проектирование Из чего складывается объектно-ориентированное проектирование четырех рассмотренных выше видов запросов? Как решаются проблемы их внутреннего представления?С помощью наследования можно определить взаимосвязи между

7. Геометрическое моделирование. Виды систем моделирования. Внутреннее представление моделей.

Геометрическое моделирование.

Можно выделить 2 задачи:

1.Построение геометрической модели уже существующего тела.

2.Синтез геометрической модели нового объекта.

При решении 1-ой задачи требуется задание большого количества точек, принадлежащих поверхности объекта. При решении 2-ой задачи геометрическое моделирования, выполняемого в интерактивном режиме основное требование к средствам формирования и представления геометрической модели – удобство манипулирования моделью. Выделяют 3 вида геометрических моделей: каркасные, поверхностные, твёрдотельные.

Каркасная модель представляет собой мн-во вершин и мн-во рёбер, объединяющих данные вершины.

Поверхностная модель: вначале создается трёхмерный каркас, на который затем “натягиваются” различные виды математических поверхностей. Системы поверхностного моделирования поддерживают различные виды поверхностей: линейчатые поверхности, кинематические поверхности и скульптурные поверхности. Над поверхностями можно проводить следующие операции: обрезание пов-сти другой пов-стью или пространственной кривой на поверхности, построение гладких переходов или скруглений между пов-стями.

Преимущество поверхностного моделирования: можно создавать геом. объекты любой степени сложности.

Недостаток: пов-сти не имеют толщины, а реальные объекты представляют собой некий замкнутый объём.

Поверхностная модель объекта представляет собой “скорлупу”, внутри которой пустота, из-за этого возникают проблемы при разбиении объекта на конечные элементы при просчёте масс-инерционных хар-к и при контроле взаимопроникновения деталей в сборке. Поверхностного моделирование явл. Кропотливым процессом – требует знаний по начерт.геом. и развитого пространственного мышления.

Твёрдотельная модель строится из базовых элементов с использованием соответствующих операций: булевы операции, выталкивание, вращение, лофтинг, разделение твёрдых тел. САПР допускает следующие доп. операции:

построение скруглений, построение отверстий на гранях, построение рёбер жёсткости, построение фасок.

Твёрдотельная модель хранится в САПР в виде дерева построения.

Преимущество твёрдотельного моделирования:

1.Простота параметризации.

2.Возможность расчёта масс-инерционных хар-к и разбивка на сетку конечных элементов.

3.Относительная простота моделирования.

Недостаток: ограниченность конструктивных форм создаваемых моделей.

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

1 стр-ра представляет собой дерево , опис-щее историю прим-я булевских операций к примитивам. Журнал операций называется конструктивным пред­ставлением объемной геометрии (Constructive Solid Geometry CSG representation ). Дерево называется деревом CSG (GSG tree ).

2 стр-ра содержит сведения о границах объема (вершинах, ребрах, гранях и их соединении друг с другом). Это представление называется граничным представлением (boundary representation – В- rep ), а структура данных – структурой B - rep (B - rep data structure ).

Третья структура представляет объем в виде комбинации элементар­ных объемов (например, кубов). Можно придумать множество моделей разложе­ния, выбирая разные элементарные объемы, но ни одна из них не может точно описать объемное тело.

Моделирование - один из основных методов познания, который очается в выделении из сложного явления (объекта) некоторых чаcтей и нении их другими объектами, более понятными и удобными для ания, объяснения и разработки.

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

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

Геометрическое моделирование раздел математического

моделирования позволяет решать разнообразные задачи в двумерном, трехмерном и. в общем случае, в многомерном пространстве.

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

В настоящее время геометрическое моделирование успешно используется в управлении и других областях человеческой деятельности. Можно выделить две основные области применения геометрического моделирования; проектирование и научные исследования.

Геометрическое моделирование может использоваться при анализе числовых данных. В таких случаях исходным числовым данным ставится в соответствие некоторая геометрическая интерпретация, которая затем анализируется, а результаты анализа истолковываются в понятиях исходных данных.

Этапы геометрического моделирования:

Постановка геометрической задачи, соответствующая исходной прикладной задаче или ее части:

Разработка геометрического алгоритма решения поставленной задачи;

Реализация алгоритма при помощи инструментальных средств:

Анализ и интерпретация полученных результатов. Методы геометрического моделирования:

Аналитический:

Графический;

Графический, с использованием средств машинной графики:

Графоаналитические методы.

Графоаналитические методы основываются на разделах вычислительно!! геометрии, таких как теория R-функций. теория поверхностей Кунса. теория кривых Безье, теория сплайнов и др.

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

8. Графические языки высокого уровня.

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

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

    автоматизация программирования для оборудования с ЧПУ;

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

    системы геометрического моделирования.

Одним из первых проблемно-ориентированных языков, имеющих средства для описания геометрической информации, явился язык АРТ (AUTOMATED PROGRAMMING TOOLS). Этот язык послужил основой для разработки разнообразных систем автоматизации программирования для станков с ЧПУ.

В качестве примеров систем с автономным языком высокого уровня могут также служить системы геометрического моделирования трехмерных тел – COMPAC и СИМАК-Д.

Система COMPAC (COMPUTER ORIENTED PART CODING) предназначена для формирования описания объемных тел из объемных элементов формы – (метод конструктивной геометрии). Кроме трех базовых объемных элементов (кубы, цилиндры, конусы), могут использоваться профилированные детали, получаемые перемещением замкнутого контура вдоль прямой или дуги, а также тела вращения, получаемые вращением замкнутого контура вокруг оси. Элементы задаются, позиционируются и оразмериваются языковыми конструкциями, напоминающими АРТ. Составление детали из объемных элементов производится с помощью операций объединения, вычитания и отсечения.

Отличия СИМАК-Д от COMPAC состоят в несколько ином входном языке и ином наборе базовых элементов формы, включающем в себя точку, плоскость, прямоугольный параллелепипед, круговые цилиндры и конус.

Автономные графические языки, как всякая специализированная разработка, обладают высокой эффективностью в своей области приложений, однако разработка и использование таких языков сопряжена с рядом проблем:

    довольно значительные затраты на создание языка и транслятора с него;

    затраты на внедрение, на включение языка в работающую систему программирования и на обучение пользователей, которые не всегда охотно берутся за изучение еще одного языка, а предпочитают пользоваться процедурными расширениями известных им алгоритмических языков: ALGOL, FORTRAN, PL-1, PASCAL и т.д.;

    трудности с последующим расширением языка;

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

    затруднено объединение в рамках одной прикладной программы графических и геометрических действий и обычных вычислений, которое легко реализуется в случае процедурных расширений.

9. Объектно-ориентированное моделирование.

Объектно-ориентированное моделирование (feature - based modeling ) позволяет конструктору создавать объемные тела, используя привычные элементы форм (features ). Созданное тело несет в себе информацию об этих элементах в допол­нение к информации об обычных геометрических элементах (вершинах, ребрах, гранях и др.). Например, конструктор может давать команды типа «сделать от­верстие такого-то размера в таком-то месте» или «сделать фаску такого-то раз­мера в таком-то месте», и получившаяся фигура будет содержать сведения о на­личии в конкретном месте отверстия (или фаски) конкретного размера. Набор доступных в конкретной программе элементов формы зависит от спектра приме­нения этой программы.

Большинством систем объектно-ориентированного моделирования поддержива­ются такие элементы, которые используются при изготовлении деталей: фаски, отверстия, скругления, пазы, выемки и т. д. Такие элементы называются произ­водственными , поскольку каждый из них может быть получен в результате кон­кретного процесса производства. Например, отверстие создается сверлением, а выемка – фрезерованием. Следовательно, на основании сведений о наличии, размере и расположении производственных элементов можно попытаться авто­матически сформировать план технологического процесса. Автоматическое пла­нирование технологического процесса, если оно будет разработано на практиче­ском уровне, перебросит мост между CAD и САМ, которые в настоящий момент существуют отдельно друг от друга. Таким образом, в настоящий момент лучше моделировать объекты, подобные изображенному на рис. 5.20, с использованием команд объектно-ориентированного моделирования «Выемка» и «Отверстие», а не просто булевских операций. Модель, созданная при помощи таких команд, облегчит планирование технологического процесса, если не сделает его полно­стью автоматическим. Использование производственных элементов в моделиро­вании иллюстрирует рис. 5.21.

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

Дисциплина «Лингвистическое и программное обеспечение САПР» (Беспалов В.А.)

    Понятие автоматизации проектирования и его лингвистического обеспечения

    Базовое и управляющее лингвистическое обеспечение.

    Организация диалога в САПР, средства обеспечения диалогового режима.

    Принципы организации трансляторов.

    Обобщенная структура компилятора.

    Синтаксический анализатор.

    Языки проектирования и программирования.

    Основы теории языков и формальных грамматик.

    Способы записи синтаксиса языка. Организация лексического анализа.

    Принципы работы лексических и синтаксических анализаторов.

    Понятие автоматизации проектирования и его лингвистического обеспечения.

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

ЛО САПР – совокупность языков, терминов, определений, необходимых для выполнения автоматизированного проект-я. ЛО имеет место наряду с: техническим, математическим, информационным, программным, методическим и организационным обеспечением САПР. Основу ЛО САПР составляют спец. языковые средства (языки проектирования), предназначенных для описания процедур автоматизир. пр-я и проектных решений. Обычно они наз-ся проблемно-ориентированными языками (ПОЯ). 2 вида построения ПОЯ:

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

2. ПОЯ соединяет в себе средства алгоритмического языка со специальными языковыми средствами моделирования геометрических объектов.

ПОЯ представляет из себя комплексы лингвистических и программных средств, кот. должны включать след. элементы:

    набор терминальных символов ПОЯ

    интерпретатор ПОЯ

    средства синтаксического анализа

    средства пакетирования директив

    библиотеки базовых функций ПОЯ

интерфейс для связи с СУБД

Интерпритатор- программа или устройство, осуществляющее пооператорную трансляцию и выполнение исходной программы.

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

    Базовое и управляющее лингвистическое обеспечение.

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

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

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

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

... » Рассматриваются вопросы построения подсистемы САПР метеорологической поддержки (МП... практических занятий по дисциплине «концепции современного... интеллектуального анализа данных. Интеллектуальный анализ, параллельные алгоритмы, интеллектуальный ...

  • Курс лекций по дисциплине «Теория информационных процессов и систем» для студентов ВлГУ, обучающихся по направлению 230400. 62 Информационные системы и технологии

    Документ

    Рядом САПРов , которые... Подсистема контроля качества 2. Подсистема управления технологическим процессом 3. Подсистема ... развития естественнонаучных дисциплин (таковы дифференциальное... осуществляющим информационную и интеллектуальную поддержку выработки...

  • Аннотация к рабочей программе дисциплины «Математическая логика и теория алгоритмов» по направлению 230100. 62 Информатика и вычислительная техника

    Документ

    Файлов. 11. Программы САПР , их графические возможности. ... программных средств интеллектуальных систем. Краткое содержание дисциплины . Искусственный интеллект... . Функциональные подсистемы АСОИУ: структура функциональной подсистемы , функциональные...

  • Учебное пособие по дисциплине 1722 «Проектирование асоиу» по специальности 230102 Автоматизированные системы обработки информации и управления Факультет ит

    Анализ

    Системы имитируют интеллектуальные процессы обработки... проектирования (САПР ) - предназначены... Подсистема маркетинга Производственные подсистемы Финансовые и учетные подсистемы Подсистема ... поддерживать удобную дисциплину сопровождения, модификации...

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

    Концептуальной основой является объектная модель, которая строится с учетом следующих принципов:

    • абстрагирование;
    • инкапсуляция;
    • модульность;
    • иерархия;
    • типизация;
    • параллелизм;
    • устойчивость.

    Основными понятиями объектно-ориентированного подхода являются объект и класс.

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

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

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

    Диаграмма (Diagram) - это графическое представление множества элементов. Чаще всего она изображается в виде связного графа с вершинами (сущностями) и ребрами (отношениями) и представляет собой некоторую проекцию системы.

    Объектно-ориентированный подход обладает следующими преимуществами:

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

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

    Сравнение существующих методик

    В функциональных моделях ( DFD - диаграммах потоков данных , SADT -диаграммах) главными структурными компонентами являются функции (операции , действия, работы), которые на диаграммах связываются между собой потоками объектов .

    Несомненным достоинством функциональных моделей является реализация структурного подхода к проектированию ИС по принципу "сверху-вниз", когда каждый функциональный блок может быть декомпозирован на множество подфункций и т.д., выполняя, таким образом, модульное проектирование ИС . Для функциональных моделей характерны процедурная строгость декомпозиции ИС и наглядность представления.

    При функциональном подходе объектные модели данных в виде ER-диаграмм "объект - свойство - связь" разрабатываются отдельно. Для проверки корректности моделирования предметной области между функциональными и объектными моделями устанавливаются взаимно однозначные связи.

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

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

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

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

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

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

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


    Понятие объектно- ориентированного подхода (ООП) ООП ООП – подход, использующий объектную декомпозицию В ООП статическая структура системы описывается в терминах объектов и связей между ними Динамическая структура объекта описывается в терминах обмена сообщениями между объектами От структурного подхода ООП отличает способ декомпозиции системы


    Объект Объект – осязаемая реальность, имеющая четко определенное поведение. Объект обладает состоянием, поведением, индивидуальностью Структура и поведение схожих объектов определяют общий для них класс => Объект = экземпляр класса Объект = экземпляр класса"> Объект = экземпляр класса"> Объект = экземпляр класса" title="Объект Объект – осязаемая реальность, имеющая четко определенное поведение. Объект обладает состоянием, поведением, индивидуальностью Структура и поведение схожих объектов определяют общий для них класс => Объект = экземпляр класса"> title="Объект Объект – осязаемая реальность, имеющая четко определенное поведение. Объект обладает состоянием, поведением, индивидуальностью Структура и поведение схожих объектов определяют общий для них класс => Объект = экземпляр класса">


    Свойства объекта Состояние объекта – перечень всех возможных (статических) свойств объекта и текущими (динамическими) значениями каждого из этих свойств Поведение – воздействие объекта на другой объект и наоборот, а также относительное изменение состояний этих объектов и передачу сообщений между ними Индивидуальность – это свойство объекта, отличающее его от других объектов


    Различие между классом и объектом Множество объектов со схожими свойствами (состояние, поведение, индивидуальность) = КЛАСС => Каждый объект = экземпляр класса Каждый объект = экземпляр класса"> Каждый объект = экземпляр класса"> Каждый объект = экземпляр класса" title="Различие между классом и объектом Множество объектов со схожими свойствами (состояние, поведение, индивидуальность) = КЛАСС => Каждый объект = экземпляр класса"> title="Различие между классом и объектом Множество объектов со схожими свойствами (состояние, поведение, индивидуальность) = КЛАСС => Каждый объект = экземпляр класса">


    Иерархия классов: Родительский класс обладает фи" title="Принципы ООП. Наследование Наследование – принцип, в соответствии с которым знание о более общей категории разрешается применять для более частной категории Наследованиеиерархия классов Наследование -> иерархия классов: Родительский класс обладает фи" class="link_thumb"> 7 Принципы ООП. Наследование Наследование – принцип, в соответствии с которым знание о более общей категории разрешается применять для более частной категории Наследованиеиерархия классов Наследование -> иерархия классов: Родительский класс обладает фиксированным набором свойств => производный от него класс содержит тот же набор свойств + дополнительные свойства, характеризующие его уникальность иерархия классов: Родительский класс обладает фи"> иерархия классов: Родительский класс обладает фиксированным набором свойств => производный от него класс содержит тот же набор свойств + дополнительные свойства, характеризующие его уникальность"> иерархия классов: Родительский класс обладает фи" title="Принципы ООП. Наследование Наследование – принцип, в соответствии с которым знание о более общей категории разрешается применять для более частной категории Наследованиеиерархия классов Наследование -> иерархия классов: Родительский класс обладает фи"> title="Принципы ООП. Наследование Наследование – принцип, в соответствии с которым знание о более общей категории разрешается применять для более частной категории Наследованиеиерархия классов Наследование -> иерархия классов: Родительский класс обладает фи">




    Принципы ООП. Инкапсуляция Инкапсуляция – это сокрытие отдельных деталей внутреннего устройства классов от внешних по отношению к нему объектов или пользователей. Инкапсуляция ведет свое происхождение от деления модулей на 2 части: интерфейс и реализация.




    Принципы ООП. Полиморфизм Полиморфизм (греч. poly – много, morfos – форма) - это свойство некоторых объектов принимать различные внешние формы в зависимости от обстоятельств. Действия, выполняемые одноименными методами, могут отличаться в зависимости от того, к какому из классов относится тот или иной метод.


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


    Универсальный язык моделирования UML. Предыстория В начале 90-х гг. 20 века – создание новых объектно-ориентированных языков программирования (Smalltalk, C++, Java) Разработано огромное количество методов проектирования объектно-ориентированного ПО Результат – разработка UML, с целью объединения достоинств различных подходов в один независимый от производителей язык моделирования.


    Универсальный язык моделирования UML UML – Unified Modeling Language – унифицированный язык моделирования, который предназначен для визуализации и документирования объектно-ориентированных систем и бизнес-процессов с ориентацией на их последующую реализацию в виде программного обеспечения.


    Универсальный язык моделирования UML Авторы – Гради Буч (G. Booch), Джим Румбах (или Рамбо, D. Rumbaugh), Айвар Джекобсон (I. Jacobson). Первая версия языка появилась в 1996 г. В настоящее время все вопросы дальнейшей разработки UML сконцентрированы в рамках консорциума OMG. В 2004 г. – UML 2.0.


    Диаграммы UML UML включает в себя 8 типов диаграмм: 1) диаграммы вариантов использования; 2) диаграммы классов; 3) диаграммы состояний; 4) диаграммы деятельности; 5) диаграммы кооперации; 6) диаграммы последовательности; 7) диаграммы компонентов; 8) диаграммы развертывания. Диаграммы взаимодействия Диаграммы реализации


    Некоторые программные продукты (UML tools) IBM Rational Software Architect (IBM) IBM Rational Rose (IBM) ARIS UML Designer (IDS Sheer) Enterprise Architect (SPARX Software) Altova Umodel KUml, Dia, PowerDesigner И т.д. Подробнее:




    Задание Самостоятельно изучить статью «UML basics: An introduction to the Unified Modeling Language»: /library/769.html?S_TACT=105AGX15&S_ CMP=EDU

    Учебное пособие содержит: краткое изложение языка UML - той его части, которая может быть использована как основа языка моделирования сложных динамических систем; описание и возможности предлагаемого авторами нового языка моделирования на базе гибридных автоматов, являющегося расширением UML; исторический обзор и примеры различных подходов к конструированию инструментов моделирования; объектно-ориентированный анализ сложных динамических систем. Книга является второй из трех книг, объединенных общим названием Моделирование систем.

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

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

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

    Оглавление
    Оглавление
    Предисловие
    Глава 1. Объектно-ориентированный подход к моделированию
    Необходимость в унифицированном языке описания моделей
    Классы, экземпляры и многокомпонентные системы
    Использование UML на начальной стадии проектирования
    Диаграммы классов
    Атрибуты
    Поведение
    Операции и методы
    Абстрактные и конкретные классы. Интерфейсы
    Классы и отношения
    Ассоциация
    Обобщение
    Агрегация
    Наследование
    Полиморфизм
    Поведение. Диаграммы состояний
    Структурированные классификаторы
    Компоненты
    События и сигналы
    Пакеты
    Модель
    Глава 2. Объектно-ориентированное моделирование сложных динамических систем на основе формализма гибридного автомата
    Активный класс и активный динамический объект
    Пакеты и модель
    Использование пассивных объектов
    Переменные
    Типы данных
    Скалярные типы
    Вещественный тип
    Целые типы
    Булев тип
    Перечислимые типы
    Символьные типы
    Регулярные типы
    Векторы
    Матрицы
    Массивы
    Списки
    Комбинированный тип (запись)
    Явно определяемые типы
    Сигналы
    Автоматическое приведение типов
    Система уравнений
    Карта поведения
    Состояния
    Переходы
    Структурная схема
    Объекты
    Связи
    Регулярные структуры
    Наследование классов
    Добавление новых элементов описания
    Переопределение унаследованных элементов
    Полиморфизм
    Параметризованные классы
    Глава 3. Моделирование гибридных систем и объектно-ориентированный подход в различных пакетах
    Моделирование гибридных систем в инструментальных средствах для "больших" ЭВМ
    Язык SLAM II
    Язык НЕДИС
    Гибридные модели в современных инструментах моделирования
    Моделирование гибридных систем в пакете Simulink ("блочное моделирование")
    Моделирование гибридных систем на языке Modelica ("физическое моделирование")
    Гибридное направление
    Языки объектно-ориентированного моделирования
    Simula-67 и НЕДИС
    ObjectMath
    Omola
    Modelica
    Инструменты "блочного моделирования"
    Анализ существующих языков ООМ применительно к моделированию сложных динамических систем
    Глава 4. Многообъектные модели
    Глава 5. Объектно-ориентированное моделирование и объектно-ориентированный анализ
    Сложная техническая система
    Объектно-ориентированный анализ при разработке сложных технических систем
    Объектно-ориентированное моделирование на последующих этапах разработки и сопровождения сложной технической системы
    Системно-аналитическая модель как основа "сквозной" технологии проектирования
    Литература
    Дополнительная литература к главе 1
    Дополнительная литература к главе 2
    Дополнительная литература к главе 3
    Дополнительная литература к главе 4
    Дополнительная литература к главе 5
    Предметный указатель.

    Бесплатно скачать электронную книгу в удобном формате, смотреть и читать:
    Скачать книгу Моделирование систем, Объектно-ориентированный подход, Колесов Ю., Сениченков Ю., 2012 - fileskachat.com, быстрое и бесплатное скачивание.

    Скачать pdf
    Ниже можно купить эту книгу по лучшей цене со скидкой с доставкой по всей России.