Файл: Системы автоматизированного проектирования технологических процессов..pdf

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 29.02.2024

Просмотров: 207

Скачиваний: 0

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

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) достаточно важен. Этот шаг по­ является при сопровождении (исправлении ошибок) и модификации (добав­ лении новых функций существующим программам). Вследствие этого сама по себе готовая программа - это еще не конец процесса перевода. Человек должен снова переводить ее при исправлении ошибок и добавлении новых функций. Ошибки, очевидно, могут возникать и на этом этапе, поэтому такие

особенности ПО, как свойства используемого языка программирования и стиль программирования, потребуют внимания.

Макромодель перевода описывает происхождение большинства оши­ бок в ПО и причины, лежащие в основе ненадежности.