Все о Цифровых системах - новости, статьи, обзоры, аналитика. Более 1000 компаний, товаров и услуг в каталоге.
Добавить компанию

Реверс-инжиниринг и поддержка системы управления и интеграции производства для табачного производителя

Предпосылки проекта

Заказчик проекта – одна из крупнейших международных табачных компаний с производством в России. В условиях геополитических изменений иностранный вендор прекратил техническую поддержку критичной системы управления производством нашего заказчика. Уход вендора не только лишил компанию обновлений, но и сделал невозможной замену вышедших из строя аппаратных модулей.

Любой сбой грозил полной остановкой конвейера и многомиллионными убытками – и для предотвращения производственного коллапса была оперативно привлечена команда инженеров ICL Services.

Задачи проекта

  • Обследовать производственную систему
  • Восстановить и описать архитектуру системы
  • Получить исходный код, восстановить исходный код из сборок, для которых нет исходного кода
  • Настроить сборку и развёртывание системы в тестовом контуре
  • Отладить обновление системы в продуктовом контуре
  • Подготовить команду поддержки для дальнейшего исправления ошибок и реализации улучшений и запросов на изменения

Ход проекта

Этап 1. Реверс‑инжиниринг и восстановление структуры решения

Команда состояла из двух опытных разработчиков и проектного менеджера, задачи были распределены по частям системы, то есть кто-то работал с базой данных, а кто-то над восстановлением самого приложения системы, а также обменом данных. Специалисты провели реверс‑анализ поставки/развёрнутых компонентов для восстановления:

  • модульной структуры решения
  • связей между компонентами клиент‑серверной архитектуры
  • конфигурации обмена данными/интеграций

На выходе первого этапа команда получила восстановленную архитектурную схему, реестр модулей и зависимостей, а также перечень мест для исправлений.
 

Этап 2. Получение исходного кода / восстановление сборки и пересборка проекта

Восстановили сборку и зависимости (библиотеки, конфигурации, версии), чтобы проект стабильно собирался.

Подготовили основу для дальнейших изменений: структура репозитория, правила сборки, инструкции.

Одним из сложных моментов было то, что система использует проприетарное зарубежное ПО для некоторых интерфейсов и для первого этапа команда смогла выключить эти элементы, а также настроить сборку, чтобы система все равно собиралась с этими элементами в интерфейсе.
 

Этап 3. Стабилизация: исправление ошибок и управляемые релизы

После того, как появилась пересборка, команда смогла перейти к самому ценному для заказчика – эксперты смогли вносить изменения в исходный код и развёртывать новые версии на продуктивной среде.

На текущем этапе, для пробации подхода, была взята в работу доработка по приложению. Данное изменение было успешно разработано и внедрено в продуктовую версию системы.
 

Этап 4. Передача в поддержку и первый год поддержки

На финальном этапе проекта команда перешла к непосредственной поддержке приложения, создали схему обращений, подготовили инструкции.

За первый год поддержки были исправлены многолетние дефекты, связанные с интерфейсом, которые портили пользовательский опыт и усложняли работу с приложением (например, у чек-боксов в одном из окон была реверсивная логика), а также проведены работы по внесению изменений в систему по запросу заказчика, которые улучшили качество решения.
 

Продукты и технологии

  • .NET 4
  • Windows Forms, Syncfusion UI Component Suite
  • Windows OS, Microsoft SQL Server

Результаты проекта

  • Восстановлен исходный код и структура проекта в управляемом виде.
  • Восстановлена возможность сборки проекта с изменениями в исходном коде, а также подготовки релиза.
  • Описана документация по архитектуре, модулям и зависимостям для использования в дальнейшей поддержке.
  • Зависимость от иностранного вендора сокращена до 0% в вопросах текущей эксплуатации и модернизации.
  • Снижены риски простоев производства.
  • Cняты все барьеры для исправления ошибок.