Звоните! 
 (926)274-88-54 
 Бесплатная доставка. 
 Бесплатная сборка. 
Ассортимент тканей

График работы:
Ежедневно. С 8-00 до 20-00.
Почта: soft_hous@mail.ru
Читальный зал -->  Диаграммы параллельных состояний 

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 [ 32 ] 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57

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

Личность

работодатель

Компания

1 *

Работа

периодинтервалВремени

Личность

Квалификация

Компетентность

уровень

Рис. 6.16. Тонкие особенности класса-ассоциации

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

Многие аналитики вовсе не задумывались об этом и могли в одних случаях допускать наличие ограничения, а в других случаях - нет. Таким образом, когда вы пользуетесь языком UML, помните, что данное ограничение присутствует всегда.

Часто этот вид конструкции можно встретить там, где речь идет об исторической информации, как в предыдущем примере с Работой. В подобной ситуации может оказаться полезным образец Historic Мар-ping , описанный в книге (Фаулер, 1997 [18]). Мы можем использовать его, определив стереотип история ( history ), как на рис. 6.17.

работодатель

Личность

история

Компания

0..1

Рис. 6.17. Стереотип история для ассоциаций



Параметризованный класс 111

Данная модель устанавливает, что в каждый момент времени отдельная Личность может работать только в единственной Компании. Однако в течение некоторого периода времени Личность может работать в нескольких компаниях. Это условие предполагает наличие интерфейса следующего вида:

class Person { получить текущего работодателя Company getEmployer( ) ; работодатель на конкретную дату Company getEmployer(Date) ;

void changeEmployer(Company newEmployer, Date changeDate); void leaveEmployer(Date changeDate);

Стереотип история не является частью языка UML, однако я упомянул о нем здесь по двум причинам. Во-первых, эта нотация в нескольких случаях моделирования оказалась для меня весьма полезной. Во-вторых, она показывает, как можно использовать стереотипы для расширения языка UML.

Параметризованный класс

Некоторые языки, в особенности С-Н-, включают в себя понятие параметризованного класса или шаблона (template).

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

class Set <Т> {

void insert(Т newElement);

void remove(T anElement) ;

После этого можно использовать это общее определение для задания конкретных классов-множеств.

Set <Employee> employeeSet;

Для этой цели в языке UML можно применить параметризованный класс, используя изображенную на рис. 6.18 нотацию.

Множество П Шаблон класса -\-1 Параметр шаблона


Рис. 6.18. Параметризованный класс



Верхний прямоугольник с буквой Т на диаграмме является тем местом, где указывается параметр типа. (Можно указать более одного параметра.) В нетипизированных языках, таких как язык Smalltalk, такой вопрос не возникает, поэтому от данного понятия нет никакой пользы.

Подобное использование параметризованного класса, например Множество <Служащие>, называется связанным элементом (bound element).

Связанный элемент можно изобразить двумя способами. Первый способ отражает синтаксис языка С-Н- (рис. 6.19).

Множество <Сужащие>

Рис. 6.19. Связанный элемент (версия 1)

Альтернативная нотация (рис. 6.20) усиливает связь с шаблоном и допускает переименование связанного элемента.

Шаблон класса


присвоить значение <Служащий>

Связанный элемент -

МножествоСлужащих

Присвоение значения параметру

Рис. 6.20. Связанный элемент (версия 2)

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



1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 [ 32 ] 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57



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



Звоните! Ежедневно!
 (926)274-88-54 
Продажа и изготовление мебели.


Копирование контента сайта запрещено.
Авторские права защищаются адвокатской коллегией г. Москвы
.