Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Учебное пособие ПАС

.pdf
Скачиваний:
29
Добавлен:
15.03.2015
Размер:
2.72 Mб
Скачать

Питание

Новый канал источника питания

 

Каналы

 

 

 

 

 

 

 

 

 

Выделить

Тип

Напряжение, В

Ток, А

Добавить

 

+

5

0,2

 

 

 

 

 

 

 

+

12

0,4

Редактировать

 

 

 

 

 

 

-

5

0,1

 

 

 

 

 

Удалить

 

~

30

0,5

 

 

 

 

 

Подробная информация о канале

Тип

Напряжение, В

Ток, А

Точность установки (+/-), %

Нестабильность по нагрузке (+/-), %

Пульсации (для DC), не более, %

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

Особые требования

ип

+

 

 

Напряжение, В

Ток, А

Точность установки (+/-), %

Нестабильность по нагрузке (+/-), %

Пульсации (для DC), не более, %

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

Особые требования

Отмена O.K.

Рис. 5. Форма представления данных о требованиях по питанию

Функционал

Модуль контроля, диагностики и индикации функционирования

Напряжение источников питания

Ток нагрузки источников питания

Температура

 

 

 

 

 

 

 

 

 

 

 

t min, oC

 

 

 

 

 

 

U min, В

 

 

 

I min, А

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

t max, oC

 

 

 

 

 

U max, В

 

 

I max, А

 

 

 

 

 

Погрешность контроля, %

 

 

Погрешность контроля, %

 

 

Погрешность контроля, %

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Число каналов

 

 

 

 

Число каналов

 

 

 

 

Число каналов

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Примечания

Примечания

Примечания

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Уровень относительной влажности

Уровень вибрации

 

 

Уровень задымления

 

 

 

RH min, %

 

 

 

 

 

 

 

Кпр min, Гц

 

 

 

 

 

 

 

 

Наличие

Число каналов

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

RH max, %

 

 

 

 

 

 

 

Кпр max, Гц

 

 

 

 

 

 

 

 

Примечания

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Погрешность контроля, %

 

 

 

 

Погрешность контроля, %

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Число каналов

 

 

 

 

 

 

Число каналов

 

 

 

 

 

Несанкционированный доступ

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Примечания

 

Примечания

 

 

 

 

Наличие

Число каналов

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Примечания

Отмена O.K.

Рис. 6. Форма представления входных данных о модуле контроля, диагностики и индикации функционирования

21

4. СТРУКТУРА И ФОРМА ПРЕДСТАВЛЕНИЯ ВЫХОДНЫХ ДАННЫХ

Назначение выходных данных – представить пользователям необходимую информацию об имеющихся в библиотеке АИС ММПП модулях.

Структура входных данных

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

Приведем основные элементы языка и соответствующие теги, представляющие эти элементы.

Элемент

Тег

Назначение

 

Атрибуты

 

 

 

 

 

 

Модуль

<ModuleParams>

Является

контейнером

title

– назва-

 

 

для всех выходных дан-

ние и тип мо-

 

 

ных – характеристик мо-

дуля

 

 

 

 

дуля

 

 

 

 

 

 

Раздел

<Tab>

Обеспечивает

группи-

title

– назва-

 

 

ровку параметров

по

ние раздела

 

 

наиболее

крупным

ин-

 

 

 

 

 

формационным

блокам

 

 

 

 

 

(конструктив, питание и

 

 

 

 

 

т.д.).

 

 

 

 

 

 

 

 

Является

контейнером

 

 

 

 

 

для подразделов и пара-

 

 

 

 

 

метров

 

 

 

 

 

 

Подраздел

<Section>

Обеспечивает

группи-

title

– назва-

 

 

ровку параметров.

 

ние

подраз-

 

 

Является

контейнером

дела

 

 

 

 

для параметров.

 

 

 

 

 

Параметр

<Parameter>

Отдельный

 

параметр.

name

имя

 

 

Может размещаться как в

параметра;

 

 

разделе, так и в подраз-

value

- значе-

 

 

деле

 

 

 

ние

парамет-

 

 

 

 

 

 

ра;

 

 

 

 

 

 

 

 

dimension

-

 

 

 

 

 

 

размерность

22

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

Форма представления выходных данных

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

Для преобразования структуры выходных данных в форму представления можно использовать технологию XSLT [14], позволяющие преобразовывать различные языки, базирующиеся на технологии XML, друг в друга. Это возможно, так как XHTML полностью построен на технологии XML и, фактически, является XML-версией HTML – популярного языка смысловой разметки гипертекста.

Представляется целесообразным визуализировать выходную информацию в табличной форме (рис. 7).

23

Название и тип модуля

Изображение

Раздел

 

 

 

 

 

 

Имя параметра

 

Значение параметра

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Раздел

Подраздел

Подраздел

Рис. 7. Форма представления выходных данных

24

5. СТРУКТУРА ПРОГРАММЫ

Архитектура системы

В настоящее время при создании информационных систем наиболее распространенной и прогрессивной является методология объектноориентированного программирования [7]. Она позволяет создавать сколь угодно сложные программные комплексы.

Объектно-ориентированное программирование позволяет использовать множество различных технологий, в частности, разработку приложений, направляемую доменом приложения (DDD – domen driven design) [8– 11], которая и была принята за основу при разработке АИС ММПП.

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

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

Следующим идет слой объектно-реляционных преобразователей. Он необходим, так как основной моделью при создании приложения является объектная модель, а объекты этой модели не могут быть непосредственно сохранены в реляционной СУБД. Для этого необходимо провести некоторые преобразования. Этим занимаются объекты – экземпляры классов, производных от базового класса Mapper (объектно-реляционный преобразоватетль).

Далее идет основной слой – слой объектной модели. В нем реализованы основные бизнес-правила. Объекты данного слоя, являются представителями объектов «реального мира».

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

Над слоем объектной модели расположен слой входного контроллера. Его задача преобразовывать запросы протокола HTTP в вызовы методов объектов слоя объектной модели.

25

Управление

Данные

 

 

Представление

 

 

(графический интерфейс пользователя)

 

 

Входной контроллер

 

 

Объектная модель

Домен приложения

Хранилище данных

Объектно-реляционные преобразователи

База данных

 

 

 

Рис. 8. Слои приложения

26

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

Основные понятия объектно-ориентированного программирования

Объект

Мы живем в мире объектов. Стол, автомобиль, ручка, классная доска

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

Объект – это общефилософское понятие, которое изучалось философами на протяжении длительного времени.

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

Помимо атрибутов объекты обладают некоторыми функциональными возможностями, которые в объектно-ориентированном программировании (ООП) называют операциями или методами. Так автомобиль может ездить, корабль – плавать, компьютер – производить вычисления.

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

Класс

Объект – это экземпляр некоторого класса объектов или просто класса. Так автомобиль Audi 6 является экземпляром класса автомобилей данной модели, приемник Sony SW-7600G так же будет представителем класса

27

одноименных приемников. Таким образом, класс – это абстрактное понятие. Отношение класса и объекта примерно такое же, как платоновские идеи и объекты реального мира. На UML – унифицированном языке моделирования – класс отображается в виде прямоугольника, разделенного на три части. В первой содержится имя класса, во второй – атрибуты, в третьей – методы (рис. 9, а).

Наследование и полиморфизм

Классы могут быть связаны друг с другом различными отношениями. Одним из основных таких отношений является отношение класс – подкласс, известный в объектно-ориентированном программировании как наследование. Например, класс автомобилей Audi 6 является подклассом легковых автомобилей, который в свою очередь входит в более крупный класс автомобилей, а последний является подклассом класса транспортных средств, который помимо автомобилей включает в себя самолеты, корабли поезда и т. д. Примером подобных отношений, являются системы классификации в ботанике и зоологии. Отношением, обратным наследованию, является обобщение или генерализация. Она указывает, что некий класс, является более общим (обобщенным) классом другого класса. Класс транспортных средств, к примеру, является генерализацией классов автомобилей, самолетов и кораблей. В UML принято пользоваться именно понятием генерализация, что отразилось и в символе, представляющем это отношение: большая не закрашенная стрелка, направленная на класс, являющимся обобщением некоторых классов (рис. 9, б).

При наследовании все атрибуты и методы родительского класса наследуются классом-потомком. Наследование может быть многоуровневым, и тогда классы, находящиеся на нижних уровнях иерархии, унаследуют все свойства (атрибуты и методы) всех классов, прямыми или косвенными потомками которых они являются. Класс B унаследует атрибуты и методы класса A и, следовательно, будет обладать атрибутами A, B, C и D и методами A, B, C и D, а класс C – атрибутами A, B, C, E, F и методами A, B и E.

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

28

Рис. 9. Изображения класса и отношений генерализации в UML: а - изображение класса; б - одиночное наследование; в - множественное наследование

29

Такая проблема известна как «Алмаз Никсона». Ее суть состоит в том, как должен повести себя Никсон, который является квакером и в то же время принадлежит к республиканской партии. А известно, что квакеры – пацифисты, в то время как республиканцы – сторонники военного решения проблем. На лицо явная коллизия. В разных языках, поддерживающих парадигму ООП и допускающих множественное наследование (а оно допустимо не во всех языках и, например, язык Java, широко распространенный в сфере интернет-приложений, не поддерживает множественного наследования), она преодолевается по-разному, но в любом случае необходимо быть предельно осторожным при возникновении таких ситуаций.

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

Агрегация

Другим основным видом отношений между классами и объектами является агрегация. Она означает, что один класс содержит в себе в качестве агрегатов (составных частей, подсистем) другие классы. Так автомобиль состоит из кузова, двигателя, трансмиссии и т.п., а в состав приемопередающего устройства входят передатчик, приемник и антенно-фидерное устройство. В UML агрегации обозначаются в виде линии с закрашенным ромбом на конце. Агрегация имеет кратность. Так автомобиль обычно содержит один двигатель, который в свою очередь может принадлежать только одному автомобилю. Автомобиль может обычно содержать от двух до пяти дверей. В свою очередь каждая дверь может принадлежать лишь одному автомобилю.

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

Пусть объект E имеет методы f1() и f2() (рис. 10). Чтобы воспользоваться ими, надо сначала получить указатель на корневой объект А, затем на объект С, что в объектно-ориентированном программировании обычно записывается следующим образом: A.C

Далее получаем указатель на D, так как он является агрегатом C, и, наконец, вызываем требуемые методы f1() и f2(): A.C.D.f1() и A.C.D.f2()

30