47148

Способи розпізнавання та класифікації помилок ТСП

Контрольная

Информатика, кибернетика и программирование

Самые распространенные из них описываются ключевыми словами wire и reg соответственно. Однако следует помнить что средство синтеза не всегда реализует reg в виде триггера. Отличие wire от reg состоит в том что reg способен сохранять присвоенное значение работает как переменная в языках программирования а к wire требуется прилагать непрерывное воздействие driver. Существуют также wnd wor tri0 tri1 trind trior и trireg это цепь а не регистр для моделирования различных типов цепей wnd wired nd tri0 резистор к 0 trireg ...

Украинкский

2013-12-01

67.5 KB

1 чел.

33. Способи розпізнавання та класифікації помилок ТСП.

При віднайденні помилок в процесі виконання програми на сам перед потрібно зрозуміти причини виникнення помилок:

  1.  Помилка в результаті неуважного натиснення клавіатури. Буде розпізнано на рівні трансляції.
  2.  Неправильне розуміння формату константи або виконання машинної команди.

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

  1.  Помилка реалізації операції в компіляторі або машинної операції.

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

Подібні ситуації можуть виникати, коли в деяких випадках вхідних даних результати операцій не визначені, тобто можуть бути довільними.

Це можна виправити примусивши замовника уточнити результат або самому провести програму в межі допустимих даних.

  1.  Помилка в математичній моделі предметної області.

Для того, щоб перевірити наявність 3-ої та 4-ої помилок зручно використовувати підстановку даних в формули специфікацій задач і перевіряти тотожність специфікацій на конкретних значеннях. Якщо  результати виявляються не тотожними, то це може свідчити про 3 бо 4 причини.

Тоді потрібно перевірити коректність виконання операцій/операторів в  порівнянні з еталонними системами і прийти висновку відносно 3-ої чи 4-ої причини.

34.Організація діалогів для виправлення помилок.

35. Організація підказок для створення фрагментів програм.

36. Місце загальної методики тестування програм в життєвому циклі програмного забезпчення.

В простейшем варианте набор этапов жизненного цикла таков:

  •  анализ требований;
  •  проектирование (предварительное и детальное);
  •  кодирование и отладка ("программирование");
  •  тестирование;
  •  эксплуатация и сопровождение.

Стандартизованная схема жизненного цикла с четкой регламентацией необходимых работ и с перечнем соответствующей документации легла в основу так называемой «водопадной» или каскадной модели. Водопадная модель подразумевает жесткое разбиение процесса разработки программного обеспечения на этапы, причем переход с одного этапа на другой осуществляется только после того, как будут полностью завершены работы на предыдущем этапе. Каждый этап завершается выпуском полного комплекта документации, достаточной для того, чтобы разработка могла быть продолжена другой командой. Водопадная модель стала доминирующей в стандартах процессов разработки Министерства обороны США. Водопадная модель требовала точно и полно сформулировать все требования; изменение требований было возможно только после завершения всех работ. Водопадная модель не давала ответ на вопрос, что делать, когда требования меняются или меняется понимание этих требований непосредственно во время разработки.

В конце 80-х годов была предложена так называемая спиральная модель, был развит и проверен на практике метод итеративной и инкрементальной разработки (Iterative and Incremental Development, IID). В спиральной модели были учтены проблемы водопадной модели. Главный упор в спиральной модели делается на итеративности процесса. Описаны опыты использования IID с длиной итерации всего в полдня. Каждая итерация завершается выдачей новой версии программного обеспечения. На каждой версии уточняются (и, возможно, меняются) требования к целевой системе и принимаются меры к тому, чтобы удовлетворить и новые требования. В целом Rational Unified Process (RUP) также следует этой модели.

В последние годы в связи с появлением методов, которые принято обозначать эпитетом agile («шустрый», «проворный») предлагаются и внедряются новые конструктивные методы раннего обнаружения ошибок. Современные модели, такие как Microsoft Solutions Framework (MSF) и eXtreme Programming (XP), выделяют следующие рекомендации к разработке тестов:

  •  все необходимые тесты должны быть готовы к моменту реализации той или иной части программы; при этом обычно один тест соответствует одному требованию;
  •  совокупность ранее созданных тестов должна (при неизменных требованиях) выполняться на любой версии программы;
  •  если же в требования вносятся изменения, то тесты должны меняться максимально оперативно.

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

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

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

37. Підходи до автоматичної побудови тестів системних програм.

Автоматическая генерация тестов - Это главное достоинство новых инструментов; здесь они существенно опережают традиционные средства, поскольку используют не произвольные виды нотаций и методов моделирования и спецификации, а именно те, которые дают преимущества при автоматической генерации тестов. Так, утверждения позволяют сгенерировать тестовые «оракулы» — программы для автоматического анализа корректности результата; различные виды конечных автоматов или их аналоги позволяют сгенерировать тестовые последовательности. К тому же, поскольку модели обычно проще, чем реализации, для них удается провести более тщательный анализ, поэтому набор тестов становится более систематическим.

Каждый проект несет в себе некоторую специфику, возможно, препятствующую исчерпывающему тестированию. Однако опыт использования инструментов автоматической генерации тестов показывает, что обычно удается достичь хороших результатов, лучших, чем результаты, полученные в аналогичных проектах при помощи ручного тестирования. Пользователи UniTesK, обычно, за приемлемый уровень качества принимают 70-80% покрытия кода целевой системы; при этом должен быть удовлетворен, как минимум, критерий покрытия всех логических ветвей в постусловиях. Для некоторых сложных программ (в том числе, для блока оптимизации компилятора GCC) был достигнут уровень покрытия 90-95%. Есть ли принципиальные ограничения в применимости данного подхода? Его практически невозможно применять в случае, когда по той или иной причине никто в цепочке заказчик — разработчик — тестировщик не смог или не захотел четко сформулировать требования к целевой системе.

38. Особливості усунення помилок в реалізації комп’ютерних мов.

Звичайно, щоб зменшити кількість помилок і підняти швидкість відлагодження програми, рекомендується  використовувати такі методи програмних трансляторів, які  були б таблично керовані. Тобто, щоб виникала можливість  налагодження компілятора шляхом заміни елементів таблиць у відповідності з синтаксисом та семантикою вхідної мови.

Такі транслятори традиційно  називаються параметричними. Фактично параметрами для них є таблиці ключових слів імен стандартних функцій, а також синтаксичні правила, представлені у вигляді необхідному для обраного механізму синтаксичного розбору.

Тобто для висхідного розбору – це звичайно елементи відношень передування.  

Для нисхідного розбору – це або правила  підстановки для форм Бекуса, або правила переведені в форму синтаксичних графів.

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

Такі таблиці  разом з  уніфікованими  програмами лексичного та синтаксичного аналізу будують внутрішнє подання у формі модифікованих дерев розбору, або у формі спрямованих ациклічних графів.

Для того, щоб побудувати транслятор з уніфікованими  механізмами семантичної обробки доцільно створити стандарт внутрішнього кодування транслятора таким, щоб він охоплював всі можливі оператори різних мов програмування та моделювання. Тоді для більшості мов програмування фактичного можна буде виконати узагальнену виконавчу машину і додавати до неї лише специфічні  оператори для нової реалізації мови.

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

Зараз такі механізми використовує більшість фірм, що займаються реалізацією мов. Наприклад,Microsoft, починаючи з версії системної програми  DotNet або з 7–ої версії студії розробника, використовує єдину форму внутрішнього подання для всіх розширених мов програмування.

Зараз для реалізації великих проектів створюються уніфіковані механізми визначення адресного простору і  таким чином в сучасних версіях створена сумісність не тільки  на рівні  об’єктного коду, але й на рівнях управління пам’яттю у внутрішньому поданні.

В попередніх версіях, закінчуючи 6, транслятор з VisualBasic формував свою специфічну форму внутрішнього подання аж до створення ехе-файлу, що  ускладнювало  поєднання  модулів написаних на різних мовах.

Технології  автоматизованої побудови компонувальників створювались починаючи з 60-х років. Найбільш популярною є технологія LexYacc. Ця система була включена в Unix. Тобто, для створення лексичного та синтаксичного аналізатора (Parser), цей аналізатор настроюється специфічними метамовами.

Для настроювання лексичного аналізатора використовується так звана мова регулярних виразів, яка визначає групи та класи літер, інших символів, що входять до складу мови.

Для настроювання синтаксичного аналізатора використовують спеціальну мову визначення правил типу правил типу підстановки, які  передані  в таблиці реалізації мови.

Цей механізм часто використовують для побудови нових компіляторі, аналізаторі та ін.

В більшості американських університетів існують власні  розробки такого типу, які, як правило, мають назву схожу назвам різних биків (як, бізон, ін.).

39. Особливості технології реалізації мов моедлювання обладнання.

VHDL, VarilogHDL

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

Щодо розрядності даних: стандарт VarilogHDL визначає мінімальне значення верхньої межі  даних регістрового типу 64кбіт. Це означає, що потрібно організувати арифметику для обробки необмеженої довжини для роботи 64кбітами.

Для цих мов визначенні стандарти подання спеціальних форматів даних. За якими кожен біт, крім „0” або „1” (звичайний стан), може мати стани:

  •  невизначений,
    •  високоімпедансний.

Тому  виконання таких операцій досить специфічне.

Крім того ці мови дозволяють специфічні  зв’язки між структурними елементами, які повинні ефективно реалізовуватись.

40. Використання статистичних методів для аналізу коректності програм.

В процессе тестирования программы происходит сбор данных о значениях указанных параметров

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

отсутствует информация о спецификации на программу, необходимо каким-либо образом проверить,

правильно или нет выполняется каждый тест. Для решения данной проблемы предлагается использовать

методы Data mining.

Причина выбора нечёткого метода для идентификации правильности выполнения теста связана со

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

соответствии с которыми должна работать программа, – сложная задача, можно привлечь набор нечётких

методов для извлечения знаний из результатов тестирования. Иными словами, без вмешательства

человека постараться выявить в результатах тестирования определённые закономерности, ассоциации,

зависимости, последовательности и т.п. На основе полученных знаний можно делать выводы об

исключительных ситуациях, аномалиях в результатах тестирования, а также в соответствии с

определёнными критериями выбирать определённые тесты для проверки пользователем. Таким образом,

после выполнения сотен тестов программы через графический интерфейс, система тестирования выдаст

программисту несколько тестов для ручной проверки правильности. Получив информацию о правильности

тестов от пользователя, система учитывает её при построении закономерностей и впоследствии ищет

ошибки с учётом полученной информации.

В качестве методов Data mining подходящими для применения в данном подходе являются:

Алгоритм ограниченного перебора. Проверяет простые логические события в различных

подгруппах данных. Выбор логических событий производится эвристически.

Алгоритм выявления ассоциаций. Перевычисляет меры доверия к комбинациям фактов на

основе байесовской условной вероятности и понятия шанса.

Статистические методы. Использование усреднённых величин для проверки статистических

параметров распределений, доказательство гипотез о распределении случайных величин,

проверка линейной корреляции.

Нейронная сеть. Аппроксимация зависимостей с помощью нелинейных функций.

Применив перечисленные методы к данным о состояниях системы и переходам между состояниями,

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

воздействиями через графический интерфейс. На основе полученных знаний выделяются значения

параметров, отклоняющиеся от найденных закономерностей.

41. Спеціальні типи данних в мовах моделювання

 Verilog поддерживает следующие «стандартные» типы данных: целое — integer (32-битовое со знаком) и real — число с плавающей точкой.
   Для моделирования также используются time (время), специфический тип, применяемый встроенными функциями для моделирования времени, обычно 64-битовое целое; event (событие) — в языке существует ряд операторов и конструкций для работы с событиями.
      Сигналы, в отличие от VHDL, бывают двух основных типов: «цепи» и «регистры». Самые распространенные из них описываются ключевыми словами wire и reg соответственно. Однако следует помнить, что средство синтеза не всегда реализует reg в виде триггера. Отличие wire от reg состоит в том, что reg способен сохранять присвоенное значение (работает как переменная в языках программирования), а к wire требуется прилагать непрерывное воздействие (driver). То есть wire моделирует провод, который переходит в неопределенное состояние при отключении драйвера.
   Существуют также wand, wor, tri0, tri1, triand, trior и trireg (это цепь, а не регистр!) для моделирования различных типов цепей (wand — wired and, tri0 — резистор к 0, trireg — емкость и т. п.), но такие цепи встречаются редко и потому в статье не рассматриваются.

Пример:
integer i, j, k; // объявление переменных i, j и k типа integer
time start, duration;
real freq_div;
event start_process;
/* далее следуют объявления
однобитовых сигналов */
wire a, b, c;
wire d;
reg store, ff, A; // reg A не совпадает с wire a (case sensitive vs VHDL)
reg \dut/cntr/reg_s ; // escaped идентификатор (пробел перед «;»)


   Для описания шин или регистров неединичной ширины используются диапазоны (range) вида [n:m], где m и n — целые числа или параметры. В языке допускается как m>n, так и наоборот. Но это имеет значение в операциях, для которых важен порядок битов (например, сложение или присвоение целого). Поэтому принято располагать индексы в убывающем порядке:

wire [7:0] data_bus;
reg [3:0] high_nibble, low_nibble; // два 4-битовых регистра
reg [0:5] a_reg; // регистр с обратным порядком битов не рекомендуется


   Массивы в Verilog не поддерживаются, но существуют «памяти», собственно одномерный массив или модель памяти:

reg [8:0] Fifo [31:0]; // 32 слова 9-битовой памяти

   В Verilog существуют четыре типа значений, которые могут принимать сигналы «цепь» и «регистр»: 0, 1, z, x. Первые три соответствуют логическим уровням и состоянию с высоким импедансом. Четвертый (х) означает неопределенное состояние и используется при моделировании неинициализированных сигналов, конфликтов (два выхода с противоположными состояниями соединены вместе), метастабильных состояний триггеров (при нарушении временных соотношений между входами данных и тактовым входом), иными словами, во всех случаях, когда симулятор не может определить значение данного сигнала. В реальном приборе такого сигнала, конечно, не бывает.


 

А также другие работы, которые могут Вас заинтересовать

3740. Определение длины электромагнитной волны методом дифракции Фраунгофера 40.5 KB
  Определение длины электромагнитной волны методом дифракции Фраунгофера Цель работы: Исследовать явление дифракции электромагнитной волны. С помощью дифракционной решетки проходящего света измерить длины электромагнитных волн видимого диапазона...
3741. Диагностика новообразований личности подростка 490.5 KB
  Подростковый возраст – трудный период психологического взросления и полового созревания ребёнка. В самосознании происходят значительные изменения: появляется чувство взрослости – возникает страстное желание быть или хотя бы казаться и считаться взрослым.
3742. Учёные-ядерщики В истории советского атомного проекта 70.5 KB
  Ученые-ядерщики в истории советского атомного проекта Введение Обширный массив публикаций по истории создания ядерного оружия в СНГ, особенно мемуаров ветеранов атомного проекта и интервью с ними, появившихся в последние годы, впервые открыл реальну...
3743. Понятие и содержание ученического договора 74.5 KB
  Ученический договор является одним из институтов трудового права. Это соглашение между работодателем и работником, предусматривающее их обязанности. В нем должно быть закреплены обязательные условий, также могут включаться дополнительные ус...
3744. Мировые масштабы и направления потоков интеллектуальной миграции 53 KB
  Мировые масштабы и направления потоков интеллектуальной миграции По оценкам, к началу третьего тысячелетия в мире насчитывалось около 168 млн. иммигрантов, из которых не менее половины были нелегалами. По данным МОТ, в конце 90-х годов общее число...
3745. Вознаграждение персонала и другие меры поощрения 157 KB
  Стимулирование работы сотрудников осуществляется на двух уровнях. Первый уровень - это стимулирование каждого работника, а второй - стимулирование всего коллектива работников. На том и другом уровне управляющий должен определить, каков долж...
3746. Допуск членов экипажей к полётам 26.5 KB
  Допуск членов экипажей к полётам. Члены экипажей ВС могут быть допущены к самостоятельному выполнению заданий при условии: наличия пилотского свидетельства (лицензии пилота) соблюдения режима предполётного отдыха соблюдения норм лё...
3747. Туберкульоз та його профілактика 69 KB
  Проблема раннього, виявлення туберкульозу полягає у відсутності характерних, достовірних, кілінічних симптомів хвороби. Через те, що паренхіма легень не має больових нервових рецепторів, наявність специфічного інфільтрату в ній не викликає болі.
3748. Влияние низких температур на работоспособность сварных соединений 96.5 KB
  Свойства низкоуглеродистых и низколегированных сталей, а также сварных соединений из них наиболее заметно изменяются при понижении температуры. При испытании гладких образцов из этих сталей пределы текучести, прочности и выносливости повышаются, а о...