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

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

Модератор: staff

Закрыто
Бычков Иван
Аспирант
Сообщения: 179
Зарегистрирован: 23 сен 2008 01:19 pm

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

Сообщение Бычков Иван »

b]Тема работы[/b]

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

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

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

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

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

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



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

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

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

Сообщение Ручкин Иван »


Отчет о научной работе за 5-й семестр
Студент: Иван Ручкин
Группа: 322
Научный руководитель: Владимир Прус


Тема работы

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

Расшифровка темы

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

Подзадачи

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

Что сделано в этом семестре

Исследовательская часть:
- Исследование принципов usability и принципов проектирования графических интерфейсов (см. соответствующий документ в trac).
- Ознакомление с интерфейсами KTextEditor.
- Изучение исходного кода модуля KDevPlatform, принципов его построения.
- Изучение model/view программирования с помощью библиотеки Qt4.

Реализация:
- Практика программирования с помощью библиотеки Qt4.
- Практика model/view программирования с помощью библиотеки Qt4.
- Создана техническая база для разботки на базе KDevelop4.
- Разработан графический элемент для навигации по файлам для KDevelop4:
Отображается путь до текущего редактируемого файла (из директории проекта или из корня ФС). По щелчку на элементе пути возникает окно со списком файлов (2 категории: открытые в данный момент и остальные), при выборе файла из списка он открывается в новой закладке. Данный графический элемент позволяет быстро открывать нужные файлы и переходить к открытым без помощи дополнительных окон выбора файла, занимая при этом меньше места и обеспечивая быстрое взаимодействие.
-Отправлен патч к KDevelop4 в KDevelop-коммьюнити с реализованным графическим элементом .

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

Использованные материалы

Qt4
http://doc.trolltech.com/4.4/index.html

Блог Д. Харриса - разработчика графического интерфейса MS Office 2007
http://blogs.msdn.com/jensenh/

Обсуждение KDevelop
http://dir.gmane.org/gmane.comp.kde.devel.kdevelop

Описание KTextEditor
http://www.englishbreakfastnetwork.org/ ... index.html

Статьи о Qt и KDE
http://wiki.linuxformat.ru/index.php/LXF78:Qt/KDE
Закрыто