Може nanoCAD замінити західні САПР-рішення? Давайте шукати відповідь...


При впровадженні нашої САПР-платформи ми часто стикаємося з тим, що мало хто в нашій країні може адекватно оцінити функціонал такого складного і багатогранного інструменту як САПР, повно порівняти конкуруючі рішення і зробити неупереджену оцінку. Найчастіше таку роботу доручають місцевим «САПР-гуру» — фахівцеві-«фанату», який може бути (і, швидше за все, буде) упереджений, оскільки любить використовуване ним в поточний момент рішення. В результаті отримуємо список «смачних», але маловикористовуваних функцій, які ви повинні зробити інакше ніякого впровадження!», а тема імпортозаміщення плавно загасає. У відповідь ми задумалися про інструмент, який дозволить зробити незалежну оцінку, реалізували його і тепер готові їм з вами поділитися.

Введення

Ідея інструменту полягає в тому, щоб зібрати в список функції, які пересічний користувач САПР використовує в роботі кожен день – тобто вибираємо групу користувачів, включаємо на їх комп'ютері ведення логів командного рядка, збираємо їх у певну папку в мережі, а потім аналізуємо їх. Сама по собі схема дуже зручна:
  • все повністю автоматизовано: потрібно тільки включити ведення журналу;
  • всі абсолютно конфіденційно: журнал логів включається інформація про викликаються командах, а не про сам проект;
  • збір статистики абсолютно не заважає щоденній роботі користувача: запис в журнал досить непомітна операція.
Найголовніше — такий збір статистики дозволяє провести максимально повний аналіз: ви можете збирати журнали хоч протягом цілого року, а програма акуратно буде колекціонувати виклики команд в одну теку. Також ви можете проводити аналіз, розбивши користувачів по групах – просто вкажіть різні папки для збору статистики. А журнали потім покажуть, які команди платформи використовувалися, використовувалися які-небудь програми або додаткові розробки, який рівень використання платформи і додатків (частота виклику команд) – тобто неупереджена чиста статистика і ніякого суб'єктивізму.

Виникає питання «а як включити такий журнал?». Тут все просто: у командному рядку вводимо команду «Параметри» (або «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. В результаті ми отримаємо список команд, реалізованих в режимі «один-до-одного» (повний збіг).

Результати аналізу

І, нарешті, список команд, що залишилися розбивається на три частини:
  1. Реалізований функціонал, тобто команди, які не проходять через командую рядок nanoCAD Plus, але тим не менш реалізовані через інтерфейс програми і їх відсутність користувач на практиці не помітить. Наприклад, команда «PDFATTACH» (вставка PDF-підкладок) не зареєстрована на даний момент у списку команд nanoCAD, тим не менш доступна з меню Вставка\Підкладки...
  2. Альтернативний функціонал, тобто команди, які в силу особливості розробки відрізняються від аналогічних команд інших САПР, але дозволяють користувачеві вирішувати поставлені завдання аналогічно або навіть з більш високою продуктивністю. Наприклад, робота з таблицями в середовищі nanoCAD Plus 7.0 заточена під російські стандарти оформлення плюс операції збору даних з поточного DWG-креслення – досить унікальна функція, яка об'єднує кілька інструментів в один.
  3. Не реалізований функціонал, тобто команди, які зараз не працюють в середовищі 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. Повірте, це буде дуже корисна для нас інформація – на підставі цих даних ми розвиваємо продукт далі, а ви отримуєте зручний інструмент.

Дисклеймер
Даний аналіз демонструє принципову можливість або неможливість заміни одного САПР-рішення на інше, але не гарантує результат. Будь-яке впровадження крім наведеного у статті технічного аспекту пов'язано з рядом інших технічних, організаційних, психологічних та інших моментів. Саме тому ми рекомендуємо роботу з імпортозаміщення проводити разом з авторизованими дилерами ЗАТ Нанософт.

Джерело: Хабрахабр

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.