Помощь в написании студенческих работ
Антистрессовый сервис

Автоматизированная классификация изменений исходного кода на основе кластеризации метрик в процессе разработки программного обеспечения

ДиссертацияПомощь в написанииУзнать стоимостьмоей работы

Применимость метода для повышения эффективности экспертизы ограничена программными системами, при разработке которых существует ограничение времени на экспертизу исходного кода, не позволяющее выполнять ее полностью. Однако, исходя из опыта автора, большинство программных систем разрабатываются с ограничением во времени на экспертизу. Из изложенного следует, что применение метода на практике… Читать ещё >

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

Содержание

Актуальность проблемы. Современные организации-разработчики программного обеспечения работают с очень большим объемом исходного кода, что усложняет его понимание и анализ, а, как следствие, затрудняет контроль его качества. В процессе контроля качества программного обеспечения важную роль имеет экспертиза исходного кода (code review).

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

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

Целесообразно выделять классы изменений, такие как, например, реализация новой функциональности, удаление неиспользуемого кода, рефакторинг, исправление логики, форматирование кода. Классификация изменений выполняется не только для понимания исходного кода, как отмечено выше, но и для оценки качества изменений по коду, а не с помощью тестирования.

Классификация требуется для контроля процесса разработки, так как, например, если продукт стабилизирован, то никакие изменения, кроме исправления ошибок, проводить не следует. Классификация позволяет также автоматизировать передачу информации между участниками процесса разработки. Она используется для того, чтобы сформировать

список изменений, которые требуется проверять, а при необходимости описывать.

В работе предлагается автоматизированный метод классификации изменений исходного кода, состоящий из двух шагов — кластеризации и сопоставления кластеров классам. Распределение изменений по кластерам осуществляется автоматически. Сопоставление их классам выполняет эксперт. Автоматизация распределения изменений по кластерам существенно сокращает время экспертизы изменений кода.

Задача автоматизации классификации изменений исходного кода решалась многими исследователями: A. Hassan, R. Holt, S. Demeyer, S. Ducasse, S. Raghavan, R. Rohana, J. Maletic, M. Collard, R. Robbes, S. Kim, J. Whitehead и другими. Ими были разработаны методы классификации изменений на базе эвристического, синтаксического, метрического и Data Mininig подходов к анализу изменений.

Недостатком эвристических методов является их некорректная работа при несоответствии входных данных построенным предположениям. Недостатками синтаксических методов являются зависимость от языка программирования и высокая алгоритмическая сложность. Недостатком методов, основанных на Data Mining, является сложность создания обучающего множества. Кроме того, большинство перечисленных методов обладает общим недостатком — они предназначены для построения единственной классификации и не допускают настройки на другие классификации.

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

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

Цель диссертационной работы — разработка метода автоматизированной классификации изменений кода в процессе создания программного обеспечения на основе кластеризации метрик. Основные задачи исследования: обоснование возможности частичной автоматизации классификации изменений исходного кода методом кластеризации метрик-

разработка метода автоматизированной классификации изменений исходного кода на основе кластеризации метрик изменений-

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

Научная новизна. На защиту выносятся результаты, обладающие научной новизной.

1. Обоснование возможности частичной автоматизации классификации изменений исходного кода методом кластеризации метрик за счет формулировки гипотезы об автоматизированной классификации и ее экспериментального подтверждения.

2. Обоснование выбора метода к-средних с мерой близости объектов для кластеризации, основанной на косинусе угла между векторами метрик изменений.

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

Методы исследования. В работе использованы методы кластерного анализа, математической статистики и программной инженерии.

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

Практическое значение работы состоит в том, что все полученные результаты используются в настоящее время и будут использоваться в дальнейшем для повышения качества программного обеспечения в ходе разработки сложных программных комплексов. Предложенный подход применялся для классификации изменений исходного кода в продуктах, разрабатываемых ЗАО «Транзас Технологии» (система мониторинга мобильных объектов Navi-Manager, набор компонент глобальной системы LR1T (.Long-Range Identification and Tracking) для отслеживания положения судов в мировом океане, система контроля действий студентов на тренажерах e-Tutor 5000), а также в двух программных системах с открытым кодом.

Внедрение результатов. Результаты, полученные в диссертации, внедрены в указанных системах Navi-Manager, LR1T, e-Tutor 5000, а также в учебном процессе на кафедре «Компьютерные технологии» СПбГУ ИТМО по курсу лекций «Современные технологии разработки программного обеспечения».

Апробация результатов. Основные положения диссертационной работы докладывались на научно-методической конференции «Телематика-2007» (СПб., 2007), X международной конференции по мягким вычислениям и измерениям (СПб., 2007), на конференции «Software Egineering Conference

Russia) 2007″ (M., 2007), XXXVI научной и учебно-методической конференции профессорско-преподавательского и научного состава СПбГУ ИТМО (СПб., 2007), на семинаре Российского Северо-Западного регионального отделения IEEE по компьютерным технологиям и инженерному менеджменту (IEEE Region 8 Russia North-West Computer Society/Engineering Management Society Joint Chapter) (СПб., 2007), IV и V Межвузовской конференции молодых ученых (СПбГУ ИТМО, 2007, 2008), XV Международной научно-методической конференции «Высокие интеллектуальные технологии и инновации в образовании и науке» (СПб., 2008).

Публикации. По теме диссертации опубликовано 11 печатных работ, в том числе две статьи в журналах из списка ВАК. Результаты, приводимые в диссертации, опубликованные без соавторов, получены лично автором. В работах под номерами 1 и 7 в списке публикаций автором предложены способы использования автоматизированной классификации изменений. В работе 6 автором предложен способ расчета метрики покрытия изменения кода модульными тестами. В работах 2, 3 и 8 автором предложен метод автоматизированной классификации изменений на основе предложенного автором способа расчета метрик изменений и их кластеризации. Остальные результаты в статьях под номерами 1, 2, 3, 7 и 8 принадлежат соавтору.

Структура диссертации. Диссертация изложена на 126 страницах и состоит из введения, трех глав и заключения.

Список литературы содержит 95 наименований. Работа иллюстрирована 21 рисунком и содержит 34 таблицы.

Выводы по главе 3.

1. Применение предложенного метода позволяет существенно повысить степень автоматизации задачи классификации изменений. Для пяти программных систем участие эксперта требовалось в среднем для классификации одного из одиннадцати изменений, а остальные изменения классифицировались автоматически при сохранении средних значений критериев качества классификации Рс = 0,74 ± 0,05 (вероятность ошибки классификации произвольного изменения) Ес= 0,40 ± 0,06 (степень неопределенности распределения изменений по классам). Также подтверждена гипотеза о возможности автоматизированной классификации методом кластеризации метрик изменений для значений критериев качества распределения изменений по кластерам Pq не ниже 0,69 и Eq не выше 0,47.

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

3. Эффект от использования автоматизированной классификации следующий:

• Задача контроля изменений, нежелательных на текущей стадии разработки, решается существенно более эффективно с помощью предложенного метода по сравнению с полной экспертизой изменений, так как позволяет выделять изменения классов, запрещенных на текущей стадии разработки с меньшими затратами времени.

• Задача экспертизы изменений кода для изучения истории развития системы также выполняется существенно более эффективно.

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

5. Повышение эффективности экспертизы кода достигается за счет существенной экономии времени эксперта на классификации изменений, которая решается более эффективно с применением предложенного в диссертации метода.

6. Применимость метода для повышения эффективности экспертизы ограничена программными системами, при разработке которых существует ограничение времени на экспертизу исходного кода, не позволяющее выполнять ее полностью. Однако, исходя из опыта автора, большинство программных систем разрабатываются с ограничением во времени на экспертизу.

7. В таких условиях повышение качества разрабатываемой программной системы происходит за счет более эффективного проведения экспертизы кода благодаря концентрации эксперта на наиболее важных классах изменений кода. Разработанный метод автоматизированной классификации изменений позволяет выполнять классификацию изменений при минимальном участии эксперта.

8. Повышение эффективности экспертизы кода не только прямо-способствует повышению качества кода за счет выбора наиболее важных изменений в условиях ограничения времени, но и позволяет использовать экспертизу для решения многих задач, связанных с обменом информации между участниками процесса разработки.

9. В процессе внедрения метода были выявлены следующие недостатки, которые предлагается устранять при разработке перспективных исследований по теме диссертации:

• необходимость участия эксперта в процессе сопоставления кластеров классам;

• отсутствие возможности классификации изменений, содержащих разнородные модификации.

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

Заключение

.

В диссертации получены следующие результаты.

1. Обоснована возможность частичной автоматизации классификации изменений исходного кода методом кластеризации метрик.

2. Обоснован выбор метода k-средних с мерой близости объектов для кластеризации, основанной на косинусе угла между векторами метрик изменений.

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

4. Разработано программное средство автоматизированной классификации изменений предложенным методом.

Перечисленные результаты получены в ходе выполнения совместных работ СПбГУ ИТМО и ЗАО «Транзас Технологии» и используются как при* разработке программного обеспечения сложных систем, так и в учебном процессе.

В работе приводятся результаты сравнения классификаций изменений в программной системе с открытым исходным кодом, выполненные с использованием предложенного автоматизированного метода и вручную. Для этого привлекались эксперты, имеющие опыт разработки сложных программных систем не менее пяти лет. Всего в работе было проанализировано пять программных систем. Исследования показали, что метод позволяет сократить время классификации изменений по сравнению с «чисто ручной» экспертизой (для пяти программных систем участие эксперта требовалось в среднем для классификации одного из одиннадцати изменений, а остальные изменения классифицировались автоматически) при следующих средних значениях характеристик качества классификации: чистота Рс = 0,74 ± 0,05 и энтропия 0,40 ±0,06. Также подтверждена гипотеза о возможности автоматизированной классификации методом кластеризации метрик изменений для значений Рд не ниже 0,69 и Eg не выше 0,47.

В настоящее время в методе используется 11 метрик, перечень которых приведен в разд. 2.2. Автор предполагает, что возможно совершенствование качества классификации за счет увеличения числа используемых метрик, а также настройки на другие перечни классов изменений, кроме тех, которые рассмотрены в диссертации.

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

Темы перспективных исследований.

Перспективными являются следующие направления исследований:

1. Подбор метрик, позволяющих повысить качество работы предложенного метода за счет более четкого разделения изменений классов рефакторинг и исправление логики.

2. Разработка потокового метода классификации изменений на основе кластеризации метрик изменений;

3. Разработка модификации предложенного в диссертации метода на основе кластеризации метрик, основанной на нечеткой логике;

4. Применение предложенного в диссертации метода для оценки степени влияния изменений программного кода, не покрытых тестами на качество программной системы.

В указанных направлениях в настоящее время получены следующие результаты:

1. Сформулировано предположение, что метрики структуры кода (глубина дерева наследования, число наследуемых интерфейсов и другие), метрики связности классов (число классов, к которымпроисходит обращение из некоторого класса), а также метрики дублирования кода [2, 23, 24] позволят более четко выделять класс рефакторинг, что позволит повысить качество работы метода.

2. Разработан потоковый метод классификации изменений на основе кластеризации метрик изменений ' с использованием обучающего множества изменений. В настоящее время еще не исследован вопрос устойчивости алгоритма кластеризации метрик с использованием обучающего множества изменений. Также подробно не изучены особенности построения обучающего множества изменений для решаемой задачи [12].

3. Предложена модификация метода автоматизированной классификации изменений на основе нечеткой логики. Построена нечеткая классификация множества изменений программной системы Navi-Manager. Проведен сравнительный анализ результата нечеткой классификации предложенным методом и экспертной классификации изменений [11].

4. Предложен теоретический способ автоматизированного контроля качества разработки на основе расчета метрики покрытия кода изменения тестами, с применением метода автоматизированной классификации изменений на два класса: изменение покрытого тестами кода и изменение непокрытого тестами кода [14].

1. Ауэр К, Миллер Р. Экстремальное программирование: постановка процесса. С первых шагов и до победного конца. СПб.: Питер, 2004, 368 с.

2. Афанасьев С. В., Воробьев В. И. Метрики для объектно-ориентированного проектирования сложных систем // Вестник гражданских инженеров, 2005, № 4, с. 118−123.

3. Ахо А., Сети Р., Ульман Д. Д. Компиляторы: принципы, технологии и инструменты. М.: Вильяме, 2001, 768 с.

4. Барсегян А. А., Куприянов М. С., Степаненко В. В., Холод И. И. Методы и модели анализа данных: OLAP и Data Mining. СПб: БХВ-Петербург, 2004, 336 с.

5. Барсегян А. А., Куприянов М. С., Степаненко В. В., Холод И. И. Технологии анализа данных: Data Mining, Visual Mining, Text Mining, OLAP. СПб: БХВ-Петербург, 2007. 375 с.

6. Брукс П. Метрики для управления ИТ-услугами. М.: Альпина Бизнес Букс, 2008, 288 с.

7. Викиучебник. Алгоритмы поиска редакционного предписания. http://m.wikibooks.org/wiki/PeflaKUHQHHoe предписание.

8. Диаконис П., Эфрон Б. Статистические методы с интенсивным использованием ЭВМ // В мире науки, 1993, № 3, с. 60−72.

9. Князев Е. Г. Методы обнаружения закономерностей эволюции программного кода / Труды XIV Всероссийской научно-методической конференции «Телематика-2007». СПбГУ ИТМО. 2007. Т.2, с. 435−436.

10. Князев Е. Г. Применение алгоритма нечеткой кластеризации метрик для классификации изменений программного кода / Сборник тезисов V Всероссийской межвузовской конференции молодых ученых. СПбГУ ИТМО. 2008, с. 282, 283.

11. Князев E. Г., Лобанов П. Г. Оценка опасности изменений программного кода путем анализа покрытия кода модульными тестами / Сборник докладов X международной конференции по мягким вычислениям и измерениям. СПбГЭТУ «ЛЭТИ». 2007. Т.2, с. 273−275.

12. Князев Е. Г., Шопырин Д. Г. Автоматизированная классификация изменений программного кода методами многомерного статистического анализа // Информационные технологии. 2008. № 5, с. 48−53.

13. Князев Е. Г., Шопырин Д. Г. Анализ изменений программного кода методом кластеризации метрик // Научно-технический вестник СПбГУ ИТМО. Исследования в области информационных технологий. 2007. Вып. 39, с. 197−208.

14. Князев Е. Г., Шопырин Д. Г. Анализ изменений программного кода методом кластеризации метрик / Сборник тезисов IV межвузовской конференции молодых ученых. СПбГУ ИТМО. 2007, с. 68.

15. Князев Е. Г., Шопырин Д. Г. Использование автоматизированной классификации изменений программного кода в управлении процессомразработки программного обеспечения // Информационно-управляющие системы. 2008. № 5, с. 15−21.

16. Кобзарь А. Прикладная математическая статистика. Для инженеров и научных работников. М.: Физматилит, 2006. 816 с.

17. Количественные методы в исторических исследованиях / Под ред. Ковальченко И. Д. М.: Высшая школа, 1984. 384с.

18. Левенштейн В. И. Двоичные коды с исправлением выпадений, вставок и замещений символов. Докл. АН СССР, 163, 4, 1965, с. 845−848.

19. Липаев В. В. Методы обеспечения качества крупномасштабных программных средств. М.: Синтег, 2003, 520 с.

20. Липаев В. В. Выбор и оценивание характеристик качества программных средств: Методы и стандарты. М.: Синтег, 2001. 224 с.

21. Макконелл С. Совершенный код. СПб: Питер, 2007, 896 с.

22. Манделъ ИД. Кластерный анализ. М.: Финансы и статистика, 1988. 176 с.

23. Мартин Р. Быстрая разработка программ: принципы, примеры, практика. М.: Вильяме, 2003, 752 с.

24. Новиков Ф. А. Дискретная математика для программистов. СПб.: Питер, 2003, 460 с.

25. Орлов А. И. О реальных возможностях бутстрепа как статистического метода // Заводская лаборатория, 1987, Т.53, № 10, с. 82−85.

26. Орлов С. А. Технологии разработки программного обеспечения: Учебник для вузов. СПб: Питер, 2004. 528 с.

27. Подборка статей по бутстрепу // Заводская лаборатория, 1987, Т.53, № 10, с. 76−99.

28. Чубукова И.A. Data Mining. М.: Лаборатория Базовых Знаний, 2008. 382 с.

29. Фаулер М. Рефакторинг: улучшение существующего кода. СПб: Символ-Плюс, 2003.432 с.

30. Ханк Д. Э., Уичерн Д. У., Райте А. Д. Бизнес-прогнозирование. 7-е издание, М.: Вильяме, 2003, 656 с.

31. Эфрон Б. Нетрадиционные методы многомерного статистического анализа. М.: Финансы и статистика, 1988, 263 с.

32. A Guide to the Project Management Body of Knowledge (PMBOK® Guide) -Fourth Edition. Project Management Institute, USA, 2008, 459 p.

33. Beck K. Extreme Programming Explained: Embrace Change (2nd Edition). Addison-Wesley Professional, USA, 2004, 224 p.

34. Beck K. Test driven development by example. Addison-Wesley Professional, USA, 2002, 240 p.

35. Bevan J., Wlutehead E. J., Kim S., Godfrey M. Facilitating Software Evolution with Kenyon / European Software Engineering Conference and 2005 Foundations of Software Engineering (ESEC/FSE 2005), Lisbon, Portugal, 2005, pp. 177−186.

36. Canfora G., Cerulo L., Penta D. M. Identifying Changed Source Code Lines from Version Repositories / MSR: International Workshop on Mining Software Repositories. Minneapolis, USA. 2007, pp. 34−45.

37. Chidamber S. R., Kemerer C. F. A Metrics Suite for Object Oriented Design // IEEE Transactions on Software Engineering, Vol. 20(6), June 1994, pp. 62−69.

38. Cohen J. A Coefficient of Agreement for Nominal Scales // Educational and Psychological Measurement. 1960, № 2, pp. 37−46.

39. Cohen J. Best Kept Secrets of Peer Code Review (Modern Approach: Practical Advice), http://smartbearsoftware.com. USA, 2006, 233 p.

40. Collard M. L. Meta-Differencing: An Infrastructure for Source Code Difference Analysis. Kent State University, Kent, Ohio USA. Ph.D. Dissertation Thesis, 2004. 136 p.

41. Collins-Sussman В., Fitzpatrick B.W., Pilato M. Version Control with Subversion. O’Relly, 2004. http://svnbook.red-bean.com/.

42. Concurrent Versions System (CVS), http://www.nongiiu.org/cvs/.

43. Crane Simulator. Transas. http://transas.com/products/default.asp.

44. Demeyer S. Ducasse S., Nierstrasz 0. Finding refactorings via change metrics / Proceedings of the ACM Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA '00), pp. 166−178, 2000.

45. Efron B. Bootstrap methods: Another look at the jackknife / Ann. Statist., № 1, 1979, pp. 1−26.

46. Emam E. K. Benchmarking Kappa for Software Process Assessment Reliability Studies. Technical Report ISERN-98−02, International Software Engineering Research Network, 1998. http://citeseer.ist.psu.edu/elemam98benchm arkhi^itml.

47. Engine Room Simulator (ERS) 4000. Transas. http://www.transas.com/products/simulators/sim products/ers/.

48. E-Tutor 5000. Transas. http://transas.com/products/default.asp.

49. Fagan, M. E. Design and Code Inspections to Reduce Errors in Program Development // IBM Systems Journal, № 3, 1976, pp. 182−211.

50. Free Software Foundation. GNU Compiler Collection, http://www.gnu.org.

51. Hassan A. E., Holt. R. C. Source Control Change Messages: How Are They Used And What Do They Mean? 2004. http://www.ece.uvic.ca/~ahmed/home/pubs/CVSSurvey.pdf.

52. HyppoDraw. http://www.slac.stanford¦edu/gф/ek/hippodraw/index.html.

53. IBM Object-Oriented Technology Center. Developing Object-Oriented Software: An Experience-Based Approach. Prentice Hall, IBM, 1997, 636 p.

54. Joachims T. Text Categorization with Support Vector Machines: Learning with Many Relevant Features / ECML 98, 10th European Conference on Machine Learning, Chemnitz, Germany, 1998, pp. 137−142.

55. Kaner С. Exploratory Testing, Florida Institute of Technology / Quality Assurance Institute Worldwide Annual Software Testing Conference, Orlando, USA, 2006, pp. 36−39.

56. Karypis G. CLUTO. A Clustering Toolkit. Technical Report: #02−017, University of Minnesota, Department of Computer Science Minneapolis, USA, 2003, 71 p.

57. KDE. К Desktop Environment, http://www.kde.org/.

58. Kim M., Notkin D. Program element matching for multi-version program analyses / MSR '06: Proceedings of the 2006 International Workshop on Mining Software Repositories. 2006, pp. 58−64.

59. Kim S., Whitehead E. J., Zhang Y. Classifying Software Changes: Clean or Buggy? http://www.cs.ucsc.edu/~ejw/papers/cc.pdf.

60. Knyazev E. Automated Source Code Changes Classification for Effective Code Review and Analysis / Proceedings of SYRCoSE 2008 (SYRCoSE) Spring Young Researchers Colloquium on Software Engineering. Volume 2, pp. 5559.

61. Kruskal J. В., Wish M. Multidimensional scaling. // Paper Series on Quantitative Applications in the Social Sciences, (№№ 07−011), 1978.

62. Lamping J., Rao R., Pirolli P. A focus+context technique based on hyperbolic geometry for visualizing large hierarchies // Proc. ACM Conf. Human Factors in Computing Systems, CHI, ACM, 1995, pp. 401−408.

63. Larman C., Basili V. R. Iterative and Incremental Development: A Brief History // Computer, № 6,2003, pp. 47−56.

64. Liquid Cargo Handling Simidator (LCHS). Transas. http://www.transas.com/products/simulators/sim products/ers/.

65. Long range identification and tracking (LRIT). International Maritime Organization, http://www.imo.org/safety/mainframe.asp'?topicid=905.

66. Lorenz M., Kidd J., Object-Oriented Software Metrics: A Practical Approach, PrenticeHall, 1994, 154 p.

67. Maitra R. Clustering Massive Datasets With Application in Software Metrics and Tomography // Technometrics. № 3, 2001, pp. 336−346.

68. Malefic J. I., Collard M. L. Supporting Source Code Difference Analysis / Proceedings of IEEE International Conference on Software Maintenance (ICSM'04). Chicago, Illinois. September 11−17, 2004, pp. 210−219.

69. McCabe T. J. A Complexity Measure // IEEE Trans SE-2 № 4, December 1976.

70. Mockus A., Votta L. G. Identifying reasons for software change using historic databases / Proceedings of the International Conference on Software Maintenance (ICSM). San Jose, California, 2000, pp. 120−130.

71. MSqared Resource Standard Metrics Documentation. http://msquaredtechnolooies.com/m2rsm/docs/rsm metrics narration.htm.

72. MSqared Resource Standard Metrics. Code Analysis for Code Reviews and Acceptance, http://msquaredtechnologies.com/m2rsm/index.htm.

73. Navi-Manager Vessel Monitoring System. Transas. http://www.transas.com/products/shorebased/manager/ http://www.transas.ru/products/shorebased/fleet/navi-manager/.

74. Navi-Trainer Professional (NTPro) 5000. Transas. http://www.transas.com/products/simulators/sim products/navigational/.

75. NHibernate. Object-relation mapping for Microsoft .NET. https://www.hibernate.org/343.html.

76. Pan K., Kim S., Whitehead J. E. Bug Classification Using Program Slicing Metrics / Sixth IEEE International Workshop on Source Code Analysis and Manipulation (SCAM 2006), Philadelphia, PA, 2006, pp. 77−86.

77. Radice R. Software Inspections. Software Technology Transition, www.stt.com // Methods and Tools, № 3, Martinig & Associates, USA, 2009, pp. 7−20.

78. Rasmussen M. gcluto: A graphical interface for clustering algorithms and visualizations. Technical Report TR# 04−020, Department of Computer Science & Engineering, University of Minnesota, Minneapolis, USA, 2004, 10 p.

79. Robbes R. Mining a Change-Based Software Repository / MSR: International Workshop on Mining Software Repositories. Minneapolis, USA, 2007, pp. 120−124.

80. Scott S., Matwin S. Feature Engineering for Text Classification / Sixteenth International Conference on Machine Learning, Bled, Slovenia, 1999, pp. 379−388.

81. Sebastiani F. Machine Learning in Automated Text Categorization // ACM Computing Surveys, № 1, 2002, pp. 1—47.

82. SHwerski J., Zimmermann Т., Zeller A. When Do Changes Induce Fixes? / Workshop on Mining Software Repositories (MSR 2005), Saint Louis, Missouri, USA, 2005, pp. 24−28.

83. Smart Bear Sofware. http://smartbear.com/.

84. Software release lifecycle. http://en.wtkipedia.org/wiki/Softvvarereleaselife cycle.

85. Subversion (SVN). http://subversion.tigris.org.

86. The Apache Software Foundation. Apache HTTP Server. http://httpd.apache.org.

87. TortoiseSVN. Windows Shell Extension for Subversion. http://tortoisesvn.tigris.org/.

88. Zimmermann T. Knowledge Collaboration by Mining Software Repositories / Proceedings of the 2nd International Workshop on Supporting Knowledge Collaboration in Software Development (KCSD 2006). Tokyo, Japan, 2006, pp. 64, 65.

89. Zimmermann Т., Wei. gerber P., Diehl S., Zeller A. Mining Version Histories to Guide Software Changes / Proceedings of 26th International Conference on Software Engineering (ICSE'04). Edinburgh, Scotland, United Kingdom, May 23−28, 2004, pp. 563−572.

Показать весь текст
Заполнить форму текущей работой