Метод прогнозирования дефектов в компонентах программного обеспечения на основе метрик исходного кода тема диссертации и автореферата по ВАК РФ 05.13.01, кандидат технических наук Кирносенко, Семён Игоревич
- Специальность ВАК РФ05.13.01
- Количество страниц 169
Оглавление диссертации кандидат технических наук Кирносенко, Семён Игоревич
Введение
Глава 1. Методы прогнозирования дефектов.
1.1. Методы на основе теории надёжности.
1.1.1. Модель Миллса.
1.1.2. Модель Нельсона.
1.1.3. Модели роста надёжности.
1.1.4. Общие недостатки
1.2. Методы на основе статистических моделей.
1.2.1. Регрессионные модели.
1.2.2. Методы на основе алгоритмов машинного обучения
1.2.3. Методы на основе нечёткой логики и нейронных сетей
1.2.4. Общие недостатки
1.3. Методы на основе специфичных источников данных.
1.3.1. Общие недостатки
1.4. Дефекты и их причины.
1.5. Подходы к прогнозированию дефектов.
1.6. Источники данных
1.7. Актуальные проблемы
1.8. Выводы.
Глава 2. Новый метод прогнозирования дефектов.
2.1. Требования к методу.
2.2. Математическая модель.
2.3. Базовый метод прогнозирования дефектов.
2.4. Модификации базового метода.
2.4.1. Оценка вероятности
2.4.2. Оценка вероятности Р^р.
2.4.3. Получение распределения времени жизни дефектов
2.4.4. Учёт метрик отдельных подмножеств исходного кода
2.4.5. Учёт числа необнаруженных дефектов.
2.5. Выводы.
Глава 3. Программная реализация.
3.1. Промежуточное представление данных.
3.1.1. Требования к промежуточному представлению.
3.1.2. Ранее предложенные промежуточные представления
3.1.3. Проектирование нового промежуточного представления
3.2. Извлечение информации из систем контроля версий
3.3. Формирование сущностей промежуточного представления
3.3.1. Перевод информации об изменении.
3.3.2. Перевод информации об исправлении
3.3.3. Перевод информации о файлах.
3.3.4. Перевод информации о модификациях.
3.3.5. Перевод информации о блоках кода
3.3.6. Контроль корректности
3.4. Расчёт метрик.
3.4.1. Количество строк исходного кода.
3.4.2. Количество строк дефектного исходного кода.
3.4.3. Количество исправленных дефектов.
3.4.4. Плотность дефектов.
3.4.5. Время жизни дефекта.
3.4.6. Время стабилизации исходного кода.
3.4.7. Востребованность исходного кода.
3.4.8. Специализация разработчика.
3.5. Набор утилит MSR Tools.
3.6. Выводы.
Глава 4. Эксперимент.
4.1. Методика эксперимента.
4.1.1. Экспериментальные данные.
4.1.2. Оценка точности прогнозирования.
4.1.3. Формулирование и проверка статистических гипотез
4.2. Оценка точности прогнозирования базового метода.
4.3. Модификации базового метода.
4.3.1. Оценка вероятности P(D'^M(t)).
4.3.2. Оценка вероятности Plf.
4.3.3. Получение распределения времени жизни дефектов
4.3.4. Учёт метрик отдельных подмножеств исходного кода
4.3.5. Учёт числа необнаруженных дефектов.
4.3.6. Выбор «порога отсечения».
4.4. Результирующий метод.
4.4.1. Сравнение с существующими методами
4.4.2. Ограничения применения
4.4.3. Перспективы дальнейшего улучшения метода.
4.4.4. Выводы о точности.
4.5. Выводы.
Рекомендованный список диссертаций по специальности «Системный анализ, управление и обработка информации (по отраслям)», 05.13.01 шифр ВАК
Разработка методов контроля и диагностики синтаксически защищенных информационных и управляющих структур в системах управления1984 год, кандидат технических наук Хорев, Павел Борисович
Байесовские модели принятия решений при управлении техническим обслуживанием по фактическому состоянию2011 год, кандидат технических наук Шалашов, Иван Владимирович
Методы оценки трудоемкости разработки программного обеспечения корпоративных информационных систем2006 год, кандидат технических наук Меламед, Александр Яковлевич
Методики и алгоритмы для оценки надежности программного обеспечения систем тренажеров2011 год, кандидат технических наук Суслин, Антон Александрович
Мультиагентные информационно-измерительные системы технического контроля и диагностики РЭА2007 год, доктор технических наук Антипов, Владимир Анатольевич
Введение диссертации (часть автореферата) на тему «Метод прогнозирования дефектов в компонентах программного обеспечения на основе метрик исходного кода»
Актуальность работы. Современные технологические подходы к разработке программного обеспечения носят сложный, часто итерационный характер. Такие виды деятельности, как проектирование, кодирование, тестирование и эксплуатация в этих подходах часто совмещены, либо сменяют друг друга циклически при переходе от итерации к итерации. Процесс тестирования может осуществляться непрерывно, поскольку в исходный код постоянно вносятся новые функции и исправления. Чем больше объём исходного кода, тем больше трудозатрат необходимо для поддержания качества такой программной системы на должном уровне. Для решения этой проблемы применяются различные практики и методологии программирования, автоматизированное тестирование, методы обнаружения и прогнозирования дефектов. Применение методологий разработки нацелено на снижение числа вносимых в исходный код дефектов. Целью автоматизированного тестирования является также снижение числа вносимых дефектов и недопущение повторного появления ранее обнаруженных и исправленных дефектов. В выявлении уже внесённых в исходный код дефектов, кроме ручного тестирования, могут помочь только средства обнаружения и прогнозирования дефектов. Средства обнаружения дефектов работают на основе статического анализа исходного кода. При этом осуществляется поиск дефектов, соответствующих типичным ошибочным паттернам, таким как использование неинициализированной переменной. Поэтому такими средствами можно выявить лишь небольшую долю дефектов.
Для прогнозирования дефектов в компонентах программного обеспечения существуют программные средства: AgenaRisk, AID, SCULLY, Software Evolution Project и другие. К сожалению, большая часть этих программных средств не доступна для свободного использования и предоставляется только вместе с услугами консалтинга. Другие программные средства либо дорого стоят, либо требуют реализации дополнительных утилит для сбора данных. Кроме того, применяемым в них методам прогнозирования дефектов свойственны серьёзные недостатки. Методы на основе Байесовских сетей доверия требуют для работы получения экспертных оценок, что означает необходимость привлечения персонала, обладающего специальной квалификацией. Методы на основе регрессионных моделей и алгоритмов машинного обучения часто используют метрики исходного кода, зависимые от языка программирования, что требует реализации средств синтаксического разбора исходного кода. Также прогнозирование с использованием этих методов представляет собой «чёрный ящик». И хотя прогнозы таких методов могут быть достаточно точными, на основе этих прогнозов нельзя сделать выводы о том, что является причиной конкретных дефектов и какие меры можно предпринять для улучшения ситуации в будущем.
Это обуславливает актуальность работы по повышению точности прогнозирования дефектов в компонентах программного обеспечения.
Целью диссертационной работы являлось повышение точности прогнозирования дефектов в компонентах программного обеспечения.
Для достижения поставленной цели решены следующие задачи:
• анализ существующих методов прогнозирования дефектов в компонентах программного обеспечения, их ограничений и требований;
• формулирование гипотез о закономерностях эволюции исходного кода программного обеспечения на стадии разработки;
• разработка метода прогнозирования дефектов в компонентах программного обеспечения на основе сформулированных гипотез;
• разработка набора программных утилит, обеспечивающих прогнозирование дефектов в компонентах программного обеспечения на основе предложенного метода;
• проведение вычислительных экспериментов с целью проверки гипотез о закономерностях эволюции исходного кода в программном обеспечении на стадии разработки;
• проведение вычислительных экспериментов с целью проверки прогностической способности предложенного метода прогнозирования дефектов и его сравнения с существующими методами.
В работе использовались методы теории вероятностей и математической статистики, системного анализа, теории принятия решений, сигнальной теории, линейной алгебры, регрессионного анализа, основные принципы проектирования объектно-ориентированных приложений.
Научная новизна. На защиту выносятся результаты, обладающие научной новизной.
1. Предложен новый метод прогнозирования дефектов в компонентах программного обеспечения, который является независимым от языка программирования и не требует экспертных оценок.
2. Предложен новый метод оценки вероятности нахождения дефектных строк в исходном коде, написанном отдельным разработчиком в отдельном компоненте, на основе измеренных относительных частот нахождения дефектных строк в исходном коде отдельных разработчиков и компонентов, который может быть использован как для прогнозирования дефектов, так и для получения непосредственно метрик.
3. Предложены новые численные метрики исходного кода: время стабилизации, востребованность, специализация разработчика и другие.
Практическая значимость. Разработанный в рамках диссертации набор утилит MSR. Tools позволяет прогнозировать в каких компонентах программного обеспечения имеются необнаруженные дефекты, каково общее количество необнаруженных дефектов; каково распределение дефектов между отдельными программными подсистемами; кто из разработчиков внёс исходный код, ставший причиной отдельного дефекта и т. п. Эта информация может быть использована для принятия проектных решений различного уровня сложности: распределения ресурсов тестирования; принятия решения о завершении стадии тестирования; распределения задач между разработчиками; оценки квалификации персонала; выявления уровня компетенции разработчиков, в зависимости от вида выполняемых ими работ; выявления проблемных участков исходного кода, нуждающихся в рефакторинге и т. п.
Набор утилит MSR Tools является относительно простым, не требует от пользователя наличия специальных знаний и рассчитан на широкий круг пользователей: разработчиков, менеджеров, QA-специалистов.
Апробация работы. Основные результаты диссертации докладывались на XIII-XIV региональных конференциях молодых исследователей Волгоградской области (2009-2010), на конференциях «Технологии Microsoft в теории и практике программирования» (2008-2009), г. Нижний Новгород, на всероссийской научной конференции «Наука. Технологии. Инновации.» (2008), г. Новосибирск, на 6-й межрегиональной научно-технической конференции студентов и аспирантов (2009), г. Смоленск, на конференции «Приоритетные направления современной российской науки глазами молодых учёных» (2009), г. Рязань, на конференции «Актуальные вопросы современной техники и технологии.» (2010), г. Липецк, на всероссийской научно-практической конференции «Теоретические вопросы разработки, внедрения и эксплуатации программных средств» (2011), г. Орск.
Внедрение результатов работы. В рамках диссертации разработан набор утилит MSR Tools, который был использован в научно-исследовательской работе «Разработка программного комплекса расчетов задач динамики систем многих тел сверхбольшой размерности на основе параллельных алгоритмов для вычислительного кластера» (тема №34-53/170-09) на этапе «Повышение качества системы FR UND посредством локализации дефектов в исходном коде». Эта работа выполняется на кафедре высшей математики Волгоградского государственного технического университета. Применение набора утилит MSR Tools к исходному коду системы FR UND позволило выявить компоненты, нуждающиеся в дополнительном тестировании; оценить сложность исходного кода различных подсистем; сделать выводы о квалификации, трудозатратах, производительности труда и других характеристиках отдельных разработчиков. На основе полученных результатов были даны рекомендации относительно распределения ресурсов тестирования в ближайшей перспективе. Также выполнено внедрение набора утилит MSR Tools в учебный процесс на кафедре «ЭВМ и системы» Волгоградского государственного технического университета по курсу «Технологии программирования».
Достоверность результатов исследования обусловлена корректным использованием применяемого математического аппарата и подтверждается экспериментально установленной высокой прогностической способностью предложенного метода прогнозирования дефектов, а также согласием с известными результатами, полученными другими авторами.
Публикации. Материалы диссертации опубликованы в 12 печатных работах, из них 3 в изданиях, включённых в Перечень ВАК. Также имеется свидетельство № 2011614559 о государственной регистрации программы для ЭВМ «Набор утилит для расчёта метрик надёжности исходного кода».
Публикации в изданиях, включённых в Перечень ВАК:
1. Кирносенко, С. И. Идентификация исправляющих ревизий в системах контроля версий / С. И. Кирносенко, В. С. Лукьянов // Изв. ВолгГТУ. Серия «Актуальные проблемы управления, вычислительной техники и информатики в технических системах». Вып. 9 : межвуз. сб. науч. ст. / ВолгГТУ. - Волгоград, 2010. - № 11. - С. 146-149.
2. Кирносенко, С. И. Подсчёт плотности ошибок для различных артефактов кода / С. И. Кирносенко, В. С. Лукьянов // Международный отраслевой журнал «Век качества. Связь: сертификация, управление, экономика» / ООО «Азбука». - Москва, 2011. - № 4. - С. 70-72.
3. Кирносенко, С. И. Прогнозирование обнаружения дефектов в программном обеспечении / С. И. Кирносенко, В. С. Лукьянов // Программные продукты и системы / НТП «Фактор». - Тверь, 2011. - № 3. - С. 67-71.
Прочие публикации:
4. Кирносенко, С. И. Оценка надёжности программного обеспечения на основе итерационной модели // Технологии Microsoft в теории и практике программирования: матер, конф. (Нижний Новгород, 19-20 марта 2008 г.) / Нижегор. гос. ун-т им. Н.И. Лобачевского. - Н. Новгород, 2008. -С. 166-169.
5. Кирносенко, С. И. Подсчет плотности ошибок кода // Наука. Технологии. Инновации. Материалы всероссийской научной конференции молодых ученых в 7-ми частях. Часть 1. Новосибирск: НГТУ, 2008. — С. 15-16.
6. Кирносенко, С. И. Анализ надёжности программного обеспечения // XIII региональная конференция молодых исследователей Волгоградской области, г. Волгоград, 11-14 нояб. 2008 г.: тез. докл. / ВолгГТУ [и др.]. - Волгоград, 2009. - С. 204-205.
7. Кирносенко, С. И. Подсчёт плотности ошибок кода для различных видов исправляющих модификаций // 6-я Межрегиональная научно-техническая конференция студентов и аспирантов. Сборник трудов. Смоленск: Универсум, 2009. — С. 69-71.
8. Кирносенко, С. И. Подсчёт плотности ошибок кода / С. И. Кирносенко // Технологии Microsoft в теории и практике программирования : матер, конф. (Нижний Новгород, 11-12 марта 2009 г.) / Нижегород. гос. ун-т им. Н. И. Лобачевского. - Н. Новгород, 2009. - С. 193-197.
9. Кирносенко, С. И. Извлечение данных для подсчёта плотности ошибок кода // Приоритетные направления современной российской науки глазами молодых учёных. Рязань: Ряз. гос. ун-т им. С. А. Есенина, 2009. -С. 159-161.
10. Кирносенко, С. И. Коллективная разработка и надёжность / С. И. Кир-носенко, В. С. Лукьянов // XIV региональная конференция молодых исследователей Волгоградской области (Волгоград, 10-13 нояб. 2009 г.) : тез. докл. / ВолгГТУ [и др.]. - Волгоград, 2010. - С. 204-206.
И. Кирносенко, С. И. Представление истории изменений исходного кода для задач подсчёта метрик // Актуальные вопросы современной техники и технологии. Сборник докладов. Липецк: Издательский центр «Де-факто», 2010. - С. 39-41.
12. Кирносенко, С. И. Классификация ревизий в системах контроля версий // Теоретические вопросы разработки, внедрения и эксплуатации программных средств: материалы Всероссийской научно-практической конференции. Орск: Издательство ОГТИ, 2011. - С. 45-47.
Структура и объем диссертации. Диссертация состоит из введения, четырёх глав и заключения. Содержание работы изложено на 169 страницах машинописного текста. Работа иллюстрирована 16 рисунками и содержит 35 таблиц. Список литературы включает 131 наименование, в том числе 19 отечественных.
Похожие диссертационные работы по специальности «Системный анализ, управление и обработка информации (по отраслям)», 05.13.01 шифр ВАК
Методы и средства автоматизированного обнаружения уязвимостей в программах на языке C на основе статического анализа их исходных текстов2010 год, кандидат физико-математических наук Пучков, Федор Михайлович
Автоматическое обнаружение дефектов в многопоточных программах методами статического анализа2011 год, кандидат технических наук Моисеев, Михаил Юрьевич
Разработка математических моделей надежности прикладного программного обеспечения при ограниченной статистической информации2009 год, кандидат технических наук Затенко, Светлана Ивановна
Разработка и исследование методов и средств структурных испытаний программ2003 год, кандидат технических наук Никифорова, Наталия Юрьевна
Комплекс решений по оптимизации передачи данных в радиоканалах с замираниями2007 год, доктор технических наук Мелентьев, Олег Геннадьевич
Заключение диссертации по теме «Системный анализ, управление и обработка информации (по отраслям)», Кирносенко, Семён Игоревич
4.5. Выводы
Из экспериментов стало ясно что, предложенный метод прогнозирования дефектов является достаточно точным для его использования в задачах управления процессом разработки программного обеспечения. Кроме того, метод демонстрирует более стабильные показатели точности по сравнению с рассмотренными лучшими из существующих методов прогнозирования. Следовательно, метод удовлетворяет всем сформулированных во второй главе требованиям к нему, а поставленная в работе цель достигнута.
Заключение
В диссертации получены следующие основные результаты:
1. Проведён анализ существующих методов прогнозирования дефектов в компонентах программного обеспечения. Обобщены их недостатки.
2. Выдвинут ряд гипотез о закономерностях эволюции исходного кода в программном обеспечении на стадии разработки.
3. Предложены новые метрики исходного кода, которые могут быть использованы при прогнозировании дефектов и представляют различную информацию об эволюции исходного кода в программном обеспечении на стадии разработки.
4. Предложен новый метод прогнозирования дефектов в компонентах программного обеспечения на стадии разработки, который обладает следующими свойствами: независимость от языка программирования; отсутствие потребности в экспертных оценках и какой-либо другой информации, которая не может быть получена из системы контроля версий; независимость от наличия и количества версий системы.
5. Разработаны новые алгоритмы для извлечения информации из систем контроля версий Subversion и Git, расчёта на её основе различных метрик исходного кода.
6. Разработан набор утилит MSR Tools, включающий платформу (framework для выполнения анализа эволюции исходного кода программного обеспечения на стадии разработки, а также утилиты для вычисления различных метрик исходного кода, визуализации и прогнозирования дефектов. Данный набор утилит размещён в сети Интернет (http://msr. sourceforge.net) и доступен вместе с исходными кодами под лицензией BSD. Также в сети Интернет размещены использованные в ходе экспериментов наборы данных, что делает все проведённые эксперименты легко воспроизводимыми с целью дальнейшего улучшения предложенного метода прогнозирования дефектов, разработки новых методов или выполнения любых других исследований, связанных с изучением эволюции исходного кода программного обеспечения на стадии разработки.
7. Проведены вычислительные эксперименты, по результатам которых ряд гипотез о закономерностях эволюции исходного кода программного обеспечения на стадии разработки получил подтверждение.
8. Проведены вычислительные эксперименты, по результатам которых сделаны выводы о том, что точность предложенного метода прогнозирования дефектов является достаточной, для его использования при решении задач управления процессом разработки.
Работа обладает большим потенциалом для дальнейшего развития. Существует множество потенциальных направлений как для повышения точности прогнозирования предложенного метода, так и для проектирования новых методов. С помощью разработанного набора утилит возможно осуществлять расчёт огромного числа различных метрик эволюции исходного кода. Прогнозирование дефектов — лишь один из многих возможных способов применения этой информации. Другими потенциальными направлениями являются риск-менеджмент, управление персоналом, внедрение в методологические практики разработки программного обеспечения.
Список литературы диссертационного исследования кандидат технических наук Кирносенко, Семён Игоревич, 2012 год
1. Catal С., Diri В. Investigating the effect of dataset size, metrics sets, and feature selection techniques on software fault prediction problem // Inf. Sci. 2009. March. Vol. 179. Pp. 1040-1058.
2. Bouktif S., Ahmed F., Khalil I., Antoniol G. A novel composite model approach to improve software quality prediction // Inf. Softw. Technol. 2010. — December. Vol. 52. Pp. 1298-1311.
3. Fenton N. E., Neil M. A Critique of Software Defect Prediction Models // IEEE Trans. Softw. Eng. 1999. Vol. 25, no. 5. Pp. 675-689.
4. Полонников P. И., Никандров А. В. Методы оценки показателей надёжности программного обеспечения. СПб.: Политехника, 1992. 78 с.
5. Майерс Г. Надежность программного обеспечения. Мир, 1980. 359 с.
6. Тейер Т., М. Л., Э. Н. Надежность программного обеспечения. Мир, 1981. 323 с.
7. Lyu М. R. Software Reliability Engineering: A R.oadmap // 2007 Future of Software Engineering. FOSE '07. Washington, DC, USA: IEEE Computer Society, 2007. Pp. 153-170.
8. Farr W. Software reliability modeling survey. Hightstown, NJ, USA: McGraw-Hill, Inc., 1996. Pp. 71-117.
9. Musa J. D., Iannino A., Okumoto K. Software reliability measurement, prediction, application. McGraw-Hill series in software engineering and technology. McGraw-Hill, 1987. Pp. I-XVIII, 1-621.
10. Li N., Malaiya Y. K. ROBUST: a next generation software reliability engineering tool // IEEE Int. Symp. on Software Reliability Engineering. 1995. — October. Pp. 375-380.
11. Malaiya Y. K., Karunanithi N., Verma P. Predictability Of Software Reliability Models. Vol. 12. 1992. Pp. 539-546.
12. Malaiya Y. K., von Mayrhauser A., Srimani P. K. An Examination of Fault Exposure Ratio // IEEE Trans. Softw. Eng. 1993. November. Vol. 19. Pp. 1087-1094.
13. Бек К. Экстремальное программирование: разработка через тестирование. СПб.: Питер, 2003. 224 с.
14. Nagappan N., Williams L. A Software Reliability Estimation Framework for Extreme Programming // International Symposium on Software Reliability Engineering. (ISSRE 2003). Denver, CO, USA: ACM Press, 2007.-November. Pp. 315-316.
15. Мейко А. В. Основные математические модели и методы расчёта функциональной надёжности корпоративных информационных систем // Научно-технический вестник информационных технологий, механики и оптики. СПбГУ ИТМО, 2007. С. 126-136.
16. Sheta A. Parameter Estimation of Software Reliability Growth Models by Particle Swarm Optimization // ICGST International Journal on Artificial Intelligence and Machine Learning, AIML. 2007. Vol. 7. Pp. 55-61.
17. Zimmermann T., Premraj R., Zeller A. Predicting Defects for Eclipse // Proceedings of the Third International Workshop on Predictor Models in Software Engineering. PROMISE '07. Washington, DC, USA: IEEE Computer Society, 2007. P. 9.
18. Mockus A., Zhang P., Li P. L. Predictors of customer perceived software quality // Proceedings of the 27th international conference on Software engineering. ICSE '05. New York, NY, USA: ACM, 2005. Pp. 225-233.
19. Ostrand T. J., Weyuker E. J., Bell R. M. Automating algorithms for the identification of fault-prone files // Proceedings of the 2007 international symposium on Software testing and analysis. ISSTA '07. New York, NY, USA: ACM, 2007. Pp. 219-227.
20. Ostrand T. J., Weyuker E. J., Bell R. M. Programmer-based fault prediction // Proceedings of the 6th International Conference on Predictive Models in Software Engineering. PROMISE '10. New York, NY, USA: ACM, 2010. Pp. 19:1-19:10.
21. Bell R. M., Ostrand T. J., Weyuker E. J. Looking for bugs in all the right places // Proceedings of the 2006 international symposium on Software testing and analysis. ISSTA '06. New York, NY, USA: ACM, 2006. Pp. 61-72.
22. Fenton N. E., Ohlsson N. Quantitative Analysis of Faults and Failures in a Complex Software System // IEEE Trans. Softw. Eng. 2000.— August. Vol. 26. Pp. 797-814.
23. Ostrand T. J., Weyuker E. J., Bell R. M. Where the bugs are // Proc. ACM SIGSOFT Int'l Symp. Software Testing and Analysis (ISSTA). New York, NY, USA: ACM Press, 2004. Pp. 86-96.
24. Schroeter A., Zimmermann T., Premraj R., Zeller A. If Your Bug Database Could Talk. (Short Paper) // Proceedings of the 5th International Symposium on Empirical Software Engineering. Volume II: Short Papers and Posters. 2006.-September. Pp. 18-20.
25. Fenton N. E., Pfleeger S. L. Software Metrics: A Rigorous and Practical Approach. 2nd edition. Boston, MA, USA: PWS Publishing Co., 1998.
26. Graves T. L., Karr A. F., Marron J. S., Siy H. Predicting Fault Incidence
27. Using Software Change History // IEEE Trans. Softw. Eng. 2000. Vol. 26, no. 7. Pp. 653-661.
28. Arisholm E., Briand L. C. Predicting fault-prone components in a java legacy system // Proceedings of the 2006 ACM/IEEE international symposium on Empirical software engineering. ISESE '06. New York, NY, USA: ACM,2006. Pp. 8-17.
29. Menzies T., Greenwald J., Frank A. Data Mining Static Code Attributes to Learn Defect Predictors // IEEE Trans. Softw. Eng. 2007. — January. Vol. 33. Pp. 2-13.
30. Jiang Y., Cukic B., Menzies T. Fault Prediction using Early Lifecycle Data // Proceedings of the The 18th IEEE International Symposium on Software Reliability. ISSRE '07. Washington, DC, USA: IEEE Computer Society,2007. Pp. 237-246.
31. Neil M. D. Multivariate Assessment of Software Products. Vol. 1. Denver, CO, USA: ACM Press, 1992. Pp. 17-37.
32. Koru A. G., Liu H. An investigation of the effect of module size on defect prediction using static measures // Proceedings of the 2005 workshop on Predictor models in software engineering. PROMISE '05. New York, NY, USA: ACM, 2005. Pp. 1-5.
33. Ma Y., Guo L., Cukic B. Statistical framework for the prediction of fault--proneness // Advances in machine learning application in software engineering. Idea Group Inc., 2007. Pp. 237-265.
34. Guo L., Ma Y., Cukic B., Singh H. Robust Prediction of Fault-Proneness by Random Forests // Proceedings of the 15th International Symposium on Software Reliability Engineering. Washington, DC, USA: IEEE Computer Society, 2004. Pp. 417-428.
35. Drummond C., Holte R. C. C4.5, Class Imbalance, and Cost Sensitivity: Why Under-sampling beats Over-sampling //In Workshop on Learning from Imbalanced Datasets II. Washington, DC, USA: 2003. Pp. 1-8.
36. Drummond C., Holte R. C. Severe class imbalance: Why better algorithms are not the answer // Proceedings of the 16th European Conference of Machine Learning. Porto, Portugal: Springer, 2005. Pp. 539-546.
37. Mahaweerawat A., Sophasathit P., Lursinsap C. Software fault prediction using fuzzy clustering and radial basis function network //In International conference on intelligent technologies. Vietnam: 2002. Pp. 304-313.
38. Thwin M. M. T., Quah T.-S. Application of neural networks for software quality prediction using object-oriented metrics //J. Syst. Softw. 2005.— May. Vol. 76. Pp. 147-156.
39. Sahraoui H., Serhani M. A., Boukadoum M. Extending Software Quality Predictive Models Using Domain Knowledge. Proceedings of the 5th International ECOOP Workshop on Quantitative Approaches in Object-Oriented Software Engineering. 2001.
40. Fenton N. E., Neil M. Software metrics: roadmap // ICSE '00: Proceedings of the Conference on The Future of Software Engineering. New York, NY, USA: ACM, 2000. Pp. 357-370.
41. Bertolino A., Strigini L. On the Use of Testability Measures for Dependability Assessment // IEEE Trans. Softw. Eng. 1996. February. Vol. 22. Pp. 97-108.
42. Diaz M., Sligo J. How Software Process Improvement Helped Motorola // IEEE Softw. 1997.-September. Vol. 14. Pp. 75-81.
43. Jones C. The Pragmatics of Software Process Improvements // Software Process Newsletter, IEEE CS Technical Council on Software Eng. 1996. Vol. 14. Pp. 1-4.
44. Рахманов В. Ю., Тимченко Б. Д. Метрики в современном тестировании // Научно-технический вестник СПбГИТМО (ТУ). Выпуск 10. Информация и управление в технических системах. СПбГУ ИТМО, 2003. С. 108-111.
45. Li М. N., Malaiya Y. К., Denton J. Estimating the Number of Defects: A Simple and Intuitive Approach // Proc. 7th International Symposium on Software Reliability Engineering (ISSR.E). 1998. Pp. 307-315.
46. IEEE. IEEE standard classification for software anomalies. IEEE Std 1044-1993, 1994.
47. Board I. S. T. Q. ISTQB Standard Glossary of Terms used in Software Testing VI. 1. 2005.
48. Program evolution: processes of software change, Под ред. M. M. Lehman, L. A. Belady. San Diego, CA, USA: Academic Press Professional, Inc., 1985. ISBN: 0-12-442440-6.
49. Ко A. J., Myers B. A. A framework and methodology for studying the causes of software errors in programming systems //J. Vis. Lang. Comput. 2005. — February. Vol. 16. Pp. 41-84.
50. Липаев В. В. Программная инженерия. Методологические основы. М.: ТЕИС, 2006. 608 с.
51. Nikora А. P., Munson J. С. Developing Fault Predictors for Evolving Software Systems // Proceedings of the 9th International Symposium on Software Metrics. Washington, DC, USA: IEEE Computer Society, 2003. Pp. 338-350.
52. Menzies T., Milton Z., Turhan B. et al. Defect prediction from static code features: current results, limitations, new approaches // Automated Software Engg. 2010.-December. Vol. 17. Pp. 375-407.
53. Диаконис П., Эфрон Б. Статистические методы с интенсивным использованием ЭВМ // В мире науки. М.: 1993. С. 60-72.
54. Zimmermann Т. Taking lessons from history // Proceedings of the 28th international conference on Software engineering. ICSE '06. New York, NY, USA: ACM, 2006. Pp. 1001-1005.
55. Hassan A. E., Holt R. C. Studying The Evolution of Software Systems Using Evolutionary Code Extractors // Proceedings of the Principles of Software Evolution, 7th International Workshop. Washington, DC, USA: IEEE Computer Society, 2004. Pp. 76-81.
56. Nagappan N., Ball T. Use of relative code churn measures to predict system defect density // Proceedings of the 27th international conference on Software engineering. ICSE '05. New York, NY, USA: ACM, 2005. Pp. 284-292.
57. Hassan А. E., Holt R. C. The Top Ten List: Dynamic Fault Prediction // Proceedings of the 21st IEEE International Conference on Software Maintenance. Washington, DC, USA: IEEE Computer Society, 2005. Pp. 263-272.
58. Ostrand Т. J., Weyuker E. J., Bell R. M. Predicting the Location and Number of Faults in Large Software Systems // IEEE Trans. Softw. Eng. 2005. — April. Vol. 31. Pp. 340-355.
59. Gall H., Jazayeri M., Krajewski J. CVS Release History Data for Detecting Logical Couplings // Proceedings of the 6th International Workshop on Principles of Software Evolution. Washington, DC, USA: IEEE Computer Society, 2003. Pp. 13-23.
60. Kim S., Zimmermann Т., Whitehead Jr. E. J., Zeller A. Predicting Faults from Cached History // Proceedings of the 29th international conference on Software Engineering. ICSE '07. Washington, DC, USA: IEEE Computer Society, 2007. Pp. 489-498.
61. Гайдышев И. Анализ и обработка данных. СПб.: Питер, 2001. 232 с.
62. Барсегян А. А., Куприянов М. С., Степаненко В. В., Холод И. И. Технологии анализа данных: Data mining, Visual Mining, Text Mining, OLAP. СПб.: БХВ-Петербург, 2007. 384 с.
63. Гайсарян С. С., Чернов А. В., Белеванцев А. А. и др. О некоторых задачах анализа и трансформации программ // Труды Института системного программирования РАН. М.: Институт системного программирования РАН, 2004. С. 7-40.
64. Князев Е. Г., Шопырин Д. Г. Методы обнаружения закономерностей эволюции программного кода // Труды XIV Всероссийской научно-методической конференции «Телематика-2007». Т. 2. СПбГУ ИТМО, 2007. С. 435-436.
65. Воробьёв А. В. Метрики как средство оценивания качества программного обеспечения // Авиакосмическое приборостроение. М.: 2007. С. 19-31.
66. Ермаков А. А. Модель оценки эффективности тестирования программного обеспечения // Экономика и производство. М.: 2008. С. 39-42.
67. Gousios G., Kalliamvakou Е., Spinellis D. Measuring developer contribution from software repository data // Proceedings of the 2008 international working conference on Mining software repositories. MSR '08. New York, NY, USA: ACM, 2008. Pp. 129-132.
68. Hassan A. E. The road ahead for Mining Software Repositories // Frontiers of Software Maintenance 2008. Beijing, China: IEEE Computer Society, 2008. Pp. 48-57.
69. Just S., Premraj R., Zimmermann Т. Towards the next generation of bug tracking systems // Proceedings of the 2008 IEEE Symposium on Visual Languages and Human-Centric Computing. VLHCC '08. Washington, DC, USA: IEEE Computer Society, 2008. Pp. 82-85.
70. Bettenburg N., Just S., Schröter A. et al. What makes a good bug report? // Proceedings of the 16th ACM SIGSOFT International Symposium on Foundations of software engineering. SIGSOFT '08/FSE-16. New York, NY, USA: ACM, 2008. Pp. 308-318.
71. Nagappan N., Murphy B., Basiii V. The influence of organizational structure on software quality: an empirical case study // Proceedings of the 30th international conference on Software engineering. ICSE '08. New York, NY, USA: ACM, 2008. Pp. 521-530.
72. Weyuker E. J., Ostrand T. J., Bell R. M. Do too many cooks spoil the broth? Using the number of developers to enhance defect prediction models // Empirical Softw. Engg. 2008. October. Vol. 13. Pp. 539-559.
73. Mens T., Wermelinger M., Ducasse S. et al. Challenges in Software Evolu- -tion // Proceedings of the Eighth International Workshop on Principles of Software Evolution. Washington, DC, USA: IEEE Computer Society, 2005. Pp. 13-22.
74. Briand L. C., Basiii V. R., Thomas W. M. A Pattern Recognition Approach for Software Engineering Data Analysis // IEEE Trans. Softw. Eng. 1992. — November. Vol. 18. Pp. 931-942.
75. Khoshgoftaar T. M., Munson J. C., Bhattacharya B. B., Richardson G. D. Predictive Modeling Techniques of Software Quality from Software Measures // IEEE Trans. Softw. Eng. 1992. November. Vol. 18. Pp. 979-987.
76. Godfrey M. W., German D. M. The past, present, and future of software evolution // Frontiers of Software Maintenance 2008. Beijing, China: IEEE Computer Society, 2008. Pp. 129-138.
77. Basili V. R., Perricone В. T. Software errors and complexity: an empirical investigationO // Commun. ACM. 1984. — January. Vol. 27. Pp. 42-52.
78. Hudepohl J. P., Aud S. J., Khoshgoftaar T. M. et al. Emerald: Software Metrics and Models on the Desktop // IEEE Softw. 1996. — September. Vol. 13. Pp. 56-60.
79. Sayyad J., Lethbridge C. Supporting Software Maintenance by Mining Software Update Records // Proceedings of the IEEE International Conference on Software Maintenance (ICSM'01). ICSM '01. Washington, DC, USA: IEEE Computer Society, 2001. Pp. 22-31.
80. Фаулер M. Рефакторинг: улучшение существующего кода. СПб.: Символ-Плюс, 2006. 432 с.
81. Гмурман В. Е. Теория вероятностей и математическая статистика. М.: Высшее образование, 2008. 479 с.
82. Kim S., Whitehead Е. J., Jr. How long did it take to fix bugs? // Proceedings of the 2006 international workshop on Mining software repositories. MSR. '06. New York, NY, USA: ACM, 2006. Pp. 173-174.
83. Fischer H., Munchen T. U., Wagner S. et al. Software Reliability Model Based on a Geometric Sequence of Failure Rates // 11th International Conference on R.eliable Software Technologies (Ada-Europe '06). Vol. 4006. Springer, 2006. Pp. 143-154.
84. Higo Y., Murao К., Kusumoto S., Inoue К. Predicting fault-prone modules based on metrics transitions // Proceedings of the 2008 workshop on Defects in large software systems. DEFECTS '08. New York, NY, USA: ACM, 2008. Pp. 6-10.
85. Mockus A., Weiss D. M. Predicting risk of software changes // Bell Labs Technical Journal. 2000. Vol. 5. Pp. 169-180.
86. Malaiya Y. K., Denton J. Module Size Distribution and Defect Density // Proceedings of the 11th International Symposium on Software Reliability Engineering. ISSRE '00. Washington, DC, USA: IEEE Computer Society, 2000. Pp. 62-71.
87. Лоусон 4., Хенсон P. Численное решение задач метода наименьших квадратов. М.: Наука, 1986. 232 с.
88. Kim S., Zimmermann Т., Kim M. et al. TA-RE: an exchange language for mining software repositories // MSR '06: Proceedings of the 2006 international workshop on Mining software repositories. New York, NY, USA: ACM, 2006. Pp. 22-25.
89. Zimmermann T., WeiPygerber P. Preprocessing CVS Data for Fine-grained Analysis // Proceedings of the First International Workshop on Mining Software Repositories. 2004.— May. Pp. 2-6.
90. Zimmermann T. Fine-grained processing of CVS archives with APFEL // Proceedings of the 2006 OOPSLA workshop on eclipse technology eXchange. eclipse '06. New York, NY, USA: ACM, 2006. Pp. 16-20.
91. Antoniol G., Di M., Gall P. H., Pinzger M. Towards the integration of ver-sioning systems, bug reports and source code meta-models // Electr. Notes Theor. Comput. Sci. 2004. Vol. 127. Pp. 83-94.
92. Flatscher R. G. Metamodeling in EIA/CDIF—meta-metamodel and metamodels // ACM Trans. Model. Comput. Simul. 2002. October. Vol. 12. Pp. 322-342.
93. Hindle A., German D. M. SCQL: a formal model and a query language for source control repositories // Proceedings of the 2005 international workshop on Mining software repositories. MSR '05. New York, NY, USA: ACM, 2005. Pp. 1-5.
94. Kiefer C., Bernstein A. Analyzing Software with iSPARQL //In Proc. of the 3rd Int. Ws. on Semantic Web Enabled Software Engineering. Springer, 2007.
95. Mierle K. B., Mierle K. B., Laven K. et al. CVS data extraction and analysis: A case study: Tech. rep.: 2004.
96. Spinellis D., Gousios G., Karakoidas V. et al. Evaluating the Quality of Open Source Software // Electron. Notes Theor. Comput. Sci. 2009. — March. Vol. 233. Pp. 5-28.
97. Gousios G., Spinellis D. A platform for software engineering research // Proceedings of the 2009 6th IEEE International Working Conference on Mining Software Repositories. MSR. '09. Washington, DC, USA: IEEE Computer Society, 2009. Pp. 31-40.
98. Bird C., Rigby P. C., Barr E. T. et al. The promises and perils of mining git // Proceedings of the 2009 6th IEEE International Working Conference on Mining Software Repositories. MSR '09. Washington, DC, USA: IEEE Computer Society, 2009. Pp. 1-10.
99. Voinea L., Telea A. An open framework for CVS repository querying, analysis and visualization // MSR. '06: Proceedings of the 2006 international workshop on Mining software repositories. New York, NY, USA: ACM, 2006. Pp. 33-39.
100. Zimmermann T., Kim S., Zeller A., Whitehead E. J., Jr. Mining version archives for co-changed lines // Proceedings of the 2006 international workshop on Mining software repositories. MSR '06. New York, NY, USA: ACM, 2006. Pp. 72-75.
101. Sliwerski J., Zimmermann T., Zeller A. When do changes induce fixes? // MSR. '05: Proceedings of the 2005 international workshop on Mining software repositories. New York, NY, USA: ACM, 2005. Pp. 1-5.
102. Kim S., Pan K., E. E. James Whitehead J. Memories of bug fixes // SIG-SOFT '06/FSE-14: Proceedings of the 14th ACM SIGSOFT internationalsymposium on Foundations of software engineering. New York, NY, USA: ACM, 2006. Pp. 35-45.
103. Cubranic D., Murphy G. C., Singer J., Booth K. S. Hipikat: A Project Memory for Software Development // IEEE Trans. Softw. Eng. 2005. — June. Vol. 31. Pp. 446-465.
104. Miller W., Myers E. W. A file comparison program // Software Practice and Experience. 1985. Vol. 15. Pp. 1025-1040.
105. Emam K. E., Benlarbi S., Goel N., Rai S. N. Comparing case-based reasoning classifiers for predicting high risk software components // J. Syst. Softw. 2001.-January. Vol. 55. Pp. 301-320.
106. Zhang H., Zhang X. Comments on «Data Mining Static Code Attributes to Learn Defect Predictors» // IEEE Trans. Softw. Eng. 2007. — September. Vol. 33. Pp. 635-637.
107. Menzies T., Dekhtyar A., Distefano J., Greenwald J. Problems with Precision: A R.esponse to «Comments on 'Data Mining Static Code Attributes to Learn Defect Predictors'» // IEEE Transactions on Software Engineering. 2007. Vol. 33. Pp. 637-640.
108. Lessmann S., Baesens B., Mues C., Pietsch S. Benchmarking Classification Models for Software Defect Prediction: A Proposed Framework and Novel Findings // IEEE Trans. Softw. Eng. 2008,-July. Vol. 34. Pp. 485-496.
109. Fawcett T. An introduction to R.OC analysis // Pattern R.ecogn. Lett. 2006.-June. Vol. 27. Pp. 861-874.
110. Provost F., Fawcett T. R.obust Classification for Imprecise Environments // Mach. Learn. 2001.-March. Vol. 42. Pp. 203-231.
111. Khoshgoftaar T. M., Seliya N. Comparative Assessment of Software Quality Classification Techniques: An Empirical Case Study // Empirical Softw. Engg. 2004.-September. Vol. 9. Pp. 229-257.
112. Bradley A. P. The use of the area under the ROC curve in the evaluation of machine learning algorithms // Pattern Recognition. 1997. Vol. 30, no. 7. Pp. 1145-1159.
113. Mende T., Koschke R. R.evisiting the evaluation of defect prediction models // Proceedings of the 5th International Conference on Predictor Models in Software Engineering. PROMISE '09. New York, NY, USA: ACM, 2009. Pp. 7:1-7:10.
Обратите внимание, представленные выше научные тексты размещены для ознакомления и получены посредством распознавания оригинальных текстов диссертаций (OCR). В связи с чем, в них могут содержаться ошибки, связанные с несовершенством алгоритмов распознавания. В PDF файлах диссертаций и авторефератов, которые мы доставляем, подобных ошибок нет.