Ћекции.ќрг


ѕоиск:




 атегории:

јстрономи€
Ѕиологи€
√еографи€
ƒругие €зыки
»нтернет
»нформатика
»стори€
 ультура
Ћитература
Ћогика
ћатематика
ћедицина
ћеханика
ќхрана труда
ѕедагогика
ѕолитика
ѕраво
ѕсихологи€
–елиги€
–иторика
—оциологи€
—порт
—троительство
“ехнологи€
“ранспорт
‘изика
‘илософи€
‘инансы
’ими€
Ёкологи€
Ёкономика
Ёлектроника

 

 

 

 


ѕассивное обнаружение ошибок




≈сли мы исходим из предположени€, что в программном обеспе≠чении будут ошибки, то, очевидно, в первую очередь следует прин€ть меры дл€ их обнаружени€. Ѕолее того, если необходимо принимать дополнительные меры (например, исправл€ть ошибки или их по≠следстви€), то все равно сна≠чала нужно уметь обнаруживать ошибки.

ћеры по обнаружению ошибок можно разбить на две подгруппы: пас≠сивные попытки обнаружить симптомы ошибки в процессе Ђобыч≠нойї работы программного обеспечени€ и активные попытки про≠граммной системы перио≠дически обследовать свое состо€ние в поис≠ках признаков ошибок. ѕассивное обнаружение рассматриваетс€ в этом разделе, активное Ц в следующем.

ћеры по обнаружению ошибок могут быть прин€ты на несколь≠ких структурных уровн€х программной системы. ¬ этом разделе мы будем ра≠ботать с уровнем подсистем, или компонент, т.е. нас бу≠дут интересовать меры по обнаружению симптомов ошибок, пред≠принимаемые при переходе от одной компоненты к другой, а также внутри компоненты. ¬се это, конечно, применимо также к отдельным модул€м внутри компоненты.

–азрабатыва€ эти меры, мы будем опиратьс€ на следующие положе≠ни€:

1. ¬заимное недоверие.  ажда€ из компонент должна предпола≠гать, что все другие содержат ошибки.  огда она получает ка≠кие-нибудь данные от другой компоненты или из источника вне системы, она должна предпо≠лагать, что данные могут быть неправильными, и пытатьс€ найти в них ошибки.

2. Ќемедленное обнаружение. ќшибки необходимо обнаружить как можно раньше. Ёто не только ограничивает наносимый ими ущерб, но и значительно упрощает задачу отладки.

3. »збыточность. ¬се средства обнаружени€ ошибок основаны на некоторой форме избыточности (€вной или не€вной).

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

1. ѕровер€йте атрибуты любого элемента входных данных. ≈сли вход≠ные данные должны быть числовыми или буквенными, про≠верьте это. ≈сли число на входе должно быть положительным, про≠верьте его значение. ≈сли известно, какой должна быть длина входных данных, проверьте ее.

2. ѕримен€йте Ђтэгиї [4] в таблицах, запис€х и управл€ющих блоках и провер€йте с их помощью допустимость входных данных. “эг Ц это поле записи, €вно указывающее на ее назначение.

3. ѕровер€йте, находитс€ ли входное значение в установлен≠ных пре≠делах. Ќапример, если входной элемент Ц адрес в основ≠ной пам€ти, прове≠р€йте его допустимость. ¬сегда провер€йте по≠ле адреса или указател€ на нуль и считайте, что оно неверно, если равно нулю. ≈сли входные данные Ц таблица веро€тностей, про≠верьте, наход€тс€ ли все значени€ между нулем и единицей.

4. ѕровер€йте допустимость всех вариантов значений. ≈сли входное поле Ц код, обозначающий один из дес€ти районов, ни≠когда не предпола≠гайте, что если это не код ни одного из районов 1, 2,..., 9, то это об€за≠тельно код района 10.

5. ≈сли во входных данных есть кака€-либо €вна€ избыточность, вос≠пользуйтесь ею дл€ проверки данных.

6. “ам, где во входных данных нет €вной избыточности, введи≠те ее. ≈сли ваша система использует крайне важную таблицу, подумайте о вклю≠чении в нее контрольной суммы. ¬с€кий раз, когда таблица обновл€етс€, следует просуммировать (по некото≠рому модулю) ее пол€ и результат по≠местить в специальное поле контрольной суммы. ѕодсистема, использую≠ща€ таблицу, сможет теперь проверить, не была ли таблица случайно ис≠порчена, Ц дл€ этого только нужно выполнить контрольное суммирование.

7. —равнивайте, согласуютс€ ли входные данные с какими-ли≠бо внутренними данными. ≈сли на входе операционной системы возникает требование освободить некоторый блок пам€ти, она дол≠жна убедитьс€, что этот блок в данный момент действительно зан€т.

 огда разрабатываютс€ меры по обнаружению ошибок, важно при≠н€ть согласованную стратегию дл€ всей системы (т.е. приме≠нить идею концептуальной целостности к обнаружению ошибок). ƒействи€, предпри≠нимаемые после обнаружени€ ошибки в программном обеспечении (напри≠мер, возврат кода ошибки), должны быть единообразными дл€ всех компо≠нент системы. Ёто ставит вопрос о том, какие именно действи€ следует пред≠прин€ть, когда ошибка обнаружена. Ќаилучшее решение Ц немедленно за≠вершить выполнение программы или (в случае опе≠рационной системы) пе≠ревести центральный процессор в состо€ние ожидани€. — точ≠ки зрени€ предоставлени€ человеку, отлаживающему программу, например систем≠ному программисту, самых благопри€тных ус≠ловий дл€ диагностики оши≠бок немедленное завершение представ≠л€етс€ наилучшей стратегией.  о≠нечно, во многих системах подоб≠на€ стратеги€ бывает нецелесообразной (например, может оказать≠с€, что приостанавливать работу системы нельз€). ¬ таком случае используетс€ метод регистрации ошибок. ќписание симптомов ошиб≠ки и Ђмоментальный снимокї состо€ни€ системы сохран€етс€ во внешнем файле, после чего система может продолжать работу. Ётот файл позднее будет изучен обслуживающим персоналом.

¬сегда, когда это возможно, лучше приостановить выполнение про≠граммы, чем регистрировать ошибки (либо обеспечить как до≠полнительную возможность работу системы в любом из этих режи≠мов). –азличие между этими методами проиллюстрируем на спо≠собах вы€влени€ причин возни≠кающего иногда скрежета автомобил€. ≈сли автомеханик находитс€ на зад≠нем сиденье, то он может обследовать состо€ние машины в тот мо≠мент, когда скрежет возникает. ≈сли же вы выбираете метод регистрации оши≠бок (записыва€ скрежет на магнитофон), задача диагностики будет зна≠чительно сложнее.

 





ѕоделитьс€ с друзь€ми:


ƒата добавлени€: 2015-05-08; ћы поможем в написании ваших работ!; просмотров: 1543 | Ќарушение авторских прав


ѕоиск на сайте:

Ћучшие изречени€:

¬ы никогда не пересечете океан, если не наберетесь мужества потер€ть берег из виду. © ’ристофор  олумб
==> читать все изречени€...

522 - | 502 -


© 2015-2023 lektsii.org -  онтакты - ѕоследнее добавление

√ен: 0.009 с.