Автореферат (Метод обнаружения ошибок при работе с памятью на статическом этапе отладки программного обеспечения)

PDF-файл Автореферат (Метод обнаружения ошибок при работе с памятью на статическом этапе отладки программного обеспечения) Технические науки (24812): Диссертация - Аспирантура и докторантураАвтореферат (Метод обнаружения ошибок при работе с памятью на статическом этапе отладки программного обеспечения) - PDF (24812) - СтудИзба2019-03-12СтудИзба

Описание файла

Файл "Автореферат" внутри архива находится в папке "Метод обнаружения ошибок при работе с памятью на статическом этапе отладки программного обеспечения". PDF-файл из архива "Метод обнаружения ошибок при работе с памятью на статическом этапе отладки программного обеспечения", который расположен в категории "". Всё это находится в предмете "технические науки" из Аспирантура и докторантура, которые можно найти в файловом архиве МАИ. Не смотря на прямую связь этого архива с МАИ, его также можно найти и в других разделах. , а ещё этот архив представляет собой кандидатскую диссертацию, поэтому ещё представлен в разделе всех диссертаций на соискание учёной степени кандидата технических наук.

Просмотр PDF-файла онлайн

Текст из PDF

На правах рукописиТетерев Михаил АлександровичМЕТОД ОБНАРУЖЕНИЯ ОШИБОК ПРИ РАБОТЕ С ПАМЯТЬЮ НАСТАТИЧЕСКОМ ЭТАПЕ ОТЛАДКИ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯСпециальность: 05.13.11«Математическое и программное обеспечениевычислительных машин, комплексов и компьютерных сетей»АВТОРЕФЕРАТдиссертации на соискание ученой степеникандидата технических наукМосква - 20132Работа выполнена в ОАО «Концерн «Моринсис-Агат», г. Москва.Научные руководители:доктор технических наук, профессор,профессор НИУ «МЭИ» Губонин Н.С.доктор технических наук, профессор,зав.

кафедрой 304 МАИ (НИУ) Брехов О.М.Официальные оппоненты:доктор технических наук, профессор,генеральныйконструкторОАО«Государственныйнаучно-исследовательскийинститут приборостроения» Гаврилин Б.Н.кандидат технических наук, доцент,зав. кафедрой «Автоматизированные системыобработкиинформациииуправления»МГУЭСиИ Микрюков А.А.Ведущая организация:научно-исследовательский институт им.

М.А.Карцева (НИИВК), 117437, г. Москва, ул.Профсоюзная, д.108.Защита диссертации состоится « » декабря 2013 г. в _____ на заседанииДиссертационного Совета Д212.125.01 при Московском авиационном институте(национальном исследовательском университете) «МАИ» по адресу: 125993, г.Москва, А-80, ГСП-3, ул.

Волоколамское шоссе, д. 4.С диссертацией можно ознакомиться в библиотеке МАИ.Автореферат разослан «____» ноября 2013 г.Ученый секретарьдиссертационного совета Д212.125.01кандидат технических наук, доцентА. В. Корнеенкова3Актуальность работыНадёжность и эффективность функционирования многих сложных системнародно-хозяйственного и оборонного назначения в значительной степениопределяется надёжностью ПО.

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

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

Втаком случае при разработке программного обеспечения (ПО) используетсядинамическое выделение памяти. Многие современные системы характеризуютсябольшим объемом данных, что также требует динамического выделения памяти.ПОсовременныхсистемреальноговремени(СРВ)написанопреимущественно на языках программирования С и С++. Данные языкипрограммирования позволяют разработчику динамически распределять иосвобождать память. Удобство динамического распределения памяти в C и C++состоит в том, что язык программирования предоставляет доступ к памяти,позволяет изменять размер выделенной программе памяти, перемещать, копироватьи освобождать ее во время исполнения приложения.

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

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

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

Основной задачей современных средств статического анализа(например, Coverity, Cppcheck) является поиск логических и стилистических ошибокв исходном коде программного обеспечения, а также выдача советов пооптимизации анализируемой программы. Указанные средства не позволяютохватить весь спектр программных ошибок при работе с памятью, возникаетбольшое количество ложных срабатываний, кроме того эти средства тратятизлишнее время для поиска указанных ошибок.Исходя из сказанного, создание методик и программно-инструментальныхсредств автоматизированного выявления программных ошибок при работе соперативной памятью в сложных динамических системах, реализованных на языкахпрограммирования C и C++, является актуальной задачей.Цель работыЦелью диссертационной работы является разработка и исследование методикиобнаружения и локализации основных программных ошибок при работе с памятьюна статическом этапе отладке программного обеспечения.Объект и предмет исследованияОбъектом исследования является программное обеспечение сложныхдинамических систем, включая системы реального времени.Предметом исследования является процесс отладки программногообеспечения.5Научная задача исследованияНаучную задачу исследования составляет разработка методики выявленияпрограммных ошибок при работе с памятью, позволяющей автоматизированонаходить наиболее опасные для систем реального времени ошибки.Декомпозиция научной задачи позволяет выделить следующие частныезадачи исследования.1) Критический анализ области, существующих подходов и инструментовобнаружения программных ошибок.2) Классификация программных ошибок при работе с памятью в ПО.3) Создание методики автоматизированного обнаружения программныхошибок при работе с памятью на основе анализа исходного кода ПО.4) Создание на основе предложенной методики программного средства,позволяющего проводить анализ ПО на статическом этапе отладки за существенноменьшее время, чем существующие средства.5) Сопоставительный анализ предложенного инструментария с известными.Научная новизнаНаучная новизна работы состоит в следующем:1)Разработана методика обнаружения и локализации основныхпрограммных ошибок при работе с памятью, использующая оригинальный методанализа исходного кода и выявления наиболее опасных ОРП на статическом этапеотладки программного обеспечения.2)Предложен метод анализа исходного кода ПО, реализованного на языкахпрограммирования C/C++, для выявления ОРП.

Метод отличается тем, чтовводится механизм контроля состояний сегментов памяти после построенияпромежуточного представления данных в режиме статической отладки. Методпозволяет выявлять наиболее опасные ошибки работы с памятью в исходном кодеПО на статическом этапе отладки за короткий промежуток времени.3)Разработана модель состояний объектов памяти и основанные на этоймодели правила выявления ОРП, в совокупности направленные на минимизациюзатрат времени.4)Предложена классификация ошибок, ориентированная на программныеошибки при работе с памятью, являющиеся критичными для систем реальноговремени.5)Предложена структура программного средства отладки ПО,позволяющая обнаруживать ошибки работы с памятью в программномобеспечении на статическом этапе отладки за короткий промежуток времени.6)Предложена система из четырёх показателей качества и методикасравнения по этим показателям программно-инструментальных средств выявленияошибок работы с памятью на статическом этапе отладки, использующая результатыработы этих средств на проектах ПО разного объёма и сложности.6Достоверность результатовДостоверность представленных в настоящей работе положений и выводовподтверждена полученными результатами экспериментальных исследованийразработанного прототипа программного средства MEDIS для отладки ПО.Практическая значимостьРазработанная методика предназначена для автоматизации обнаруженияпрограммных ошибок при работе с памятью в программном обеспечении.Применение данной методики позволяет повысить качество как вновьразрабатываемых, так и уже созданных программных систем, а также снизить объемтрудозатрат при отладке путем переноса основной нагрузки на статический этап.Предложенная методика может быть использована для выявления ОРП и в другихприложениях, которые критичны к ошибкам такого рода.Реализованный в рамках данной работы прототип средства обнаружения илокализации ошибок позволяет автоматизировано находить наиболее опасные ОРПза короткий промежуток времени.Теоретические и практические результаты диссертационной работы могутявляться основой для разработки промышленного средства выявления программныхошибок.Реализация результатов работыРеализацией результатов работы является прототип программного средстваотладки MEDIS, в котором использован разработанный в диссертации метод.

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

Свежие статьи
Популярно сейчас
Почему делать на заказ в разы дороже, чем купить готовую учебную работу на СтудИзбе? Наши учебные работы продаются каждый год, тогда как большинство заказов выполняются с нуля. Найдите подходящий учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
5160
Авторов
на СтудИзбе
439
Средний доход
с одного платного файла
Обучение Подробнее