При внедрении нашей САПР-платформы мы часто сталкиваемся с тем, что мало кто в нашей стране может адекватно оценить функционал такого сложного и многогранного инструмента как САПР, полно сравнить конкурирующие решения и сделать непредвзятую оценку. Чаще всего такую работу поручают местному «САПР-гуру» — специалисту-«фанату», который может быть (и, скорее всего, будет) предвзят, т.к. любит используемое им в текущий момент решение. В результате получаем список «вкусных», но малоиспользуемых функций, которые «вы должны сделать иначе никакого внедрения!», а тема импортозамещения плавно затухает. В ответ мы задумались об инструменте, который позволит сделать независимую оценку, реализовали его и теперь готовы им с вами поделиться.
Введение
Идея инструмента заключается в том, чтобы собрать в список функции, которые рядовой пользователь САПР использует в работе каждый день – т.е. выбираем группу пользователей, включаем на их компьютере ведение логов командной строки, собираем их в определенную папку в сети организации, а затем анализируем их. Сама по себе схема очень удобна:- все полностью автоматизировано: нужно только включить ведение журнала;
- все абсолютно конфиденциально: в журнал логов включается только информация о вызываемых командах, а не о самом проекте;
- сбор статистики абсолютно не мешает каждодневной работе пользователя: запись в журнал достаточно незаметная операция.
Самое главное — такой сбор статистики позволяет провести максимально полный анализ: вы можете собирать журналы хоть в течение целого года, а программа аккуратно будет коллекционировать вызовы команд в одну папочку. Также вы можете проводить анализ, разбив пользователей по группам – просто укажите разные папки для сбора статистики. А журналы затем покажут, какие команды платформы использовались, использовались ли какие-нибудь приложения или дополнительные разработки, какой уровень использования платформы и приложений (частота вызова команд) – т.е. непредвзятая чистая статистика и никакого субъективизма.
Возникает вопрос «а как включить такой журнал?». Тут все просто: в командной строке вводим команду «Параметры» (или «OPTIONS» для английской версии). Далее идем на закладку «Открытие\Сохранение» (или «Open and save»). И взводим опцию «Вести файл журнала» (или «Maintain a log file» — см. рис.1). В результате этой команды в системную папку, задаваемую переменной LOGFILEPATH, будет сохраняться информация из командной строки (журнал команд).
Рис. 1. Включив опцию «Вести файл журнала» вы сможете накапливать статистику о командах, используемых в САПР-решении, в папке, которая задается переменной LOGFILEPATH.
У вас нет таких команд? Скорее всего вы пользуетесь САПР, которая не позволяет вести журнал вызываемых команд, и у вас будет проходить не импортозамещение, а переход с конкурирующих решений – это чуть другая история…
Итак, включили журнал ведения логов, собрали логи в папку – что дальше?
Предварительная обработка данных
Полученные в результате ведения файлы представляют собой груду файлов, внутри которых спрятаны используемые команды (рис.2).
Рис. 2. Типичная папка с журналами команд – на каждый файл отдельный журнал.
Если заглянуть внутрь, то мы увидим все, что писалось в САПР в командную строчку: вызовы команд (то, что нас интересует), системные сообщения, ответы пользователя, значения переменных, сообщения об ошибках, предупреждения и т.д. Все это теперь надо обработать и составить список вызываемых команд с информацией о том, как часто ее вызывали. Для этого мы написали простую утилиту на языке AutoIt, которая напускается на log-файлы в указанной папке, последовательно их обрабатывает и формирует массив команд с подсчетом частоты их вызова (рис.3).
Рис. 3. Утилита StatCAD, которая позволяет обработать журналы команд и сформировать список использованных команд.
Работа с утилитой StatCAD очень простая: достаточно указать папку с логами, нажать на кнопку «Анализ», дождаться окончания работы и, нажав на кнопку «Показать статистику», получить список в отдельном окне. Из этого окна можно данные скопировать в Excel или текстовый формат – как вам удобнее. Что дальше? А дальше начинается творческая работа.
Обработка полученной статистики
Во-первых, мы должны в найденном списке выделить команды САПР-платформы, т.е. необходимо иметь список штатных команд САПР-платформы, с которой сравниваем. Мы сейчас накопили порядка 2400 команд, системных переменных и алиасов-сокращений (как на русском, так и на английском языке), с которым проводим сравнение – простое пересечение таблиц в Access позволяет получить сходные и отличающиеся команды в один щелчок. Сложнее всего с отличающимися командами – их приходится анализировать вручную, отделяя синтаксические ошибки от команд приложений, команд, написанных пользователями, и т.п. Зачастую результат удивляет (см. рис.4) – статистика может показать, что доля платформы существенно превышает долю приложений:Рис. 4. Предварительный список команд может содержать как вызовы приложений, так и синтаксические ошибки.
Во-вторых, мы можем сравнить список распознанных команд САПР-платформы со списком реализованных команд платформы nanoCAD Plus – это тоже пересечение двух таблиц в Access. В результате мы получим список команд, реализованных в режиме «один-к-одному» (полное совпадение).
Результаты анализа
И, наконец, список оставшихся команд разбивается на три части:- Реализованный функционал, т.е. команды, которые не проходят через командую строку nanoCAD Plus, но тем не менее реализованы через интерфейс программы и их отсутствие пользователь на практике не заметит. Например, команда «PDFATTACH» (вставка PDF-подложек) не зарегистрирована на данный момент в списке команд nanoCAD, тем не менее доступна из меню Вставка\Подложки…
- Альтернативный функционал, т.е. команды, которые в силу особенности разработки отличаются от аналогичных команд других САПР, но позволяют пользователю решать поставленные задачи аналогично или даже с более высокой производительностью. Например, работа с таблицами в среде nanoCAD Plus 7.0 заточена под российские стандарты оформления плюс операции сбора данных с текущего DWG-чертежа – достаточно уникальная функция, объединяющая несколько инструментов в один.
- Не реализованный функционал, т.е. команды, которые сейчас не работают в среде nanoCAD Plus 7.0 и, увы, нет никакой альтернативы по их замене. Часть из этих функций находится в разработке (например, Подшивки, Инструментальные палитры), часть – требует анализа и дополнительного согласования по реализации, а часть – явно необязательна к реализации (например, «вызов веб-сайта 360»).
Третья часть с точки зрения анализа самая сложна – требуется проанализировать каждую команду, уточнить что она делает, есть ли альтернатива в платформе nanoCAD Plus (а может быть уже и реализована) и, если команда отсутствует, то оценить: насколько отсутствующая функция необходима в работе организации. Это ручной аналитический труд, но в результате вы будете награждены отличной говорящей диаграммой (рис. 5):
Рис. 5. Диаграмма, наглядно сравнивающая список команд nanoCAD Plus со списком команд западной САПР-платформы, используемой у одного из Заказчиков.
Но и это еще не все – помните, что мы не просто сформировали список вызываемых команд, но и собрали статистику по частоте их вызова? И правда, одно дело — ответ на вопрос «реализована команда или нет?» и совершенно другое — «используется ли вызванная команда?». И тут тоже можно получить говорящие результаты (см. рис.6) – доля не реализованного в nanoCAD функционала может упасть до 1-3%! Это означает, что в подавляющем числе случаев пользователи не заметят разницы между nanoCAD и западными решениями в функциональном плане:
Рис. 6. А если сравнивать команды по частоте вызова, то картина будет еще более убедительная.
Вместо заключения
Признаюсь, когда я впервые получил подобные результаты, у меня самого был шок. Получается, что на сегодняшний момент платформа nanoCAD может достаточно свободно замещать популярные западные решения в функциональном плане: в 97-99% случаях пользователи получат альтернативный инструмент для работы. На сегодняшний момент я провел подобный анализ в пяти организациях: соотношения команд примерно одинаковые и я перестаю удивляться.Тем не менее, я думаю, что результаты анализа могут сильно отличаются от одной организации к другой. Именно поэтому я хочу поделиться с вами всеми материалами – попробуйте провести анализ на своем предприятии и давайте совместно ответим на вопрос «возможно ли импортозамещение на nanoCAD Plus?». Что у меня есть:
- Утилита StatCAD 3.01, которая обрабатывает log-файлы и собирает статистику по командам используемой вами САПР-платформы. Делюсь с вами как исполняемым модулем, так и AutoIt-скриптом (исходный код).
- Excel-таблица со списком известных на данный момент команд, системных переменных и сокращений как платформы nanoCAD, так и одной из известных западной САПР-платформы. Кроме того, таблица содержит список найденных отличающихся команд с анализом на тему того, к какой группе команд она относится (альтернатива, реализовано, не реализовано).
- Пример папки с log-файлами, на котором вы можете прогнать утилиту StatCAD 3.01. Лучше, конечно, сюда положить собранные ваши log-файлы.
- Excel- и Access-документ, анализирующий таблицы – просто поместите результаты утилиты StatCAD 3.01 в файл CLIENT_CMD.xlsx и в Access открывайте таблицы 02ACAD_CROSS, 02ACAD_NOTFOUND, 03ACAD-NCAD_CROSS, 04ACAD-NCAD_NOCROSS – думаю, что названия таблиц говорят сами за себя.
Если у вас не получается провести анализ собранной статистики своими силами, то я буду рад получить ваши log-файлы. Или Excel-таблицы со списком используемых вами команд (заполненный CLIENT_CMD.xlsx из приложенных архивов). В этом случае я смогу провести анализ самостоятельно и полученные результаты использовать для развития платформы nanoCAD. Поверьте, это будет очень полезная для нас информация – на основании этих данных мы развиваем продукт дальше, а вы получаете удобный инструмент.
Дисклеймер
Данный анализ демонстрирует принципиальную возможность или невозможность замены одного САПР-решения на другое, но не гарантирует результат. Любое внедрение кроме приведенного в статье технического аспекта связано с рядом других технических, организационных, психологических и прочих моментов. Именно поэтому мы рекомендуем работу по импортозамещению проводить вместе с авторизованными дилерами ЗАО Нанософт.This entry passed through the Full-Text RSS service - if this is your content and you're reading it on someone else's site, please read the FAQ at http://ift.tt/jcXqJW.
Комментариев нет:
Отправить комментарий