Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Технология программирования.doc
Скачиваний:
32
Добавлен:
10.05.2014
Размер:
4.18 Mб
Скачать

25.Эталоны при проектировании программ.

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

Источником эталона является ТЗ. В качестве эталона при проектировании сложных КП используют:

1) формализованное правило записи и структурного построения отдельных компонент подсистем и КП в целом;

2) детерминированные характеристики выполнения программ;

3) статистические характеристики функционирования КП и его частей.

Основные способы получения эталонных значений (параметров):

1) расчеты вручную или на ВС по известным алгоритмам;

2) разработка упрощенных и обобщенных математических моделей алгоритмов, реализованных в сложных КП;

3) использование результатов функционирования ранее эксплуатирующихся реальных систем;

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

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

Очень часто в получении эталона используют методы моделирования поведения объектов на ВС.

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

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

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

27.Типичные ошибки при проектировании сложных кп.

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

Анализ реальных разработок позволяет выявить 4 этапа обнаружения ошибок:

1) Автономная отладка отдельных компонентов и небольших изолированных подсистем.

2) проверка связей между программами и подсистемами (стыковка)

3) комплексная отладка в статике каждой из подсистем и КП в целом

4) комплексная отладка каждой из подсистем и КП в целом в динамике (с учётом временных характеристик).

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

На стадии эталонной отладки выявляется порядка 70% ошибок. Проверка связи – порядка 15%; комплексная отладка в статистике – 10%; комплексная отладка в динамике – 2-3% (рассматриваются только найденные ошибки).

В зависимости от этапа и типа работ при разработке сложных КП ошибки можно разделить на следующие типы:

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

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

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

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