При внедрении нашей САПР-платформы мы часто сталкиваемся с тем, что мало кто в нашей стране может адекватно оценить функционал такого сложного и многогранного инструмента, как САПР, полно сравнить конкурирующие решения и сделать непредвзятую оценку. Чаще всего такую работу поручают местному «САПР-гуру» — специалисту-«фанату», который может быть (и скорее всего будет) предвзят, так как любит решение, используемое им в данный момент. В результате получаем список «вкусных», но малоиспользуемых функций, которые «вы должны сделать — иначе никакого внедрения!», а тема импортозамещения плавно затухает. В ответ мы задумались об инструменте, который позволит сделать независимую оценку, реализовали его и теперь готовы им с вами поделиться.
Идея инструмента заключается в том, чтобы собрать в список функции, которые рядовой пользователь САПР применяет каждый день. То есть выбираем группу пользователей, включаем на их компьютерах ведение логов командной строки, собираем логи в определенную папку в сети организации, а затем анализируем их. Сама по себе схема очень удобна:
Самое главное — такой сбор статистики позволяет провести максимально полный анализ: вы можете собирать журналы хоть в течение целого года, а программа будет аккуратно коллекционировать в папочке вызовы команд. Также вы можете проводить анализ, разбив пользователей по группам, — просто укажите разные папки для сбора статистики. А журналы затем покажут, какие команды платформы использовались, применялись ли какие-нибудь приложения или дополнительные разработки, каков уровень использования платформы и приложений (частота вызова команд). Словом, беспристрастная статистика и никакого субъективизма.
Возникает вопрос, а как включить такой журнал? Тут всё просто: в командной строке вводим команду Параметры (или OPTIONS для английской версии). Далее идем на закладку Открытие/Сохранение (или Open and save) и взводим опцию Вести файл журнала (или Maintain a log file) (рис. 1). Как результат выполнения этой команды в системную папку, задаваемую переменной LOGFILEPATH, будет сохраняться информация из командной строки (журнал команд).
В принципе, все это настраивается еще через три системные переменные: LOGFILEMODE (включить/отключить режим ведения журнала), LOGFILEPATH (путь до папки ведения журналов) и LOGFILENAME (путь до текущего журнала команд). У вас нет таких команд? Скорее всего, вы пользуетесь САПР, которая не позволяет вести журнал вызываемых команд, и здесь требуется не импортозамещение, а переход с конкурирующих решений — это чуть другая история…
Итак, включили журнал ведения логов, собрали логи в папку — что дальше?
Дальше мы получаем груду файлов, внутри которых спрятаны используемые команды (рис. 2).
Если заглянуть внутрь, то мы увидим всё, что писалось в командную строчку: вызовы команд (то, что нас интересует), системные сообщения, ответы пользователя, значения переменных, сообщения об ошибках, предупреждения
Работа с утилитой StatCAD очень проста: достаточно указать папку с логами, нажать на кнопку Анализ, дождаться окончания работы и, нажав на кнопку Показать статистику, получить список в отдельном окне. Данные из этого окна можно скопировать в Excel или текстовый формат — как вам удобнее. А дальше начинается творческая работа.
Во-первых, мы должны в полученном списке выделить команды САПР-платформы, а значит необходим список штатных команд платформы, с которой сравниваем. Сейчас мы накопили порядка 2400 команд, системных переменных и алиасов-сокращений (как на русском, так и на английском языке), с которыми проводим сравнение — простое пересечение таблиц в Access позволяет одним щелчком мыши получить сходные и отличающиеся команды. Сложнее всего с отличающимися командами — их приходится анализировать вручную, отделяя синтаксические ошибки от команд приложений, команд, написанных пользователями
Кроме того, мы можем сравнить список распознанных команд САПР-платформы со списком реализованных команд платформы nanoCAD Plus — это тоже пересечение двух таблиц в Access. В результате мы получим список команд, реализованных в режиме «один к одному» (полное совпадение).
И, наконец, список оставшихся команд разбивается на три части:
Третья часть с точки зрения анализа самая сложная — требуется проанализировать каждую команду, уточнить, что она делает, какая альтернатива возможна в платформе nanoCAD Plus (а может быть она уже и реализована) и, если команда отсутствует, то оценить, насколько отсутствующая функция необходима в работе организации. Это ручной аналитический труд, но в результате вы будете вознаграждены отличной говорящей диаграммой (рис. 5).
Но и это еще не всё — помните, что мы не просто сформировали список вызываемых команд, но и собрали статистику по частоте их вызова? И правда, одно дело — ответ на вопрос «реализована команда или нет?» и совершенно другое — «используется ли вызванная команда?». И тут тоже можно получить говорящие результаты (рис. 6): доля не реализованного в nanoCAD функционала может упасть до 1−3%! Это означает, что в подавляющем большинстве случаев пользователи не заметят разницы возможностей между nanoCAD и западными решениями.
Признаюсь, когда я впервые получил подобные результаты, у меня самого был шок. Получается, что платформа nanoCAD может достаточно свободно замещать популярные западные решения в функциональном плане: в 97−99% случаев пользователи получат альтернативный инструмент для работы. На сегодня я провел подобный анализ в пяти организациях: соотношения команд примерно одинаковы, и я перестаю удивляться.
Тем не менее, думаю, что результаты анализа могут сильно отличаться от одной организации к другой. Именно поэтому я хочу поделиться всеми материалами — попробуйте провести анализ на своем предприятии, и давайте совместно ответим на вопрос «Возможно ли импортозамещение на nanoCAD Plus?». Что у меня есть:
Если у вас не получается провести анализ собранной статистики своими силами, буду рад получить ваши *.log-файлы. Или Excel-таблицы со списком используемых вами команд (заполненный CLIENT_CMD.xlsx из приложенных архивов). В этом случае я смогу провести анализ самостоятельно и использовать полученные результаты для развития платформы nanoCAD. Поверьте, это будет очень полезная для нас информация — на основании этих данных мы развиваем продукт, а вы получаете всё более удобный инструмент.
Данный анализ демонстрирует принципиальную возможность или невозможность замены одного САПР-решения другим, но не гарантирует результата. Любое внедрение, кроме приведенного в статье технического аспекта, связано с рядом других технических, организационных, психологических и прочих моментов. Именно поэтому мы рекомендуем работу по импортозамещению проводить совместно с авторизованными дилерами ЗАО «Нанософт».