Владимир Прус / Иван Ручкин, 4-й курс, mod-sem

На этом форуме публикуются и уточняются постановки задач студентам, а также отслеживается ход их выполнения

Модератор: staff

Владимир Прус / Иван Ручкин, 4-й курс, mod-sem

Сообщение Бычков Иван » 02 ноя 2009 01:22 pm

Постановка практически идентична прошлогодней, изменилась лишь расшифровка (часть которой сделана) и план работы.

Тема работы

Исследование текстуально-контекстного подхода к средам разработки программ

Актуальность

Среды разработки программ (IDE) в силу ориентации на профессиональных пользователей предоставляют очень широкий набор возможностей. Этот набор настолько широк, что самостоятельность проблемой становиться создание графического интерфейса с удобным доступом ко всем возможностям. Из-за этой проблемы значительной число профессиональных программистов по прежднему пользуется такими инструментами как notepad и mcedit, emacs и vim, которые определенно уступают IDE по степени интегрированности и возможностям.

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

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

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



Расшифровка задачи

Работа будет происходить на базе среды KDevelop4. Подзадачи таковы:
  • Разработать "продвинутую" строку состояния, содержащую информацию о состоянии исходного кода (количество измененных файлов, etc), количестве проблем (todo, ошибки), а также возможность показа произвольных сообщений. Целью является убрать из числа необходимых при нормальной работы окон такие как version control или todo list.
  • Завершить реализацию механизма показа произвольных объектов внутри текста программы -- как элементов, "раздвигающих" тест программы, так и показываемых "сверху".
  • Выбрать и реализовать несколько операций над элементами программы -- переименование, выделение фрагмента в функцию, переопределение унаследованных методов, переход к определению, просмотр иерархии классов или дерева вызовов
  • Оценить удачность сделанного интерфейса, пришлифовать. По возможности перенести все существующие возможности KDevelop на новый интерфейс.

План работы

  • Реализация строки состояния
  • Выбор функций меню, которые возможно перенести в окно редактора.
  • Разработка интерфейса для выбранной функциональности.
  • Реализация и тестирование.


Ожидаемые результаты

IDE с новым интерфейсом. Количество функций может быть небольшим, но IDE должно быть достаточно работоспособно чтобы оценивать удобство.
Бычков Иван
Аспирант
 
Сообщения: 179
Зарегистрирован: 23 сен 2008 01:19 pm

Сообщение Ручкин Иван » 22 дек 2009 02:02 am

Отчет о научной работе за 7-й семестр

Студент: Иван Ручкин

Группа: 422

Научный руководитель: Владимир Прус


Тема работы

Исследование текстуально-контекстного подхода к средам разработки программ.

Актуальность

Среды разработки программ (IDE) в силу ориентации на профессиональных пользователей предоставляют очень широкий набор возможностей. Этот набор настолько широк, что самостоятельной проблемой становится создание графического интерфейса с удобным доступом ко всем возможностям. Из-за этой проблемы значительное число профессиональных программистов по прежнему пользуется такими инструментами, как notepad и mcedit, emacs и vim, которые определенно уступают IDE по степени интегрированности и возможностям.

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

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

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

Основная задача

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

Подзадачи курсовой работы
  • Разработать "продвинутую" строку состояния, содержащую информацию о состоянии исходного кода (количество измененных файлов и т.п.), количестве проблем (задачи, ошибки сборки), а также возможность показа произвольных сообщений. Целью является убрать из числа необходимых при нормальной работы окон такие как version control или todo list.
  • Завершить реализацию механизма показа произвольных объектов внутри текста программы -- как элементов, "раздвигающих" тест программы, так и показываемых "сверху".
  • Выбрать и реализовать несколько операций над элементами программы -- переименование, выделение фрагмента в функцию, переопределение унаследованных методов, переход к определению, просмотр иерархии классов или дерева вызовов.
  • Оценить удачность сделанного интерфейса, пришлифовать. По возможности перенести все существующие возможности KDevelop на новый интерфейс.
Что сделано в этом семестре
  • Составлено описание функциональности KDevelop, Visual Studio, Eclipse, доступной через главное меню программы. Выделены абстрактные группы схожих операций.
  • Описаны абстрактные возможности переноса функциональности из главного меню среды разработки в окно редактирования кода.
  • Разработана и реализована продвинутая строка состояния с двумя частями: статическая (отображение произвольных визуальных элементов от плагинов) и динамическая (отображение текстовых сообщений).
  • Реализован механизм добавления статических визуальных элементов и сообщений в строку состояния.
  • Эти интерфейсы использованы для добавления виджетов "Число измененных файлов в репозитории SVN", "Состояние отладчика", "Число ошибок фоновой проверки кода", а также для сообщений "Закончена фоновая проверка кода".
  • Реализован механизм отображения информации над текстом программы, который в дальнейшем будет использован для доступа к функциональности IDE.
Планы на весенний семестр
  • Разработка критериев переноса функций среды в код программы: какие фукнции и как переносить.
  • Реализация переноса тех функций, которые присутствуют в KDevelop, возможно добавление новых функций в KDevelop. Предполагается использование уже реализованных механизмов (отображение внутри текста, отображение над текстом, строка состояния).
Использованные материалы
Ручкин Иван
Выпускник
 
Сообщения: 2
Зарегистрирован: 19 окт 2008 01:43 pm


Вернуться в Студенческие задачи (2009-2010)

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1

cron