О методах и средствах автоматизации проектирования программного обеспечения систем автоматизации
Под технологией автоматизированного производства программного обеспечения АСУ ТП понимают совокупность взаимосвязанных методологических, программных и технических средств, регламентирующих эффективное использование программируемых логических контроллеров (ПЛК) в целях сокращения трудозатрат и повышения качества проектирования, разработки (программирования), отладки, выпуска технической документации и внедрения ПО на основе общности информационной и научно-организационной баз. Использование средств автоматизации позволяет повысить производительность труда разработчиков ПО в среднем в 3—5 раз.
Современные принципы реализации сложных программных комплексов автоматизированных систем предполагают полное проектирование функционирования системы, включая как ее собственную работу, так и взаимодействие со средой, для обеспечения концептуальной целостности разработки. Проектирование — это многоэтапный ветвящийся процесс, базирующийся на разнообразных инструментальных средствах и характеризующийся представлением объекта и его частей в виде набора математических модулей на каждом этапе проектирования; широким использованием различных способов структурирования, помогающих анализировать функционирование системы и сводить ее обоснование и проектирование к обоснованию и проектированию частей; эвристическим характером отбора проектных вариантов и, следовательно, принципом неокончательности решений на промежуточных стадиях проектирования; итеративностью проектирования на каждом этапе, что позволяет последовательно улучшать текущий вариант до необходимой степени совершенства; возможностью активного участия человека во всех этапах процесса проектирования. Возрастает роль этапа проектирования автоматизированных систем в общей технологической схеме производства ПО систем управления технологическими процессами для получения корректного и устойчивого ПО, так как подход, заключающийся в интенсивной отладке уже спроектированных систем, требует значительных затрат и не дает желаемых результатов. Технология производства ПО систем управления технологическими процессами должна обеспечивать:
- эффективность процесса создания ПО АСУ ТП за счет сокращения стоимости и сроков разработки, улучшение качества обеспечения корректности и устойчивости создаваемого программного продукта;
- комплексное рассмотрение всех этапов создания программной системы, обеспечение системности и оперативности внесения изменений в программу с помощью соответствующей методологии, развитых средств управления разработкой, а также благодаря возможности эффективного манипулирования с программами и данными и удовлетворению всех информационных потребностей разработчиков программ;
- обоснованность проекта программной системы и контроль ее качества (это предполагает развитие средств фиксации вариантов проекта и разработку методов количественного оценивания каждого варианта);
- легкость изучения и использования всех главных инструментальных средств на базе разработки для них эффективных языковых входов;
- наличие средств получения достоверной документации на создаваемую систему на всех этапах ее развития;
- применение структурного программирования в сочетании с методом проектирования программ «сверху—вниз»;
- возможность постоянного развития и эволюции средств поддержания технологии на своей собственной базе применительно к требованиям разработки. Предпосылки создания такой системы можно разделить на четыре группы: технические, операционные, экономические и теоретические.
Технические предпосылки включают в себя создание развитых проблемно-ориентированных баз данных для систем автоматизации разработки программ; разработку языков и языковых процессоров, средств интеграции перечисленных элементов. Типичным представителем семейства языков проектирования программного обеспечения является SDL-1, позволяющий выразить содержание программы в универсальной форме, удобной для обозрения, передачи другим разработчикам и документирования. Он определяет методологию создания программ и включает средства выявления и исправления ошибок систем управления технологическими процессами.
Проект программы, описанный на SDL-l, представляет собой сочетание данных, средств управления и процедур. Для ясного задания структуры проекта применяют отличительные и описательные признаки. Для указания иерархической структуры используют номера уровней. В целом проект программы описывают в терминах процедур, данных, переключателей и определений, и его структура имеет три уровня. Уровень 1, задаваемый признаком DESIGN SPECIFICATION, определяет сам проект программы. Уровень 2, задаваемый признаками PROCEDURES DATA SWITCHES, DEFINITIONS, содержит соответствующие элементы проекта. Уровень 3 описывает все имена процедур и кратко комментирует функции этих процедур. На уровне 2 задают все глобальные структуры данных и перечисляют процедуры, имеющие доступ к ним, а также описывают глобальные переключатели и реализующие их процедуры. Структура программы организована «сверху — вниз». B SDL-1 подробные описания процедур применяют не только для того, чтобы сократить программу (как в обычных языках программирования), но, главным образом, для придания проекту высокоструктурированной формы. Описание процедуры позволяет сразу же представить общее число, тип и параметры процедур. Специальное описание «структура процедуры» задает возможную структуру вызовов и возвратов для всех процедур. Структуру обращений детализируют с помощью двухпозиционных номеров уровней, задающих положение процедур в иерархической структуре программы. В языке предусмотрены два типа рекурсивных обращений к процедурам: прямой и цепной (прямое обращение имеет место, когда имя процедуры появляется с двух сторон оператора присваивания).
Все процедуры языка SDL-1 должны быть определены. Первая процедура — главная, причем внутри определения этой процедуры не могут содержаться другие определения. Для записи процедур можно использовать 9 операторов управления: BLOCK, SET, IF, CASE, LOOP, EXIT, CALL, RETURN, UNWIND. Оператор GO TO не применяют. Метки можно использовать только внутри оператора CASE.
Операционные предпосылки касаются, прежде всего, вопроса о том, как следует использовать системы автоматизации разработки программ. Такие системы представляют собой средство управления проектированием, основная задача которых упростить процесс разработки и улучшить ее качество.
Экономические предпосылки основаны на том, что автоматизированная разработка обеспечивает удешевление процесса изготовления ПО (при сохранении всех прочих показателей самих программ). Однако точная количественная оценка экономических показателей представляет значительные трудности и в настоящее время затруднительна.
К теоретическим предпосылкам относят постоянное возникновение новых и интенсивное развитие уже существующих направлений в современной кибернетике. В частности, оформляется в науку такая область знаний, как программирование, в задачу которого входит разработка средств общения человека с программируемыми логическими контроллерами (ПЛК). Развиваются теории алгоритмов, автоматов, формальных языков, осуществляется изучение структур подалгебр универсальных алгебр, разрабатываются методы синтаксического анализа для параметрических систем программирования, реляционное исчисление, теория нечетких множеств и т. п.
Наиболее распространенные в настоящее время технологии разработки ПО АСУ ТП основаны на использовании: процедурно-ориентированных языков высокого уровня, предназначенных для программирования процессов реального времени; проблемно-ориентированных пакетов прикладных программ; библиотек макроопределений.
Основу технологии производства программ автоматизированных систем, базирующейся на использовании процедурно-ориентированных языков высокого уровня, составляют соответствующие системы программирования. Этот термин принят для обозначения совокупности языка, программных средств трансляции и (или) выполнения (интерпретации) исходных программ, а также различных вспомогательных инструментов, служащих для облегчения отладки, документирования и обслуживания программ в процессе их разработки и эксплуатации.
Языки программирования играют здесь двоякую роль. Они выступают и как средство формализованного описания поведения систем управления технологическими процессами на этапе их проектирования, и как средство получения искомого программного продукта. К основным особенностям таких языков следует отнести:
Возможность управления поведением операционной системы за счет наличия развитых механизмов параллельных вычислений и синхронизации ветвей между собой, аппарата синхронизации вычислительного процесса с внешними событиями, аппарата обмена с нестандартным внешним оборудованием, требующим специфических методов доступа, развитых средств работы с малоразрядными информационными квантами.
Наличие достаточно мощного вычислительного аппарата, широкого набора типов и специализированных структур данных.
Необходимость решения дополнительных задач автоматизированных систем, связанных с обеспечением надежности программ; аспектами безопасности; эффективностью кодирования; легкостью изучения; быстротой программирования; простотой внесения изменений в алгоритмы; мобильностью, т.е. возможностью быстрого перенесения программ с одних вычислительных средств на другие; простотой изготовления документации.
Необходимость единой системы редактирования и отладки управляющих программ для языков систем управления технологическими процессами всех уровней.
Существуют различные способы связи языка с операционной системой. Первый способ заключается в использовании элементов существующей операционной системы, В язык включены вызовы подпрограмм, состоящие из ассемблерных кодов и позволяющие использовать компоненты операционных систем (например, язык CORAL-66). При таком способе не нужно беспокоиться о свойствах операционной системы при проектировании языка, однако необходимо глубокое ее знание. Многие специалисты в области программирования вообще предостерегают против существенного использования любых сложных частей ПО, не находящихся под собственным контролем разработчика, и высказываются за применение инструментов и методов, которые позволяют избегать такого использования.
Второй способ (языки PROCESS, FORTRAN, REAL TIME BASIC) заключается в приспособлении (стандартизации) операционной системы к языку.
Существуют способы, при которых предусматривается более глубокое влияние как языка, так и операционной системы друг на друга (например, PEARL). Язык PEARL (Process and Experimental Automation Realtime Language) — универсальный язык, предназначенный для создания ПО АСУ ТП на базе программируемых логических контроллеров (ПЛК). Этот язык ориентирован на задачи обмена данными в информационных системах; управления экспериментом; контроля и управления технологическими процессами. Его отличительными чертами являются возможность описания конфигурации технических средств АСУ ТП, наличие средств описания процессов ввода и отображения данных, развитых механизмов, организации параллельных вычислительных процессов в реальном времени.
Существуют языки (например, MODULA), при разработке которых использовали способ интегрированного проектирования языка и операционной системы с включением в язык удобного механизма синхронизации.
Широкое распространение получили процедурно-ориентированные языки реального времени: HAL/S, LAJ, LTPL, JOVIAL, RTL, LTR, MADAM и другие основные недостатки процедурных языков, используемых для управления технологическими процессами, следующие:
- программирование на процедурном языке сложнее, чем на непроцедурном, так как при этом пользователь должен детально описать действие машины;
- программа, реализующая такой язык, существенно сложнее, чем транслятор для специализированного языка;
- при управлении технологическими процессами часто возникает необходимость изменения параметров программы в ходе ее выполнения. Специализированные языки обеспечивают при этом больше возможностей.