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. Первые три соответствуют логическим уровням и состоянию с высоким импедансом. Четвертый (х) означает неопределенное состояние и используется при моделировании неинициализированных сигналов, конфликтов (два выхода с противоположными состояниями соединены вместе), метастабильных состояний триггеров (при нарушении временных соотношений между входами данных и тактовым входом), иными словами, во всех случаях, когда симулятор не может определить значение данного сигнала. В реальном приборе такого сигнала, конечно, не бывает.


 

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

28949. Возникновение сословно-представительной монархии в Московском государстве. Внутренняя и внешняя политики Ивана IV 48.5 KB
  Внутренняя и внешняя политики Ивана IV В 16 веке в России складывается сословнопредставительная монархия. в России уже было 25 000 стрельцов. в России разразился настоящий хозяйственный кризис. Последствия опричнины для России были трагичными: 1.
28950. Борьба политических партий за власть в 1917 г. Большевистский государственный переворот 96 KB
  От большевиков в Исполком вошли А. Было принято предложение большевиков об усилении Исполкома путем введения в него по три представителя от партий большевиков меньшевиков и эсеров. На основании этого в состав Исполкома от большевиков были дополнительно введены В. Относительная гибкость партии так же как способность улавливать преобладавшие настроения масс содействовала победе большевиков по крайней мере столько же сколько революционная дисциплина организационное единство и авторитет Ленина.
28951. Борьба политический партий за власть, большевистский государственный переворот 31.5 KB
  Следствием кризиса был Корниловский мятеж в результате которого все большую популярность получили большевики был окончательно потерян авторитет ВП. ЦИК советов и ИСКД создали чрезвычайный орган Комитет народной борьбы с контрреволюцией в который входили меньшевики эсеры и большевики. В это время большевики активизировали работу в советах стали восстанавливать отряды Красной гвардии направили своих агитаторов в корниловские войска Донскую Уссурийскую и Дикую дивизии. Укрепили свои позиции большевики возросло их влияние в народе.
28952. Возникновение советской государственности. Политика «военного коммунизма» 46.5 KB
  С приходом большевиков к власти возможность расширения правительства за счет вхождения в него других социалистических партий не была утеряна. В рядах партии имелась влиятельная группа большевиков которая отстаивала эту позицию. На заседании ЦК большевиков 1 ноября эта линия была расценена как капитулянтская переговоры были свернуты а Каменев снят с поста председателя ВЦИКа. в него было избрано 715 из800 депутатов: 370 эсеров 175 большевиков 40 левых эсеров 17 кадетов 15 меньшевиков 86 представителей национальных партий.
28953. Гражданская война и военная интервенция в России, причины и последствия 33.5 KB
  Предпосылки и причины гражданской войны После Октябрьской революции сложилась напряжённая социалполитическая ситуация Приступая к грандиозному преобразованию России большевики нуждались в спокойствии на внешних границах. Внутренняя обстановка в России была не менее напряжённой. Вводилось единое для всего населения России наименование гражданин Российской республики.
28954. Теория и практика национальной политики большевиков. Образование СССР 47 KB
  Неустойчивость международного положения молодых советских республик в условиях капиталистического окружения также диктовала потребность в объединении. Значение этого разделения возросло после окончания Гражданской войны когда встала задача восстановления разрушенного хозяйства и преодоления экономической отсталости советских республик. сложился военнополитический союз советских республик. был подписан декрет Об объединении советских республик России Украины Латвии Литвы Белоруссии для борьбы с мировым империализмом.
28955. Новая экономическая политика и ее сущность 34 KB
  Нэп допускал некоторое развитие капиталистических элементов при сохранении командных высот народного хозяйства в руках государства диктатуры пролетариата; обеспечивал подъём производительных сил на базе роста социалистических и вытеснения капиталистических элементов преобразование многоукладной экономики в единую социалистическую на основе индустриализации страны и кооперирования сельского хозяйства. Нарушение в этот период экономических связей промышленности с сельское хозяйством через торговлю сокращение товарооборота подрывали...
28956. Курс большевистской партии на строительство социализма в одной стране. Индустриализация и коллективизация сельского хозяйства и их последствия 43.5 KB
  Предпосылки индустриализации. Техникоэкономическая отсталость могла стать хронической и перейти в историческую  необходимость индустриализации. Необходимость индустриализации. Социальная без индустриализации невозможно развитие экономики а следовательно и социальной сферы: образования здравоохранения сферы отдыха социального обеспечения.
28957. Формирование тоталитарно-бюрократического режима в СССР. Становление режима личной власти Сталина 25.5 KB
  Становление режима личной власти Сталина Борьба за власть среди партийных олигархов во второй половине 20х – начале 30х годов. Постепенно расправившись со внутрипартийной оппозицией новая оппозиция троцкистскозиновьевский блок правый уклон в ВКПб попытка отстранить Сталина от власти на XVII съезде последовательно устранив с политической арены Каменева Зиновьева Троцкого Бухарина Рыкова и Томского Сталин к середине 30х годов сосредоточивает в своих руках все властные полномочия и фактически устанавливает тоталитарную форму...