Моделирования uml


1 5 6 Рис. 4.41. Диаграмма синхронизации для нескольких объектов  4.5. МОДЕЛИРОВАНИЕ ПАРАЛЛЕЛИЗМА


Download 1.84 Mb.
Pdf ko'rish
bet108/115
Sana16.06.2023
Hajmi1.84 Mb.
#1489923
1   ...   104   105   106   107   108   109   110   111   ...   115
Bog'liq
ivanov novikov unificirovannii jazik modelirovanija uml 2011

1
1
5
6
Рис. 4.41. Диаграмма синхронизации для нескольких объектов 
4.5. МОДЕЛИРОВАНИЕ ПАРАЛЛЕЛИЗМА 
Термин параллельность в программировании, вообще говоря, 
означает "одновременное" выполнение нескольких деятельностей. 
Слово "одновременное" в данном контексте означает, что невозможно 
(или не нужно) указывать, какая из деятельностей происходит раньше 
другой во времени. Другими словами, параллельные процессы не 
упорядочены во времени. Тем самым термин "параллельный" 
противопоставляется 
термину 
"последовательный": 


213
последовательные деятельности упорядочены во времени, причем 
линейно. 
Средства 
описания 
параллелизма 
в 
UML 
отнюдь 
не 
противопоставлены 
средствам 
описания 
последовательного 
поведения, напротив, они образуют единое целое, поскольку 
параллельное программирование скорее общее правило, нежели 
экзотическое исключение. Мы отделили обсуждение средств 
описания 
параллельного 
поведения 
от 
средств 
описания 
последовательного поведения только с целью упростить изложение 
основных идей каждого из типов канонических диаграмм, 
используемых для описания поведения. В последующих разделах 
поочередно рассматриваются отдельные опущенные выше детали и 
конструкции 
диаграмм 
описания 
поведения, 
относящиеся 
к 
моделированию параллелизма. Мы начинаем с простых и часто 
используемых средств и постепенно переходим к более запутанным, а 
потому реже используемым.
4.5.1. Взаимодействие последовательных процессов 
Взаимодействие в UML моделируется с помощью сообщений: 
синхронных (вызовы операций) и асинхронных (посылка сигналов). 
Типичный вариант: взаимодействие машин состояний разных классов 
с помощью действий, выполняемых на переходах. 
Рассмотрим два класса из информационной системы отдела 
кадров: 
Person
и 
Position
(рис. 4.42).
Рассмотрим теперь, как должна выполняться операция 
назначения сотрудника на новую должность, т. е. операция перевода. 
Мы оставим в стороне вопрос о том, в каком классе разумно 
определить данную операцию (на самом деле это совершенно не 
важно), и положим, что операция назначения сотрудника на 
должность имеет два параметра — сотрудник и должность: 
assignP2P(person:Person, position:Position) 
Допустим, что требуется обеспечить элементарный порядок в 
учете кадров (на программистском языке — целостность данных): 


214
если сотрудник 
А
назначен на должность 
Б
, то и в должности 
Б
должно быть записано, что ее занимает сотрудник 
А
и наоборот. 
Рис. 4.42. Классы 
Position
и 
Person
Другими словами, занятые должности и сотрудники должны взаимно 
однозначно соответствовать друг другу, а свободные должности и 
сотрудники должны быть действительно свободны и не должны 
содержать неадекватных ссылок друг на друга. 
Требуемое поведение операции 
assignP2P()
можно описать с 
помощью 
диаграммы 
объектов 
(фактически, 
это 
контекст 
взаимодействия), на которой показано, как должны измениться связи 
между объектами в результате выполнения операции (см. рис. 4.43). В 
данном описании контекста рассматривается типичный сценарий, в 
котором до выполнения операции сотрудник занимает некоторую 
должность, а целевая должность вакантна. 


215
Рис. 4.43. Изменение связей и состояний объектов при выполнении 
операции перевода сотрудника 
Мы видим, что при назначении сотрудника на должность 
задействованы три объекта: 
oldPosition

newPosition
и 
person

Требуемое поведение может быть обеспечено за счет взаимодействия 
автоматов, реализующих поведение каждого из этих объектов. На 
рис. 4.44 и рис. 4.45 приведены диаграммы машин состояний для 
классов 
Position
и 
Person
, соответственно.
Рис. 4.44. Машина состояний класса 
Position


216

Download 1.84 Mb.

Do'stlaringiz bilan baham:
1   ...   104   105   106   107   108   109   110   111   ...   115




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling