автореферат диссертации по информатике, вычислительной технике и управлению, 05.13.18, диссертация на тему:Инструментальная среда для разработки пакетов программ диагностики сложных технических систем

кандидата физико-математических наук
Манишина, Елена Евгеньевна
город
Нижний Новгород
год
1999
специальность ВАК РФ
05.13.18
цена
450 рублей
Диссертация по информатике, вычислительной технике и управлению на тему «Инструментальная среда для разработки пакетов программ диагностики сложных технических систем»

Текст работы Манишина, Елена Евгеньевна, диссертация по теме Математическое моделирование, численные методы и комплексы программ

НИЖЕГОРОДСКИЙ ОРДЕНА ТРУДОВОГО КРАСНОГО ЗНАМЕНИ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ им. Н.И.ЛОБАЧЕВСКОГО

На правах рукописи УДК 681.3.06

МАНИШИНА Елена Евгеньевна

ИНСТРУМЕНТАЛЬНАЯ СРЕДА ДЛЯ РАЗРАБОТКИ ПАКЕТОВ ПРОГРАММ ДИАГНОСТИКИ СЛОЖНЫХ ТЕХНИЧЕСКИХ СИСТЕМ

Специальность 05.13.18 - теоретические основы математического моделирования, численные методы и комплексы программ

Диссертация на соискание ученой степени кандидата физико-математических наук

Научный руководитель: доктор технических наук, профессор Л.В.Смирнов

Н.Новгород, 1999 г.

Содержание

Введение.............................................................................. 3

Глава 1. Проблемы реализации пакетов программ диагностики......... 17

Заключение к главе 1..................................................... 30

Глава 2. Технология разработки пакетов программ диагностики........ 31

2.1. Дискретное пространство состояний программы...............34

2.2. Управление функциональными элементами.....................44

2.3. Контроллер состояний................................................55

Заключение к главе 2.......................................................65

Глава 3. Организация интерфейса пользователя............................. 66

3.1. Макроскопические интерфейсные элементы.................... 70

3.2. Контроллер диалога...................................................103

3.3. Организация ввода данных.........................................114

3.4. Компилятор справочников..........................................123

Заключение к главе 3......................................................131

Глава 4. Интеграция частных инструментальных сред....................132

4.1. Расширенный синтаксис языка программирования............135

4.2. Программная реализация препроцессора........................145

Заключение к главе 4......................................................153

Заключение..........................................................................154

Приложение.........................................................................156

Литература...........................................................................215

Введение

Диссертация посвящена разработке инструментальных сред, предназначенных для создания пакетов программ диагностики сложных технических систем. Инструментальными средами или системами в настоящее время называют комплексы программных (инструментальных) средств, предназначенные для решения задач определенного, как правило, достаточно узкого класса. Многообразие таких классов задач очень велико, к ним относятся и вспомогательные задачи, такие как организация визуального интерфейса, и задачи разработки основных алгоритмов прикладных программ, соответственно велико и количество различных по назначению инструментальных систем. Примерами инструментальных систем являются: среды визуального программирования Delphi, С++ Builder, CASE системы для разработки программ обработки сигналов, Lab View, Lab Windows, библиотеки программ для решения математических задач и т.д. [1-4].

Пакеты программ технической диагностики по сложности и многообразию входящих в их состав диагностических алгоритмов могут быть отнесены к наиболее сложным программным системам. Так, например, пакеты программ диагностики оборудования атомных электростанций (АЭС) содержат более 200 алгоритмов диагностирования различных технических подсистем [5]. Диагностирование каждой подсистемы является сложной научно-технической задачей.

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

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

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

Второй причиной модификаций диагностических программ являются изменения технической базы систем диагностики, т.е. модерниза-

и О и ГТЧ Л*

ция используемои измерительной и вычислительной техники. Так оборудование АЭС рассчитывается на срок службы 50-60 лет, а среднее время жизни измерительной и вычислительной техники, с учетом морального старения, составляет 5-10 лет [6]. Другими словами, за время службы оборудования АЭС, а следовательно и пакета программ диагностики должно смениться несколько поколений измерительной и вычислительной техники.

Следует отметить, что все модификации пакета программ диагностики должны выполняться с сохранением его работоспособности.

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

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

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

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

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

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

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

В настоящее время фактически стандартным стал графический интерфейс операционных систем семейства Windows. Для программной поддержки этого интерфейса разработаны инструментальные системы, реализующие принципы визуального программирования, такие как, Visual Basic, Visual С, Delphi [1,2, 7-9]. Набор визуальных компонент, поддерживаемых этими системами: окна, кнопки, скроллеры, компоненты отображения данных и т.п., обеспечивает разработчиков программного обеспечения широкими возможностями для создания гибких многофункциональных средств взаимодействия пользователя с программными продуктами. Эти системы существенно упрощают процесс разработки экранных форм и избавляют программиста от решения технических задач, связанных с отображением типовых визуальных элементов.

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

Составной частью интерфейса пакетов программ диагностики является системный справочник, содержащий описание правил эксплуатации пакета, используемых методов диагностики и действий оператора в различных ситуациях. Как уже отмечалось, пакеты программ диагностики непрерывно развиваются благодаря накоплению знаний о диагностируемом объекте. В связи с этим возникает проблема модификации системных справочников. Современные средства организации справочников, так называемые гипертекстовые системы [10-11], не предлагают эффективных методов модификации справочников.

Из сказанного следует, что инструментальные системы общего назначения не предназначены для решения указанных проблем, необходима специализированная инструментальная среда, учитывающая специфику диагностических программ.

Третьей задачей, без решения которой невозможна эксплуатация программ диагностики, является организация связи диагностических модулей с источниками информации о состоянии технической системы. Количество источников информации и различных форм представления данных в современных технических системах очень велико, так автоматизированные системы управления АЭС регистрируют более 5000 аналоговых и 12000 дискретных сигналов [5]. Организация гибкой связи такого количества источников информации с диагностическими модулями является очень сложной и трудоемкой задачей. Независимое решение этой задачи для каждого диагностического модуля, очевидно невозможно, в силу чрезвычайной трудоемкости разработки и, что особенно важно, сопровождения такого пакета программ. Любые изменения измерительной аппаратуры технической системы, в этом случае, потребуют изменений в подпрограммах ввода данных всех диагностических модулей.

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

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

В диссертации рассматриваются пути решения этих задач и предложенный автором метод интеграции частных инструментальных сред, основанный на использовании универсальных языков программирования [2, 12] и препроцессорной обработке [13, 14]. В основе предлагае-

мых решений лежит жесткая типизация [15] программных и интерфейсных элементов, которая может быть выполнена для любого ограниченного класса задач, например, для пакетов программ диагностики. Типизация позволяет без ущерба для качества прикладных программ уменьшить многообразие программных и интерфейсных элементов, а также определить формальные правила их описания и компоновки. Это в свою очередь позволяет повысить степень автоматизации при разработке прикладных программ.

Полученные в диссертации результаты являются частью работ по темам "Разработка систем диагностики, методического и программного обеспечения исследований переходных и аварийных процессов и вибрации оборудования установок с ядерными реакторами" № г.р. 01920010245 и "Разработка теоретических основ математического моделирования, методических и программных средств исследования динамики перспективных и действующих ядерных энергетических установок" № г.р. 01960003699. Научным руководителем тем является профессор Л.В.Смирнов. Результаты работ соискателя использованы при разработке современной методологии и конкретных программ оперативного диагностирования ЯЭУ в НИИ Механики ННГУ при выполнении исследований по указанным темам.

Основу настоящей диссертации составляют результаты, опубликованные в работах автора [16-30].

Цели работы.

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

2. Разработка принципов организации и программной реализации единообразного интерфейса пользователя для пакетов программ технической диагностики.

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

Личный вклад автора.

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

Структура диссертации

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

В главе 1 "Проблемы реализации пакетов программ диагностики" проведен подробный анализ проблем, возникающих при программной реализации пакетов программ технической диагностики, в результате чего выделены три наиболее актуальные, по мнению автора, проблемы:

• создание технологи программирования, ориентированной в первую очередь на эффективную модификацию прикладных программ;

• разработка принципов, обеспечивающих единообразие интерфейса в программных системах, состоящих из большого числа модулей, созданных различными группами разработчиков;

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

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

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

В главе 2 "Технология разработки пакетов программ диагностики" предложена технология программирования, не требующая разработки управляющей структуры программы. При использовании этой технологии создание программ любого уровня сложности сводится к решению ряда локальных задач, заключающихся в создании элементов обработки данных и определении условий их выполнения только на основе анализа данных программы. Главной целью предлагаемого подхода является обеспечение простоты и надежности при модификации прикладных программ большого объема.

В разделе 2.1. анализируются причины трудностей, возникающих при модификации программ. Введено понятие функционального элемента - любого фрагмента программы, вызываемого как единое целое не зависимо от его сложности и внутренней структуры и предназначенного для изменения данных программы. Показано, что главным источником трудностей при модификации программ является то, что вызовы функциональных элементов определяются не только значениями данных программы, но и положением соответствующих управляющих элементов в структуре программ. Это может также послужить причиной возникновения скрытых ошибок, т.е. ошибок, проявляющихся только в некоторых, как правило, редких ситуациях. Для диагностических программ наличие таких ошибок недопустимо, так как к редким ситуациям относятся, в частности, аварийные ситуации, для обнаружения которых создаются диагностические программы.

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

программы. Однозначное соответствие между значениями данных программы и выполнением функциональных элементов позволяет ввести понятие состояния программы. В дальнейшем будем говорить, что программа находится в состоянии С, если значения ее данных принадлежат множеству возможных значений, при которых выполняется условие вызова функционального элемента Fc. Графически множество различных состояний программы можно изобразить в виде многомерного пространства, разделенного поверхностями на области, размерность пространства равна числу переменных программы. Каждому состоянию программы соответствует своя область возможных значений данных, в общем сл�