Файл: Отладка и тестирование программ: основные подходы и ограничения (Модульное тестирование).pdf
Добавлен: 04.04.2023
Просмотров: 175
Скачиваний: 2
Первый набор основных возможностей взаимодействия обеспечивается явными особенностями языка программирования, связанными с хорошо известными соглашениями о вызовах для целевой среды, указанной в базовых документах ABI. В большинстве соглашений находятся различные стандартные способы, доступные на стороне языка программирования.
В качестве первого примера, Справочное руководство Ada включает в себя полное приложение, посвященное этому вопросу, охватывающее взаимодействие с C, Cobol, Fortran и позволяющее реализовать поддержку других языков.
Минимальная поддержка, указанная в этом приложении, состоит из стандартных пакетов для каждого языка, например в Interfaces.C иерархия для C, и специфичные директивы компилятора:
• директива Import, чтобы загрузить объект, определенный на стороннем языке в программу на Ada, таким образом, позволяя подпрограммам, написанным на стороннем языке, быть вызванным из Ada;
• директива Export, чтобы экспортировать объект Ada стороннему языку;
• директива Convention, чтобы указать, что объект Ada должен использовать соглашения другого языка для передачи параметров в подпрограммы, либо представлять тип данных в памяти (например, определяющий порядок элементов матрицы);
• директива Linker Options, чтобы задать параметры системы, необходимые при компоновке программы.
В процесс включается для вызова функции, написанной на C, из Ada, чтобы распечатать числовое значение, находящееся в указанном адресе. Там используется стандартный пакет Interfaces. C для получения доступа к типу в Ada, соответствующему типу int, объявляет подпрограмму Ada для перевода сервисов C, и импортирует сервис с помощью директивы Import. Последняя говорит компилятору, что подпрограмма является внешней с соглашением C и устанавливает, какой символ (имя связи) должен быть использован, чтобы обратиться к ней with Interfaces.C; use__. Проблема связывания программного кода разных языков программирования явно выраженный комплексный характер и включает ряд основных этапов:
• разделение обязанностей языковых процессоров на внутренние и внешние;
• создание механизмов работы с данными: общих переменных, функций, создание механизмов передачи данных: контекст, стек значений, создание объектов, контролирующих процесс разбора кода.
В работе проведён анализ существующих инструментов, использующих или описывающих унификацию данных и процессов разбора программного кода. В результате проведённого анализа были получены следующие результаты [6]:
1. Рассмотрены существующие средства связывания данных: технология CORBA, инструмент SWIG, язык QtScript, рассмотрены способы хранения абстрактных данных в фреймворке Qt. Рассмотрены объекты типа QVariant, их создание, конвертирование, копирование. Возможность хранения в контейнерах других контейнеров.
2. Рассмотрены основные принципы разделения процесса разбора кода на отдельные этапы, а также особенности каждого этапа.
На основе проведенного анализа сформулированы цели и задачи исследования, состоящие в улучшении характеристик универсального интерпретатора, повышения производительности его пользователей за счет удобства использования нескольких языков программирования, разработке программных компонентов для языков SmScript, JavaScript, а также в исследовании влияния унификации доступа на быстродействие программного модуля. Универсальный командный интерпретатор представляет собой динамическую библиотеку, подключаемую к любой другой программе. Эта библиотека предназначена для предоставления единого интерфейса передачи данных и управления во внутренние интерфейсы разных языков программирования.
Использование универсального командного интерпретатора предоставляет следующие возможности: − загрузка динамических библиотек для языков программирования; − передача данных в универсальном виде для использования их как в основном модуле программы, так и во внутренних интерфейсах; − передача функций в универсальном виде для использования их в программном коде, написанном на разных языках программирования; − запуск процесса трансляции программного кода; − прерывание процесса трансляции программного кода; − запуск процесса исполнения программного кода; − прерывание процесса исполнения программного кода.
В процессе разработки и исследований получены следующие научные результаты:
1. Поставлена проблема универсальной интерпретации программного кода.
2. Предложена новая методика для универсальной интерпретации программного кода.
3. Разработан программный модуль «Универсальный командный интерпретатор» (ПМ УКИ).
4. Программный модуль расширен для поддержки нескольких новых языков программирования.
5. Проведено тестирование производительности программного модуля для разных языков программирования на задачах, имеющих разную вычислительную сложность. Практическая ценность работы заключается в расширении возможностей универсальной интерпретации программного кода и повышении производительности работы программистов за счёт использования разработанного программного модуля в разных областях программирования, таких как модульное программирование, сопряжённое проектирование, тестирование, отладка.
ЗАКЛЮЧЕНИЕ
Отладка программы – это процесс поиска и устранения ошибок. Часть ошибок формального характера, связанных с нарушением правил записи конструкций языка или отсутствием необходимых описаний, обнаруживает транслятор, производя синтаксический анализ текста программы. Транслятор выявляет ошибки и сообщает о них, указывая их тип и место в программе. Такие ошибки называются ошибками времени трансляции или синтаксическими ошибками.
Ошибочные ситуации могут возникнуть и при выполнении программы, например, деление на нуль или извлечение корня квадратного из отрицательного числа. Такие ошибки называются ошибками времени выполнения.
Программа, не имеющая ошибок трансляции и выполнения, может и не дать верных результатов из-за логических ошибок в алгоритме, т. е. алгоритмических или семантических ошибок. Ошибки подобного рода могут возникнуть на любом этапе разработки программы: постановки задачи, разработке математической модели или алгоритма. Необходим действенный контроль над процессом вычислений, позволяющий предотвращать или своевременно обнаруживать ошибки подобного рода. Для этого используются как качественный анализ задачи, основанный на различного рода интуитивных соображениях и правдоподобных рассуждениях, так и контрольный просчет или тестирование программы.
СПИСОК ЛИТЕРАТУРЫ
- Абросимова, М.А. Информационные технологии в государственном и муниципальном управлении: Учебное пособие / М.А. Абросимова. - М.: КноРус, 2013. - 248 c.
- Акперов, И.Г. Информационные технологии в менеджменте: Учебник / И.Г. Акперов, А.В. Сметанин, И.А. Коноплева. - М.: НИЦ ИНФРА-М, 2013. - 400 c.
- Атьков, О.Ю. Персональная телемедицина. Телемедицинские и информационные технологии реабилитации и управления здоровьем / О.Ю. Атьков, Ю.Ю. Кудряшов. - М.: Практика, 2015. - 248 c.
- Афонин, П.Н. Информационные таможенные технологии: Учебник / П.Н. Афонин. - СПб.: Троицкий мост, 2012. - 352 c.
- Альфред В. Ахо. Компиляторы: принципы, технологии и инструментарий, 2-е изд.: Пер. с англ. / Ахо, Альфред В., Лам, Моника С., Сети, Рави, Ульман, Джеффри Д. – М.: ООО “И.Д. Вильямс” 2015. - 1184 с.
- Гагарина Л.Г., Киселев Д.В., Федотова Е.Л. Разработка и эксплуатация автоматизированных информационных систем: учеб. пособие / под ред. проф. Л.Г. Гагариной М.: ИД ФОРУМ: ИНФРА-М, 2014, 384 с.
- Гамма. Приемы объектно-ориентированного проектирования. Паттерны проектирования / Э. Гамма, Р. Хелм, Р. Джонсон, Д. Влиссидес – СПб., 2010.
- Истомин Е.П. Высокоуровневые методы информатики и программирования: Учебник / Е.П. Истомин, В.В. Новиков, М.В. Новикова - СПб. ООО «Андреевский издательский дом» 2006 г. - 228 с.
- Э. Таненбаум. Распределенные системы: принципы и парадигмы / Э. Таненбаум, М. ван Стеен. – СПб.: Питер, 2003. - 877 с.
- Дж. Хопкрофт Введение в теорию автоматов, языков и вычислений, 2-е изд. /
- Хопкрофт, Джон, Э., Мотвани, Раджив, Ульман, Джеффри, Д. - М. Издательский дом «Вильямс», 2002. - 528 с.
- Федотова Е.Л. Информационные технологии и системы: учеб. пособие. - М.: ИД ФОРУМ: ИНФРА-М, 2009, 352 с.
- Федотова Е.Л., Федотов А.А. Информатика. Курс лекций / Е.Л. Федотова, А.А. Федотов учеб. пособие. - М.: ИД ФОРУМ: ИНФРА-М, 2011, 480 с.
- Федотова Е.Л., Портнов Е.М. Прикладные информационные технологии. учеб. пособие. - М.: ИД ФОРУМ: ИНФРА-М, 2013, 365 с. Щипицина, Л.Ю. Информационные технологии в лингвистике: Учебное пособие / Л.Ю. Щипицина. - М.: Флинта, 2015. - 128 c.
- Ээльмаа, Ю.В. Информационные технологии на уроках литературы: Пособие для учителей общеобр. учреждений / Ю.В. Ээльмаа, С.В. Федоров. - М.: Просв., 2012. - 176 c.
- Ясенев, В.Н. Информационные системы и технологии в экономике: Учебное пособие для студентов вузов / В.Н. Ясенев. - М.: ЮНИТИ-ДАНА, 2012. - 560 c.