PROLINT - ИНСТРУМЕНТ АНАЛИЗА ABL (4GL) КОДА

Prolint - это инструмент позволяющий разработчику проводить синтаксический анализ написанного им ABL кода на соответствие стандартам по заранее определенным правилам. Данный анализ позволяет выявить слабые места и допущенные разработчиком ошибки в коде, тем самым повысить его качество.

Работа Prolint базируется на еще одном инструменте Proparse, осуществляющим синтаксический парсинг ABL кода.

Данные инструменты описаны и размещены для скачивания по следующим ссылкам: http://www.oehive.org/prolint (Prolint) и http://www.oehive.org/proparse (Proparse). Там же вы найдете некоторые материалы на английском языке по установке и настройке данных инструментов, а так же сможете обсудить возникающие вопросы и проблемы с интернет сообществом.

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


УСТАНОВКА PROLINT


Для версии OE 10.2B и выше необходимо скачать Prolint релиз 74, а для версий ниже - релиз 73. Скачать 74 релиз можно по следующей ссылке: http://www.oehive.org/files/prolint_74.exe_.zip.

Так же нам потребуется скачать Proprse, представляющий из себя набор dll библиотек. Архив с актуальными библиотеками, на текущий момент размещается по ссылке: github.com/oehive/proparse/releases.

При установке Prolint мы будем исходить из того, что у нас 64-разрядная операционная система Windows (в частности,  Windows7), а так же установлена среда разработки OpenEdge Developers Kit Classroom Edition.

Запускаем prolint_74.exe, каталог установки оставим предлагаемый по умолчанию:

prolint_1.jpg

Далее в этот же каталог (c:\p4gl\tools) разархивируем библиотеки Proparse и создадим в нем XML-файл описания assemblies.xml следующего содержания:

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<references>
   <assembly name="IKVM.OpenJDK.Core, Version=7.2.4630.5, Culture=neutral, 
                               PublicKeyToken=13235d27fcbfff58"/>
   <assembly name="IKVM.Runtime, Version=7.2.4630.5, Culture=neutral,
                               PublicKeyToken=13235d27fcbfff58"/>
   <assembly name="proparse.net, Version=4.0.1.1128, Culture=neutral,
                               PublicKeyToken=cda1b098b1034b24"/>
</references>

Указываемое значение Version должно точно соответствовать версии библиотеки. Посмотреть версию библиотеки можно в свойствах ее файла в разделе подробно.

prolint_10.jpg

После этого запускаем GUI Procedure Editor и в нем переходим в PRO*TOOLS для редактирования PROPATH

prolint_2.jpg

prolint_3.jpg

Нам необходимо добавить каталог C:\p4gl\tools в PROPATH.

prolint_4.jpg

Так как исходные файлы АБС Бисквит имеют кодировку IBM866, для корректной работы с ними, необходимо в файле С:\Progress\OpenEdge\bin\prowin.exe.config добавить следующий раздел:

<appSettings>  
   <add key="ikvm:file.encoding" value="ibm866" />
</appSettings>

Таким образом, итоговый файл будет выглядеть примерно так:

<configuration> 
  <startup useLegacyV2RuntimeActivationPolicy="true">
    <supportedRuntime version="v4.0"/>
  </startup>
  <runtime>
    <loadFromRemoteSources enabled="false" />
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1" >
      <!-- DO NOT REMOVE THIS probing ELEMENT -->
      <probing privatePath="Infragistics\winforms;dotnetmsgs" />
    </assemblyBinding>
  </runtime>
  <appSettings>
     <add key="ikvm:file.encoding" value="ibm866" />
  </appSettings>
</configuration>

Для работы Prolint с OE11 необходимо в файле \tools\prolint\core\dlc-version.i добавить:

&ELSEIF INTEGER(ENTRY(1,PROVERSION,'.'))=11 &THEN
   &GLOBAL-DEFINE dlc-version 11

На этом основные этапы установки Prolint завершены и нам остается только создать на рабочем столе ярлык. При этом в поле объект указываем: C:\Progress\OpenEdge\bin\prowin.exe -p prolint\desktop.w -assemblies C:\p4gl\tools -debugalert  -db bisquit -N TCP -H bis1 -S 5242 -U bis -P quit -pf C:\bq41d\conf\bisquit.pf

prolint_5.jpg

В стартовом параметре -assemblies мы указываем каталог, в котором установлены библиотеки Proparse. У нас это каталог C:\p4gl\tools. Так же нам необходимо указать параметры подключения к базе АБС Бисквит, т.е. указать host сервера (-H), номер порта (-S), а так же имя пользователя (-U) и пароль (-P).


ПЕРВЫЙ ЗАПУСК PROLINT


При первом запуске Prolint вы получите следующее сообщение:

prolint_6.jpg

Просто пропускаем его, нажимаем OK.

Так же возможно возникновение следующей ошибки:

prolint_7.jpg

По нажатию на OK вы будете перенаправлены на сайт, где вам будут даны рекомендациями по извлечению библиотеки adecomm.pl. Данные рекомендации мне не помогли решить проблему. Более действенным методом оказалась компиляция desktop.w.

prolint_8.jpg

Теперь Prolint готов к работе, осталось только сделать некоторые настройки.


УПРАВЛЕНИЕ ПРОФИЛЯМИ


Настройка профилей осуществляется в разделе Configure.

prolint_12.jpg

Для создания нового профиля необходимо нажать new.jpg

В открывшемся окне вводим наименование создаваемого профиля и нажимаем OK.

prolint_13.jpg

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

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

Здесь мне пришлось столкнуться с одной проблемой. Проблема заключалась в использовании logwin.w, а именно, при выборе данного варианта вывода результата возникала следующая ошибка:

prolint_11.jpg

Устранить проблему мне так и не удалось и по этой причине пришлось отказаться от logwin.w и воспользоваться его альтернативным вариантом logwin8.w.

Настройка правил анализа осуществляется во втором разделе. Здесь правила сгруппированы по категориям. Правила, для которых required имеет значение NO при анализе когда применяться не будут.


АНАЛИЗ КОДА


Вот мы и подошли к самом главному моменту. Для анализа исходных файлов с ABL кодом необходимо нажать Lint files.

prolint_14.jpg

В открывшемся окне необходимо указать профиль который будет применен при анализе, а так же указать сами файлы, которые необходимо проанализировать. Добавлять файлы можно простым перетаскиванием их в поле окна.

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

Когда все файлы указаны, нажимаем ОК и анализируем полученный результат.


В завершение, предлагаю вам посмотреть видео с ежегодной конференции Progress 2015, в котором представитель ЗАО БИС рассказывает об их опыте внедрения данного инструмента в процесс разработки. 

 

Вы здесь: Главная Технологии и решения PROLINT - ИНСТРУМЕНТ АНАЛИЗА ABL (4GL) КОДА