Учебное пособие ПАС
.pdfКомпозиция является еще одним отношением, родственным агрегации. Но если в агрегации агрегаты принадлежат классу или объекту, то в композиции существует более слабая связь. Так, студенты с вузом находятся в отношении композиции, тогда как факультеты, которые входят в состав вуза (т. е. являются его неотъемлемой частью или агрегатами), связаны с ним отношением агрегации. На 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