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

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

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

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

Апология ООП

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

31

Рис. 11. Иерархическая система и ее представление в виде дерева

32

Классы объектной модели

Таблица 1. Классы объектной модели

Имя класса / имя про-

Описание

граммного класса

 

 

 

Элемент / Element

Является базовым для всех типов объектов, яв-

 

ляющихся составными частями РЭА (БНК, элек-

 

тронные модули, электрические соединители и

 

т.д.).

 

Основными атрибутами являются:

 

ID – уникальный идентификатор элемента;

 

Name – наименование элемента;

 

Type – тип элемента (модуль, БНК, электриче-

 

ский соединитель и т.д.).

 

В качестве агрегата содержит объект класса Це-

 

на (кратность 1:n).

 

Основным методом является Init(), который вы-

 

полняет инициализацию объекта. Используется

 

после извлечения объекта из библиотеки. Вы-

 

полняет обнуление идентификатора, снятия фла-

 

га, указывающего размещение объекта в обще-

 

доступной библиотеке. Таким образом, имити-

 

руется клонирование объекта, так как объект

 

уже не имеет прежних идентификаторов и при

 

помещении его в библиотеку он будет сохранен

 

как новый объект, который никак не связан с

 

прежним прототипом. В качестве входного па-

 

раметра выступает значение идентификатора. В

 

случае отсутствия входного параметра, иденти-

 

фикатор объекта обнуляется. Метод работает

 

рекурсивно для всех объектов-агрегатов. Воз-

 

вращаемое значение отсутствует

Электронный модуль /

Является базовым для всех классов модулей: от

Module

первого, до третьего уровней. В качестве агрега-

 

та содержит объект класса Функционал (крат-

 

ность 1:1)

Электронный модуль 1-

Программный эквивалент электронного модуля

го уровня

первого уровня. Наследуется от класса Элек-

 

тронный модуль. В качестве агрегата содержит

 

объект класса БНК-1 (кратность 1:1)

33

Электронный модуль 2-

Программный эквивалент электронного модуля

го уровня

второго уровня. Наследуется от класса Элек-

 

тронный модуль. В качестве агрегата содержит

 

объект класса БНК-2 (кратность 1:1) и электрон-

 

ного модуля первого уровня (кратность 1:n)

Электронный модуль 3-

Программный эквивалент электронного модуля

го уровня

третьего уровня. Наследуется от класса Элек-

 

тронный модуль. В качестве агрегата содержит

 

объект класса БНК-3 (кратность 1:1) и электрон-

 

ного модуля второго уровня (кратность 1:n)

БНК

Является базовым для БНК-1, 2 и 3. В качестве

 

агрегата содержит объект класса Електрический

 

соединитель (кратность 1:n)

БНК-1

Программный эквивалент БНК-1. Наследуется

 

от класса БНК

БНК-2

Программный эквивалент БНК-2. Наследуется

 

от класса БНК

БНК-3

Программный эквивалент БНК-3. Наследуется

 

от класса БНК

Требование по питанию

Обеспечивает информацией о требованиях по

/ PowerSupply

питанию электронного модуля

Электрический соедини-

Является программным эквивалентом физиче-

тель / ElectricCoupler

ского интерфейса. В качестве агрегата выступает

 

объект класса Контакт (кратность 1:n)

Контакт / Pin

Контакт электрического соединителя

Цена / Price

Обеспечивает информацией о стоимости эле-

 

мента, учитывая число заказываемых позиций

34

База данных

База данных является основой для ведения библиотеки элементов, задействованных в процессе магистрально-модульного принципа построения РЭА. Именно в базе данных будет сохраняться состояние программных объектов, являющихся аналогами реальных элементов – составных частей радиоэлектронной аппаратуры.

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

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

лью (DDD).

На рис. 12 приведена общая структура базы данных. На рис. 13 - конкретизация для модулей и БНК; рис. 14 – для физического интерфейса.

Основные объекты пользовательского интерфейса

Проект

В АИС ММПП все проектируемые сущности объединяются в проек-

ты.

В электронном каталоге пользователь может выбрать и заказать без создания проекта лишь готовые модули и компоненты. Если же требуется какая-либо конкретизация (например, указание необходимости экранов для БНК-1), то такой заказ можно осуществить лишь создав проект.

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

Проект содержит объект проектирования и полку. Проекты соответствуют проектируемым объектам: БЭМ-1,2,3; БНК-1,2,3 и т.д.

35

 

 

 

 

 

 

 

 

 

FunctionalityPrototy

 

 

 

 

 

 

 

 

 

 

 

PowerSupply

 

 

 

 

 

 

 

 

Pin

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ID

 

 

 

 

 

 

 

 

 

 

 

 

 

ID

 

 

 

 

 

 

 

 

 

ID

 

 

 

 

 

ModuleID

 

 

 

 

 

 

 

 

 

 

 

 

ElectricCouplerID

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Element

ID

Functionality

ID

ElectricCoupler

ID

BNKID

Module

BNK

 

ID

ID

Module3

Module2

Module1

 

ID

ID

ID

 

 

Module3ID

Module2ID

BNK3

BNK2

BNK1

 

 

ID

 

ID

ID

 

 

 

Рис. 12. Основные отношения БД АИС ММПП

36

Module

 

Element

BNK

 

 

 

 

ID

ID

 

 

 

 

ID

 

 

Name

HierarchicalLevel

 

 

HierarchicalLevel

 

 

Type

Kind

 

 

 

 

MaxWeight

 

 

LibraryFlag

 

 

 

 

 

InsertTime

BackElectricCouplerCount

 

 

 

 

 

UpdateTime

FrontElectricCouplerCount

 

 

 

 

 

UserId

 

 

 

MetricType

 

 

 

Step

 

 

 

Weight

 

 

 

Comments

 

Module3

 

Module2

 

ID

 

Module1

 

 

 

 

ID

ID

 

 

 

 

 

Module3ID

Module2ID

 

 

 

BNK3

 

BNK2

 

ID

 

 

 

 

 

B

 

ID

BNK1

 

 

 

B1

 

FormFactor

ID

 

 

 

B2

 

B

FormFactor

 

 

 

B3

 

B1

B

 

 

 

H

 

B2

H

 

 

 

H1

 

L

H1

 

 

 

L

 

L1

L

 

 

 

L1

 

H

L1

 

 

 

Base

 

H1

X1

 

 

 

AirCleaner

 

Y1

FirmnessElement

 

 

 

EarthBus

 

 

ScreenType

 

 

 

AirInlet

 

 

FieldStrength

 

 

 

RailRunner

 

 

PrintedCircuitCard

 

 

 

 

Рис. 13. Структура основных отношений для модулей и БНК

37

Element

ID

Name

Type

LibraryFlag

InsertTime

UpdateTime

UserId

MetricType

Step

Weight

Comments

 

ElectricCoupler

 

ID

BNK

BNKID

ID

ElectricCouplerType

HierarchicalLevel

MaleFemaleType

MaxWeight

PinNumber

BackElectricCouplerCount

BushCount

FrontElectricCouplerCount

 

Pin

ID

ElectricCouplerID

No

Name

Рис. 14. Структура отношений для электрических соединителей (физический интерфейс)

38

Впределах проекта можно создавать дочерни проекты. Так, проектируя БЭМ-3, можно создать дочерние проекты БЭМ-2. Над дочерним проектом можно работать точно также, как и над обычным проектом, но объект дочернего проекта является частью объекта родительского проекта и объект проектирования дочернего проекта отображается на дереве родительского проекта. Существует возможность быстрого перехода в дочерний проект непосредственно из дерева объекта проектирования.

Влюбой момент дочерний проект может быть сделан самостоятельным проектом. Справедливо и обратное: любой проект, можно сделать дочерним другого проекта, с условием соблюдения принципа иерархичности (У БЭМ-2 не может быть дочерних проектов БЭМ-2 и БЭМ-3, но могут быть БЭМ-1).

Помимо вышеперечисленного, проект может содержать раздел избранное.

У каждого зарегистрированного пользователя может быть неограниченное число проектов. Один из пользовательских проектов можно назначить активным и тогда в него можно добавлять объекты из электронного каталога с помощью кнопки «добавить в активный проект», даже если окно проекта закрыто.

Объект проектирования

Объект проектирования – это создаваемый электронный модуль, базовая несущая конструкция и т.д.

Информация об объекте проектирования представляется в виде древовидной структуры.

Объект проектирования неразрывно связан с проектом. У каждого проекта может быть лишь один объект проектирования.

Объект проектирования позволяет выполнять комплексирование РЭС путем добавления модулей в дерево.

В объекте проектирования можно менять местоположение модулей (с учетом конструктивной совместимости).

Ниже перечислены атрибуты объекта проектирования.

Иерархический уровень

Тип объекта

Обозначение

Состояние

Ниже переведены возможные состояния объекта проектирования.

В процессе разработки

Доступен лишь для разработчика

Доступен другим пользователям

Заявка на размещение в каталоге БЭМ

39

Помещен в каталог БЭМ (в данном случае изменение модуля, находящегося в каталоге невозможно; возможно изменять лишь копию модуля)

«Полка»

У каждого проекта имеется своя «полка» куда можно помещать объекты из избранного и электронного каталога. С полки можно перемещать объекты непосредственно сборку проекта. Фактически полка является избранным для данного проекта.

Активный проект

У каждого пользователя в каждый момент времени может быть лишь один активный проект. Как только один из проектов объявляется активным, у каждой позиции электронного каталога появляется кнопка «добавить в активный проект», которая позволяет добавить данную позицию в активный проект. Это значительно упрощает процесс комплексирования аппаратуры. Рядом с кнопкой «добавить в активный проект» имеется поле, позволяющее указать число добавляемых элементов данного типа.

Наличие активного проекта необязательно.

Избранное

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

Электронный каталог

Электронный каталог содержит доступные БНК, электронные модули

ипрочие комплектующие.

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

С каждым объектом в электронном каталоге ассоциированы следующие кнопки:

добавить в избранное;

добавить в активный проект (в случае наличия активного проекта);

добавить в проект (проекты);

поместить в корзину.

40