Основы объектно-ориентированного проектирования
https://uzsex.one/

Учебное пособие по PRO Engineer 2001

На первом этапе сборки двух компонентов необходимо определить, какие зависимости точнее всего описывают их совместную работу. После определения этих зависимостей, наложите их на новую деталь. В любом случае зависимости требуют указания некоторых элементов на существующем и на присоединяемом компоненте. Например, наложение зависимости сопряжения (mate constraint) требует указания двух планарных поверхностей, одной на существующем и одной на присоединяемом компоненте. Зависимости сохраняются и после модификации деталей, на которые они были наложены.
Файл сборки сохраняется с расширением .ASM. Этот файл не содержит никакой геометрии компонентов, входящих в сборку. В нем записаны лишь ссылки на файлы исходных деталей. Если файлы исходных деталей, входящих в сборку, будут переименованы, удалены или перемещены, то при открытии такой сборки появится сообщение об ошибке.

Продолжение

Основы компьютерной графики

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

Продолжение

Генерация тестовых данных для оптимизаторов графических моделей

В настоящее время графическое моделирование активно применяется в различных отраслях промышленности: автомобилестроении (Ford, General Motors, Daimler Chrysler), авиастроении (Boeing), аэрокосмической промышленности (American Institute of Aeronautics and Astronautics) и других.
Графическое моделирование позволяет создавать модели разрабатываемых систем из различных элементарных деталей на экране монитора, как в конструкторе. При этом от разработчиков не требуется изучения каких-либо формальных языков описания моделей.
Одной из наиболее распространенных сфер применения графического моделирования в настоящее время является создание исполняемого кода для микропроцессоров встроенных систем. Вместо написания кода вручную инженеры создают модель, описывающую работу устройства, а на основе этой модели специальная программа - генератор кода - создает код на языке программирования.

Продолжение

Удивительная механика

Проблема накопления энергии – одна из важнейших научно-технических проблем современности. Во всех промышленно развитых странах ведется научный поиск в этом направлении. Еще бы – топлива становится все меньше, энергия дорожает с каждым днем, а накопитель энергии мог бы основательно помочь в ее экономии. Действительно, сейчас мы используем подавляющее количество энергии в момент ее выработки. А если бы человечество обладало эффективным накопителем энергии, той «энергетической капсулой», которую ищет автор книги, то можно было бы запасать энергию впрок, как бы передавать ее во времени. Трудно переоценить, какие выгоды дало бы человечеству использование «энергетической капсулы». Вместо двигателей на автомобилях стояли бы накопители, запасающие дешевую и экологичную – безвредную для природы – энергию мощных электростанций. Сами электростанции могли бы запасать в огромных накопителях энергию ночью, когда она сравнительно дешевая, и расходовать ее в часы пик. Энергия транспортных машин не переходила бы бесцельно в нагрев тормозов, а, проходя через накопитель, использовалась бы снова и снова. Ведь не секрет, что сейчас около половины энергии, вырабатываемой двигателями городских транспортных машин – автомобилей, автобусов, троллейбусов, поездов метро – бесполезно «гасится» в тормозах. Нетрудно представить, сколько энергии, горючего можно было бы сохранить в этих машинах с помощью накопителя. Есть и другая сторона этой проблемы: проходя через накопитель, энергия становится как бы экологичнее, безвреднее для окружающей среды.

В поисках «энергетической капсулы»
Кто в юности не мечтает совершить выдающееся открытие, сделать ценное изобретение? Кто не хочет удивить современников и остаться в памяти потомков? Кто не хочет, чтобы его называли гением? Вот с этих честолюбивых замыслов и начался мой путь к «энергетической капсуле». Предыдущие мои попытки поразить мир – то игрой на скрипке, то сочинением стихов – кончались глубоким, почти летаргическим сном слушателей

Небольшая экскурсия в молодость
Как быстро пролетело время! Еще пятнадцатилетним юношей я принялся за поиск «энергетической капсулы», а сегодня мне уже страшно сказать сколько. Прошло полвека, пятьдесят лет непрерывной работы, но задача создания «энергетической капсулы», пожалуй, только сейчас встала передо мной во всей своей грандиозности. Энергия и топливо стали как никогда дорогими, экология – глобальной проблемой, запасание энергии впрок – насущной жизненной потребностью человека.

Основы объектно-ориентированного проектирования

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

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

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

Проделки дьявола
Человеку свойственно ошибаться - чтобы окончательно все запутать, дайте ему компьютер. Чем быстрее становятся наши интерактивные системы, тем проще выполнить совсем не желанные действия. Вот почему хотелось бы иметь способ стереть прошлое, но не "большой красной кнопкой", стирающей все, - одной из компьютерных шуток, а иметь Большую Зеленую Кнопку, нажатие которой избавляет нас от сделанных ошибок.

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

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

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

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

Дела косметические!
Хотя правила, представленные здесь, не столь фундаментальны, как принципы ОО-конструирования ПО, было бы глупо рассматривать их просто как "косметику". Хорошее ПО хорошо в большом и в малом - в архитектуре высокого уровня и в деталях низкого уровня. Качество деталей еще не гарантирует качества в целом, но небрежность в деталях верный признак более серьезных ошибок



Цели анализа
Для понимания задач необходимо разобраться в роли анализа в разработке ПО и определить требования к методу анализа.

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

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

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

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

Необходимые средства
Для устранения непонимания начнем с терминологии. Слово "пользователь" (одно из самых оскорбительных для компьютерщиков) здесь может ввести в заблуждение. Некоторые люди, называемые разработчиками приложений, создают интерактивные приложения, используемые другими людьми, называемыми конечными пользователями.

Немного контекста
Создание языка Ada было реакцией на кризис середины 70-х годов, ощутимый для политики в области разработки ПО в Департаменте Обороны США (DoD). В отчете, предшествовашем появлению языка Ada, отмечалось, что в военной отрасли в тот момент использовалось более 450 языков программирования, многие из которых технически устарели.

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

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

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

Извлечения из библиотек Base
В течение всего нашего обсуждения мы неоднократно встречались со ссылками на базовые библиотеки Base, в особенности на библиотеку ядра Kernel, в которой сгруппированы наиболее фундаментальные классы.

Универсальность и (versus) наследование
Последующий материал и его появление в приложении требует некоторых пояснений. Начальным толчком, приведшим в итоге к появлению этой книги, было исследование, проведенное в 1984 году при подготовке курса для студентов "Концепции в языках программирования", в котором я сравнивал "горизонтальный" механизм универсальности с "вертикальным" механизмом наследования, введенным в Simula.