Моделирования uml
1 5 6 Рис. 4.41. Диаграмма синхронизации для нескольких объектов 4.5. МОДЕЛИРОВАНИЕ ПАРАЛЛЕЛИЗМА
Download 1.84 Mb. Pdf ko'rish
|
ivanov novikov unificirovannii jazik modelirovanija uml 2011
- Bu sahifa navigatsiya:
- 4.5.1. Взаимодействие последовательных процессов
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 |
Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling
ma'muriyatiga murojaat qiling