Можно выделить два подхода к реверс-инжинирингу электроники, ПО или любого другого продукта:
Точное копирование. При таком подходе команда стремится воспроизвести оригинал во всех аспектах, что позволяет быстро получить точную копию изделия с сохранением всех его характеристик, функционала и совместимости с уже существующими системами и стандартами. При этом чистое копирование позволяет снизить начальные риски, т.к. разработчик не добавляет неопробованные функции и принципы работы. Кроме того, копирование существующего решения может быть востребовано, если нужно срочно заменить или восстановить какое-либо оборудование, которое стало недоступно у поставщиков.
С другой стороны, у такой обратной разработки есть ряд недостатков. Главный из них заключается в том,
команда вынужденно воспроизводит все изъяны исходного решения. К тому же, устройство, которое хочет скопировать заказчик, скорее всего, уже устарело. От постановки задачи до выхода на рынок проходит много времени. В итоге даже относительно новому решению по факту может быть 5 или даже 10 лет. Так что чистая обратная разработка не всегда оправдана. Кроме того, оригинальные компоненты могут оказаться недоступны, либо их невозможно идентифицировать, или невозможно извлечь и скопировать прошивку. Так что чистое копирование может оказаться не слишком полезно, а трудозатраты – слишком высокими. Наконец, точное копирование зачастую является незаконным.
Переосмысление. Этот подход предполагает, что,
обратившись к КЕДР Solutions за реверс-инжинирингом печатных плат, заказчик получит
аналог исходного решения, в котором будут устранены недостатки оригинала. Полученное в результате устройство будет более современным, и оно будет лучше отвечать требованиям бизнеса. Мы чаще всего практикуем именно этот подход.
В этом случае исходное решение воспринимается скорее как референс. Здесь тоже могут применяться те или иные методы реверс-инжиниринга, но уже с другой целью – понять, какие в нем применяются технические решения (как удачные, так и неудачные), какие у него характеристики и т.д. Если при разработке с нуля мы спрашиваем у клиента, что он хочет, то в проектах по обратной разработке мы спрашиваем, что его не устраивает в существующем решении.
Результатом проекта становится не копия, а аналог, который имеет более качественный или богатый функционал, лучше адаптированный под потребности бизнеса клиента.В качестве примера приведем проект по разработке контроллера для промышленных газовых горелок.Заказчику требовалось создать собственный аналог топочного автомата от Siemens в целях
импортозамещения зарубежного оборудования. Однако его не интересовала чистая обратная разработка: он хотел, чтобы его устройство обладало более широким функционалом.
Наша команда изучила схемотехнику исходного изделия – она оказалась довольно простой и грубой, что позволило удешевить производство, но в ущерб определенным параметрам. Поэтому мы не стали воспроизводить схемотехнику Siemens, а спроектировали свою.
В числе собственных решений:
- Методика измерения тока ионизации пламени.
- Непрерывный мониторинг тока нагрузки в реальном времени (что повышает безопасность работы с устройством).
- Иначе реализован контроль залипания реле.
- Встроенное ПО, которое было разработано на инструментарии заказчика для совместимости решения с его программной экосистемой.
От исходного устройства мы сохранили только топологию релейных выходов: второстепенные реле подключены к главному, что разумно с точки зрения безопасности. Мы также сделали контроллер совместимым по посадочному месту с колодкой от Siemens.