Автор:Александр Шишкин, Игорь Беседин
Источник: Организация разработки инструментария для AVEVA PDMS в ООО «ЛУКОЙЛ-Нижегородниинефтепроект» // САПР и графика 2015. Вып. 6
В данной статье описывается опыт ООО «ЛУКОЙЛ-Нижегородниинефтепроект» по организации системы разработки инструментария для автоматизации проектирования с использованием AVEVA PDMS. Автоматизация работы с AVEVA PDMS позволяет расширить и без того большой спектр возможностей этой системы и более точно показать особенности ведения работ в нашей организации, что в совокупности позволяет существенно повысить качество проектирования и уменьшить трудозатраты на решение типовых задач.
Любое программное обеспечение (ПО), которое хотя бы немного крупнее студенческой лабораторной работы, особенно, если оно разрабатывается не одним человеком, а группой специалистов, контролировать вручную сложно. Нужно помнить, кто, что, где, когда сделал, на какой стадии жизненного цикла ПО находится и сколько задач еще необходимо решить. Пользователям AVEVA PDMS нужно постоянно заниматься рутинной работой по установке обновленного ПО, а кроме того, какимто образом осуществлять обратную связь об использовании ПО и ошибках, которые происходят в его работе. Для решения всех этих проблем в ООО «ЛУКОЙЛНижегородниинефтепроект» и была создана система управления разработкой инструментария для AVEVA PDMS.
Система управления разработкой в нашей организации представлена на рис. 1.
Без системы контроля версий исходного кода у вас всегда будут возникать разнообразные проблемы в разработке:
Все эти проблемы решает VCS (Version Control System) – система управления версиями. В нашей организации была выбрана Git, которая не требует постоянного подключения к центральному серверу (как и наличия самого центрального сервера), поэтому каждый разработчик может вести разработку разных элементов функционала полностью локально, лишь изредка выполняя синхронизацию с главным хранилищем. Вся версионируемая и конфигурационная информация хранится в обычных файлах в виде каталогапроекта. При использовании Git можно быстро переключаться с работы над одной функциональностью на работу над другой, не теряя изменения, так как фиксация вариантов реализации производится очень быстро. В целом, Git – одна из самых производительных VCS. Все изменения в коде сопровождаются комментариями разработчика, который их внес. Главное хранилище включено в план создания резервных копий. Всё это предоставляет полный контроль над деревом исходных кодов ПО.
В разработке инструментария для AVEVA PDMS в основном используются следующие языки программирования:
Подход к версионированию кода на обоих языках одинаков. Всего существует примерно пятьшесть централизованных хранилищ, которые покрывают весь набор инструментария. Кроме того, на каждый проект приходится по одному хранилищу для индивидуальных инструментов и конфигурации (рис. 2).
Для управления разработкой используется следующий важный компонент системы – Redmine, представляющий собой систему управления проектами и задачами, открытое ПО, которое можно использовать бесплатно в коммерческих целях. Система позволяет планировать задачи по разработке в рамках отдельного проекта или в отдельной ветке внутри общего проекта, отслеживает время, потраченное на каждую задачу, позволяет организовать базу знаний по работе разрабатываемого ПО. Webинтерфейс, разграничение прав пользователей и поддержка нескольких языков позволяют с комфортом работать с собственными задачами или проводить комплексный аудит трудозатрат по целому блоку работ.
Типичный процесс разработки ПО выглядит следующим образом:
Разработчик на своем рабочем месте имеет доступ сразу к двум окружениям среды проектирования: первое – это обычное сетевое окружение, такое же, как и у всех пользователей, второе – локальное окружение для разработки, в котором содержится суперпозиция данных из сетевого окружения и данных в процессе разработки с приоритетом выполнения последних. Таким образом, разработчик ведет работу как бы в зеркальной копии сетевого окружения, никак не мешая работе обычных пользователей. Как только он заканчивает разработку и помещает работу в главное хранилище, его сетевое и локальное окружение становятся одинаковыми.
Развертывание – это процесс распространения новой версии ПО на компьютеры пользователей. Поскольку AVEVA PDMS позволяет организовать работу с общим сетевым каталогом инструментария PML, развертывание в нашей системе выполняет функцию обновления каталога сетевого инструментария актуальной версией ПО из главного хранилища. Параллельно с этим при развертывании файлы PML защищаются от несанкционированного применения. После выполнения развертывания PML в большинстве случаев пользователь может использовать новую функциональность, даже не перезапуская AVEVA PDMS.
Инструментарий, работающий на .NET Framework, устроен сложнее, и его развертывание также производится более сложным способом. При запуске среды проектирования файлы с инструментами блокируются и не могут быть изменены ни пользователем, ни разработчиком. Поэтому развертывание производится в два этапа:
Получение информации о работе инструментария от пользователей крайне важно. Кроме явных случаев, например, когда произошла ошибка и для ее исправления требуется вмешательство разработчика, можно также получить много другой полезной информации. Например, можно собирать статистику об использовании инструментария и анализировать эффективность работы инструментов и качество обучения пользователей. Информация от пользователя также может служить базисом для дальнейшего улучшения инструмента.
Обратная связь в наших инструментах построена на основе связки платформы NLog и хранилища Microsoft SQL Server. NLog интегрируется в инструменты C# стандартным способом, для подключения же NLog к инструментам PML был разработан специальный интерфейс. Любой инструмент может в процессе своей работы генерировать сообщения шести возможных уровней, которые описывают разную степень важности происходящих событий:
Сообщения автоматически собираются на SQL Server. При наличии настроенных отчетов в службе Reporting Services разработчик может просмотреть их на странице отчета (рис. 6). Дополнительно в нашей организации реализована автоматическая ежесуточная рассылка статистики по работе инструментария на основе данных из базы ошибок для всех разработчиков и администраторов AVEVA PDMS. Параллельно с этим сейчас улучшается механизм автоматического создания новой задачи на доработку при появлении в базе нового сообщения с ошибкой (уровни Error и Fatal).
Правильный подход к организации процесса автоматизации крайне важен для построения устойчивой, быстро работающей системы проектирования и управления данными при совместной работе нескольких проектных команд. В связи с этим все участники данного процесса в ООО «ЛУКОЙЛНижегородниинефтепроект стараются работать слаженно, качественно и с минимальным привлечением внимания к себе разработчиков, а следовательно, финальный результат удается получить гораздо быстрее.