Какие математические модели ошибок ПО вам известны?

Назовите причины и уровни ошибок в СПК.

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

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

Анализируя характеристики модификаций СПК, связанные с достижением корректности, безопасности и надежности их функционирования, можно:

· оценивать реальное состояние проекта, планировать трудоемкость и сроки его завершения;

· выбирать наиболее эффективные методы и средства устранения определенных видов дефектов, адекватные текущему состоянию СПК;

· выбирать средства защиты от потенциальных дефектов и ошибок;

· оценивать требуемые ресурсы ПЭВМ по расширению памяти и производительности с учетом затрат на реализацию контрмер при модификации и устранении ошибок.

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

По уровням ошибки подразделяют на:

· первичные;

· вторичные;

· небольшие;

· умеренные;

· критические.

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

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

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

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

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

· методология, технология и уровень автоматизации системного и структурного проектирования СПК и программирования ее компонентов;

· длительность отладки сопровождения и модификации СПК;

· класс СПК, размер и типы компонентов, в которых обнаруживаются ошибки;

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

· достоверность эталонов, которые используются для обнаружения ошибок.

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

· ошибки вследствие большого масштаба — размера СПК и высоких требований к его качеству;

· ошибки планирования и корректности требований модификаций СПК;

· ошибки проектирования СПК;

· системные ошибки из-за отклонений функционирования модулей в составе СПК от предполагавшегося функционирования при их проектировании;

· алгоритмические ошибки, связанные с неполной и (или) некорректной постановкой задач модификаций СПК;

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

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

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

Критические ошибки имеют уровень приоритета 10.


 

Какие математические модели ошибок ПО вам известны?

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

· надежности работы ПО в процессе отладки, испытаний и эксплуатации;

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

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

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

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

· суммарным числом первичных ошибок в комплексе программ (n0) или вероятностью ошибки в каждой команде программы (p0);

· числом ошибок, выявляемых в единицу времени в процессе тестирования и отладки при постоянных усилиях на ее проведение (dn/dτ);

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

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

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

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

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

Каждая обнаруженная ошибка подлежит исправлению, поэтому предполагается, что частота исправления ошибок пропорциональна частоте их обнаружения. Однако некоторые исправления, в свою очередь, содержат ошибки. Кроме того, некоторые ошибки являются связанными, и при обнаружении проявления одной ошибки следует исправление нескольких первичных ошибок. Из-за этого частота обнаружения ошибок и частота их исправления не равны, а должны быть связаны некоторым коэффициентом пропорциональности. Коэффициенты корреляции для исследованных комплексов программ довольно высокие — от 0,52 до 0,82 при среднем значении около 0,68, т. е. достаточно хорошо подтверждают гипотезу.

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

Приведенные предположения позволяют построить экспоненциальную математическую модель распределения моментов обнаружения ошибок в программах и установить связь между интенсивностью обнаружения ошибок при отладке dn/dτ интенсивностью проявления ошибок при нормальном функционировании программ λ и числом первичных ошибок n.

При пос­то­ян­ных уси­ли­ях на от­ладку ин­тенсив­ность об­на­руже­ния ис­ка­жений вы­чис­ли­тельно­го про­цес­са, прог­рамм или дан­ных вследс­твие еще не вы­яв­ленных оши­бок про­пор­ци­ональна ко­личес­тву ос­тавших­ся пер­вичных оши­бок в ком­плек­се прог­рамм. Пред­по­ложе­ние о сильной кор­ре­ляции меж­ду зна­чени­ями n0 и dn/dτ про­вере­но ана­лизом ре­альных ха­рак­те­рис­тик про­цес­са об­на­руже­ния оши­бок.

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

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

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

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

В процессе отладки и испытания программ для повышения наработки между проявлениями ошибок от величины Т1 до значения Т2 необходимо обнаружить и устранить ∆n ошибок. Эту величину можно определить, выразив число обнаруживаемых ошибок через длительность наработки на проявление ошибок.

Аналогичными несложными преобразованиями можно получить затраты времени на проведение отладки ∆τ, которые позволяют устранить ∆n ошибок и соответственно повысить наработку между очередными обнаружениями ошибок от значения Т1 до Т2.

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

 


Дата добавления: 2021-07-19; просмотров: 850; Мы поможем в написании вашей работы!

Поделиться с друзьями:




Мы поможем в написании ваших работ!