¬аше окно в мир —јѕ–
 
Ќовости —татьи јвторы —обыти€ ¬акансии Ёнциклопеди€ –екламодател€м
—татьи

25 ма€ 2015

ќрганизаци€ разработки инструментари€ дл€ AVEVA PDMS в ќќќ ЂЋ” ќ…Ћ-Ќижегородниинефтепроектї

јлександр Ўишкин, »горь Ѕеседин

јлександр Ўишкин »горь Ѕеседин
јвторы Ц сотрудники проектного офиса по внедрению трехмерного моделировани€ в ќќќ ЂЋ” ќ…Ћ-Ќижегородниинефтепроектї: ј.Ўишкин Ч руководитель офиса, »горь Ѕеседин Ч ведущий инженер.

ќбщий обзор

¬ данной статье описываетс€ опыт компании ќќќ ЂЋ” ќ…Ћ-Ќижегородниинефтепроектї по организации системы разработки инструментари€ дл€ автоматизации проектировани€ с использованием AVEVA PDMS в ќќќ ЂЋ” ќ…Ћ-Ќижегородниинефтепроектї.

јвтоматизаци€ работы с AVEVA PDMS позвол€ет расширить и без того большой спектр возможностей этой системы и более точно показать особенности ведени€ работ в нашей организации, что в совокупности позвол€ет существенно повысить качество проектировани€ и уменьшить трудозатраты на решение типовых задач.

Ћюбое программное обеспечение (ѕќ), которое хот€ бы немного крупнее студенческой лабораторной работы, а тем более, если оно разрабатываетс€ не одним человеком, а группой разработчиков, контролировать вручную сложно. Ќужно помнить кто, что, где, когда сделал, на какой стадии жизненного цикла ѕќ находитс€ и сколько задач еще нужно сделать. Ќужно посто€нно заниматьс€ рутинной работой по установке обновленного ѕќ пользовател€м AVEVA PDMS. Ќужно как-то собирать обратную св€зь об использовании ѕќ и ошибках, которые происход€т в его работе. ƒл€ решени€ всех этих проблем и была создана управлени€ разработкой инструментари€ дл€ AVEVA PDMS в компании ќќќ ЂЋ” ќ…Ћ-Ќижегородниинефтепроектї.

—истема построена на основе свободного, в основном, открытого и бесплатного программного обеспечени€: Git, Redmine, Microsoft SQL Server, NLog.  аждый из этих компонентов решает свою задачу, но они св€заны между собой в рамках одной системы:

  • Git Ц система управлени€ верси€ми исходного кода ѕќ, она хранит исходный код всех разработок на целом наборе €зыков программировани€ Ц AVEVA PML, C#, Powershell, batch-скрипты;
  • Redmine Ц система управлени€ проектами и задачами. ѕозвол€ет спланировать дорожную карту инструментари€, разделить работу на этапы, вести разработку и контролировать процесс сверху. —в€зана с Git и всегда можно отследить в рамках какой задачи была реализована та или ина€ часть кода;
  • NLog Ц платформа дл€ журналировани€ любых событий в разрабатываемом ѕќ, от отладочных выводов и до критических ошибок. јвтоматически накапливает все сообщени€ в хранилище: в централизованный файл или, лучше на SQL сервер;
  • Microsoft SQL Server Ц рел€ционна€ —”Ѕƒ дл€ хранени€ журналов работы ѕќ и отчетов по ним. ƒл€ работы достаточно функциональности редакции SQL Server Express. ≈сли у вас в наличии редакци€ Professional и лучше, то можно настроить более удобное окружение, создав отчеты об ошибках и реализовав их автоматическую рассылку и обработку.
—истема управлени€ разработкой в нашей организации представлена на рисунке 1.
Aveva Ћукойл ЌЌ 1

–ис. 1. —хема системы управлени€ разработкой

–азмещение исходного кода

Ѕез системы контрол€ версий исходного кода у вас всегда будут возникать разнообразные проблемы в разработке:
  • что помен€лось в коде?
  • кто внес изменени€?
  • почему он это помен€л?
  • как вернутьс€ к старой версии ѕќ, при необходимости?
  • как правильно построить резервное копирование исходных кодов ѕќ?
  • как объединить работу нескольких человек?
¬се эти проблемы решает VCS (Version Control System) Ц система управлени€ верси€ми. ¬ нашей организации была выбрана Git. Git не требует посто€нного подключени€ к центральному серверу (как и наличи€ самого центрального сервера) и каждый разработчик может вести разработку разных элементов функционала полностью локально, лишь изредка выполн€€ синхронизацию с главным хранилищем. ¬с€ версионируема€ и конфигурационна€ информаци€ хранитс€ в обычных файлах в виде каталога-проекта. ѕри использовании Git можно быстро переключатьс€ с работы над одной функциональностью на работу над другой, не тер€€ изменени€, т.к. фиксаци€ вариантов реализации производитс€ очень быстро. ¬ целом, Git Ц одна из самых производительных VCS. ¬се изменени€ в коде сопровождаютс€ комментари€ми разработчика, который их внес. √лавное хранилище включено в план создани€ резервных копий. ¬се это предоставл€ет полный контроль над деревом исходных кодов ѕќ.

¬ разработке инструментари€ дл€ AVEVA PDMS в основном используютс€ следующие €зыки программировани€:

1) PML Ц внутренний €зык AVEVA PDMS, на нем реализуетс€ весь основной функционал по обработке данных проекта;

2) C# Ц €зык платформы .NET Framework, позвол€ет решать задачи, когда возможностей PML становитс€ недостаточно.

ѕодход к версионированию кода на обоих €зыках одинаков. ¬сего существует примерно 5-6 централизованных хранилищ, они покрывают весь набор инструментари€. “акже, на каждый проект приходитс€ по одному хранилищу дл€ индивидуальных инструментов и конфигурации.

Aveva Ћукойл ЌЌ 2

–ис. 2. „асть истории репозитори€ PMLLIB

ѕланирование и разработка

ƒл€ управлени€ разработкой используетс€ следующий важный компонент системы Ц Redmine. Redmine Ц это система управлени€ проектами и задачами, открытое ѕќ, которое можно использовать бесплатно в коммерческих цел€х. —истема позвол€ет планировать задачи по разработке в рамках отдельного проекта или в отдельной ветке внутри общего проекта, отслеживает врем€, потраченное на каждую задачу, позвол€ет организовать базу знаний по работе разрабатываемого ѕќ. Web-интерфейс, разграничение прав пользователей, поддержка нескольких €зыков позвол€ют с комфортом работать со своими собственными задачами или проводить комплексный аудит трудозатрат по целому блоку работ.

ѕример задачи на разработку:

Aveva Ћукойл ЌЌ 3

–ис. 3. ѕример задачи на разработку

“ипичный процесс разработки ѕќ выгл€дит следующим образом:

1. —начала по€вл€етс€ иде€. »де€ может по€витьс€ у проектировщика на фоне его собственного опыта использовани€ AVEVA PDMS. »де€ может исходить от разработчика, который провел анализ функциональности и вы€вил места дл€ внесени€ корректировок или улучшений.

2. »де€ расшир€етс€, дополн€етс€ артефактами и превращаетс€ в новую задачу. «адача может быть заведена напр€мую автором или может по€витьс€ автоматически на основе данных из системы журналировани€.

3. ќтветственное лицо (чаще всего Ц руководитель разработки) администрирует задачу: уточн€ет требовани€ и детали реализации функционала и пользовательского интерфейса, определ€ет ее основные параметры Ц важность, срок реализации, плановые трудозатраты и ответственного исполнител€ и передает в работу исполнителю.

4. »з подготовленных задач формируютс€ спринты Ц этапы разработки, включающие задачи, которые в этот этап необходимо решить. Ќаш спринт длитс€ 1 неделю. ќбща€ оценка времени всех задач спринта немного меньше размера спринта. —принт имеет запас времени дл€ включени€ в него критических по сроку выполнени€ задач.

5. »сполнитель начинает работать над задачей и реализовывать функционал.  ак правило, дл€ любой существенной доработки в системе контрол€ версий делаетс€ отдельна€ ветка из основной ветки исходного кода ѕќ. ѕо окончании работы исполнитель объедин€ет вместе свои наработки и главную ветку, исправл€ет конфликты, проводит финальное тестирование и публикует свои изменени€ в главное хранилище.

6. ¬ отдельных случа€х руководитель разработки делает инспекцию кода (code review), изменившегос€ в задаче. ≈сли при просмотре видны проблемы дальнейшего функционировани€, стилистические недочеты или неоптимальность выбора алгоритмов дл€ решени€ задачи, то он может вернуть задачу на доработку, добавив к ней соответствующий комментарий.

7. √лавное хранилище автоматически производит развертывание актуальной версии ѕќ на пользователей AVEVA PDMS.

8. јвтор задачи провер€ет новую функциональность и закрывает задачу, если она решена, или открывает ее на доработку при вы€влении каких-либо проблем.

–азработчик на своем рабочем месте имеет доступ сразу к двум окружени€м среды проектировани€: одно Ц это обычное сетевое окружение, такое же, как и у обычных пользователей, второе Ц локальное окружение дл€ разработки, в котором содержитс€ суперпозици€ данных из сетевого окружени€ и данных в процессе разработки с приоритетом выполнени€ последних. “аким образом, разработчик ведет работу как бы в зеркальной копии сетевого окружени€, никак не меша€ работе обычных пользователей.  ак только он заканчивает разработку и помещает работу в главное хранилище, его сетевое и локальное окружение станов€тс€ одинаковыми.

AVEVA Ћукойл ЌЌ 4 5 6

–ис.4. —одержимое редакции инструментари€

AVEVA Ћукойл ЌЌ 4 5 6

–ис.5. Code review двух соседних версий одного файла

–азвертывание готового инструментари€

–азвертывание Ц это процесс распространени€ новой версии ѕќ на компьютеры пользователей. “.к. AVEVA PDMS позвол€ет организовать работу с общим сетевым каталогом инструментари€ PML, то развертывание в нашей системе выполн€ет функцию обновлени€ каталога сетевого инструментари€ актуальной версией ѕќ из главного хранилища. ѕараллельно с этим, при развертывании файлы PML защищаютс€ от несанкционированного использовани€. ѕосле выполнени€ развертывани€ PML в большинстве случаев пользователь может начинать использовать новую функциональность даже не перезапуска€ AVEVA PDMS.

»нструментарий, работающий на .NET Framework, устроен сложнее и его развертывание также производитс€ более сложным образом. ѕри запуске среды проектировани€ файлы с инструментами блокируютс€ и не могут быть изменены ни пользователем, ни разработчиком. ѕоэтому, развертывание производитс€ в 2 этапа:

1. –азработчик обновл€ет версию ѕќ в централизованном хранилище на сервере. Ќа данный момент это производитс€ вручную, а в ближайшей перспективе планируетс€ внедрить сервер автоматической сборки.

2. «атем пользователь запускает новый экземпл€р среды проектировани€ и этим обновл€ет копию инструментари€, котора€ хранитс€ у него на локальном компьютере. ѕри этом, ранее запущенные экземпл€ры AVEVA PDMS продолжают использовать предыдущую версию инструментов до окончани€ своей работы.

ќбратна€ св€зь

ѕолучение информации о работе инструментари€ от пользователей крайне важно.  роме €вных случаев, например, когда произошла ошибка и требуетс€ вмешательство разработчика дл€ ее исправлени€, можно также получить много другой полезной информации. Ќапример, можно собирать статистику об использовании инструментари€ и анализировать эффективность работы инструментов и качество обучени€ пользователей. “акже информаци€ от пользовател€ может €вл€тьс€ базисом дл€ улучшени€ инструмента в дальнейшем.

ќбратна€ св€зь в наших инструментах построена на основе св€зки платформы NLog и хранилища Microsoft SQL Server. NLog интегрируетс€ в инструменты C# стандартным образом, дл€ подключени€ же NLog к инструментам PML был разработан специальный интерфейс. Ћюбой инструмент может в процессе своей работы генерировать сообщени€ 6 возможных уровней, которые описывают разную важность происход€щих событий:

  • Info Ц обычное информационное сообщение;
  • Trace Ц сообщение дл€ отслеживани€ алгоритма выполнени€;
  • Debug Ц сообщени€ с информацией дл€ отладки;
  • Warning Ц в инструменте произошло что-то странное;
  • Error Ц в работе инструмента произошла серьезна€ ошибка, требуетс€ вмешательство разработчиков;
  • Fatal Ц самое критическое сообщение, примен€етс€ в исключительных случа€х, указывает на общую аварию системы.
—ообщени€ автоматически собираютс€ на SQL Server. ѕри наличии настроенных отчетов в службе Reporting Services разработчик может просмотреть их на странице отчета. ƒополнительно, в нашей организации реализована автоматическа€ ежесуточна€ рассылка статистики по работе инструментари€ на основе данных из базы ошибок дл€ всех разработчиков и администраторов AVEVA PDMS. ѕараллельно с этим сейчас улучшаетс€ механизм автоматического создани€ новой задачи на доработку при по€влении в базе нового сообщени€ с ошибкой (уровни Error и Fatal).
AVEVA Ћукойл ЌЌ 4 5 6

–ис. 6. √лавный журнал работы

«аключение

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


„итайте также:


¬акансии:

јктуальное обсуждение

RSS-лента комментариев

ƒавид Ћевин
ƒавид Ћевин
ќт редактора: Ќациональна€ иде€ нашего рынка —јѕ–
ѕроект ЂЌародное —јѕ–-интервьюї

—лучайна€ стать€:

 омплекс т€жЄлого PLM — »ль€ Ћичман (29 апрел€ 2019)
isicad Top 10

—амые попул€рные материалы

   ‘орумы isicad:

isicad-2010 isicad-2008
isicad-2006 isicad-2004

ќ проекте

ѕриглашаем публиковать на сайте isicad.ru новости и пресс-релизы о новых решени€х и продуктах, о проводимых меропри€ти€х и другую информацию. јдрес дл€ корреспонденции - info@isicad.ru

ѕроект isicad нацелен на

  • укрепление контактов между разработчиками, поставщиками и потребител€ми промышленных решений в област€х PLM и ERP...
ѕодробнее

»нформаци€ дл€ рекламодателей


¬се права защищены. © 2004-2019 √руппа компаний «Ћ≈ƒј—»

ѕерепечатка материалов сайта допускаетс€ с согласи€ редакции, ссылка на isicad.ru об€зательна.
¬ы можете обратитьс€ к нам по адресу info@isicad.ru.