Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

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

..pdf
Скачиваний:
8
Добавлен:
12.11.2023
Размер:
8.74 Mб
Скачать

огранячеиий; отсутствия определяй#! некоторых Целей.

. явно

не ядеЦтифицярааяцныг «требованиях

пользова­

тели,

1-■!'.■■

' -li-i'S--'-.

Л -i^^V -.'■•■

"I!

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

« Написание компонентов ПО; В точке 4 обсуждаемой модели выполняется несколько шагов трансляции; начи­ ная с трансляция внутреннего описания и кончая деталь­ ной разработкой необходимого набора программных Опе­ раторов, обеспечивающих работу ПО и соответствии с заданными спецификациями.' Этот этап работы реали-1 эует такие шаги; как трансляция - внешнего' Описания' проблемы в структуру комяеяентоа ПО (модулей)) н трансляция этих компонентов в описания структурного уровня, например блок-схемы процессов обработки 'ин­ формации. Именно в этой точке модели разработчик имеет1дело с все возраствЮщЯМобЪёнОМ информации, а ' отсюда и вероятность возникновения ошибок Здесь достаточно высока. ОсНовными задачами исследования надежности системы в1это Время являются задачи срайннтельяого анализа эффективности различных способов обеспечения надежности ' и выбор' вариантов, обладаю­ щих 1заданной надежностью при: учете реально сущест­

вующих ограничений По различного рода ресурсам-. Эти исследования могут провОдйться иа уровне модеЛёЙ.

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

31

ляютНЯ. Втврым ^нтМНм тряйсляцик, проводимым на дай* ной srikne {точка*;15), -каляйгбй; Трансляций"неходкого программного модуля в машинный■код. Эта работа Ны полняется отдельной программой Компилятором. кото­ рый. Также;Мбжег mictii ошибку, что послужит причиной появлении ошибок в разрабатываемой программе.

’На посЛедукидем этапе разработанная программа про-, вернется с цельюопределеняяее приемлемости для Наме­ ченного использования. Эта проверка: может колебаться от беглого просмотра до интенсивного и самостоятель­ ного Контроля корректности программы (валидации) Предполагается, что после ваЛндаЦйи программа может применяться пользователем с целые получения пЛаин руемых результатов ее работы

Стадии отладки Н приемки в Эксплуатацию отлича ются от предыдущих стадий тем, что представляется возможным организовать наблюдение за фуякционирова иней системы в реальных условиях эксплуатации. Основ­ ными задачами На этбй. стадии являются задачи плани рования объемов и Сроков испытаний, оценки достигну того уровня надежности, а также проверки-выполнения заданных требований по надежности системы. Если при испытаниях и приемке в эксплуатацию представляется вбНм6жНН1М провести; испытания Системы в целом' то основными методами исследЬвания надежности являются методы Математической статисТикН.Еслн испытания сие текЫ^й'-т^деДкией 'объейе организовать не представ­ ляется возможным, то результаты" статистических иссле­ дований обрабатываются с Использованнем математичес кйх Моделей' надежности.:

Документация системы. Любой проект ПО заверши етей по^ мецьшёй мере двумя документамисобственно прЬгракмой н руководствами пользования этой програм мой': Эти руководства могут быть отпечатанными или хранимыми в Памяти вычислительной системы По мере необходимости руководства, хранимые в памяти, могут быть получены пользователем на свой терминал Содер­ жимое руководства пользования программы составляют как правило, результаты трансляции внутренних програм мных спецификаций в Материал, ориентированный на конкретный круг пользователей (системный программист программист, пользователь)

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

52

во д ам . .тцоццде,будет ор*Ж**ь работу программы, Полык>1атель, ознакомившись с руководством, по­

смотрит работу программы и может обнаружить ошиб­ ку. В едущие когда описание соответствует работе Яро» граним, то ошибки все-таки могут иметь место (например, ошибки трансляции допущены в точках 1, 2 или 3)

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

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

Сяецмфишмиш ЯЗЫ1ЮВ программяроамшя. Написание программы обработки информации может быть выполне­ но ца одном или. нескольких языках программирования. Конечный, продукт разработки — программа обработки информации — выражается оператором только одного языка. Неправильное использование языковых конструк­ ций, синтаксиса и семантики языка (иля языков) про­ граммирования может послужить серьезной причиной возникновения программных ошибок (точка 9)

Изучение документации. Существуют два айда вза­ имодействий пользователя с программным обеспечением: изучение описания использования программы и само использование программы (точка 10) Этот шаг транс­

53,

ляции отражает пользователя, чнтз!оицуго onpcagtyie 1 сбсздВЛямяЦего ЙрёдстВвле!и1*е о том, какчт будет примейя+ъ программу!

Для понимания воздействия этого процессе нд надежнбелгь'ТЮ предположим, что получена программа, в которой нбей^гся Неизвестные нам ошибки. Если поль­ зователь пытается выполнять какую-то работу, исполь­ зуя данную программу на основе ее описания (неполные и неточные описания), но не может точно определить, как это сделать, то он может попытаться эксперименти­ ровать с системой. Подобные попытки использования системы непредвиденным образом часто помогают вскрыть имеющиеся Ошибки. Следовательно, качество до­ кументации, предоставляемой пользователю, может воз­ действовать на надежность ПО.

Применение. Этот шаг (точка II) отражает прямое взаимодействие пользователя с системой, например ввод Данных с терминала и изучение полученных результа­ тов. Если работает невнимательный пользователь, то ве­ роятность того, что он сделает ошибку, велИка. Ошибки пользователя часто приводят к возникновению новых, непредвиденных состояний системы, что в свою очередь влечет вскрытиё ранее допущенных ошибок. Выявление и устранение ошибок могут повлечь за собой Повторение

вполном или частичном объеме всех работ, связанных

ссозданием ПО или отдельных компонентов системы.

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

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

М

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

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

3.2 КЛАССИФИКАЦИЯ ПРОГРАММНЫХ ОШ ИБОК

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

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

55

yw w p»nv) т в к ч м п г прогремит* г^вшибок.^ Эго позволяет сделать процесс иапяеания'ярагрммг более Эф­ фективным, а также снизитьстоймостные затраты за счет средств, расходуемых на обнаружение и 'устранение

ошибок. [ и

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

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

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

I 1)

ГДЕ произошла ошибка (признак ГДЕ),

ЧТО),

2)

на

ЧТО

похожа

ошибка

(признак

3)

КАК

была

сделана

ошибка

(признак

КАК),

4)КОГДА произошла ошибка (признак КОГДА),

5)ПОЧЕМУ произошла ошибка (признак ПОЧЕМУ)

SB

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

Признак ГДЕ. Ошибка может быть классифицирова­ на по признаку ГДЕ, исходя из контекста или среды, в ко­ торой она зафиксирована. Информация классифицирует­

ся на категории персонал, оборудование * 'программное обеспечение. В процессе работы признак ошибки ГДЕ4 от проявления к проявлению значительно ие ^изменяется,, поэтому целесообразно для каждого программного моду*- ля установить такое описание признака, в соответствия с которым классифицируются ошибки, пока не изменится: какой-либо аспект и не потребуется новое описание При-: знака.

Информация по категории персонем включает разделы структура и процедуры (операционные процедуры, пра­ вила кодирования и проверки, а также стандарты до-, кументироваиия). Раздел структура включает подразделы

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

цию.

.

Операционные

процедуры включают информацию о

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

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

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

57

 

|

нчтбкиммяиг

|

-

11 • '

*ч ■

3

 

| КОГДАйраммиимивт? I

 

:---------------

, L

■■ . .

1п п _ 1

нмАшм

1 _ j - s 5 sas

 

Рис 3.2 Классифииациоишш сиена ошибок

включая линии телефонной свяаи х терминалами. Раз» дед .сопровож дающее.обеспечение заключает* нфорамшию

о б о ,,всем ^оборудовании; необходимо*: iдля< подготбвкн модуля кработе (перфораторы н т ;щ ,).м ч • * i

, Информация м категории проераж мноербеспечение

включает разделы внутреннего ПО (языковый процессор, загрузчик,: редактор «вязей, обслуживающие программы) плркмене/ше .(размеры, смежные модули и облаете При­ менения). Каждый из этих разделов обеспечивает иден­ тификацию относящиеся .к тала программ по имени,! номе­ ру; версииит. д. Модуль, к которому применяется списа­ ние среды, дополнительно описывается в подразделе размеры количеством строк н операторов, в подразделе смежные модули перечислением имени и взаимосвязей! включающих отношенияуправления; равенству и подчн-* иенноети. Подраздел; область применения используется для опиСания видов работ, выполняемых с помощыЬ данного модуля. Описание ■включает реальное время, команды н контроль-, используемыепри обработке р у ч ­ ных данных' н текстов; систему управления информацией; моделирование, генерацию отчетов и т. д.

: Признак ЧТО. Программные ошибки Могут'ю*арШЬицироваться по признаку ЧТО, характеризующему Про­ явление ошибки. Эта информация оказывается •• «черь важной, так как она является первый заеиом цепи, веду­ щей к локализации и исправлению ошибки. Класснфикация .ошибок по .этому признаку зависит от результатов работы программы, а это в свою очередь определяется функциями,.выполняемыми программой, и используемыми ресурсами системы. Информация об ошибке может быть разделена, на категории программное, обеспечение, функции, ресурсы- и область.

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

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

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

59

ней данных При яадоьеоваицн ресурсов имбодее типич­ ными ошибками являются неправильное «елользоваиие

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

информации.

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

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

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

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

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

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

ее

Соседние файлы в папке книги