
книги / Системы автоматизированного проектирования технологических процессов
..pdfPro/Engineer (РгоЕ) чаще всего принимается для объемных компоно- |
|
|||
вок агрегатов типа двигатель или реактор, для разводки трубопроводов. Для |
|
|||
выпуска КД и ТД используется редко. |
|
|
||
SolidEdge, SolidWorks, MicroSlation Modeler 95 применяются для объ |
|
|||
емного моделирования несложных машиностроительных изделий и узлов |
|
|||
(электродвигатель, электрофен, насос), для иллюстраций, инструкций по экс |
|
|||
плуатации, отчетов и рекламных брошюр. Для выпуска КД и ТД практически |
|
|||
не используется. |
|
|
|
|
1-Flex применяется для выпуска чертежей типовых деталей машино |
|
|||
строения. В объемном моделировании не используется. |
|
|
||
Unigraphics чаще всего применяется для объемного моделирования |
|
|||
изделий, оснастки и пресс-форм, а также и для объемной компоновки изде |
|
|||
лий типа корпус, двигатель. Относительно часто используется для ЧПУ. |
|
|||
По результатам тестирования и опыту применения систем на пред |
|
|||
приятиях исходный перечень был разделен на три группы. К первой группе |
|
|||
были отнесены претенденты на сопровождение проектирования, ко второй - |
|
|||
системы автоматизации |
|
выпуска КД, к третьей - |
интегрированные |
|
CAD/CAM-системы, поддерживающие ЧПУ (табл. 7.4). |
|
|
||
|
|
|
Таблица 7.4 |
|
|
|
Группа |
|
|
1 |
|
П |
111 |
|
ADEM |
|
ADEM |
ADEM |
|
CADDS5 |
|
AutoCAD |
CADDS5 |
|
Station Modeler95 |
|
«Компас» |
Unigraphics |
|
РгоЕ |
1 |
MicroStationModeler95 |
«Компас» |
I |
SolidEdge |
T-Flex |
|
i |
|
|
|
|
|
|
SolidWorks |
1 |
|
|
|
Unigraphics |
1 |
|
|
i i
7.13. Проектирование надежных систем
Надежность информационных систем в основном определяется на дежностью программного обеспечения.
Надежность программного обеспечения есть вероятность его работы без отказов в течение определенного периода времени, рассчитанная с уче том стоимости каждого отказа для пользователя.
Таким образом, надежность 110 является функцией воздействия оиги.:
бок на пользователя системы.
В программном обеспечении имеется ошибка, если она не выполняет того, что пользователю разумно от него ожидать. Отказ программного обес печения - это проявление ошибки в нем.
Ошибка не обязательно прямо связана с оценкой «изнутри» про граммного обеспечения. Даже крупный просчет в проектировании может оказаться не слишком заметным для пользователя, а как будто бы небольшая ошибка может иметь катастрофические последствия. Например, первый за пуск космического корабля на Венеру потерпел неудачу из-за того, что в операторе СЮ программы на Фортране была пропущена запятая.
На рис. 7.15 показано распределение относительных затрат на про граммное обеспечение в течение его жизненного цикла для большинства ти пичных крупных разработок. На долю сопровождения (устранения ошибок и внесения небольших изменений после установки системы) и тестирования приходится почти 75 % затрат. Наилучший путь сокращения стоимости П О - уменьшение стоимости его тестирования и сопровождения. Это может быть достигнуто в результате разработки средств, повышающих корректность и четкость при создании ПО.
Рис. 7.15. Распределение относительных затрат на программное обеспечение
Прежде чем разрабаты вать методы повышения надеж ности, следует понять их причи ны.
Единственная важная причина ошибок в программном обеспечении - неправильный перевод информации из одного представления в другое.
Создание ПО можно опи сать просто как ряд процессов перевода, начинающих с задачи и заканчивающих большим на бором подробных инструкций, управляющих ЭВМ при реше нии этой задачи. Другими сло вами, профаммирование - это решение задачи, профаммное обеспечение - это совокупность информационных элементов, описывающих решение задачи.
7.13.1. Макромодель перевода
Чтобы подробнее исследовать проблему ошибок в ПО, рассмотрим различные типы процессов перевода при его создании. Модель разработки ПО, называемая макромоделью перевода, изображена на рис. 7.16.
Рис. 7.16. Макромодельперевода
В модели не учитывается взаимное перекрытие процессов и циклов обратной связи (например, вследствие ошибок, обнаруженных во время вы полнения одного из процессов, часто требуется вернуться назад и скорректи ровать ранее выполненную работу).
Чтобы лучше понять проблему перевода, рассмотрим кратко каждый из шагов, указанных на рис. 7.16:
1. Первый шаг - разработка описания решаемой задачи. Такое описа ние имеет вид перечня требований пользователя. В некоторых случаях поль зователь составляет этот перечень сам. В других случаях это делает разра ботчик ПО либо в результате бесед с пользователем, либо исследуя его по требности, либо самостоятельно оценивая эти потребности в будущем, либо комбинируя перечисленные методы.
В любом случае здесь имеются обширные возможности для ошибок. Например, пользователь может не суметь адекватно выразить свои потребно сти, они могут быть неверно поняты либо учтены не в полном объеме. Ясно, что ошибки, возникающие на этом шаге, обходятся чрезвычайно дорого.
2. Второй шаг - перевод требований пользователя в цели программы. Хотя на этом шаге объем перевода невелик, здесь требуется явно выделить и оценить довольно много компромиссных решений.
Ошибки на этом шаге возникают, когда интерпретируются требова ния, не удается выявить все требующие компромиссных решений проблемы или приняты неправильные решения, а также в случае, когда не сформулиро ваны цели, необходимые, но не поставленные явно в требованиях пользова теля.
3Третий шаг связан с преобразованием целей программы в ее внеш ние спецификации, т.е. в точное описание поведения всей системы с точки зрения пользователя. По объему перевода это самый значительный шаг раз работки ПО, так что он больше всего подвержен ошибкам - они бывают и наиболее серьезными, и наиболее многочисленными.
4Четвертый шаг представляет собой несколько процессов перевода -
от внешнего описания готового продукта до получения детального проекта, описывающего множество составляющих программу предложений, выполнение которых должно обеспечить поведение системы, соответствующее внешним спецификациям. Здесь же осуществляются процессы, как перевод внешнего описания в структуру компонентов программы (например, моду лей) и перевод каждого из компонентов в описание процедурных шагов (на пример, в блок-схемы). Поскольку здесь приходится иметь дело со все боль шими объемами информации, вероятность внесения ошибок становится
чрезвычайно высокой.
5. Последний процесс проектирования (шаг 5) - перевод описания ло гики программы в предложения языка программирования. На этом шаге де лается много ошибок, но они обычно относительно мелкие, легко обнаруживаются и корректируются.
На этом шаге осуществляется и другой процесс трансляции: перевод представления программы на языке программирования в объектный (выпол няемый машиной) код. Обычно этот перевод выполняется специальной про граммой - компилятором. Конечно, иногда и компиляторы содержат ошибки, вследствие чего ошибки Moiyr появиться и в объектной программе. Однако это ошибки неподвластны нам (если только программа, которая создается, сама не является компилятором).
6. В результате работы над программным проектом возникает как са мо ПО, так и документы, описывающие его использование (шаг 6). Эти руко водства обычно получаются переводом внешних спецификаций в материалы, ориентированные на конкретные группы пользователей.
Публикации определенным образом влияют на надежность ПО. Если ошибка возникает при их подготовке, они не будут точно описывать поведе ние программы (если только на шагах 4 и 6 не сделаны идентичные ошибки). Прочитав руководство, пользователь начинает работать с программой и об наружит, что она ведет себя не так, как он ожидал —это и является, по опре делению, ошибкой в программе. Конечно, даже если программа и публика ции согласуются между собой, в программе тем не менее могут присутство вать ошибки (например, если они возникли при переводе на шагах J, 2 или 3,
атакже если одинаковые ошибки совершены на шагах 4 и 6).
7.Еще одним источником информации во время разработки служат спецификации (описания) аппаратуры (шаг 7). Например, разработчик опе рационной системы опирается на описания центрального процессора (на пример, набор команд, механизмов прерывания, средств защиты) и всего пе риферийного оборудования системы. Разработчику прикладной системы час
то нужно знать характеристики терминалов и линий связи. Неправильное ис толкование этих материалов может привести к ошибкам в ПО.
8.Обычно прикладные программы взаимодействуют с базовыми ПО вычислительной системы, обращаясь к ним с заказами на ввод-вывод и ди намическое распределение ресурсов (шаг 8). Неправильное понимание доку ментации по базовому ПО служит еще одним источником ошибок.
9.Готовая программа состоит из предложений, по крайней мере, од ного языка программирования. Непонимание синтаксиса и семантики языка также является причиной ошибок в тексте программы и, следовательно, в ПО.
10.Есть две формы связи между пользователем и готовой програм мой: руководства, описывающие ее использование, и непосредственная рабо та с ней. Шаг 10 представляет собой изучение пользователем руководств и перевод их содержания в его понимание того, как он желает применять про грамму.
Чтобы понять, как этот процесс влияет на надежность, представим, что есть готовая программа, содержащая несколько неизвестных ошибок. Ес ли пользователь пытается с ее помощью что-то сделать и из публикаций не может понять, как этого добиться (например, из-за того, что они плохо написаны), он может попытаться поэкспериментировать с системой. Эти попытки использовать систему незапланированным способом часто увеличивают вероятность натолкнуться на оставшиеся в ПО ошибки. Таким образом, качество документации для пользователя, хотя оно и не связано с количеством ошибок в программе, может влиять на ее надежность.
11.Эгот шаг представляет собой непосредственное взаимодействие пользователя с ПО, например, при вводе данных с терминала и при анализе выходных данных. Если человеческие факторы учтены слабо (т.е. диалог че ловек - машина разработан плохо), вероятность ошибки пользователя увели чивается. Ошибки пользователя часто ставят систему в новые, непредвиден ные обстоятельства, увеличивая, таким образом, шансы проявления остав шихся в программе ошибок.
12.Как уже говорилось, мы не рассматриваем многочисленные циклы обратной связи. Однако один из них (шаг 12) достаточно важен. Этот шаг по является при сопровождении (исправлении ошибок) и модификации (добав лении новых функций существующим программам). Вследствие этого сама по себе готовая программа - это еще не конец процесса перевода. Человек должен снова переводить ее при исправлении ошибок и добавлении новых функций. Ошибки, очевидно, могут возникать и на этом этапе, поэтому такие
особенности ПО, как свойства используемого языка программирования и стиль программирования, потребуют внимания.
Макромодель перевода описывает происхождение большинства оши бок в ПО и причины, лежащие в основе ненадежности.
Чтобы лучше понимать проблемы перевода, рассмотрим микромо дель, изображенную на рис. 7.17. Здесь человек —любое лицо, описываемое
Рис .7.17. Микромодель перевода
форму В. Для этого он совершает четыре основных шага:
1.Получает информацию с помощью своего читающего механизма R (областей мозга, управляющих зрением и слухом).
2.Запоминает информацию в своей памяти М.
3.Выбирает из памяти эту информацию, а также информацию, опи сывающую процесс перевода, выполняет перевод и посылает результат сво ему пишущему механизму W (областям мозга, управляющим речью или дви жением рук).
4.Распространяет информацию с помощью письма, печати на терми нале или речи.
Даже такая упрощенная модель перевода позволяет исследовать воз никающие на каждом из этапов ошибки;
1.Одной из величайших особенностей человеческого интеллекта я ляется способность понимать входную информацию, сопоставляя ее с ин формацией, хранимой в памяти. Уровень понимания новой информации за висит от образования и жизненного опыта человека. Эта особенность лежит в основе человеческих способностей «читать между строк», понимать грамма тически неправильные предложения, предсказывать развязку кинофильмов и т.д. К несчастью, эти мощные способности в некоторых случаях вызывают неточности в процессе перевода, являются причиной ошибок в ПО. Ошибки возникают тогда, когда при чтении документа А человек видит то, что он ожидает или хочет увидеть, а не то, что написано, когда он пытается восста
новить недостающие факты или просто не замечает существенной информа ции.
Эти же способности часто оказываются полезными при обнаружении ошибок. Если ошибки уже присутствуют в самом документе А, мы способны обнаружить их, осознавая несоответствие с нашим прежним жизненным опытом. Это, однако, полезно лишь тогда, когда мы отправляемся к создате лю документа А и выясняем с ним возникшие вопросы. Но чаще делается не так: мы разрешаем конфликт самостоятельно, иногда верно, иногда нет, и продолжаем работу дальше.
2. В большинстве случаев для того чтобы правильно запомнить ин формацию, нам надо ее понять. На этом этапе ошибки в ПО появляются в ре зультате неправильной интерпретации или полного непонимания входной информации. Она может быть слишком сложной или двусмысленной, обра зовательный уровень человека может оказаться недостаточно высоким.
3.Основной источник ошибок на этом этапе - забывчивость: человек может забыть входную информацию А либо точные правила выполнения пе ревода. Слабость других умственных способностей, таких как мышление или способностью извлекать из памяти относящиеся к делу знания, также обу славливает появлению ошибок.
4.Последний шаг, на котором информация может быть искажена или утрачена, - шаг 4. Многие не умеют ясно выражать свои мысли, поэтому смысл их сообщений понять трудно. Если количество выходной информации велико, человека начинает раздражать разница между скоростью мышления
иписьма. Чтобы справиться с этим, он использует сокращения либо предпо лагает, что факты будут «интуитивно очевидны» его адресаты. Эго увели чивает вероятность того, что следующий участник процесса разработки при переводе совершит ошибки.
7.13.3.Методы обеспечения надежности
Методы обеспечения надежности можно разбить на четыре группы: предупреждение ошибок, обнаружение ошибок, исправление ошибок и обес печение устойчивости к ошибкам.
Предупреждение ошибок. К этой группе относятся методы, цель ко торых - не допустить появления ошибок в готовой программе. Большинство методов концентрируется на отдельных процессах перевода и направлено на предупреждение ошибок в этих процессах. Их можно разбить на следующие подгруппы:
1.Методы, позволяющие справиться со сложностью, свести ее к ми нимуму, так как это - главная причина ошибок перевода.
2.Методы достижения большей точности при переводе.
3.Методы улучшения обмена информацией.
4. Методы немедленного обнаружения и устранения ошибок. Эти ме тоды направлены на обнаружение ошибок на каждом шаге перевода, не от кладывая до тестирования программы после ее написания.
Очевидно, что предупреждение ошибок —оптимальный путь к дости жению надежности ПО. Лучший способ обеспечить надежность - не допус тить возникновения ошибок. Гарантировать отсутствие ошибок, однако, не возможно. В этом и состоит исходная предпосылка обнаружения, исправле ния ошибок и обеспечение устойчивости к ошибкам: программа будет со держать ошибки, поэтому она должна быть спроектирована так, чтобы ее поведение было предсказуемо и в случае ошибки.
Обнаружение ошибок. Если предполагать, что в ПО какие-то ошибки все же будут, то лучшая (после предупреждения ошибок) стратегия - включить средства обнаружения ошибок в само ПО.
Меры обнаружения ошибок можно разбить на две подгруппы: пас сивные попытки обнаружить симптомы ошибки в процессе «обычной» рабо ты ПО и активные попытки программной системы периодически обследовать свое состояние в поисках признаков ошибок.
Конкретные меры обнаружения зависят от специфики предметной об ласти. Однако можно назвать следующие общие пассивные меры:
1.Проверку атрибутов любого элемента входных данных (тип, знак, пределы значения, длину данных).
2.Сравнение согласованности входных данных с какими-либо внут
ренними. Например, если на входе операционной системы возникает требо вание освободить некоторый блок памяти, то система должна убедиться, что этот блок в данный момент действительно занят.
Пассивные меры обнаруживают ошибку лишь тогда, когда ее симпто мы подвергаются проверке. Можно делать дополнительные проверки, если спроектировать специальные средства активного обнаружения ошибок. Эти средства объединяются в диагностический монитор (в данном случае имеет ся в виду второе значение монитора - контролирующая и регулирующая про грамма): параллельный процесс, который периодически анализирует состоя ние системы с целью обнаружить ошибку.
Диагностический монитор может реализовать как периодически вы полняемую задачу (например, через определенный промежуток времени), так и задачу с низким приоритетом, которая выполняется в то время, когда сис тема переходит в состояние ожидания. Например, монитор может обследо вать основную память, проверять необычные ситуации (например, процесс не планировался для выполнения в течение некоторого интервала времени), осуществлять поиск «затерявшихся» сообщений или операций ввода-вывода.
Исправление ошибок и устойчивость к ошибкам. Имея средства обнаружения ошибок, естественно предпринять следующий шаг —создать средства, нацеленные на исправление обнаруженных ошибок. По существу, термин «исправление ошибок» в применении к ПО означает ликвидацию ущерба, нанесенного ошибкой, - исправить ошибку в ПО без участия чело
века невозможно. Средства исправления ошибок довольно сложны и сами могут содержать ошибки. Для ликвидации ущерба от ошибок необходимо изолировать ошибки, например, исключая ссылки на другую программу или на данные в другой программе.
Вопросы к главе 7
1 Дайте объяснение понятиям «программно-методический комплекс», «программно-технический комплекс».
2.По каким признакам классифицируются САПР?
3.Что значит полная и частичная интеграция САПР?
4.Назовите основные подсистемы КИП (CIM).
5.Какие технические средства относятся к центральным, какие - к пе риферийным?
6.Назовите классы ЭВМ.
7.Как организовано объединение ЭВМ по архитектуре «клиент - сер
вер»?
8.Что включает в себя математическое обеспечение САПР?
9.Охарактеризуйте структурные и функциональные модели.
1 (^Классификация программного обеспечения САПР.
11.Назовите этапы разработки ПО.
12.Какие способы применяются при организации информационного
фонда в САПР?
13.Состав лингвистического обеспечения.
14.Понятие ошибки и надежности в информационных системах.
15.Приведите макромодель и микромодель перевода.
16.Назовите основные методы обеспечения надежности.
Библиографический список
1.Автоматизация проектирования технологических процессов в ма шиностроении / В.С.Корсаков, Н.М.Капустин, К.Х.Темпельгоф, Х.Лихтенбер(; Под общ. ред. Н.М.Капустина. - М.: Машиностроение, 1985. - 305 с.
2.Быков В.П. Методическое обеспечение САПР в машиностроении. - Л.: Машиностроение, 1989. - 255 с.
3.Вязгин В.А., Федоров В.В. Математические методы
автоматизированною проектирования: Учеб, пособие для втузов. - М.:
Высш. шк., 1989. —184 с.
4.Гаврилова Т.А., Хорошевский В.Ф. Базы знаний интеллектуаль ных систем. - СПб.: Питер, 2001. - 384 с.
5.Гжиров Р.И., Серебреницкий П.П. Программирование обработки
на станках с ЧПУ: Справочник. - Л.: Машиностроение, 1990. - 588 с.
2 6 9
6. Грувер М., Зиммере Э. САПР и автоматизация производства. - М.:
Мир, 1987. 528 с.
7. Евдокимов В.В. и др. Экономическая информатика: Учеб, для ву зов / Под ред. д-ра экон.наук, проф. В.В.Евдокимова. - СПб.: Питер, 1997. — 592 с.
8.Евсин Е.А., Зубаирова Л.Х. Информационные технологии в науч ных и инженерных разработках. Ч. И. Представление знаний на языке таблиц решений: Учеб, пособие / Псрм. гос. техн. ун-т. - Пермь, 1999. —38 с.
9.Иващенко И.А., Иванов Г.В., Мартынов В.А. Автоматизированное проектирование технологических процессов изготовления деталей двигате лей летательных аппаратов: Учеб, пособие для вузов. —М.. Машиностроение,
1992.-336 с.
Ю.Ильичев А.В. Эффективность проектируемой техники: основы ана лиза. -М .: Машиностроение, 1991. - 336 с.
11 .Интеллектуальные САПР технологических процессов в радиоэлек тронике / А.С.Алиев, Л.С.Восков, В.Н.Ильин и др.; Под рсд. В.Н. Ильина. - М.: Радио и связь, 1991. - 264 с.
12. |
Интеллектуальные системы принятия проектных решений А |
Алексеев, А.Н. Борисов, Э.Р. Вилюмс и др. - Рига: Зинатне, 1997. - 320 с. |
|
13. |
Карданская И.Л., Чудаков А.Д. Системы управления производ |
вом: анализ и проектирование: Учеб, пособие. - М.: Русская деловая литера |
|
тура, 1999. - 240 с. |
|
М.Майерс |
Г. Надежность программного обеспечения. - М.: Мир, |
1980.-360 с. |
|
15.Маталин А.А. Технология машиностроения. Учеб, для вузов. - Машиностроение, 1985. - 496 с.
16.Норенков И.П., Маничев В.Б. Основы теории и проектирован САПР: Учеб, для спец. «Вычислительные маш., сист. и сети». - М.: Высш.
шк., 1990. - 335 с.
17.Норенков И.П. Разработка систем автоматизированного проек рования: Учеб, для вузов. - М.: Изд-во Ml ТУ им. Н.Э.Баумана, 1994. - 207 с.
18.Норенков И.П. САПР на выставке Comtek’2001 // Информационн технологии. - 2001. - № 8.
19.Погребинский А., Павлов А. Сравнительный анализ CAD/CA систем // Машиностроение. - 2000. - № 8.
20.Рыжов Э.В., Аверченков В.И. Оптимизация технологических п цессов механической обработки / Отв. ред. АЛ.Гавриш; АН УССР. Ин-т сверхтвердых материалов. - Киев: Наук, думка, 1989. - 192 с.
21.САПР в технологии машиностроения: Учеб, пособие. —Ярослав Яросл. гос. техн. ун-т, 1995. - 298 с.