Меню

Ошибки проектирования ошибки алгоритмизации ошибки программирования недостаточное качество защиты

Содержание:

Введение

Программное обеспечение, согласно ГОСТ 19781-90, – совокупность программ системы обработки информации и программных документов, необходимых для их эксплуатации.

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

Проблема надежности программного обеспечения относится, похоже, к категории «вечных». В посвященной ей монографии Г.Майерса, выпущенной в 1980 году (американское издание — в 1976), отмечается, что, хотя этот вопрос рассматривался еще на заре применения вычислительных машин, в 1952 году, он не потерял актуальности до настоящего времени. Отношение к проблеме довольно выразительно сформулировано в книге Р.Гласса: «Надежность программного обеспечения — беспризорное дитя вычислительной техники». Следует далее отметить, что сама проблема надежности программного обеспечения имеет, по крайней мере, два аспекта: обеспечение и оценка (измерение) надежности. Практически вся имеющаяся литература на эту тему, включая упомянутые выше монографии, посвящена первому аспекту, а вопрос оценки надежности компьютерных программ оказывается еще более «беспризорным». Вместе с тем очевидно, что надежность программы гораздо важнее таких традиционных ее характеристик, как время исполнения или требуемый объем оперативной памяти, однако никакой общепринятой количественной меры надежности программ до сих пор не существует.

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

Цель данной работы – рассмотреть классификацию ошибок программного обеспечения для обеспечения его надежности.

Надежность программного обеспечения

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

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

Согласно ГОСТ 9126[2], качество программного обеспечения – это весь объем признаков и характеристик программного обеспечения, который относится к ее способности удовлетворять установленным или предполагаемым потребностям.

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

  • Функциональные возможности (Functionality). Набор атрибутов, относящихся к сути набора функций и их конкретным свойствам. Функциями являются те, которые реализуют установленные или предполагаемые потребности.
  • Надежность (Reliability). Набор атрибутов относящихся к способности программного обеспечения сохранять свой уровень качества функционирования при установленных условиях за установленный период времени.
  • Практичность (Usability). Набор атрибутов, относящихся к объему работ, требуемых для использования и индивидуальной оценки такого использования определенным и предполагаемым кругом пользователей.
  • Эффективность (Efficiencies). Набор атрибутов, относящихся к соотношению между уровнем качества функционирования программного обеспечения и объемом используемых ресурсов при установленных условиях.
  • Сопровождаемость (Maintainability). Набор атрибутов, относящихся к объему работ, требуемых для проведения конкретных изменений (модификаций).
  • Мобильность (Portability). Набор атрибутов, относящихся к способности программного обеспечения быть перенесенным из одного окружения в другое.

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

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

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

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

Рис. 1. Надежность по ГОСТ 27.002 – 89

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

В [3] надежность программного обеспечения предлагается характеризовать с помощью следующих характеристик (рис. 2): стабильность, устойчивость и восстанавливаемость.

Рис. 2. Надежность программного обеспечения

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

Для оценки стабильности программного обеспечения возможно использование показателей характеризующих безотказность технических устройств [2] (рис. 3).

Рис. 3. Показатели безотказности

В большинстве случаев поток программных ошибок может быть описан негомогенным процессом Пуассона [4]. Это означает, что программные ошибки происходят в статистически независимые моменты времени, наработки подчиняются экспоненциальному распределению, а интенсивность проявления ошибок изменяется во времени. Обычно используют убывающую интенсивность проявления ошибок. Это означает, что ошибки, как только они выявлены, эффективно устраняются без введения новых ошибок. Главная цель анализа надежности программного обеспечения заключается в том, чтобы определить форму функции интенсивности проявления ошибок и оценить ее параметры по наблюдаемым данным. Как только функция интенсивности проявления ошибок определена, могут быть найдены такие показатели надежности как:

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

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

В общем случае отказ программного обеспечения можно определить как:

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

При этом исходя из [2], все отказы в программном обеспечении следует трактовать как сбои (самоустраняющиеся отказы или однократные отказы, устраняемые незначительным вмешательством оператора), поскольку восстановление работоспособного состояния программного обеспечения может произойти без вмешательства оператора (перезагрузка ЭВМ не требуется), либо при участии оператора или эксплуатирующего персонала (перезагрузка ЭВМ необходима).

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

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

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

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

Наиболее приемлемыми показателями характеризующими стабильность (безотказность) программного обеспечения представляются показатели сходные с показателями безотказности технических систем: вероятность безотказной работы, интенсивность отказов, и среднее время наработки на отказ. Эти показатели взаимосвязаны и, зная один из них, можно определить другие [2]. При определении этих показателей в большинстве случаев можно исходить из модели надежности, предполагающей, что интенсивность проявления ошибок убывает по мере исправления этих ошибок, время между проявлениями ошибок распределено экспоненциально, а интенсивность проявления ошибок постоянна между двумя соседними проявлениями ошибок. Применение такой модели надежности программного обеспечения позволит оценить надежность программного обеспечения во время тестирования и отладки.

Устойчивость, как свойство или совокупность свойств программного обеспечения, характеризующие его возможность поддерживать приемлемый уровень функционирования при проявлениях ошибок в нем, можно оценивать условной вероятностью безотказной работы при проявлении ошибки. Согласно [5] устойчивость оценивается с помощью трех метрик, включающих двадцать оценочных элементов (рис. 4). Результаты оценки каждой метрики определяются результатами оценки определяющих ее оценочных элементов, а результат оценки устойчивости определяются результатами соответствующих ему метрик. Программное обеспечение по каждому из оценочных элементов оценивается группой экспертов – специалистов, компетентных в решении данной задачи, на базе их опыта и интуиции. Для оценочных элементов принимается единая шкала оценки от 0 до 1.

Недостатком такого подхода является одинаковая оценка устойчивости для всех возможных ошибок. Поскольку вероятность возникновения отказа при проявлении разных ошибок может быть разной, возникает необходимость разделения ошибок на несколько категорий. Признаком, по которому в этом случае можно относить ошибки к той или иной категории, можно считать тяжесть ошибки. Под тяжестью ошибки в этом случае следует понимать количественную или качественную оценку вероятного ущерба при проявлении этой ошибки [6], а если говорить о надежности, то оценку вероятности возникновения отказа при проявлении ошибки. При этом категорией тяжести последствий ошибки будет являться классификационная группа ошибок по тяжести их последствий, характеризуемая определенным сочетанием качественных и/или количественных учитываемых составляющих ожидаемого (вероятного) отказа или нанесенного отказом ущерба.

Рис. 4. Метрики и оценочные элементы устойчивости программного обеспечения по ГОСТ 28195 – 89

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

Таблица 1. Категории тяжести ошибки в программном обеспечении, нарушение работоспособности которого могут привести к катастрофическим последствиям

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

Таблица 2. Категории тяжести ошибки в программном обеспечении, нарушение работоспособности которого не приводят к катастрофическим последствиям

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

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

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

Источники ошибок программного обеспечения

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

Основными причинами ошибок программного обеспечения являются:

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

Источниками ошибок программного обеспечения являются:

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

Внешние: ошибки пользователей, сбои и отказы аппаратуры ЭВМ, искажение информации в каналах связи, изменения конфигурации системы.

  • Признаками выявления ошибок являются:
  • Преждевременное окончание программы.
  • Увеличение времени выполнения программы.
  • Нарушение последовательности вызова отдельных подпрограмм.

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

Ошибки, скрытые в самой программе: ошибка вычислений, ошибка ввода-вывода, логические ошибки, ошибка манипулирования данными, ошибка совместимости, ошибка сопряжения.

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

Неверные действия пользователя:

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

Неисправности аппаратуры установки: приводят к нарушениям нормального хода вычислительного процесса; приводят к искажениям данных и текстов программ в основной и внешней памяти.

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

Виды ошибок программного обеспечения

Характеристика основных видов ошибок программного обеспечения

Рассмотрим классификацию ошибок по месту их возникновения, которая рассмотрена в книге С. Канера «Тестирование программного обеспечения». Фундаментальные концепции менеджмента бизнес-приложений. Главным критерием программы должно быть ее качество, которое трактуется как отсутствие в ней недостатков, а также сбоев и явных ошибок. Недостатки программы зависят от субъективной оценкой ее качества потенциальным пользователем. При этом авторы скептически относятся к спецификации и утверждают, что даже при ее наличии, выявленные на конечном этапе недостатки говорят о ее низком качестве. При таком подходе преодоление недостатков программы, особенно на заключительном этапе проектирования, может приводить к снижению надежности. Очевидно, что для разработки ответственного и безопасного программного обеспечения (ПО) такой подход не годится, однако проблемы наличия ошибок в спецификациях, субъективного оценивания пользователем качества программы существуют и не могут быть проигнорированы. Должна быть разработана система некоторых ограничений, которая бы учитывала эти факторы при разработке и сертификации такого рода ПО. Для обычных программ все проблемы, связанные с субъективным оцениванием их качества и наличием ошибок, скорее всего неизбежны.

В краткой классификации выделяются следующие ошибки.

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

1. Ошибки пользовательского интерфейса.

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

2.Ошибки вычислений.

Выделяют следующие причины возникновения таких ошибок:

  • неверная логика (может быть следствием, как ошибок проектирования, так и кодирования);
  • неправильно выполняются арифметические операции (как правило — это ошибки кодирования);
  • неточные вычисления (могут быть следствием, как ошибок проектирования, так и кодирования). Очень сложная тема, надо выработать свое отношение к ней с точки зрения разработки безопасного ПО.

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

3.Ошибки управления потоком.

В этот раздел относится все то, что связано с последовательностью и обстоятельствами выполнения операторов программы.

Выделяются подпункты:

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

4.Ошибки обработки или интерпретации данных.

Выделяются подпункты:

  • проблемы при передаче данных между подпрограммами (сюда включены несколько видов ошибок: параметры указаны не в том порядке или пропущены, несоответствие типов данных, псевдонимы и различная интерпретация содержимого одной и той же области памяти, неправильная интерпретация данных, неадекватная информация об ошибке, перед аварийным выходом из подпрограммы не восстановлено правильное состояние данных, устаревшие копии данных, связанные переменные не синхронизированы, локальная установка глобальных данных (имеется в виду путаница локальных и глобальных переменных), глобальное использование локальных переменных, неверная маска битового поля, неверное значение из таблицы);
  • границы расположения данных (сюда включены несколько видов ошибок: не обозначен конец нуль-терминированной строки, неожиданный конец строки, запись/чтение за границами структуры данных или ее элемента, чтение за пределами буфера сообщения, чтение за пределами буфера сообщения, дополнение переменных до полного слова, переполнение и выход за нижнюю границу стека данных, затирание кода или данных другого процесса);
  • проблемы с обменом сообщений (сюда включены несколько видов ошибок: отправка сообщения не тому процессу или не в тот порт, ошибка распознавания полученного сообщения, недостающие или несинхронизированные сообщения, сообщение передано только N процессам из N+1, порча данных, хранящихся на внешнем устройстве, потеря изменений, не сохранены введенные данные, объем данных слишком велик для процесса-получателя, неудачная попытка отмены записи данных).

5.Повышенные нагрузки.

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

7.Ошибки тестирования.

Являются ошибками сотрудников группы тестирования, а не программы. Выделяются подпункты:

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

8.Ошибка выявлена и забыта.

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

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

Меры по повышению надежности программного обеспечения

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

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

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

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

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

Заключение

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

В заключение можно подвести итог:

  • В программном обеспечении имеется ошибка, если оно не выполняет того, что пользователю разумно от него ожидать;
  • Отказ программного обеспечения — это появление в нем ошибки;
  • Надежность программного обеспечения — есть вероятность его работы без отказов в течении определенного периода времени, рассчитанного с учетом стоимости для пользователя каждого отказа.

Из данных определений можно сделать важные выводы:

  • Надежность программного обеспечения является не только внутренним свойством программы;
  • Надежность программного обеспечения — это функция как самого ПО, так и ожиданий (действий) его пользователей.

Основными причинами ошибок программного обеспечения являются:

  • большая сложность ПО, например, по сравнению с аппаратурой ЭВМ;
  • неправильный перевод информации из одного представления в другое.

Список использованной литературы

  1. ГОСТ 27.002 – 89. Надежность в технике. Основные понятия. Термины и определения. // М.: Издательство стандартов, 1990.
  2. ГОСТ Р ИСО/МЭК 9126 – 93. Информационная технология. Оценка программной продукции. Характеристики качества и руководства по их применению. // М.: Издательство стандартов, 1994.
  3. ГОСТ 51901.5 – 2005. Менеджмент риска. Руководство по применению методов анализа надежности. // М.: Издательство стандартов, 2007.
  4. ГОСТ 28195 – 89. Оценка качества программных средств. Общие положения. // М.: Издательство стандартов, 1989.
  5. ГОСТ 27.310 – 95. Надежность в технике. Анализ видов, последствий и критичности отказов. // М.: Издательство стандартов, 1995.
  6. ГОСТ 51901.12 – 2007. Менеджмент риска. Метод анализа видов и последствий отказов. // М.: Издательство стандартов, 2007.
  7. Братчиков И.Л. «Синтаксис языков программирования» Наука, М.:Инси, 2005. — 344 с.
  8. Дейкстра Э. Заметки по структурному программированию.- М.:Дрофа, 2006, — 455 с.
  9. Ершов А.П. Введение в теоретическое программирование.- М.:РОСТО, 2008, — 288 с.
  10. Кнут Д. Искусство программирования для ЭВМ, т.1. М.: 2006, 735 с.
  11. Коган Д.И., Бабкина Т.С. «Основы теории конечных автоматов и регулярных языков. Учебное пособие» Издательство ННГУ, 2002. — 97 с.
  12. Липаев В. В. / Программная инженерия. Методологические основы. // М.: ТЕИС, 2006.
  13. Майерс Г. Надежность программного обеспечения.- М.:Дрофа, 2008, — 360 с.
  14. Рудаков А. В. Технология разработки программных продуктов. М.:Издательский центр «Академия», 2006. — 306 с.
  15. Тыугу, Э.Х. Концептуальное программирование. — М.: Наука, 2001, — 256 с.
  16. Хьюз Дж., Мичтом Дж. Структурный подход к программированию.-М.:Мир, 2000, — 278 с.

СПИСОК ДЛЯ ТРЕНИРОВКИ ССЫЛОК

  • Разработка клиент-серверного приложения по работе с базой данных «Локомотивное депо «
  • Анализ особенности управления мотивацией сотрудников на предприятиях гостиничного и ресторанного бизнеса на примере АО ТГК «Вега»
  • СУЩНОСТЬ И СОДЕРЖАНИЕ БАНКОВСКОГО МАРКЕТИНГА
  • Оформление и ведение учета операций с сомнительными, неплатежеспособными и имеющими признаки подделки денежными знаками
  • Виды, понятия, задачи оплаты труда на предприятии
  • ценообразование на услуги фитнес-клубов (Российский рынок фитнес-услуг)
  • Место и роль спортивной индустрии в экономике России (Теоретические аспекты индустрии спорта)
  • Влияние кадровой стратегии на работу службы персонала. (СОДЕРЖАНИЕ И СУЩНОСТЬ КАДРОВОЙ СТРАТЕГИИ)
  • Эффективный лидер и его команда (Виды лидерства)
  • Межфирменная научно-техническая кооперация
  • Прогнозирование эффективности реальных инвестиций коммерческого банка. Анализ инвестиционной деятельности ПАО «Сбербанк»
  • Страхование и его государственное регулирование в РФ
  • Курсы
  • Регистрация
  • Вход в личный кабинет
  • Новости
  • Техподдержка

Программы соответствуют новым ФГОС и рекомендуются Минпросвещения России

Наши образовательные программы обновлены в соответствии с новыми ФГОС и примерными рабочими программами учебных дисциплин общего образования и включены в Федеральный реестр дополнительных профессиональных программ педагогического образования Минпросвещения России.


Четверг, 16 мая 2019 09:22

ТЕСТ ПО ТЕМЕ «СТАНДАРТИЗАЦИЯ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ»

Оценка методической группы (категория УМК)

Научная новизна и актуальность: 100%1 Голосов

Полнота информации: 100%1 Голосов

Оригинальность: 100%1 Голосов

Соответствие нормативным требованиям: 100%1 Голосов

Доступность для внедрения: 100%1 Голосов

Рейтинг статьи

В голосовании могут принять участие только участники методической группы (успешные участники мероприятий портала: конкурс им. А.С. Макаренко, Всероссийское тестирование педагогов).

ТЕСТ ПО ТЕМЕ «СТАНДАРТИЗАЦИЯ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ»

  1. Соотнесите понятия и их определения:

1.      Программы

1)      это данные, предназначенные для управления конкретными компонентами системы обработки информации в целях реализации определенного алгоритма

2.      Программное средство

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

3.      Программный продукт

3)      это программное средство, предназначенное для поставки, передачи, продажи пользователю

4.      ЖЦ ПП

4)      это совокупность процессов, работ и задач, включающая в себя разработку, эксплуатацию и сопровождение ПС или системы, охватывающая жизнь ПС или системы от 6 установления требований к ним до прекращения их использования.

  1. Выберете недостающее слово:

«Существует ряд национальных, государственных и международных ____________, посвященных вопросам стандартизации, оценки качества и сертификации программных средств и систем качества предприятия.»

  • Стандартов +
  • Государственных услуг
  • Программных средств
  • Этапов ЖЦ
  1. Впишите недостающее слово:

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

Правильный ответ: качество программного средства

  1. Соотнесите понятия и их определения:

1.      Атрибут

1)      измеримое физическое или абстрактное свойство ПС. Атрибуты могут быть внутренними и внешними

2.      Критерий оценки

2)      это совокупность принятых в установленном порядке правил и условий, с помощью которых устанавливается приемлемость в целом качества программного средства

3.      Характеристика качества ПС

3)      набор свойств программного средства, посредством которых описывается и оценивается его качество

4.      Подхарактеристика качества ПС

4)      это характеристика качества программного средства, входящая в состав другой характеристики качества

5.      Метрика

5)      определенные метод и шкала измерения подхарактеристики качества

6.      Уровень пригодности ПС

6)      это степень удовлетворения потребности, представленная посредством конкретного набора значений характеристик качества программного средства

7.      Мера

7)      это число или категория, присвоенная атрибуту объекта путем измерения

8.      Измерение

8)      это использование метрики для присвоения атрибуту значения (числа или категории) из шкалы

9.      Шкала

9)      набор значений с определенными свойствами

  1. Качество ПС отражается тремя группами показателей, характеризующими:
  • внутреннее, внешнее, качество при использовании +
  • требуемое, обусловленное, реальное
  • номинальное, идеальное, реальное
  • определенное, достигнутое, недостигнутое
  1. На чем основано определение ошибки?
  • на эталонном состоянии объекта +
  • на случайном обнаружении ошибки
  • на поисковой деятельности
  • на явлении «back door»
  1. Какие факторы влияют на степень качества программного средства?
  • качество технологий проектирования +
  • качество разработки ПС +
  • качество сопровождения +
  • качество документирования +
  1. Определите к какому виду относятся следующие угрозы качеству программных средств:

1.      Внутренние

1)      Ошибки проектирования, ошибки алгоритмизации, ошибки программирования, недостаточное качество защиты

2.      Внешние

2)      Ошибки эксплуатации, искажение информации в сетях, сбои и отказы аппаратуры компьютера, изменения конфигурации системы

9. Вставьте пропущенное слово

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

Правильный ответ: case

  1. Вставьте пропущенное слово

______________ является основным методом измерения качества, определения корректности, реальной надежности и безопасности функционирования программ на всех этапах ЖЦ ПС.

Правильный ответ: тестирование.

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

12. Вставьте пропущенное слово:

Целью ___________________ ПС является удостоверение их качества, надежности и безопасности применения

Правильный ответ: сертификации

  1. Результатом системного проектирования являются:
  • системный проект +
  • техническое задание +
  • договор на продолжение проектирования +
  • выявление системных ошибок
  1. Какими бывают первичные ошибки:
  • технологические ошибки +
  • программные ошибки +
  • алгоритмические ошибки +
  • системные ошибки +
  1. Снижение трудоемкости, длительности проектов ПС, повышение качества разрабатываемых ПС, разработке, эксплуатации и сопровождении, обеспечение возможности расширять программное средство по набору прикладных функций и масштабировать в зависимости от размерности решаемых задач и другое являются:
  • целями применения стандартов +
  • методами применения стандартов
  • поводами применения стандартов
  • заменой применения стандартов
  1. Совокупность нескольких базовых стандартов и/или других нормативных документов с четко определенными и гармонизированными подмножествами обязательных и дополнительных возможностей, предназначенная для реализации заданной функции или группы функций – это:
  • профиль стандартов +
  • группа стандартов
  • классификация стандартов
  • множества стандартов
  1. Совокупность организационных структур, методик, технологий и ресурсов, необходимых для осуществления общего руководства качеством – это:
  • система качества +
  • стандартизация
  • сертификация
  • метрология
  1. Закончите построение модели внешнего и внутреннего качества программных средств, разместив характеристики по соответствующим им подхарактеристикам.

Функциональность

Пригодность

Правильность

Способность к взаимодействию

Защищенность

Надёжность

Завершенность

Отказоустойчивость

Восстанавливаемость

Эффективность

Времяемкость

Используемость ресурсов

Практичность

Понятность

Изучаемость

Простота использования

Привлекательность

Сопровождаемость

Анализируемость

Изменяемость

Стабильность

Тестируемость

Мобильность

Адаптируемость

Настраиваемость

Совместимость

Замещаемость

  1. Соотнесите уровни зрелости модели СММ с их описанием

Уровень 1. Начальный

Самоорганизующийся хаос. Процесс осуществляется случайным образом

Уровень 2. Повторяемый

Процесс планируется и отслеживается

Уровень 3. Определенный

Процесс полностью определен и организован на основе единого стандарта компании

Уровень 4. Управляемый

Количественное управление процессом, его качеством

Уровень 5. Оптимизирующий

Планомерное улучшение и повышение качества процесса

  1. Вставьте пропущенное слово:

Базовым понятием модели СММ является ___________ компании.

Правильный ответ: зрелость

О портале

Единыйурок.рф — онлайн-площадка для проведения мероприятий и реализации проектов в сфере образования.

Информация о средстве массовой информации «Единыйурок.рф»

Возрастная маркировка О+

Соцсети

Вы можете подписаться на нашу группу в «Вконтакте», где будете в курсе событий и новостей портала и образовательной политики.

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

Поддержка

Ознакомиться с часто задаваемыми вопросами по использованию сайта или получить консультацию по техническим вопросам можете в разделе «Поддержка».

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

Во время посещения сайта вы соглашаетесь с тем, что мы обрабатываем ваши персональные данные, в том числе cookies. Подробнее.

Методы оценки программной надежности

1. Анализ особенностей программной надежности
АСОИУ и методов прогнозирования программных отказов

.1 Основные понятия надежности программного
обеспечения

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

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

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

Перед тем как анализировать надежность программного
обеспечения уточним фундаментальные основные понятия теории надежности.

Надежность программного обеспечения — это свойство
обеспечивать получение в соответствии с заданным алгоритмом правильных результатов
в течении определенного интервала времени.

Отказ программного обеспечения — состояние комплекса
программ связанное с нарушением работоспособности комплекса программ и
прекращением дальнейшего функционирования из-за ошибок.

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

Надежность программного обеспечения АСОИУ определяется его
безотказностью, восстанавлиемостью и устойчивостью.

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

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

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

Известно, что сбой в теории надежности определяется как
самоустраняющийся отказ, не требующий вмешательства из вне для его устранения.
Другим словом — сбой есть автоматически устраняющийся отказ, имеющий достаточно
малое время восстановления. Поэтому применительно к надежности программного
обеспечения АСУ следует конкретно указывать критерий, позволяющий отнести
потерю работоспособности комплекса программ к отказу или сбою. В качестве
такого критерия возьмем некоторое пороговое значение времени восстановления (τв пор).

Таким образом на устранение сбоя затрачивается меньше времени
и ресурсов чем на устранение отказа. В формализованном виде определение сбоя и
отказа программного обеспечения могут быть представлены как:

τв с < τв порв о (1.1)

τв с — время восстановления
после сбоя.

τв о — время восстановления
после отказа.

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

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

.2 Основные причины и признаки выявления ошибок
программного обеспечения

Основными причинами ошибок программного обеспечения являются:

Большая сложность программного обеспечения, например, по
сравнению с аппаратурой ЭВМ.

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

Источниками ошибок программного обеспечения являются:

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

Внешние: ошибки пользователей, сбои и отказы аппаратуры ЭВМ,
искажение информации в каналах связи, изменения конфигурации системы.

Признаками выявления ошибок являются:

. Преждевременное окончание программы.

. Увеличение времени выполнения программы.

. Нарушение последовательности вызова отдельных подпрограмм.

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

Ошибки скрытые в самой программе: ошибка вычислений, ошибка
ввода-вывода, логические ошибки, ошибка манипулирования данными, ошибка
совместимости, ошибка сопряжения.

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

Неверные действия пользователя:

. Неправильная интерпретация сообщений.

. Неправильные действия пользователя в процессе диалога с
программным обеспечением.

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

Неисправности аппаратуры установки: приводят к нарушениям
нормального хода вычислительного процесса; приводят к искажениям данных и
текстов программ в основной и внешней памяти.

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

.3 Основные параметры и показатели надежности
программ АСОИУ

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

Параметр — количественные величины, в функции или математической
модели выбираемая или оцениваемая в конкретных условиях.

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

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

Рис. 1.3.1. t — время жизни программы.

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

1.4
Методы прогнозирования программных отказов и тестирование программ

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

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

Методы прогнозирования и тестирования программного
обеспечения включают в себя:

. Методы, позволяющие справиться со сложностью системы.

Сложность системы является одной из главных причин низкой
надежности программного обеспечения. В общем случае, сложность объекта является
функцией взаимодействия между его компонентами. В борьбе со сложностью
программного обеспечения используются две концепции: [Л.1]

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

Независимость. В соответствии с этой концепцией, для
минимизации сложности, необходимо максимально усилить независимость элементов
системы.

. Методы достижения большей точности при переводе информации.

Методы улучшения обмена информацией базируются на введении в
программное обеспечение системы различных видов избыточности:

Временная избыточность. Использование части
производительности ЭВМ для контроля исполнения и восстановления
работоспособности программного обеспечения после сбоя.

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

Программная избыточность включает в себя:

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

немедленное обнаружение и регистрацию ошибок;

выполнение одинаковых функций разными модулями системы и
сопоставление результатов обработки;

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

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

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

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

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

. Техническое задание.

. Описание системы.

. Руководство пользователя.

. Правила построения (стандарты) программ и интерфейсов.

. Критерии качества тестирования.

. Эталонные значения исходных и результирующих данных.

. Выделенные ресурсы, определяемые доступными финансовыми
средствами.

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

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

1.
Предлагаемых
изменений.

2.
Найденных
дефектов.

3.
Утвержденных
корректировок.

4.
Реализованных
изменений.

5.
Пользовательских
версий.

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


2. Анализ моделей оценки программной надежности

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

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

1. Показателей надежности комплекса программ в процессе
отладки;

. Количества ошибок оставшиеся не выявленными;

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

. Времени, необходимого для выявления всех ошибок с заданной
вероятностью.

Существуют ряд математических моделей:

Экспоненциальная модель изменения ошибок в зависимости от времени
отладки.

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

Модель Шумана. Исходные данные для модели Шумана собираются в
процессе тестирования программного обеспечения в течение фиксированных или
случайных временных интервалов.

Модель La Padula. По этой модели выполнение последовательности
тестов в m
этапов. Каждый этап заканчивается внесением исправлений в программное
обеспечение.

Модель Джелинского — Моранды. Исходные данные собираются в
процессе тестирования программного обеспечения. При этом фиксируется время до
очередного отказа.

Модель Шика — Волвертона. Модификация модели Джелинского —
Моранды для случая возникновения на рассматриваемом интервале более одной
ошибки.

Модель Муса. В процессе тестирования фиксируется время
выполнения программы (тестового прогона) до очередного отказа.

Модель переходных вероятностей. Эта модель основана на
марковском процессе, протекающем в дискретной системе с непрерывным временем.

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

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

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

Модель Коркорэна. Модель использует изменяющиеся вероятности
отказов для различных типов ошибок.

Модель Нельсона. Данная модель при расчете надежности
программного обеспечения учитывает вероятность выбора определенного тестового
набора для очередного выполнения программы.

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

2.1 Дискретно-меняющая модель

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

. Устранение ошибок в программе приводит к увеличению времени
наработки на отказ T на одну и ту же величину, равную:

DT(1) =DT(2) =…=DT(i) =
const (2.1.1)

DT(i) = T(i) — T(i-1)
(2.2.2)

. Время между двумя последовательными отказами:

t i = ti — ti-1 (2.1.3)

является случайной величиной, которую можно представить в
виде суммы двух случайных величин:

ti=ti-1 + DtI (2.1.4)

где Dti — независимые случайные
величины, которые имеют одинаковые математические ожидания M{Dt} и среднеквадратические
отклонения sDt.

. Начальный интервал времени t0 сравним со случайной
величиной Dt0, т.е. t0 » Dt0, поскольку в начальный период эксплуатации
программ отказы в них возникают весьма часто.

На основании второго предположения величину интервала между i-м (i-1) — м отказами можно
определить соотношением:

ti=ti-1 + Dti = t0 + Dtj (2.1.5)

из которого можно получить соотношение для определения времени
наступления m-го отказа в программе:

tm= ti =
(t0 + Dtj) (2.1.6)

исходя из третьего предположения полученные соотношения
примут вид:

ti =
t0 + Dtj = Dtj (2.1.7)

tm= (t0 + Dtj) = Dtij (2.1.8)

При этих предположениях средняя наработка между (m-1) — м и m-м отказами
программы равна:

T0(m) = M{tm-1} = M{Dtj} = Dtij = m M{Dt}. (2.1.9)

Средняя наработка до возникновения m-го отказа может быть определена по соотношению:

Tm = M{tm} = Dtijk) =  M{Dt}. (2.1.10)

2.2 Экспоненциальное распределение

Теперь непосредственно перейдем к анализу собственно
экспоненциального распределения.

Рассматриваемое распределение характеризуется рядом свойств,
такими как:

. Ошибки в комплексе программ являются независимыми и
проявляются в случайные моменты времени. Данное свойство характеризует
неизменность во времени интенсивности проявления и обнаружения ошибок (т.е. lош=const) в течение всего времени
выполнения программы (t=tн-t0).

. Интенсивность проявления и обнаружения ошибок lош (интенсивность отказов)
пропорционально числу оставшихся в ней ошибок:

l(t)= Kn0(t) (2.2.1)

где K — коэффициент пропорциональности, учитывающий реальное
быстродействию ЭВМ и число команд в программе.

3. В процессе исправления ошибок программы новые ошибки не
порождаются. Это означает, что интенсивность исправления ошибок dn/dt будет равна
интенсивности их обнаружения:

 (2.2.2)

Пусть N0 — число ошибок, имеющихся в программе перед
началом испытаний.

n(t) — количество ошибок, устраненных в ходе
испытаний (тестирования) программы;

n0(t) — число оставшихся в программе ошибок на момент
окончания испытаний.

Тогда n0(t)= N0 — n(t). (2.2.3)

Основываясь на предположениях, введенных выше, получим:

Решением этого дифференциального уравнения при начальных
условиях t=0
и t=0
является:

n(t)=N0(1-eKt); (2.5)

Надежность программы по результатам испытаний в течении
времени t
можно охарактеризовать средним временим наработки на отказ, равным:

. (2.2.6)

Если ввести исходное значение среднего времени наработки на отказ
перед испытанием, равного , то получим:

, (2.2.7)

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

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

. (2.2.8)

Если обозначить за m — число
обнаруженных отказов, а M0 — число отказов, которое должно произойти,
чтобы можно было выявить и устранить n
соответствующих ошибок, то есть:

, , (2.2.9)

то среднее время наработки на отказ и число обнаруженных
отказов определяется следующими соотношениями:

, (2.2.10)

, (2.2.11)

Если принять, что , получим:

, (2.2.12)

. (2.2.13)

Для практического использования представляет интерес число ошибок Dm, которое должно быть обнаружено и исправлено для того,
чтобы добиться увеличения среднего времени наработки на отказ от T01 до T02. Этот показатель может быть получен из
следующих соотношений:

,

. (2.2.14)

Дополнительное время испытаний, необходимое для обеспечения
увеличения среднего времени наработки на отказ с T01 до T02 определяется из
соотношений:

, (2.2.15)

Оценка надежности программ по времени испытаний определяется
согласно формуле:

. (2.2.16)

2.3 Методика оценки надежности программ по числу исправленных
ошибок

Пусть N0 — число ошибок, имеющихся в программе перед началом
испытаний.

n(t) — количество
ошибок, устраненных в ходе испытаний (тестирования) программы;

n0(t) — число оставшихся в программе ошибок на
момент окончания испытаний.

Тогда n0(t)= N0 — n(t).

Основываясь на предположениях введенных в пункте 2.2.1, а именно:  и l(t)= Kn0(t) то получим:

 (2.3.1)

K — коэффициент, учитывающий быстродействие компьютера.

Решением этого дифференциального уравнения при начальных условиях t=0 и t=0 является:

n(t)=N0(1-e-Kt); (2.3.2)0(t)=N0 — n(t)=N0e-Kt. (2.3.3)

Надежность программы по результатам испытаний в течении
времени t
можно охарактеризовать средним временим наработки на отказ, равным:

.

Если ввести исходное значение среднего времени наработки на отказ
перед испытанием, равного , то получим:

, (2.3.4)

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

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

. (2.3.5)

Если обозначить за m — число
обнаруженных отказов, а M0 — число отказов, которое должно произойти,
чтобы можно было выявить и устранить n
соответствующих ошибок, то есть:

, , (2.3.6)

то среднее время наработки на отказ и число обнаруженных
отказов определяется следующими соотношениями:

, (2.3.7)

, (2.3.8)

Если принять, что , получим:

, (2.3.9)

. (2.3.10)

Для практического использования представляет интерес число ошибок Dm, которое должно быть обнаружено и исправлено для того,
чтобы добиться увеличения среднего времени наработки на отказ от T01 до T02. Этот показатель может быть получен из
следующих соотношений:

,

,

Итак, оценка надежности программ по числу исправленных ошибок
определяется по формуле:

. (2.3.11)

2.4 Методика оценки надежности программ по времени испытания

Дополнительное время испытаний, необходимое для обеспечения
увеличения среднего времени наработки на отказ с T01 до T02 определяется из соотношений:

, (2.4.1)

где T01 и T02 определяются согласно формуле (2.3.9):

,

Оценка надежности программ по времени испытаний определяется
согласно формуле:

. (2.4.2)

2.5 Методика оценки безотказности программ по наработке

Наработку между очередными отказами — случайную величину T(i) можно представить в виде суммы двух случайных величин:

T(i) = T(i-1) + DT(i)
(2.5.1)

Последовательно применяя (3.3.1) ко всем периодам наработки между
отказами, получаем:

T(i) = T(0) + DT(ν) (2.5.2)

Случайная величина Тn
наработка до возникновения n-го отказа программы — равна:

Tn= T(i) = [T(0) +DT(ν)] (2.5.3)

Введем следующие допущения:

2) случайная величина T(0) пренебрежимо мала по
сравнению с суммой DT(ν)

Основанием для второго допущения могут служить следующие
соображения: в самый начальный период эксплуатации программы ошибки возникают
очень часто, то есть время T(0) мало. Сумма (2.5.3) быстро растет с увеличением n, и доля T(0) быстро падает. Будем считать что T(0)
DT(0). В соответствии со
вторым допущением имеем:

T(n) =DT(ν). (2.5.4)

Tn=  (2.5.5)

При одинаковых DT(ν) наработка между (n-1) и n отказами —
случайная величина T(n)
имеет математическое ожидание:

mt(n)=M[T(n)]=nmΔt (2.5.6)

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

σt(n) = σ∆ t; (2.5.7)

Для случайной величины Tn математическое ожидание равно:

=mt; (2.5.8)

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

= σt; (2.5.9)

Чтобы вычислить значения , и , необходимо по данным об отказах программы в течение периода
наблюдения tн найти статистические оценки числовых характеристик
случайной разности DT(i):

(2.5.10)

(2.5.11)

nн — число
отказов программы за наработку (0, tн).

Учитывая, что при t >tн число отказов nн >> 1, из (2.5.8) и (2.5.9) имеем:

mt(n)
mt , (2.5.12)

σt(n)= σ
tn; (2.5.13)

Поскольку случайные величины T(n) и Tn согласно
(2.5.4) и (2.5.5) равны суммам многих случайных величин, T(n) и Tn можно
считать распределенными нормально с математическими ожиданиями и дисперсиями,
определенными по (2.5.6) — (2.5.9), (2.5.12) и (2.5.13). Так как наработка
положительна, на практике используется усеченное на интервале (0, ∞)
нормальное распределение. Обычно нормирующий множитель с≈1.

При n>nн
плотность распределения наработки между очередными (n-1) и n отказами:

f(n)(τ) = , (2.5.14)

где τ отсчитывается
с момента последнего, (n-1) отказа.


Заключение

В работе было показано, что надежность программного
обеспечения, в десятки раз ниже чем аппаратурная надежность. Требования к
программной надежности это определение необходимого выполнения боевых задач в
течении не менее чем 1872 часов.

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


Список литературы

программный безотказность надежность прогнозирование

1.
В.В. Липаев Проектирование математического обеспечения АСУ. (системотехника,
архитектура, технология). М., «Сов. радио», 1977.

.
Р.С. Захарова Основные вопросы теории и практики надежности.

.
В.А. Благодатских, В.А. Волнин, К.Ф. Поскакалов Стандартизация
разработки программных средств.

.
А.А. Воронов Теоретические основы построения автоматизированных систем
управления. Разработка технического задания.-М.: Наука, 1997.

.
Основы прикладной теории надежности АСУ. Учебное пособие, Тверь, ВА ПВО, 1995,
н/с 32. 965,0-75. В.М. Ионов и др., инв. №8856.

.
Б.Н. Горевич. Расчет показателей надежности систем вооружения и резервированных
элементов. Конспект лекций, ВА ПВО, 1998, н/с 68.501.4, Г68, инв. №9100

Модель анализа надежности программных средств.


Характеристики качества программных средств по стандарту ISO 9126.

Основные понятия и показатели надежности программных средств.

По определению ГОСТ

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

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

      — пригодность для применения
  Функциональная пригодность   — точность
    — защищенность
      — способность к взаимодействию
      — соответствие стандартам и правилам проектирования
       
      — отсутствие ошибок
  Надежность   — устойчивость к ошибкам
    — перезапускаемость
       
   
Применимость
  — понятность
    — обучаемость
      — простота
       
  эффективность   — ресурсная экономичность
    — временная экономичность
       
      — удобство для анализа
  сопровождаемость   — изменяемость
    — стабильность
      — тестирование
       
      — аддаптируемость
  переносимость   — структуироваемость
    — замещаемость
      — внедряемость


Объекты уязвимости   Дестабилизирующие факторы и угрозы надежности   Методы предотвращения угроз надежности   Последствия нарушения надежности
     
— вычислительный процесс
— информация баз данных
— объектный код программы
— информация для потребителей
1. внутренние
— ошибки проектирования при постановке задач
— ошибки алгоритмизации
— ошибки программирования
— недостаточное качество средств
2. внешние
— ошибки персонала при эксплуатации
— искажение информации в каналах связей
— сбои и отказы аппаратуры
— изменение конфигурации системы
— предотвращение ошибок проектирования в Case-технологиях
— системное тестирование
— обязательная сертификация
— разрушение вычислительного процесса
— разрушение информации баз данных
— разрушение теста программ
— разрушение информации для потребителей
   
Оперативные методы повышения надежности
— временная избыточность
— информационная избыточность
— программная избыточность

РОЛЬ НАДЕЖНОСТИ В РАЗРАБОТКЕ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ.

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

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

Сегодня Теория надежности охватывает весь процесс создания программ.

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

1 фаза – требования/спецификация.

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

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

2 фаза – проектирование. – задача и ее требования/спецификация преобразуются в принципе решения – документы на основание которого принимаются конкретные решения для реализации. Рассматриваются вычислительные аспекты задачи- какая ЄВМ. Какими ресурсами она обладает и сколько их, какой язык программирования следует выбрвть, как разделить программу на модули, какова последовательность выполнения функций.

7. СОВРЕМЕННЫЕ СИСТЕМЫ АВТОМАТИЗИРОВАННОГО ПРОЕКТИРОВАНИЯ

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

Разумеется, чем сложнее прорабатываемое изделие, тем более сложной и многофункциональной должна быть САПР. Системы проектирования в масштабах предприятия за рубежом принято определять как CAD/CAM/CAE-системы, функции автоматизированного проектирования распределяются в них следующим образом: модули CAD (Computer Aided Design) — для геометрического моделирования и машинной графики, модули подсистемы CAM (Computer Aided Manufacturing) — для технологической подготовки производства, а модули CAE (Computer Aided Engineering) — для инженерных расчетов и анализа с целью проверки проектных решений. Таким образом, современная система CAD/CAM/CAE способна обеспечить автоматизированную поддержку работ инженеров и специалистов на всех стадиях цикла проектирования и изготовления новой продукции (рис. 11.1).

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


0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии

А вот еще интересные материалы:

  • Яшка сломя голову остановился исправьте ошибки
  • Ясность цели позволяет целеустремленно добиваться намеченного исправьте ошибки
  • Ясность цели позволяет целеустремленно добиваться намеченного где ошибка
  • Ошибки принтер санон mg 3640
  • Ошибки проектирования информационных систем