Большая Энциклопедия Нефти и Газа
Правильность программы определяется как соответствие между программой и ее заданной функцией. Для сведения задачи доказательства правильности определенной составной программы к задаче доказательства правильности определенных элементарных составляющих программ привлекают алгебраические понятия.
Верификация правильности программ без циклов осуществляется с помощью анализа соответствующих Е — схем. Лемма о переходе от итеративных программ к рекурсивным позволяет свести задачу верификации циклических программ к задаче верификации эквивалентных программ без циклов.
В теореме правильности обобщены требования к верификации, соответствующие ациклическим и циклическим элементарным программам. Для доказательства правильности программ используются трассировочные таблицы и разделяющиеся условные правила. Теоретико-функциональный подход к верификации иллюстрируется несколькими примерами.
Еще один способ доказательства правильности циклических программ основан на использовании инвариантов цикла. Инварианты применяются также в качестве вспомогательного средства документирования программ. Для определения инвариантов дана общая процедура, основанная на теореме об инварианте. Наконец, с целью углубления в процесс проектирования программ приводится метод вывода правильных программ, использующий функциональные уравнения элементарных программ, для которых существуют формальные решения. [2]
1.1 Правильность программ. Актуальность верификации.
Правильность программы в целом зависит от 1) корректности сведения программы к подзадачам и 2) правильности реализации подзадач. Этими вопросами можно заниматься независимо: при сведении задачи к подзадачам можно не думать об их реализации, при проверке реализаций можно не думать, как они используются. [3]
Правильность программы проверяется путем сравнения выведенной из машины информации с соответствующими результатами ручного контрольного просчета. [4]
Правильность программы доказывается только по отношению к входному и выходному утверждениям. Если выходное утверждение неправильно или неполно, может быть доказана правильность программы, а ошибки в ней останутся необнаруженными. Кроме того, ошибки, сделанные на более ранних этапах проектирования ( цели, внешний проект), не будут обнаружены при доказательстве. [5]
Правильность программы не определена вне области изменения данных, заданной спецификацией, и не зависит от динамики функционирования программ в реальном времени. [6]
Проверка правильности программы осуществляется составителем перед записью программы. [7]
Доказательство правильности программ , учитывающее основные, но не все возможные факторы. [8]
Проверка правильности программы еще не обеспечивает этойг правильности. Она лишь позволяет убедиться в правильности программы относительно выбранного теста ( в полной правильности, если тест полный, или в относительной — в противном случае) или обнаружить факт наличия ошибки. Далее следует работа по выявлению содержания ошибки и ее устранению. Эта работа носит название отладки программы. [9]
Правильность представления данных
Доказательство правильности программ , имеющих дело с непоименованными данными, проводится аналогично доказательствам, приведенным выше, за исключением того, что операции над непоименованными данными представляются специальными операциями над списками. [10]
Следовательно, правильность программы , как полная, так и достаточная, не доказана. Причиной этого является тот факт, что область определения функции sub включает значения yQ, которые не обрабатываются должным образом программой SUB. Следовательно, необходимо переопределить либо программу SUB, либо функцию sub, либо то и другое. [11]
Математическое доказательство правильности программы , состоящее в выявлении соответствия логического поведения программы ее спецификациям. При этом логическое поведение определяется множеством формальных утверждений. [12]
При проверке правильности программы замечаем, что для значения степени загрязнения более 100 млн 1 ( для некоторого момента измерений) значение over увеличивается на единицу. Вполне очевидно, что необходимо зафиксировать начальное нулевое значение этой переменной. Поэтому необходимо производить начальную установку кмк-менной over вне цикла почасовой обработки измерений, чтобы количество отсчетов для первого часа было верным. [14]
В доказательстве правильности программ и аксиоматической семантике языков программирования — логическое выражение, которое должно быть истинно после выполнения некоторого действия, если перед выполнением этого действия было истинно соответствующее предусловие. [15]
Источник: www.ngpedia.ru
Лекция 8. Понятие корректности программ
Под корректностью программы понимают её соответствие некоторому эталону или совокупности формализованных эталонных правил и характеристик.
Наиболее полным эталоном корректности программ является программная спецификация. Её особенностью является задание требований поведения программы для допустимых наборов входных данных. Поэтому корректная программа может неправильно работать или даже сбиваться на недопустимых наборах входных данных. Свойством устойчивости к недопустимым наборам входных данных обладает надежная программа — в этом заключается разница между надёжной и корректной программами.
Требования к корректности делятся в зависимости от двух типов критериев качества:
· Для функциональных критериев они определяются предметной областью и функциями выполняемой программы.
· Для конструктивных критериев они определяются общими для всех программ свойствами.
В зависимости от проверяемых компонентов программ различают следующие виды их корректности, показанные на рис.11.
1. Корректность текстов программ имеет только конструктивную составляющую; благодаря жёстким правилам языков программирования синтаксическая и семантическая корректность программ проверяется на этапе трансляции программы, и прошедшая трансляцию программа является корректной с этой точки зрения.
2. Корректность программных модулей имеет и конструктивную и функциональную составляющие:
· Конструктивная составляющая определяется правилами построения структуры программных модулей, задаваемыми в технологии и языке программирования.
· Функциональная составляющая корректности модулей зависит от предметной области и функциональных спецификаций программы.
Функциональная составляющая корректности может проверяться в различных условиях:
Детерминированная — для фиксированных наборов входных данных должны быть получены конкретные значения результатов;
Стохастическая — входные данные задаются случайными величинами с известными законами распределения и результаты также должны быть случайными величинами с требуемыми законами распределения и заданными корреляционными связями между входными и выходными данными.
Динамическая — характерна для систем реального времени и определяется согласованием во времени порядка поступления входных данных и порядка выдачи результатов выполнения программы.
В общем случае функциональные спецификации программы определяют и функциональ-ные требования к программе, и характеристики, с которыми они должны обеспечиваться, как это показано на рис.12.
3.Корректность данных имеет конструктивную и функциональную составляющие.
Структурная корректность данных относится к конструктивной составляющей и предполагает правильность построения структурированных данных в программе: массивов, стеков, очередей и т.п. Функциональная корректность данных определяется диапазонами изменения их значений и соответствием типов полей структур типам значений данных.
4. Корректность комплексов программ также имеет конструктивную и функциональную составляющие: конструктивная составляющая определяется корректностью структуры межмодульных связей по управлению и данным, определяемых в интерфейсных требованиях к программе; функциональной корректность комплекса программ определяется так же, как и функциональная корректность модулей.
II. Эталоны и методы проверки корректности.
Эталоны для проверки корректности программ могут использоваться в следующих трех формах, поясняемых с помощью рис.13:
1. Формализованные правила.
2. Программные спецификации.
Формализованные правила — имеют достаточно неопределенностей, так как опреде-ляются двумя видами требований:
* требования стандартов (общероссийских и стандартов предприятий);
* требования языков и технологий программирования.
Для полной убедительности в корректности программ одних формализованных правил недостаточно.
2. Программные спецификации — относятся к функциональным эталонам и в основ-ном обеспечивают проверку корректности программ в статике.
В зависимости от стадии и характера проверки разделяются тесты делятся на статические и динамические. Статическое тестирование — ручное тестирование программ, начиная со стадии формирования требований к программе. На стадии кодирования при статическом тестировании некоторую часть маршрутов исполнения тестируют вручную. Динамическое тестирование подразумевает достаточно полную структурную и функциональную проверку выполнения программы.
Как формируются эталоны для тестирования? Существует несколько способов формирования эталонов:
1) Использование аналитических выражений. Этот способ особенно подходит при детерминированном тестировании, так как имеется возможность сравнить результаты тестирования с ожидаемыми результатами. Имеются ограничения в использовании этого метода, если неизвестны или отсутствуют аналитические выражения связывающие входные данные и результаты; иногда требуется использовать много допущений.
2) Использование моделирования на ЭВМ. Способ является универсальным. При этом ряд данных моделируется другим способом и по другим алгоритмам, нежели испытываемая программа и на других ЭВМ. Причем наборы входных данных создаются по случайным законам, что обеспечивает высокую гибкость этого способа.
3) Использование результатов испытаний предшествующих вариантов программ.
При этом используется ранее накопленный опыт испытателя или других исследователей, выраженный в экспертных оценках ожидаемых результатов.
Степень достоверности проверки корректности программ при использовании этих методов убывает по номерам способов формирования эталонов.
В 1-ом случае обеспечивается 100% гарантия корректности программ, в третьем случае такой уверенности нет, но мы можем убедиться в том, что программа работает так же или иначе, чем аналогичный вариант. Менее достоверные тесты приходится использовать из-за недостаточности сил и средств.
Источник: studopedia.ru
Лекция 8. Понятие корректности программ.
Под корректностью программы понимают её соответствие некоторому эталону или совокупности формализованных эталонных правил и характеристик.
Наиболее полным эталоном корректности программ является программная спецификация. Её особенностью является задание требований поведения программы для допустимых наборов входных данных. Поэтому корректная программа может неправильно работать или даже сбиваться на недопустимых наборах входных данных. Свойством устойчивости к недопустимым наборам входных данных обладает надежная программа — в этом заключается разница между надёжной и корректной программами.
Требования к корректности делятся в зависимости от двух типов критериев качества
- Для функциональных критериев они определяются предметной областью и функциями выполняемой программы.
- Для конструктивных критериев они определяются общими для всех программ свойствами.
В зависимости от проверяемых компонентов программ различают следующие виды их корректности, показанные на рис.11. Рис.11 1. Корректность текстов программ имеет только конструктивную составляющую; благодаря жёстким правилам языков программирования синтаксическая и семантическая корректность программ проверяется на этапе трансляции программы, и прошедшая трансляцию программа является корректной с этой точки зрения. 2. Корректность программных модулей имеет и конструктивную и функциональную составляющие:
- Конструктивная составляющая определяется правилами построения структуры программных модулей, задаваемыми в технологии и языке программирования.
- Функциональная составляющая корректности модулей зависит от предметной области и функциональных спецификаций программы.
Функциональная составляющая корректности может проверяться в различных условиях: Детерминированная — для фиксированных наборов входных данных должны быть получены конкретные значения результатов; Стохастическая — входные данные задаются случайными величинами с известными законами распределения и результаты также должны быть случайными величинами с требуемыми законами распределения и заданными корреляционными связями между входными и выходными данными. Динамическая — характерна для систем реального времени и определяется согласованием во времени порядка поступления входных данных и порядка выдачи результатов выполнения программы. В общем случае функциональные спецификации программы определяют и функциональ-ные требования к программе, и характеристики, с которыми они должны обеспечиваться, как это показано на рис.12. Рис.12 3.Корректность данных имеет конструктивную и функциональную составляющие. Структурная корректность данных относится к конструктивной составляющей и предполагает правильность построения структурированных данных в программе: массивов, стеков, очередей и т.п. Функциональная корректность данных определяется диапазонами изменения их значений и соответствием типов полей структур типам значений данных. 4. Корректность комплексов программ также имеет конструктивную и функциональную составляющие: конструктивная составляющая определяется корректностью структуры межмодульных связей по управлению и данным, определяемых в интерфейсных требованиях к программе; функциональной корректность комплекса программ определяется так же, как и функциональная корректность модулей.
Источник: studfile.net
Правильность программ
правильность результатов, получаемых при выполнении программ на ЭВМ.
- Telegram
- Вконтакте
- Одноклассники
Еще термины по предмету «Информатика»
Алгоритмические ошибки
ошибки в методе, постановке, сценарии и реализации.
Аналоговое представление
представление непрерывно изменяющейся определенной физической величины другой, также непрерывно изменяющейся величиной (например, какой-либо механической величины током или напряжением).
Тезаурус
Словарь, который содержит разрешенные для использования при координатном индексировании лексические единицы ИПЯ, а также парадигматические отношения между этими лексическими единицами. Тезаурусы различают по принципу их организации (например, алфавитный [alphabetical thesaurus], иерархический [hierarchic(al) thesaurus] или фасетный [faceted thesaurus]), способу использования (например, машинный тезаурус [machine thesaurus], т.е. находящийся в памяти ЭВМ), тематике и полноте охвата его лексикой определенной предметной области (например, базовый тезаурус, рабочий тезаурус, многоотраслевой тезаурус, узкотематический тезаурус и т.п).
Похожие
- Правильность
- Правильность измерений
- Правильное испытание
- Правильные штампы
- Алгоритм правильный
- Метод правильный
- Результат правильный
- Правильная дробь
- Правильная пирамида
- Правильная призма
- Правильный многогранник
- Правильный многоугольник
- Правильный треугольник
- Правильность действий
- Правильный менеджмент
- Правильность логическая
- Правильность мышления
- Правильный модус
- Программа
- Автомобильный правильный стенд
Научные статьи на тему «Правильность программ»
1. Основные этапы процесса разработки программ. Контроль текста программы до выхода на компьютер
Ответственные участки программы проверяются с использованием методов доказательства правильности программ.
Методы доказательства правильности программ Неформальными методами доказательства правильности программ.
Но эти методы не решают полностью проблему правильности программы.
Программу считают правильной, если она решает сформулированную задачу.
Метод установления правильности программ при помощи строгих средств называется верификацией программ.
Источник:
Справочник
Категория:
Информатика
Статья от экспертов
2. Опыт образовательного учреждения по созданию программы «Питаемся правильно»
Авторы:
Романцева О.М.
Источник:
Здоровье – основа человеческого потенциала: проблемы и пути их решения
Научный журнал
3. Программа «Разговор о правильном питании»
Сущность программы «Разговор о правильном питании» Программа «Разговор о правильном питании» была разработана.
в соответствии с требованиями ФГОС НОО на основании следующих программ: «Разговор о правильном питании.
Макеева 2007 г.; «Формула правильного питания» М. М. Безруких, Т. А. Филиппова, А. Г.
осуществление деятельности, поисковые этапы работы и отработку знаний о продуктах правильного питания.
Программа «Разговор о правильном питании» выстраивается в соответствии со следующими принципами: научная
Источник:
Справочник
Категория:
Педагогика
Статья от экспертов
4. Влияние школьной образовательной программы правильного питания на педагогов
В ходе исследования изучалось влияние школьной программы обучения основам правильного питаниия на знания и поведение педагогов, участвующих в ее реализации. В исследовании приняли участие две группы учителей начальных классов из 6 регионов России. Первая группа 3 и более лет проводила специальный курс «Разговор о правильном питании», вторая не участвовавала в работе по формированию культуры питания у школьников. Всего было опрошено 400 педагогов. Выявлен позитивный вклад участия педагогов в с.
Источник: spravochnick.ru