Вам, вероятно, потребуется выяснить, сколько студентов прикреплено к объекту учебный курс в данный момент. Это значение вычисляется при подсчете связей между объектами учебный курс и студент. Если операция называется посчитать число студентов (calculateNumberOfStudent), следовательно, нужно использовать метод подсчета. Однако через год реализация может измениться и информация о количестве студентов будет храниться, например, в файле. Поэтому лучше назвать операцию получить число студентов (getNumberOfStudent). Это название не указывает на способ реализации операции.
Для отображения сообщений на операции в программе Rational Rose:
1. Присвойте объекты соответствующим классам, если вы не сделали этого ранее.
2. Щелкните правой кнопкой мыши по стрелке, отображающей сообщение.
3. В появившемся контекстно-зависимом меню выберите команду New Operation (Новая операция) — увидите диалоговое окно Operation Specification (Параметры операции).
4. Введите в нем имя операции.
5. Щелкните по кнопке OK, чтобы закрыть диалоговое окно.
Если необходимая операция для данного класса уже существует, ее не нужно создавать заново — просто выберите в списке операций класса.
Диаграмма последовательности действий с операциями показана на рис. 7.1.Операции создаются независимо от диаграмм взаимодействий, так как не все сценарии изображаются в виде диаграмм. Это справедливо для операций, являющихся вспомогательными для других операций. Например, класс предмет, перед тем как зарегистрировать преподавателя, должен проверить, имеет ли тот право читать указанный курс. Для этой цели как нельзя лучше подойдет вспомогательная операция проверить преподавателя (validateProfessor).
Чтобы создать операции в программе Rational Rose:
1. Щелкните правой кнопкой мыши по классу в окне браузера.
2. В появившемся контекстно-зависимом меню выберите команду New => Operation (Создать => Операция).
3. Введите имя новой операции.
Операции для класса предмет (Course) показаны на рис. 7.2.
Документирование операций
Каждая операция должна быть описана в документации, чтобы человек, изучающий модель, мог легко понять ее назначение. Описание должно отражать функциональность операции, а также содержать комментарии о входных параметрах и возвращаемом результате, если они имеются. Входные и возвращаемые параметры составляют
Для описания операций в программе Rational Rose:
1. Щелкните в окне браузера по значку «+» слева от имени класса, чтобы раскрыть список его свойств.
2. Выберите нужную операцию, щелкнув по ней мышью.
3. Установите курсор в окне описания и введите описание операции.
Описание операции выбрать преподавателя (SetProfessor) класса предмет (Course) показано на рис. 7.3.
Отношения и сигнатуры операций
Сигнатура операции может обозначать отношение. Если класс, передаваемый как аргумент или возвращаемый операцией, является фундаментальным (fundamental) классом, как, например, строка (String), отношения обычно не выносятся на диаграмму. Для нефундаментальных классов отношения отражаются на одной или нескольких диаграммах. Например, входными параметрами для операции зарегистрировать преподавателя (setProfessor) в классе предмет (Course) являются классы преподаватель (Professor) и учебный курс (CourseOffering). Это значит, что существуют отношения:
между классами предмет и преподаватель;
между классами предмет и учебный курс.
Отношения, основанные на сигнатурах, изначально моделировались как ассоциации, но в ходе проектирования системы они могут быть пересмотрены и представлены как отношения зависимости (dependency relationships). (Об уточнении и изменении отношений говорится в главе 12.) Взаимосвязи между пакетами также могут быть пересмотрены, по мере того как в модель включаются отношения, основанные на сигнатурах операций. К примеру, мы добавили в систему отношение между классами предмет и преподаватель. Значит, между пакетами Объекты университета и Сведения о людях существует отношение зависимости.
Создание атрибутов