Разработка и исследование метода построения гидроакустических информационных систем на основе конфигурирования функциональности тема диссертации и автореферата по ВАК РФ 05.25.05, кандидат наук Дегтярев, Алексей Андреевич

  • Дегтярев, Алексей Андреевич
  • кандидат науккандидат наук
  • 2014, Таганрог
  • Специальность ВАК РФ05.25.05
  • Количество страниц 163
Дегтярев, Алексей Андреевич. Разработка и исследование метода построения гидроакустических информационных систем на основе конфигурирования функциональности: дис. кандидат наук: 05.25.05 - Информационные системы и процессы, правовые аспекты информатики. Таганрог. 2014. 163 с.

Оглавление диссертации кандидат наук Дегтярев, Алексей Андреевич

ОГЛАВЛЕНИЕ

ВВЕДЕНИЕ

ГЛАВА 1. АНАЛИЗ МЕТОДОВ ПОСТРОЕНИЯ ГИДРОАКУСТИЧЕСКИХ ИНФОРМАЦИОННЫХ СИСТЕМ

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

1.2. Обзор и анализ существующих методов и подходов к построению информационных систем

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

1.4. Выводы и постановка задачи

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

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

2.2. Механизм конфигурирования гидроакустической информационной системы (Механизм верхнего уровня)

2.3. Механизм конфигурирования элементов классов плагин-обработки и плагин-управления (Механизм нижнего уровня)

2.4. Выводы по разделу

ГЛАВА 3. РАЗРАБОТКА ФОРМАЛЬНЫХ МОДЕЛЕЙ ЭЛЕМЕНТОВ И ФУНКЦИЙ МЕХАНИЗМОВ КОНФИГУРИРОВАНИЯ ФУНКЦИОНАЛЬНОСТИ

3.1 Разработка формальных моделей элементов и функций механизма верхнего уровня

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

3.3. Выводы по разделу

ГЛАВА 4. ПРОЕКТИРОВАНИЕ, РАЗРАБОТКА И ИССЛЕДОВАНИЕ

ПРОГРАММНОГО КАРКАСА

4.1. Анализ и выбор пути реализации программного каркаса

4.2 Проектирование архитектуры программного каркаса

4.3. Оценка эффективности построения гидроакустических информационных систем с использованием программного каркаса

4.4. Выводы по разделу

ЗАКЛЮЧЕНИЕ

СПИСОК ИСПОЛЬЗУЕМЫХ СОКРАЩЕНИЙ

СПИСОК ЛИТЕРАТУРЫ

ПРИЛОЖЕНИЕ 1. UML ДИАГРАММА КЛАССОВ ПРОГРАММНОГО КАРКАСА

ПРИЛОЖЕНИЕ 2. ФРАГМЕНТЫ ИСХОДНОГО ТЕКСТА РЕАЛИЗАЦИИ ПРОГРАММНОГО КАРКАСА

ПРИЛОЖЕНИЕ 3. ПРИМЕР КОНФИГУРАЦИОННОГО XML ФАЙЛА

ПРИЛОЖЕНИЕ 4. СВИТЕДЕЛЬСТВА О ГОСУДАРСТВЕННОЙ РЕГИСТРАЦИИ ПРОГРАММ ДЛЯ ЭВМ

ПРИЛОЖЕНИЕ 5. АКТЫ ВНЕДРЕНИЯ

Рекомендованный список диссертаций по специальности «Информационные системы и процессы, правовые аспекты информатики», 05.25.05 шифр ВАК

Введение диссертации (часть автореферата) на тему «Разработка и исследование метода построения гидроакустических информационных систем на основе конфигурирования функциональности»

ВВЕДЕНИЕ

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

Процесс создания гидроакустических систем является трудоемким процессом, растянутым во времени. По разным оценкам от начала проектирования до производства реального изделия готового к эксплуатации проходит 2-3 года.

В данной работе гидроакустические системы предлагается рассматривать как информационные системы, поскольку они обладают соответствующими признаками: сбор, хранение, обработка и отображение информации. Широко известно, что любая информационная система представляет собой совокупность разнородных компонент, в состав которых могут входить средства вычислительной техники, средства получения данных, программные средства, информационные ресурсы, а так же обслуживающий персонал. Ввиду того, что главным (системообразующим) компонентом любой современной информационной системы являются программные средства и средства вычислительной техники, целесообразно отвести им такую же роль в гидроакустических информационных системах. Такой угол зрения позволяет кардинально пересмотреть подход к проектированию и разработке гидроакустических систем. В новом подходе гидроакустические антенны и электронная часть, включающая в себя излучающие и приемные тракты, должна выступать в роли средств получения исходных данных. Главную или системообразующую роль должны играть информационные системы, изменение которых должно порождать гидроакустическую систему с новыми или измененными свойствами.

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

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

Проблемами оптимизации процессов разработки информационных систем занимаются многие российские и зарубежные ученые (Ю.М.Шерстюк, Л.II. Лядова, М.А. Рощин, Д.О. Брюхов, С.М. Абрамов, Джек Гринфилд, Жан-Мари Фавр, Кристофер Чранецкий, Мартин Фаулер и др.).

Анализ исследований, проведенный по рассматриваемой проблеме, показал, что практически все значимые нововведения в области повышения эффективности разработки информационных систем, направлены на решение двух основных проблем:

1. Сокращение семантического разрыва между средствами описания целевой информационной системы и средствами её реализации;

2. Увеличение степени повторного использования активов (проектные решения, алгоритмические решения, программные компоненты и т.д.).

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

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

Объект исследования. Гидроакустические информационные системы.

Предмет исследования. Процесс конфигурирования функциональности гидроакустических информационных систем.

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

Задачи работы, состоят в том, чтобы:

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

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

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

ской информационной системы и отдельных элементов информационной системы;

4. Разработать формальные модели элементов и функций для механизма конфигурирования гидроакустической информационной системы;

5. Разработать формальное представление элементов механизма конфигурирования отдельных элементов информационной системы и операций над ними;

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

Методы исследований:

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

Научная новизна работы

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

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

a) формальные модели элементов;

b) формальные модели функций над элементами;

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

Практическая ценность

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

Положения, выносимые на защиту:

1. Метод построения гидроакустических информационных систем как совокупность взаимосвязанных механизмов верхнего и нижнего уровня;

2. Формальные модели элементов и функций механизма конфигурирования функциональности гидроакустических информационных систем (механизм верхнего уровня);

3. Система формальных манипуляций над программными элементами для механизма конфигурирования плагинов обработки и управления (механизм нижнего уровня);

4. Архитектура программного каркаса и его реализация как воплощение предложенного метода.

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

Реализация и использование результатов работы. Результаты диссертационного исследования внедрены на предприятии ООО «Аквзаонд», г. Таганрог и ГНЦ ФГУГП «Южморгеология», г. Геленджтк , что подтверждается соответствующими актами. Так же результаты используются в ходе продолжающегося гранта РФФИ № 13-07-00971 а, в котором автор работы является руководителем и внутреннем гранте Южного федерального университета №213.01-24/2013-103.

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

1) VII Всероссийская научная конференция молодых ученых, аспирантов и студентов «Информационные технологии, системный анализ и управле-ние» (Таганрог, 2009);

2) Международная научно-техническая конференция «Актуальные проблемы построения информационных систем и.процессов» (Таганрог, 2010);

3) VIII Всероссийская научная конференция молодых ученых, аспирантов и студентов «Информационные технологии, системный анализ и управление» (Таганрог, 2010);

4) X Всероссийская научная конференция студентов и аспирантов «Техническая кибернетика, радиоэлектроника и системы управления» (Таганрог, 2010);

5) II Международная научно-техническая конференция «Технологии разработки информационных систем» (Таганрог, 2011);

6) IX Всероссийская научная конференция'молодых учёных, аспирантов и студентов «Информационные технологии, системный анализ и управле-ние». (Таганрог, 2011);

7) XI Всероссийская конференция «Прикладные технологии гидроаку-сти-ки и гидрофизики». (Санкт-Петербург, 2012);

8) VIII Ежегодная научная конференция студентов и аспирантов базовых кафедр Южного научного центра РАН (Таганрог, 2012);

9) 6-ой весенний/летний коллоквиум молодых исследователей в области программной инженерии «SYRCoSE 2012» (Пермь, 2012);

10) VI Всероссийская научная школа-семинар молодых ученых, аспирантов и студентов «Семантическая интерпретация и интеллектуальная обработ-ка текстов, их приложения в информационном поиске, хранении и обработке документов в электронных архивах и библиотеках» (Таганрог, 2012);

11) III Международная научно-техническая конференция «Технологии раз-работки информационных систем» (Таганрог, 2012);

12) X Всероссийская научная конференция молодых учёных, аспирантов и студентов «Информационные технологии, системный анализ и управление» (Таганрог, 2012);

13) Международная научно-практическая конференция аспирантов и студентов «Инженерия программного обеспечения 2013» (Киев, 2013);

14) IV Международная научно-техническая конференция «Технологии разработки информационных систем» (Таганрог, 2013).

Публикации. По материалам диссертации автором опубликовано 23 работы, из них 5 статей в реферируемых журналах, входящих в список изданий, рекомендованный ВАК и два свидетельства о государственной регистрации программ для ЭВМ. Общий объем публикаций составляет 5.3 печатных листа из которых 65 процентов авторского текста.

Структура и содержание диссертационной работы

Диссертация состоит из введения, четырех глав, заключения, списка литературы, содержащего 98 наименований и приложений. Работа изложена на 163 страницах, содержит 21 рисунок, 8 таблиц и 5 приложений.

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

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

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

вать, используя теоретико-множественную операцию объединение, понятие отображения, кортежа и операцию поиска путем сравнения перебором.

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

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

Заключение содержит выводы о работе.

Дополнительная апробация результатов работы подтверждается двумя свидетельствами о государственной регистрации программы для ЭВМ, которые приведены в приложении 4.

ГЛАВА 1. АНАЛИЗ МЕТОДОВ ПОСТРОЕНИЯ ГИДРОАКУСТИЧЕСКИХ

ИНФОРМАЦИОННЫХ СИСТЕМ

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

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

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

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

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

Антенная подсистема - решает задачи преобразования электрических сигналов в акустические волны (режим излучения), и преобразования акустических сигналов в электрические (режим приема).

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

Гидроакустическая система

Рисунок 1.1 - Структурная схема типовой гидроакустической системы Подсистема обработки сигналов и принятия решений - решает задачи связанные с обработкой пакетов данных, например:

• удаление постоянной составляющей;

• улучшение соотношения сигнал/шум;

• преобразование формы представления сигнала;

• реализация алгоритмов поиска и идентификации цели;

• подготовка пакетов данных для подсистем документирования и отображения.

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

Подсистема отображения - решает задачи связанные с отображением различной информации, например:

• гидроакустическая информация;

• служебная информация;

• информация о текущем режиме работы системы. Подсистема управления - решает задачи связанные с контролем работы и

управлением, например:

• обработка команд оператора и трансляция их к соответствующим подсистемам;

• контроль и управление параметрами подсистемы приема/излучения;

• управление параметрами подсистемы обработки сигналов и принятия решений;

• управление подсистемой отображения;

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

Теперь рассмотрим, что собой представляют современные информационные системы. Начнем с определения.

Информационная система - это сложная человеко-машинная система, целевое назначение, элементный состав и структура которой ориентированы на различного рода преобразования данных и информации в интересах обеспечения потребностей пользователей (физических лиц организаций, органов управления и т.п.). В состав ИС обычно входят весьма разнородные элементы: средства вычислительной техники, средства добывания данных, средства связи, программные средства, информационные ресурсы, а так же обслуживающий персонал [2]. Структурная схема типовой информационной системы представлена на рисунке 1.2. Не углубляясь в детальное описание компонент представленных на структурной схеме, отметим лишь, что в современных информационных системах наиболее важным элементом, который и образует основной функционал, являются программные средства. При таком подходе большинство элементов или их структур могут быть унифицированными в рамках некоторого класса систем, следовательно, для создания системы с новыми свойствами требуется создать новые программные средства или изменить существующие.

Информационная система

Рисунок 1.2 — Структурная схема типовой информационной системы

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

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

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

Учитывая все вышесказанное, дадим определение гидроакустической информационной системе. Гидроакустическая информационная система - это такая система, направленная на решение задач в области гидроакустики, в которой антенные подсистемы и подсистемы приема/передачи являются средствами получе-

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

Рисунок 1.3 - Рассмотрение гидроакустической системы как информационной

Даже при использовании озвученных выше принципов процесс создания новых гидроакустических информационных систем является трудоемким, и растянутым во времени (в среднем 2-3 года). Значительную часть производственного процесса занимает разработка и отладка программных средств, на долю которых по разным оценкам приходится от 50 до 80 процентов времени и средств [6].

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

ских информационных систем, которую кратко можно выразить в следующем наборе свойств:

• режим работы - близкий к реальному времени;

• критичность ко времени обработки данных и к потерям данных;

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

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

Похожие диссертационные работы по специальности «Информационные системы и процессы, правовые аспекты информатики», 05.25.05 шифр ВАК

Список литературы диссертационного исследования кандидат наук Дегтярев, Алексей Андреевич, 2014 год

СПИСОК ЛИТЕРАТУРЫ

1. Евтютов, А.П. Справочник по гидроакустике / А.П. Евтютов, А.Е. Колесников, Е.А. Корепин и др. ; науч. ред. А.Е. Колесников. - 2-е изд., перераб. и доп. -Л. : Судостроение, 1988. - 549 с.

2. Алгазинов, Э. К. Анализ и компьютерное моделирование информационных процессов и систем / Э. К. Алгазинов, А. А. Сирота; под общ. ред. д.т.н. А. А. Сироты. М.: Диалог-МИФИ, 2009. - 416 с.

3. Аврамчук, Е.Ф. Технология системного моделирования / Е.Ф. Аврамчук, A.A. Вавилов, C.B. Емельянов и др.; Под общ. ред. C.B. Емельянова и др.- М.: Машиностроение; Берлин: Техник, 1988 520 с.

4. Мамиконов, А.Г. Модели и системы проектирования информационного обеспечения АСУ / А.Г. Мамиконов, Пискунова А.Н., Цвиркун А.Р. М.: Статистика, 1978.

5. Заковоротнов, Е.А., Заковоротнова Е.Е. Эхолот. Патент 2390796 RU от 2010.05.27

6. Рогозов, Ю.И., Информационные процессы в малоканальных гидроакустических комплексах ближнего действия построенных на основе программно-ориентированной архитектуры / Ю.И. Рогозов, Дегтярев A.A. ИТСАУ11 IX Всероссийская научная конференция молодых учёных, аспирантов и студентов «Информационные технологии, системный анализ и управление»: Сборник материалов. - Таганрог: Изд-во ТТИ ЮФУ, 2011. - Т.1. С.64-68

7. Geller J., Perl Y., Neuhold E.J. Structural Schema Integration in Heterogeneous Multi-Database Systems using the Dual Model // In Proc. of the First International Workshop on Interoperability in Multidatabase Systems, Kyoto. Japan, 1991, pp. 200203

8. Рощин M.A. Проектирование многокомпонентных программных систем на основе гибридных логических моделей: Дис... канд. тех. наук: 05.13.01, 05.13.12 / Рощин Михаил Александрович, - Волгоград, 2007 - 124 с.

9. Муромцев Ю.Л., Орлова Л.П., Муромцев Д.Ю., Тютюнник В.М. Информационные технологии проектирования РЭС. 4.1: Основные понятия, архитектура, принципы: Уч. пособие. Тамбов: Изд-во ТГТУ, 2004 - 96 с.

10. Л. Лафоре Объектно-ориентированное программирование в С++ / 4-е издание; Изд-во: Питер. 2011 г. - 928 с.

11. F. Brooks. «No Silver Bullet: Essence and Accidents of Software Engineering» Computer Magazine, 1987

12. P. Wegner. Research Directions in Software Technology. Proceedings Of The 3rd International Conference On Software Engineering. 1978

13. Hayne S. and Ram S. Multi-User View Integration System (MUVIS): An Expert System for View Integration // In Proc. of the 6-th International Conference on Data Engineering, 1990

14. Gruber T.R. A translation approach to portable ontologies. // Knowledge Acquisition, 5(2), 1993, pp. 199-220

15. Jacobson I. et al. Object-Oriented Software Engineering A Use Case-Driven Approach 11 Addison-Wesley, 1992

16. Камаев, B.A. Технологии программирования: учебник. Доп. Мин-вом образования и науки Российской Федерации / В.А. Камаев, В.В. Костерин - 2-е изд., перераб. и доп. - М.: Высшая школа, 2006. - 454 с.

17. Гришин, В. А. Математическое моделирование изделий и технологий. / В. А. Гришин, Камаев В.А. Учебное пособие, Волгоград, 1986.-193 с.

18. Рогозов, Ю. И. Анализ и перспективы развития разработки программного обеспечения / Ю. И. Рогозов, А. С. Свиридов, А. А. Дегтярев // Журнал "Информационные технологии". Издательство «Новые технологии», 2011. N12 - С. 16 -21

19. Андрейчиков, А.В. Интеллектуальные информационные системы / А.В. Ан-дрейчиков, О.Н. Андрейчикова М.: Финансы и статистика, 2006. - 424 с.

20. В. J. Сох Object oriented programming: an evolutionary approach, 1986

21. Буч Г. Объектно-ориентированное проектирование с примерами применения / Г. Буч; пер. с англ. - М.: Конкорд, 1992. - 519 с.

22. Graham, I. Object-Oriented Methods. Addison-Wesley, London, 2001

23. Fisher A.S. CASE: Using Software Development Tools. - N.Y.: J. Willey and Sons Inc., 1988

24. Harmon P. Object-Oriented CASE - Object-Oriented Strategies V.I. #8, August 1996

25. Medvidovic, N., Egyed, A., and Rosenblum, .D.: Round-Trip Software Engineering Using UML: From Architecture to Design and Back, Proceedings of the 2nd Workshop on Object-Oriented Reengineering (WOOR), pp. 1-8, Toulouse, France, September 1999b.

26. Демитрович Я., Кнут E., Радо П. Автоматизированные методы спецификации. М.: Мир, 1989. - 115 с.

27. Себеста Р.У. Основные концепции языков программирования: Пер. с англ. М.: Изд. дом «Вильяме», 2001. - 672 с.

28. Thalheim В. Component Construction of Database Schemes // Lecture Notes in Computer Science, Vol. 2503, 2002, pp. 20-34

29. Вендров A.M. CASE-технологии. Современные методы и средства проектирования информационных систем [Электронный ресурс] -Режим доступа: http://www.codenet.ru/db/other/case/

30. Калянов Г.Н. CASE структурный системный анализ (автоматизация и применение). М.: Лори, 1996. - 242 с.

31. A. Simon. The Integrated CASE Tools Handbook. - Van Nostrand Rein-hold/lntertext 1993

32. Новоженов IO. В., Звонкин M.3., Тимонин H.H. Объектно-ориентированные CASE-средства // СУБД. 1996 № 5-6 С. 199-125

33. Tom Mens, Pieter Van Gorp A Taxonomy of Model Transformation and its Application to Graph Transformation, Workshop on Graph and Model Transformation / Tallinn, Estonia, September 2005, 15 p.

34. P. Chen The Entity-Relationship Model: Toward a Unified View of Data / ACM Trans on Database Systems, vol. 1, pp. 9-36, 1976

35. Буч Г., Рамбо Д., Джекобсон A. UML руководство пользователя; пер. с англ.

- М.: ДМК Пресс, 2001. - 432 с.

36. Object Management Group (OMG) [Электронный ресурс]: MDA Guide, v.l.0.1. Режим доступа: http://www.omg.org/docs/omg/03-06-01 .pdf- Загл. с экрана.

- Яз. англ.

37. Д. Арлоу UML 2 и Унифицированный процесс. Практический объектно-ориентированный анализ и проектирование/ Д. Арлоу, А. Нейштадт Изд-во: Символ-плюс. 2007 г. - 624 с.

38. Майк Кон Scrum Гибкая разработка ПО/ Изд-во: Вильяме,2011 - 576 с.

39. George Т. Heineman, William Т. Councill Component-Based Software Engineering: Putting the Pieces Together/ Addison-Wesley Professional, Reading 2001

40. Брюхов, Д.О Конструирование информационных систем на основе интероперабельных сред информационных ресурсов: диссертация ... кандидата технических наук : 05.13.11 Брюхов Дмитрий Олегович Москва, 2003. Количество страниц: 158 с. 61 04-5/273-8

41. Douglas С. Schmidt Why Software Reuse has Failed and How to Make It Work for You / С++ Report magazine, January 1999

42. Bruce Wallace There is no such thing as a Component / Existential Programming, June, 2000

43. Keith Bugg Building Better Interfaces with Microsoft Foundation Classes / John Wiley & Sons, 1999 - 368 p.

44. Чернецки, К. Порождающее программирование: методы, инструменты, применение/ Чернецки К., Айзенкер У. // Пер. с англ. СПБ: Питер, 2005, 736 с.

45. Magento creates huge success with enterprise e-commerce platform & community built on Zend Framework [Электронный ресурс] // Режим доступа: http://framework.zend.com/casestudies/ZFCaseStudy-Magento.pdf - Загл. с экрана. -Яз. англ.

46. Microsoft Dynamic CRM [Электронный ресурс] // Режим доступа: http://wvvvv.microsoft.com/rus/dynamics/crm/ - Загл. с экрана. - Яз. англ.

47. Mirsa J. Distributed discrete-event simulation // Computer Surveys, Vol. 18, N1, 1986.-P. 39-65.

48. Jefferson D.R. Virtual time. // ACM Trans. Prog. Lang, and Sys., Vol. 7, N3, 1985.-P. 404-425

49. Chandy К. M., Mirsa J. Asynchronous distributed simulation via a sequence of parallel computations. // Comm. of the ACM, Vol. 24, N11, 1981. P. 198-205

50. Bain W. L., Scott D. S. An algorithm for time synchronization in distributed discrete event simulation. //Proc. SCS Multiconf. on Dist. Simulation, 1988.-P. 30-33

51. Леман M. M. Программы, жизненные циклы и законы эволюции программного обеспечения // ТИИЭР (пер. с англ.). 1980. Т68, № 9. С. 26-45.

52. Лядова Л.Н. Метамоделирование как основа средств оперативной разработки профессионально-ориентированных информационных систем // Математика программных систем: межвузовский сборник научных статей. Пермь: Пермский государственный национальный исследовательский университет, 2012. С. 20—32

53. Athula Ginige Meta-design paradigm based approach for iterative rapid development of enterprise WEB applications // Proceedings of the Fifth International Conference on Software and Data Technologies, ICSOFT 2010. P.337-343

54. Roshchin M. Ontology Engineering for Intellectual Agents / M. Roshchin // И-я Международная конференция по когнитивной науке: сб. тр. / С.-Петерб. Гос. Унт. СПб., 2006. - С. 558-559

55. Youri I. Rogozov, Alexander S. Sviridov, Sergey A. Kutcherov, Wladimir Bodrov. Purpose-driven approach for flexible structure-independent database design. Proceedings of the Fifth International Conference on Software and Data Technologies, ICSOFT 2010, Volume 1. P.356-362

56. Summerfield, Mark. Advanced Qt programming : creating great software with С++ and Qt 4 / Mark Summerfield. Addison-Wesley.2011. 554 p.

57. Шерстюк, 10. М. Метауправление функциональностью информационных систем и его приложение к задачам создания специального программного обеспечения : диссертация ... доктора технических наук : 05.13.11. Шерстюк Юрий Михайлович. Санкт-Петербург, 2000. Количество страниц: 332 с. 71 02-5/450-5

58. L.N. Lyadova et al., Implementation of distant learning portals based on CASE-technology METAS, // International Journal "Information Technologies and Knowledge", 2008. T. 2. No 5. C. 489-^95

59. Хавьер Гарсия, Герман Голдшмидт Разработка составных бизнес-сервисов на базе сервисно-ориентированной архитектуры [Электронный ресурс] / Режим доступа: http://www.ibm.com/developemorks/m/library/ws-soa-composite/ - Загл. с экрана. - Яз. рус.

60. К.Г. Маркс Капитал Т. 1 - Маркс К., Энгельс Ф. Соч. - 2-е изд. -Издательство политической литературы Т. 23. 1985-907 с.

61. Рогозов Ю.И. Понятие метасистемы как методологической основы создания системы. // Промышленные АСУ и контроллеры. 2013. №2. С.38-46

62. Дегтярев, A.A. Способ описания функциональной единицы модуля / A.A. Дегтярев, Э.Г. Бербеков //Тезисы доклада //Сборник материалов X ВНК студентов и аспирантов «Техническая кибернетика, радиоэлектроника и системы управления- Таганрог: Изд-во ТТИ ЮФУ, 2010, - Т.1- С. 128

63. Дегтярев, A.A. Сценарий создания программного модуля в LAB VIEW / A.A. Дегтярев, A.A. Сарана // Сборник материалов X ВНК студентов и аспирантов «Техническая кибернетика, радиоэлектроника и системы управления- Таганрог: Изд-во ТТИ ЮФУ, 2010, - Т. 1- С. 139

64. Рогозов, Ю.И. Метод быстрого построения корпоративных бизнес приложений / Ю.И. Рогозов, A.C. Свиридов, A.A. Дегтярев // Технологии разработки информационных систем: сборник материалов Международной научно-технической конференции. Том1. - Таганрог: Издательство Технологического института ЮФУ, 2011 - С. 102-109

65. Y. Rogozov, A. Degtyarev Meta-Model and Platform for quickly build software applications. Труды 6-ого весеннего/летнего коллоквиума молодых исследователей в области программной инженерии (SYRCoSE 2012), 30-31 мая 2012 г. - Пермь, Россия: ISBN 978-5-91474-019-8, 230 стр., С. 21 - 27

66. Бутаков Е. А. Методы создания качественного программного обеспечения ЭВМ. М.: Энергоатомиздат, 1984. - 232 с.

67. Вигерс К.И. Разработка требований к программному обеспечению / Пер. с англ. М.: Изд-во Русская редакция, 2004. - 576 с.

68. Саркисян А. А. Повышение качества программ на основе автоматизированных методов. М.: Радио и связь, 1991. - 160 с.

69. Abrial J.-R. The В Book: assigning programs to meaning // Cambridge University Press, 1996

70. Back R.-J., von Wright J. Refinement Calculus: A systematic Introduction II Springer Verlag, 1998

71. Карпов Ю.Г. Теория автоматов. СПб.: Питер, 2002. - 224 с.

72. Booch G. Object-Oriented Design with Applications // Redwood City, CA: Ben-jamin/Cummings, 1991

73. Рогозов, Ю.И. Основы метода конфигурирования функциональности программных средств гидроакустических информационных систем / Ю.И. Рогозов, A.A. Дегтярев // Технологии разработки информационных систем ТРИС-2013: материалы конференции. Том 1,- Таганрог: Издательство Технологического института ЮФУ, 2013, 144 с. - С.25-31

74. Рогозов, Ю.И. Метод конфигурирования функциональности программных средств гидроакустических информационных систем / Ю.И. Рогозов, A.A. Дегтярев// Известия ЮФУ. Технические науки. 2014. N1. - С. 13-18

75. Потехина, A.B. Уровни автоматизации процессов информационного обеспечения / А. В. Потехина, Ю. И. Ремешков, Ю.М. Шерстюк // Сб. трудов X НТК НПП "Полет", Н-Новгород, 1999. С. 20-22.

76. Дегтярев A.A. Анализ методов описания структуры автоматизированных систем. Сборник трудов VI Всероссийской научной школы-семинара молодых ученых, аспирантов и студентов «Семантическая интерпретация и интеллектуальная обработка текстов, их приложения в информационном поиске, хранении и обработке документов в электронных архивах и библиотеках». - Таганрог: Изд-во ТТИ ЮФУ, 2012.-240с.- С. 211-213

77. Рогозов, Ю. И. Построение классификации характеристик программного обеспечения с целью идентификации понятий предметной области как характеристик/ Ю.И. Рогозов, A.C. Свиридов, A.A. Дегтярев// Информатизация и связь. 2011.No3.-C. 80-83

78. Martin R.C. Agile Software Development, Principles, Patterns, and Practices.-Prentice Hal, 2002. 552 с. - Англ.

79. Рогозов, Ю.И. Формальные модели механизма конфигурирования функциональности программных средств гидроакустических информационных систем / Ю.И. Рогозов, A.A. Дегтярев // Информатизация и связь. 2013. N2. - С. 28-31.

80. Анфилатов В. С., Бухарцев Ю. А., Ходасевич Г. Б., Шелутко JI. А. Программирование задач управления. JL: ВАС, 1984. - 524 с.

81. Рогозов, Ю. И. Классификация характеристик линеек продуктов программного обеспечения / Ю.И. Рогозов, A.C. Свиридов, A.A. Дегтярев // Технологии разработки информационных систем: сборник материалов Международной научно-технической конференции. Т. 1. - Таганрог: Издательство Технологического института ЮФУ, 2011 - С. 65-68

82. Горбатов В.А. Основы дискретной математики. - М.: Высш. школа, 1986. -311с.

83. Свами, М. Графы, сети и алгоритмы / Свами, М., Тхуласираман И. - М.: Мир, 1984.-455 с.

84. Рогозов, 10. И. Метрики для оценки потенциала к формированию линейки продуктов программного обеспечения из набора похожих программных продуктов / Ю.И. Рогозов, A.C. Свиридов, A.A. Дегтярев // Технологии разработки ин-

формационных систем: сборник материалов Международной научно-технической конференции. Том1. - Таганрог: Издательство Технологического института ЮФУ, 2011-С. 78-82

85. Вагин В.Н., Головина Е.Ю., Загорянская A.A., Фомина М.В. Достоверный и правдоподобный вывод в интеллектуальных системах. -М.: ФИЗМАТЛИТ, 2004. 704 с.

86. Дегтярев A.A. Подход к построению программного обеспечения гидроакустических информационных систем ближнего действия // Труды одиннадцатой всероссийской конференции «Прикладные технологии гидроакустики и гидрофизики». - СПб.: Наука,2012. - 504с. - С. 140-142

87. Дегтярев A.A. Концепция инструментального средства для построения и адаптации информационных систем. // Информационные технологии, системный анализ и управление - ИТСАиУ-2012/ Сборник трудов X Всероссийской научной конференции молодых ученых аспирантов и студентов. - Таганрог: Издательство Южного федерального университета, 2012 - Т.1. - С. 43-46

88. Дегтярев A.A. Конфигурирование функциональности программных средств гидроакустических информационных систем. // Международная научно-практическая конференция аспирантов и студентов "Инженерия программного обеспечения 2013" //: Тезисы докладов (10-14 июня 2013г., г. Киев) - С. 33-34.

89. Дегтярев A.A. Анализ способов сокращения семантического разрыва при разработке программного обеспечения. // Технологии разработки информационных систем ТРИС-2012: материалы конференции. Том 1. - Таганрог. Издательство Технологического института ЮФУ, 2012. - С. 146-151

90. Yury Rogozov, Alexander Sviridov and Alexey Degtyarev. Analysis and Perspective of Development of Software with Dynamic Stricture [Электронный ресурс] / Middle-East Journal of Scientific Research 16 (9): 1224-1229, 2013. © IDOSI Publications, 2013. Режим доступа: http://www.idosi.org/meisr/mejsrl 6(9) 13/11 .pdf - Загл. с экрана.-Яз. англ.

91. Эрик Фримеи, Элизабет Фримен. Паттерны проектирования. - СПб.: Питер, 2011 -656с.

92. Дегтярев A.A. Архитектура программного ядра для построения информационных систем сбора, обработки и хранения данных на примере малоканальных гидроакустических систем // Высокопроизводительные вычислительные системы: Сб. науч. тр. Вып. 2. - Таганрог: Изд-во ЮФУ, 2012' - С. 7 - 11

93. Гамма Э., Хелм Р., Джонсон Р., Влиссидес Дж. Приемы объектно-ориентированного проектирования: паттерны проектирования. СПб: Питер, 2001.368 с.

94. Балашов Е. П., Пузанков Е. В. Проектирование информационно управляющих систем. М.: Радио и связь, 1987. - 256 с.

95. Дегтярев A.A. Разработка инвариантного ядра программного обеспечения гидроакустических информационных систем // VIII Ежегодная научная конференция студентов и аспирантов базовых кафедр Южного научного центра РАН: Тезисы докладов (11-26 апреля 2012г., г. Ростов-на-Дону). Ростов н/Д: Изд-во ЮНЦ РА, 2012. 458с.- С. 123-125

96. Дегтярев A.A., Дегтярева Е.Е., Рогозов Ю.И. Конфигурируемый каркас для гидроакустических компьютеризированных приборов // Свидетельство о государственной регистрации программы для ЭВМ №201366087 от 23 октября 2013 года.

97. Рогозов, Ю.И. Оценка эффективности построения программных средств гидроакустических информационных систем с использованием конфигурируемого программного каркаса [Электронный ресурс] / Ю.И. Рогозов, A.A. Дегтярев // Инженерный вестник дона. 2013 Режим доступа: http:/Avvvvv.ivdon.ru/magazine/archive/n4y2013/1877 - Загл. с экрана. - Яз. рус.

98. Заковоротнов Е.А., Дегтярева Е.Е., Дегтярев A.A., Малыхина О.В. Программа оперативного сбора , обработки и хранения информации для промерного эхолота. // Свидетельство о государственной регистрации программы для ЭВМ №2011618931 от 16 ноября 2011 года.

ПРИЛОЖЕНИЕ 1. иМЬ ДИАГРАММА КЛАССОВ ПРОГРАММНОГО КАРКАСА

ПРИЛОЖЕНИЕ 2. ФРАГМЕНТЫ ИСХОДНОГО ТЕКСТА РЕАЛИЗАЦИИ

ПРОГРАММНОГО КАРКАСА

Файл algorithmheap.h

//Модуль AlgorithmHeap, главным образом предназначен для хранения и поиска //экземпляров алгоритмов( плагинов присутствующих в системе). #ifndef ALGORIТНМНЕАР_Н #define ALGORIТНМНЕАР_Н #include <QObject> #include "sensordataadaptor.h" struct AlgorithmHeapPrivate; class IAlgorithmPlugin;

struct AlgHeapEntry {

AlgHeapEntry()

plugin(NULL), context(NULL),

bindedAdaptorType(S DA_TYPE_NONE), systemlnstance(NULL), enabled(false)

{ } //!

IAlgorithmPlugin* plugin; //!

void* context; //!

AdaptorType bindedAdaptorType; //!

void* systemlnstance; //!

bool enabled;

};

class AlgorithmHeap : public QObject {

Q_OBJECT public: //!

explicit AlgorithmHeap(QObject *parent = 0); //! Регистрация плагина обработки

bool registerAlgPlugin( IAlgorithmPlugin* algPlugin, bool enabled );

/ / ! Приявязка алгоритма к адаптеру

bool bindToAdaptor( const QString& pluginName,

const AdaptorType adaptorType);

//!

AlgHeapEntry* getPluginByName(const QStringS name); //I

QList<AlgHeapEntry*> getAlgorithmsByParamAccepted( const QString& paramName );

//!

bool setPluginEnable( const QString& name, bool isEnable ); signals:

void pluginRegistered(const QStringS name, IAlgo-rithmPlugin* algPlugin);

public slots:

/ / i Загрузка и регистрация плагина обработки

bool loadAlgPlugin( const QStringS algPluginPath ); //! Update named params

void onNamedParamUpdate(const QStringS name, bool deferred, const QVariantS value);

void onNamedParamUpdate(const QStringS name, bool deferred, QVariant* valueArray, size_t arraySize); private:

AlgorithmHeapPrivate* p;

};

#endif // ALGORITHMHEAP_H

Файл algorithmheap.cpp

#include <QMap>

#include <QStringList>

#include "exports/algorithmheap.h"

#include "ialgorithmplugin.h"

#include "exports/config_params_holder.h"

#include "core_syslog.h"

#if defined(WIN32)

#include <Windows.h>

#endif

struct AlgorithmHeapPrivate {

//!

AlgorithmHeapPrivate()

m_pluginHeap( QMap<QString, AlgHeapEntry*>() )

{ } //!

QMap<QString, AlgHeapEntry*> m_pluginHeap;

}; //!

AlgorithmHeap::AlgorithmHeap(QObject *parent) : QObject(parent), p( new AlgorithmHeapPrivate )

{ }

/ / i Регистрация плагина обработки

bool AlgorithmHeap::registerAlgPlugin( IAlgorithmPlugin* algPlugin, bool enabled ) {

CORE_LOG(CORE_NOTICE, QString::fromUtf8("register algorithm plugin: ") + algPlugin->objectName() );

AlgHeapEntry* entry = new AlgHeapEntry();

entry->plugin = algPlugin; entry->enabled = enabled; //! Create plugin context

if (!algPlugin->prepareContext(&entry->context)) {

CORE_LOG(CORE_WARNING, QString::fromUtf8("Can't create context for ") + algPlugin->objectName() ); entry->context = NULL;

>

//i add new entry to the plugin heap

p->m__pluginHeap. insert ( algPlugin->objectName( ), entry ); // Connect entity params transferring interface with

plugin

connect(algPlugin, SIGNAL(setNamedParam(const QStringS, bool, const QVariantS)),

this, SLOT(onNamedParamUpdate(const QStringS, bool, const QVariantS)) );

connect(algPlugin, SIGNAL(setNamedParam(const QStringS, bool, QVariant*, size_t)),

this, SLOT(onNamedParamUpdate(const QStringS, bool, QVariant*, size_t)) );

emit pluginRegistered(algPlugin->objectName(), algPlugin); return true;

}

/ / ! Привязка алгоритма к адаптеру данных

bool AlgorithmHeap::bindToAdaptor( const QStringS pluginName,

const AdaptorType adap-

torType) {

CORE_LOG(CORE_NOTICE, QString::fromUtf8("bind ") + pluginName + QString::fromUtf8(" to ETH_LIB channel ") + QString:: number(adaptorType) ); .

AlgHeapEntry* entry = p->m_pluginHeap[pluginName];

if ( NULL == entry I I NULL == entry->plugin ) {

CORE_LOG(CORE_ERROR, QString::fromUtf8("Can't find plugin

'") + pluginName + QString::fromUtf8(.....) );

return false;

>

entry->bindedAdaptorType = adaptorType; return true;

}

/ / ! Загрузка и регистрация плагина обработки

typedef IAlgorithmPlugin* (*getInstanceFunc)(QObject* parent); bool AlgorithmHeap::loadAlgPlugin( const QStringS algPluginPath

)

{

AlgHeapEntry* entry = new AlgHeapEntry();

CORE_LOG(CORE_NOTICE, QString::fromUtf8("Load plugin '") +

algPluginPath + QString::fromUtf8(.....) );

QString pluginPath = QString :: fromUtf 8 ( "pluginsW " ) + algPluginPath + QString::fromUtf8(".dll");

LPCWSTR pluginPathW32 = (LPCWSTR)pluginPath.utf16(); entry->systemlnstance = (void*)LoadLibrary( pluginPathW32 ); CORE_LOG(CORE_NOTICE, QString: :fromUtf8("Full path: '") + pluginPath + QString::fromUtf8(.....) );

if (NULL 1= entry->systemlnstance) {

// try to map getlnstance function getlnstanceFunc getlnstancePtr; getlnstancePtr = (getlnstanceFunc ) GetProcAddress ( (HMODULE)entry->systemInstance,"getlnstance");

if (NULL != getlnstancePtr) {

IAlgorithmPlugin* plugin = getlnstancePtr(this);

if (NULL != plugin) {

entry->plugin = plugin; //! Create plugin context

if (!plugin->prepareContext(&entry->context)) {

CORE_LOG(CORE_WARNING, QString::fromUtf8("Can't prepare plugin context"));

entry->context = NULL;

}

//! add new entry to the plugin heap plugin->setObjectName(algPluginPath); p->m_pluginHeap.insert( plugin->objectName(), entry );

// Connect entity params transferring interface with plugin

connect(plugin, SIGNAL ( setNamedParam( const QStringS, bool, const QVariantS)),

this,

SLOT(onNamedParamUpdate(const QStringS, bool, const QVariantS)) );

connect(plugin, SIGNAL (setNamedParam(const QStringS, bool, QVariant[], size_t)),

this,

SLOT(onNamedParamUpdate(const QStringS, bool, QVariantf], size_t)) ) ;

emit pluginRegistered(plugin->objectName(),

plugin);

return true;

>

else

CORE LOG(CORE_ERROR, QString::fromUtf8("Can11 create plugin algorithm object")); }

else

CORE_LOG(CORE_ERROR, QString::fromUtf8("Can't get plugin getlnstance method"));

FreeLibrary((HMODULE)entry->systemInstance);

}

else

CORE_LOG(CORE_ERROR, QString::fromUtf8("Can't get plugin DLL instance..."));

delete entry; return false;

}

//!

AlgHeapEntry* AlgorithmHeap::getPluginByName(const QStringS

name)

{ return p->m_pluginHeap[name]; } //!

bool AlgorithmHeap::setPluginEnable( const QStringS name, bool

isEnable ) {

CORE_LOG(CORE_NOTICE, QString::fromUtf8("Set plugin '") + name + QString::fromUtf8("' enabled to ") + QString::number(isEnable));

AlgHeapEntry* entry = p->m_pluginHeap[name];

if (NULL != entry) {

entry->enabled = isEnable;

if (isEnable) {

// Set SIGNAL/SLOT connection for plugin and algorithm

heap

connect(entry->plugin, SIGNAL(setNamedParam(const QStringS, bool, const QVariantS)),

this, SLOT(onNamedParamUpdate(const QStringS, bool, const QVariantS)) );

connect(entry->plugin, SIGNAL(setNamedParam(const QStringS, bool, QVariant[], size_t)),

this, SLOT(onNamedParamUpdate(const

QStringS, bool, QVariant[], size_t)) ); >

else {

// Break SIGNAL/SLOT connection for plugin and algorithm

heap

disconnect(entry->plugin, SIGNAL(setNamedParam(const QStringS, bool, const QVariantS)),

this, SLOT(onNamedParamUpdate(const QStringS, bool, const QVariantS)) );

disconnect(entry->plugin, SIGNAL (setNamedParam(const QStringS, bool, QVariantf], size_t)),

this, SLOT(onNamedParamUpdate(const

QStringS, bool, QVariant[], size_t)) ); }

return true;

}

else {

CORE_LOG(CORE_ERROR, QString::fromUtf8("Can't find '") + name + QString::fromUtf8("' plugin "));

return false;

}

} //!

QList<AlgHeapEntry*> Algo-

rithmHeap::getAlgorithmsByParamAccepted( const QStringS paramName ) {

CORE_LOG(CORE_NOTICE, QString::fromUtf8("Get plugin by params acceptes, param: 1") + paramName + QString::fromUtf8("'"));

QString pluginName = paramName.split("/", QString::SkipEmptyParts).at(0);

QList<AlgHeapEntry*> result_list; // Special case for '*' wildcard

if ( pluginName == QString("*") ) {

// Add all registered plugins to the result list QMap<QString, AlgHeapEntry*>::iterator i; for( i = p->m_pluginHeap". begin (); i != p-

>m_pluginHeap.end(); i++ ) {

AlgHeapEntry* entry = i.value(); if (NULL != entry && entry->enabled) result_list « i.value();

>

return result_list; }

else {

AlgHeapEntry* entry = p->m_pluginHeap[ paramName.split("/", QString::SkipEmptyParts).at(0) ];

if (NULL != entry && entry->enabled)

return QList<AlgHeapEntry*>() « entry;

else {

CORE_LOG(CORE_NOTICE/ QString::fromUtf8("No one plugin accepted param '") + paramName + QString::fromUtf8("'")); return QList<AlgHeapEntry*>();

}

}

>

void AlgorithmHeap::onNamedParamUpdate(const QStrings name,

bool deferred, const QVariantS value) {

C0RE_L0G(C0RE_N0TICE, QString::fromUtf8("Update named params, '") + name + QString::fromUtf8("' is set to ") + value.toString() );

QList<AlgHeapEntry*> acceptedAlgorithmList = getAlgorithmsBy-ParamAccepted(name);

if ( !acceptedAlgorithmList.empty() ) {

for( long idx = 0; idx < acceptedAlgorithmList.size();

++idx)

{

AlgHeapEntry* entry = acceptedAlgorithmList.at(idx);

if (NULL != entry) {

if (entry->enabled) {

//CORE_LOG(CORE_NOTICE, QString::fromUtf8("Update param for ") + entry->plugin->objectName() );

entry->plugin->onNamedParamUpdate(name, deferred,

value);

}

>

else

CORE_LOG(CORE_WARNING, QString::fromUtf8("NULL entry

at accepted plugins list") ); }

>

QString pluginName = name.split("/", QString::SkipEmptyParts).at(0);

if (pluginName == QString::fromUtf8("*"))

ConfigParamsHolder::setConfigParam(name, QVari-

ant(value)); }

void AlgorithmHeap::onNamedParamUpdate(const QStrings name,

bool deferred, QVariant* valueArray, size_t arraySize) {

CORE_LOG(CORE_NOTICE, QString::fromUtf8("Update named params, '") + name + QString::fromUtf8("' with array of ") + QString::number(arraySize) );

QList<AlgHeapEntry*> acceptedAlgorithmList = getAlgorithmsBy-ParamAccepted(name);

if ( !acceptedAlgorithmList.empty() ) {

for( long idx = 0; idx < acceptedAlgorithmList.size();

++idx)

{

AlgHeapEntry* entry = acceptedAlgorithmList.at(idx);

if (NULL != entry) {

if (entry->enabled) {

CORE_LOG(CORE_NOTICE, QString::fromUtf8("Update param for ") + entry->plugin->objectName() );

entry->plugin->onNamedParamUpdate(name, valueArray,

arraySize);

}

}

else

CORE_LOG(CORE_WARNING, QString::fromUtf8("NULL entry

at accepted plugins list") ); }

}

>

Файл config_params_holder.h

//Данный класс реализует хранение и обновление «конфигурационных» параметров ядра.

//Такие параметры доступны всем сущностям ядра без проверки префикса принимающей //сущности в имени параметра;

#ifndef _CONFIG_PARAMS_HOLDER_H_ #define _CONFIG_PARAMS_HOLDER_H_ #include <QObject> #include <QMap> #include <QString> #include <QVariant>

class ConfigParamsHolder : public QObject {

Q_OBJECT public:

ConfigParamsHolder(QObject* parent = 0) QObj ect(parent)

{

configParams.clear(); m_instance = this;

}

static void setConfigParam(const QString& name, const QVari-

ant value) {

if (NULL != m_instance)

m_instance->configParams.insert(name, value);

}

static bool getConfigParam(const QStringS name, QVariantS

value)

{

if ( NULL != m_instance.) {

QMap<QString, QVariant>::const_iterator iter = m_instance->configParams.find(name);

if ( iter != m_instance->configParams.end() ) {

value = *iter; return true;

}

}

return false;

>

virtual ~ConfigParamsHolder() {

}

private:

Q_DISABLE_COPY(ConfigParamsHolder); QMap<QString, QVariant> configParams; static ConfigParamsHolder* m_instance;

};

#endif /** CONFIG PARAMS HOLDER H **/

Файл config_params_holder.cpp

#include "exports/confiq params holder.h"

ConfigParamsHolder* ConfigParamsHolder::m_instance = NULL; Файл SensorDataAdaptor.h

//Класс реализует работу с каналом приема данных от аппаратной части ГА прибора

//и запуск цепочки обработки принятых данных внутри алгоритмов (плагинов)

#ifndef SENSORDATAADAPTOR_H

#define SENSORDATAADAPTOR_H

#include <QObject>

#include <QThread>

#include <QVariant>

#undef MULTITHREAD_ETH_CB_CONTEXT

struct SensorDataAdaptorPrivate;

struct SamplesData;

class Framework;

enum SDA_FABRIC_TYPES {

SDAF_TYPE_ETH_LIB = 0, SDAF_TYPE_VPLAYER, SDAF_TYPE_INVALID = -1

};

enum AdaptorType {

#if 0

SDA_TYPE_SONIC_DEPTH_FINDER = 0, SDA_TYPE_PROFILOGRAPH, SDA_TYPE_LF_SONAR_RIGHT, SDA_TYPE_LF_SONAR_LEFT, SDA_TYPE_HF_SONAR_RIGHT, SDA_TYPE_HF_SONAR_LEFT, #else

SDA_TYPE_HF_SONAR_LEFT = 0, S DA_TYPE_HF_S ONAR_RIGHT, SDA_TYPE_LF_SONAR_LEFT, SDA_TYPE_LF_SONAR_RIGHT, SDA_TYPE_SONIC_DEPTH_FINDER, SDA_TYPE_PROFILOGRAPH, SDA_TYPE_UART_0, #endif

S DA_TYPE_NONE

};

class SensorDataAdaptor : protected QThread {

Q_OBJECT public:

const AdaptorType getType() const; / / ! Получить имя адаптера по его типу

static const QString getAdaptorName(const AdaptorType adap-

torType);

public :

static SensorDataAdaptor* create( const SDA_FABRIC_TYPES fabricType,

const AdaptorType adap-

torType,

const QString& data-

Source,

QObject* parent = 0);

bool isCreated(); signals :

// i Наличие новой порции данных

void hasSynchronizedData(const SamplesData* sensorData); public slots:

/ / Начать генерацию данных

virtual void start(unsigned int mode) = 0; / / Остановить генерацию данных virtual void terminate() = 0;

// ! Обновление именованного параметра ( Реакция на изменение параметров / / ! Внешними компонентами системы ) //! @param name - имя параметра //! @param value - значение параметра

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