Я написал плагин к Eclipse, который автоматически показывает весь код в Java проекте в виде ДРАКОН схемы во время отладки, т.е. выполнения этого кода.
Методы изображаются в виде примитивов ДРАКОН, расположенных в порядке выполнения.
Показан только код, который выполняется в данной сессии отладки, без визуального синтаксического шума (точек с запятой).
Так как методов много, вызовы показаны легкими прозрачными стрелочками.
Весь код показан на одном большом листе, от любой ДРАКОН иконы с кодом одним нажатием переходим прямо в эту строку кода в Eclipse.
А из Eclipse'a, от любой строки кода, одним нажатием фокусируемся на иконе, представляющей его на большой ДРАКОН схеме.
Когда мы исправляем/изменяем код, ДРАКОН схема автоматически обновляется.
Для убедительности или групповой работы ДРАКОН схему можно конечно же еще и распечатать, и активно делать на ней заметки.
Очень хорошо.
А можно ли использовать такую программу как продукт, который поможет искать и исправлять ошибки в имеющемся legacy коде?
Может быть, миллионы программистов, годами корпящих над унылым сопровождением старого кода, могли бы значительно облегчить свою задачу?
Исправлять ошибки в коде в 10 раз быстрее! Ведь у ДРАКОН схем столько замечательных качеств по сравнению с другими нотациями!
Ну хорошо, не в 10, но может в 2 раза быстрее? Ну хотя бы на 20% быстрее мы могли бы сделать эти десятки миллионов программистов в решении проблем?
Как вы думаете?
Для тестирования этой гипотезы мы взяли за основу методику, изложенную проф. Brad Myers в
https://faculty.washington.edu/ajko/pap ... ollect.pdfВ течение ряда дней мой партнер в Оттаве организовывал однодневные сессии тестирования с группами программистов в 10-20 человек.
До обеда они должны были исправить 6 ошибок в проекте просто в Еклипсе.
А после пиццы в обед они получали новый похожий проект, но с ДРАКОН схемой: и распечатанной, и доступной в плагине Еклипса.
С той же задачей, найти и исправить 6 ошибок.
Потом я свел в табличку кол-во багов, исправленных в каждом случае за все дни, и увидел что нет никакой разницы.
Почему?
Владимир Данилович, услышав о нашей процедуре, сказал: "вы оглушили своих участников двойным молотком, двойной задачей.
Они и ДРАКОН то первый раз в жизни видели, а вы хотите сразу от них прирост производительности в исправлении Java багов."
К счастью, участники не только не пострадали, а наоборот, выразили благодарность за интересный день.
Прикрепляю распечатку на пенокартоне, использованную одним из участников тестирования.