НИР

Материал из SEWiki
Перейти к: навигация, поиск

Карта дорог

Руководитель: Лесин
Ссылка на проект:
Команда:

  • Иванов Антон
  • Сорокин Артем
  • Кононенко Василий

Отчёт:

  • 6.03.2012 - Первая встреча.
    • Задачи на неделю:
    • Кононенко: подготовить результаты прошлого семестра для коллективного проекта.
    • Сорокин, Иванов: разобраться с базовыми алгоритмами поиска кратчайших путей.
  • 20.03.2012 - Третья встреча.
    • Обсудили структуру проекта. Определили "первые шаги" реализации.
    • Задачи на неделю:
    • Кононенко: Презентация (reaches), организация проекта, загрузка OSM формата, reaches preprocessing.
    • Сорокин: создать wiki, github, разобраться с визуализатором и написать алг. Дейкстры, презентация?
    • Иванов: web интерфейс (client-side), работающий сервер обрабатывающий запросы поиска евклидова расстояния между 2мя точками
    •  ?- допишите на какую тему презентации плиз.
  • 27.03.2012
    • Была проведена презентация Артема Сорокина по алгоритмам на графах (? уточни плз. название алгоритмов)
    • Задачи на неделю:
    • Иванов: закончить предыдущее задание. (ServerSide договорились делать на python'e, клиент уже почти написан на javascript'e с использованием openLayers api)

MyFit

Руководитель: EMC
Ссылка на проект:

Команда:

  • Опейкин Александр
  • Певзнер Алина
  • Башоров Залим


09.03.2012

Выполнено 2 тестовых задания на Java и на GWT.
Получены следующие задачи:

12.03.2012

Получены следующие задачи:

27.03.2012

Митинг в EMC -- обсудили текущие задачи и тестовые задания.
Закоммитили рабочие версии кода по задачам, ожидаем ревью.
(задачи: Башоров, Опейкин, Певзнер)

GPU

Руководитель: Рубен Артурович Гиргидов
Ссылка на проект:
Команда:

  • Коровин Алексей
  • Лазарев Сергей
  • Кормишин Сергей

Отчёт:

  • 1я встреча нам были выданы вводные задачи:
    • Разобраться с CUDA, установить и настроить окружение. Написать простенький алгоритм. (Коровин А.)
    • Вспомнить "всё" о регулярных выражениях: какие бывают, как пишутся (Лазарев С.)
    • Найти обработчики регулярных выражений (Matcher'ы), разобраться в их строении и принципе работы. (Кормишин С.)
  • 2я встреча:
    • Обсудили наши предыдущие задания, расписали план выполнения проекта, цели и др.
    • Выданы следующие задачи:
      1. Реализовать обработчик РВ на Cuda для одной и n строк (Коровин А.)
      2. Найти обработчики РВ на CPU на C++ и адаптировать его для n строк (Кормишин С.)
      3. Реализовать обработчик РВ нa cuBLAS (Лазарев С.)
  • 3я встреча:
    • Обсудили наши успехи, искали нужное представление автомата в виде матрицы для задачи реализации РВ на cuBLAS
    • Решили какие паттерны РВ будут в бенчмарках
    • По CUDA на неделю нужно было реализовать простейшую схему распараллеливания существующих реализаций регулярных выражений(Regexp9, Cuda paper code) и посмотреть на производительность.
  • 4я встреча:
    • Портированная библиотека работать не хочет и разобраться без отладчика - очень трудно. Попытались настроить удалённую отладку на CUDA. Всё настроилось, но софт (Nsight) очень сырой, происходят непонятные ошибки и они нигде не журналируются и не объясняются. (Коровин А.)
  • 5я встреча:
    • Реализован поиск с помощью регулярных выражений на основе матричных вычислений с использованием библиотеки cuBLAS. Пока сделан поиск в одной строке. Дальше надо распараллелить на несколько строк. (Лазарев С.)
    • Портированная библиотека после длительной отладки начала матчить строку с регулярным выражением. Задача 1 выражение - 1 строка решена. Следующая задача задействовать все ядра видеокарты и научиться матчить N строк на одно регулярное выражение. (Коровин А.)
    • Реализовн поиск с помощью re2 одной строки на одном ядре. Теперь нужно сделать для n строк на к ядрах.

Syrop

Руководитель: Смаль Александр Владимирович
Ссылка на проект: Syrop
Wiki проекта: Github
Команда:

  • Кринкин Михаил
  • Мартынов Семён
  • Крашенинникова Ксения
  • Великий Алексей

Отчёт:

  • 27/feb/2011 - Первая встреча. Обсуждение цели проекта, способов реализации и внутри командного взаимодействия. Разделение задач. Создан репозиторий проекта на GitHub. Открытый вопрос - применение методологий разработки в проекте.
  • 01/mar/2011 - Сode review.
  • 05/mar/2011 - Введение договоренностей о code style, оформлении документации, спецификация на интерфейсы. Показ первого GUI, уточнение новых задач.
  • 12/mar/2011 - Всё хорошо.
  • 19/mar/2011 - Снова всё хорошо - работаем.
  • 26/mar/2011 - Семен у нас большой шутник, см. список задач на трекере

Дублирующий код

Руководитель: Иваницкий
Ссылка на проект: http://code.google.com/p/aptu-practice-code-duplication/
Команда:

  • Бандурин Дима (Project manager)
  • Лепенькин Ярослав (Поиск дублирующего кода в C++)
  • Фофанова Маша (Поиск дублирующего кода в Java)

Отчёт:

28.02.2012 - Вводная встреча

  • Распределение ролей в команде
Бандурин Дима (Project manager)
Лепенькин Ярослав. Изучение специфики C++ для поиска дублирующего кода
Фофанова Маша. Изучение специфики Java для поиск дублирующего кода.
  • Уточнение функционала
  • Организационные вопросы

06.03.2012 - Контрольная встреча

  • Изучение существующих решений
    • Michael Wise's Greedy String Tiling algorithm
    • Преобразование Барроуза-Уиллера
    • Алгоритм Рабина-Карпа
    • Механизм использующийся в IntelliJ IDEA

Файл:Solutions.pdf

15.03.2012

В рамках НИР необходимо ответить на три вопроса.

  • Научная новизна
    • Список существующих решений для нашей задачи.(Ярослав)
    • Способы оценки существующих решений.(Маша)
    • Библиотеки, для проведения испытания (исследуемая выборка) (Дмитрий)
  • Рабочий прототип. Решено делать плагин на базе IntelliJ IDEA. Функциональность плагина будет выяснена дальше.
  • Этапы разработки

Решено разбить разработку на три этапа.

  1. Определение требований к разрабатываемой программе.(3 недели)
  2. Создание прототипа (2 недели)
  3. Разработка плагина (4 недели)
    1. Основная функциональность (2 недели)
    2. Тестирование и доведение (2 неделя)
    3. Документирование и создание презентационных материалов (1 неделя параллельно со вторым пунктом.)

Итого 9 недель. Предположительный срок завершения проекта : 21 мая

21.03.2012

  • Возможные метрики для сравнения алгоритмов поиска дубликатов
    • Время работы, используемая память, CPU
    • Число правильно найденных дубликатов
      • Необходимо учитывать длину каждого дубликата, чтобы учитывать возможную вложенность. Длина дубликата определяется числом символов в нем.
    • Число неправильно найденных дубликатов
  • Метрики для алгоритмов замены дубликатов
    • Объем кода, получающегося после замены найденных дубликатов на вызовы соответствующих методов
    • Релевантность участка кода. Код считается иррелевантным, если его замена на предлагающийся код слишком трудоемка и не имеет смысла.
  • Стоит также определить, на каких констукциях дубликатов алгоритмы работают лучше, а на каких хуже.

6.04.2012

  • Исследованы IdeaCodeDuplicatePlugin, Digger, Simian и получены следующие метрики:
    • Весовой коэффициент. Каждой строке присваивается вес, который соответствует числу программ, сказавших, что эта строка что-то дублирует.
      • idea 23310
      • digger 34839
      • simian 26050
    • Коэффициент по пересечению. Если строка встретилась в результате несколько раз, она учитывается несколько раз.
      • idea 0.94
      • digger 0.92
      • simian 0.94
    • Коэффициент по объединению. Если строка встретилась в результате несколько раз, она учитывается несколько раз.
      • idea 0.86
      • digger 0.12
      • simian 0.18
  • Попарные сравнения алгоритмов по тем же параметрам:
    • digger | 1.12 | 0.55 | 29589
    • simian | 1.03 | 0.76 | 21863
    • idea | 1.0 | 0.93 |19123
    • digger | 1.0 | 0.15 | 28710
    • idea | 1.0 | 0.89 | 18060
    • simian | 1.0 | 0.19 | 19921
  • Решено использовать алгоритм из Simian.

Конфигуратор контейнеров AndroidVM

Руководитель: Кринкин К.В.

Команда:

  • Владислав Савельев
  • Дмитрий Шеставин
  • Сергей Казенюк (отчёты)

Отчёт:

13 марта. Встреча с разработчиками проекта. Поставлены задачи.

Владислав: Послушал лекцию Кирилла Владимировича про QT. Подумал об интерфейсе конфигуратора. Написал очень черновой вариант, создающий и запускающий контейнеры. Начал смотреть видео лекций Кирилла Владимировича про QT и шаблон MVC, а также читать про QML.

27 марта.

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

10 апреля.

Владислав: Переписал интерфейс с использованием «модели — представления — модели представления». Нарисовал иконок и спроектировал внешний вид приложения в перспективе для презентации Жени Баталова на предзащите.
Добавил в программный интерфейс конфигуратора возможность для получения от устройства информации о списке контейнеров.

Поиск дублирующих сообщений об ошибках

Команда:

  • Ждан Анна
  • Краско Евгений
  • Кудинкин Алексей

Отчет 03.03 - 11.03

  • Настроено окружение: проект в MPS, проект в IDEA
  • Описана модель данных на языке dnq
  • Написан rest api для админки и для добавления в базу новых сообщений об ошибках
  • Написан парсер сообщений об ошибках
  • Написана первая версия алгоритма сравнения сообщений об ошибках
  • Написаны базовые классы для запуска тестов (различные заглушки для методов сервлет-контейнера, создание контекста для бинов и тп)
  • Написаны тесты на парсер и алгоритм сравнения
  • Частично написаны тесты на rest api (jmeter)

Отчет 11.03 - 18.03

  • Улучшена первая версия алгоритма сравнения сообщений об ошибках
  • Реализован альтернативный алгоритм сравнения сообщений об ошибках.
  • Написаны тесты на оба алгоритма
  • Реализован парсер сообщений об ошибках для языка C#. Парсер рассчитан на формат, принятый в Решарпере
  • Написаны тесты на парсер
  • В язык для рестовых тестов добавлена возможность проверять хереды респонса
  • Добавлен ui для администрирования приложение
  • Начата реализация JobProcessor'a, обрабатывающего сообщения об ошибках на предмет поиска дубликатов.

Отчет 19.03 - 25.03

  • Написан классификатор, разбивающий сообщения об ошибках на кластеры.
  • Добавлены новые возможности web-интерфейса для администрирования приложения.

Отчет 25.03 - 7.04

  • Написан JobProcessor, разбивающий сообщения об ошибках на кластеры.
  • Написаны тесты на JobProcessor
  • Начата реализация интеграции приложения с Ютрэком
  • Осуществлен переход на более новую версию библиотеки jersey