- •Е.Л. Евсин, JI.X. Зубаирова
- •2-е издание стереотипное
- •Пермь 2005
- •ВВЕДЕНИЕ
- •ГЛАВА 1. ПРОЕКТИРОВАНИЕ КАК ОБЪЕКТ АВТОМАТИЗАЦИИ
- •1.1. Становление науки о проектировании
- •13. Основные аспекты системного подхода к проектированию
- •1.4. Структура жизненного цикла технической системы
- •1.5. Разновидности проектирования
- •1.6. Принципы проектирования
- •1.7. Стадии и процедуры проектирования
- •1.8. Формализация проектирования и режимы работы САПР
- •ГЛАВА 2. ФУНКЦИОНАЛЬНОЕ ПРОЕКТИРОВАНИЕ
- •2.1. Процедуры на стадии разработки технического задания
- •2.3. Процедуры на стадии разработки эскизного проекта
- •ГЛАВА 3. КОНСТРУКТОРСКОЕ ПРОЕКТИРОВАНИЕ
- •3.1. Задачи конструкторского проектирования
- •3.2. Геометрическое моделирование
- •3.3. Автоматическое создание чертежей
- •ГЛАВА 4. ОСНОВЫ ТЕХНОЛОГИЧЕСКОГО ПРОЕКТИРОВАНИЯ
- •4.1. Технологическая подготовка производства
- •4.2. Машиностроительное иронзводство и его характеристики
- •43. Основные понятия технологического проектирования
- •4.5. Методы обработки поверхностен
- •4.6. Припуски и допуски на обработку
- •4.7. Базирование и базы в машиностроении
- •4.8. Формирование структуры технологического процесса
- •4.9. Технологическая унификация
- •4.Н. Классификация и кодирование исходной информации
- •4.12. Структура технологического проектирования
- •4.13. Математические модели технологического проектирования
- •ГЛАВА 5. АВТОМАТИЗАЦИЯ ТЕХНОЛОГИЧЕСКОЙ ПОДГОТОВКИ ПРОИЗВОДСТВА
- •5.1. Функции и средства автоматизация ТПП
- •53. Организационная структура АСТПП
- •5.4. Функциональная структура АСТПП
- •5.5. Подсистема проектирования технологических процессов
- •5.6. Методы автоматизированного проектирования ТП
- •5.7. Методы прямого документирования и параметрического проектирования
- •5.9. Проектирование ТП по методу синтеза
- •5.10. Экспертные системы
- •5.11. Моделн представления знаний
- •5.12. Язык таблиц решений
- •ГЛАВА 6. ПРОЕКТИРОВАНИЕ ТЕХНОЛОГИЧЕСКИХ ПРОЦЕССОВ ПО МЕТОДУ СИНТЕЗА
- •6.1. Выбор исходной заготовки и метода ее изготовления
- •Т012. Выбор вида заготовки в серийном, крупносерийном и массовом производствах для трех групп материала
- •62. Установление маршрутов обработки отдельньи поверхностей
- •6.3. Разработка принципиальной схемы технологического процесса
- •6.5. Расчет технологических размеров
- •6.6. Проектирование операций
- •6Л. Расчет управляющих программ для ставков с ЧПУ
- •6.8. Проектирование технологических процессов сборки изделия
- •ГЛАВА 7. СИСТЕМЫ АВТОМАТИЗИРОВАННОГО ПРОЕКТИРОВАНИЯ
- •7.1. Состав и структура САПР
- •7.3. Классификация САПР
- •7.4. Интеграция САПР
- •7.6. Математическое обеспечение САПР
- •7.9. Лингвистическое обеспечение САПР
- •7.10. Методическое н организационное обеспечение САПР
- •7.12. Сравнительный анализ интегрированных CAD/CAM-систем
- •7.13. Проектирование надежных систем
- •Вопросы к главе 7
- •Библиографический список
(СИТЕП МО), ковки и горячей объемной штамповки (СИТЕП ГОШ), сборки
(СИТЕП Сб) и др.
Подсистема «Фобос» составляет ядро системы управления цехом, ин тегрируя ТПП, оперативное календарное планирование (расчет, коррекцию и компьютерную поддержку производственных расписаний) и диспетчерский контроль за состоянием обрабатываемых деталесборочных единиц в услови ях единичного, мелкосерийного и серийного производства.
7.12. Сравнительный анализ интегрированных CAD/CAM-систем
Данный сравнительный анализ выполнен для машиностроительного предприятия и приведен в журнале [19]. Рассматривались следующие CAD/CAM-системы, распространенные на нашем рынке (перечень приво дится в алфавитном порядке):
-ADEM V 6.1 Trial (версия № 6 Trial);
-AutoCAD V 2000 (версия 2000);
-CADDSV5;
-КОМПАСУ 5.0;
-MicroStation Modeler 95;
-Рто/Engineer V2000;
-SolidEdge V 6.0;
-SolidWorks V 99;
-T-FLEX V 6.2;
-Unigraphics V 15.
Исследовались возможности систем no выполнению 20 задач (табл.7.2) с решением контрольных примеров. Например, для задач «Черче ние» и «Поддержка отечественных стандартов» предлагалось выполнить чертежи в соответствии с правилами ЕСКД. Для «Объемного моделирова ния», «2,5х-фрезерования», «Объемного фрезерования» были подготовлены модели (детали с карманами с вертикальной и криволинейной стенками, цресс-форма). В разделе «Адаптация к станочному парку» рассматривались библиотеки постпроцессоров в первую очередь применительно к отечествен ным системам управления станками. «Создание прикладных САПР» иссле довалось теоретически по документации. Для оценки «Редактирования ска нированного изображения» предлагалось внести изменения в текст и 1рафику сканированного чертежа формата А1 с последующим выводом чертежа на плоттер. «Поддержка пользователей» проверялась по качеству русскоязыч ной документации и HELP (помощи).
Качество систем оценивалось по трехбалльной системе. Наивысший балл присваивался в том случае, если все поставленные тесты выполнялись. Частичное выполнение засчитывалось как удовлетворительное. Невыполне ние всех тестов выносило оценку «плохо». При окончательном формирова-
258
нии оценки учитывались также личные впечатления специалистов, испыты вавших систему, и время на освоение и решение задач. Результаты сравни тельною анализа по всем 20 показателям (задачам) представлены в табл. 7.2.
Таблица 7.2
Анализ CAD/CAM-систем
|
6 .0 |
D |
2.v0 0 0 |
Задач и |
ME v . |
touC A |
|
|
|
|
|
|
D |
A |
|
|
A |
|
|
Плоское моделирование |
4 |
|
+ |
Черчение |
+ |
|
± |
Объемное моделирование |
4- |
|
4- |
Создание объемных сборок |
|
|
± |
Создание чертежа но трехмерной модели |
+ |
|
± |
Генерация технологической документа |
+ |
|
|
ции |
|
|
|
|
|
|
|
Редактирование сканированного изо |
+ |
|
|
бражения |
|
|
|
|
|
|
|
Средства созданий прикладных САПР |
± |
|
4- |
М еханообработка по 2D модели |
4- |
|
|
М еханообработка по 3D модели |
+ |
|
- |
Фрезерование 2х, 2,5х |
+ |
|
- |
Фрезерование Зх |
+ |
|
- |
Фрезерование 5х |
± |
|
- |
Фрезерование многопозиционнос |
Ч- |
|
- |
Электроэрозня 2х, 4х |
4- |
|
- |
Точение |
+ |
|
|
Сверление |
+ |
|
- |
Адаптация системы к станочному парку |
4- |
|
- |
Поддержка отечественных стандартов |
+ |
|
± |
Поддержка пользователя |
|
|
- |
C A D D S 5 |
« К о м п а с» v .5 .0 |
РгоЕ v .2 0 0 0 i |
S o lid E d g e v .6 .0 |
S o lid W o r k s 9 9 |
T -F lex v .6 .2 |
U n ig ra p h ics v . 15 |
M icro S ta tio n |
M o d eler 95 |
4- |
± |
± |
± |
± |
|
± |
|
4- |
± |
4- |
|
- |
- |
|
4- |
|
± |
4- |
- |
4- |
4- |
4- |
4-* |
|
|
X |
4- |
- |
4- |
|
|
4.* |
• |
|
- |
4- |
- |
f |
4- |
4 |
X |
4- |
|
± |
4- |
|
|
- |
|
|
± |
|
|
|
|
- |
|
|
|
|
|
|
4- |
± |
+ |
|
4- |
.± |
± |
|
4- |
4 |
- |
- |
- |
- |
- |
|
|
- |
4- |
- |
4- |
- |
- |
- |
т |
|
- |
4- |
- |
- |
- |
- |
- |
,± |
|
- |
4- |
- |
4- |
|
- |
- |
4- |
|
- |
|
|
|
||||||
4- |
- |
4- |
- |
- |
- |
+ |
|
- |
4- |
- |
4- |
- |
|
- |
4- |
|
- |
4- |
|
- |
- |
- |
- |
4- |
|
- |
•4 |
- |
- |
- |
|
- |
± |
|
- |
4- |
- |
± |
- |
- |
- |
4 - |
|
- |
4- |
- |
- |
- |
- |
- |
± |
|
- |
± |
4- |
|
- |
- |
4- |
- |
|
- |
4- |
4 |
± |
± |
4- |
4 |
|
|
4- |
Пр и м е ч а н и е :
+достаточная для решения задачи реализация соответствующей функции;
± неполная возможность использования или функциональная особенность, тре бующая доработки;
- отсутствие данной возможности в системе либо несоответствие функциональ ности современным требованиям;
* создание объемных сборок не в 3D моделировании, а в специализированных
модулях.
Для косвенной проверки полученных результатов было изучено пози ционирование систем в структуре российских предприятий. При этом рас сматривалась обобщенная структура, традиционно состоящая из следующих подразделений:
-проектного бюро (ПБ) - создание общих видов, общей компоновки;
-конструкторского бюро (КБ) - конструирование, выпуск конструк торской документации (КД);
-технологического бюро (ТБ) - создание техпроцессов, выпуск тех нологической документации (ТД);
- отдела ЧПУ - программирование станков с числовым программным управлением.
Для каждого продукта рассматривался доступный список официаль ных пользователей любых версий системы. Оценка отражает лишь распреде ление внутри списка для каждого продукта и ни в коей мере не показывает соотношение частоты применения различных продуктов (табл. 7.3).
Таблица 7.3
Применение систем по подразделениям
Возможности
ПБ
КБ
ТБ
ЧПУ
J |
|
|
«Компас» \\5.0 |
|
SolidEdge v.6.0 |
SolidWorks 99 |
|
Unigraphics v. 15 |
|
ADEM v.6.0 |
AutoCAD v.2000 |
CADDS5 |
РгоЕ v.2000i |
Т-Flex v.6.2 |
MicroStation Modeler 95 |
||||
|
|
1 |
|
|
|
+ |
- |
J |
1 |
± |
± |
4- |
- |
4- |
4- |
4- |
4- |
||
|
|
||||||||
4- |
4 |
- |
+ |
± |
- |
- |
T |
- |
± |
|
|||||||||
4- |
± |
- |
± |
- |
- |
- |
± + |
- |
|
»- |
- |
4- |
|
- |
- |
- |
- |
4- |
- |
ADEM применяется в основном для выпуска КД и ТД, очень часто - для подготовки УП для ЧПУ и для плоского и объемного моделирования из делий, оснастки и пресс-форм. Реже она используется для объемной компоновки.
AutoCAD применяется для выпуска КД и ТД, не отягощенных требо ваниями отечественных стандартов, реже - для плоских компоновок.
CADDS 5 чаще всего применяется для объемного моделирования и компоновки изделий, оснастки, пресс-форм, а также для подготовки УП для ЧПУ. В конструкторских подразделениях не встречается.
«Компас» используется в основном для выпуска чертежной КД, реже
Pro/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.Сравнение согласованности входных данных с какими-либо внут
ренними. Например, если на входе операционной системы возникает требо вание освободить некоторый блок памяти, то система должна убедиться, что этот блок в данный момент действительно занят.
Пассивные меры обнаруживают ошибку лишь тогда, когда ее симпто мы подвергаются проверке. Можно делать дополнительные проверки, если спроектировать специальные средства активного обнаружения ошибок. Эти средства объединяются в диагностический монитор (в данном случае имеет ся в виду второе значение монитора - контролирующая и регулирующая про грамма): параллельный процесс, который периодически анализирует состоя ние системы с целью обнаружить ошибку.
Диагностический монитор может реализовать как периодически вы полняемую задачу (например, через определенный промежуток времени), так и задачу с низким приоритетом, которая выполняется в то время, когда сис тема переходит в состояние ожидания. Например, монитор может обследо вать основную память, проверять необычные ситуации (например, процесс не планировался для выполнения в течение некоторого интервала времени), осуществлять поиск «затерявшихся» сообщений или операций ввода-вывода.
Исправление ошибок и устойчивость к ошибкам. Имея средства обнаружения ошибок, естественно предпринять следующий шаг —создать средства, нацеленные на исправление обнаруженных ошибок. По существу, термин «исправление ошибок» в применении к ПО означает ликвидацию ущерба, нанесенного ошибкой, - исправить ошибку в ПО без участия чело