Направление параметра

Для параметров операции может быть задано направление:

операция( in p1:Integer, inout p2:Integer, out p3:Integer, return p4:Integer, return p5:Integer )

Если направление не указано, по умолчанию оно принимает значение in (в). Семантика значений in, inout (ввиз) и out (из) довольно проста, а вот return (возвратить) возможно потребует большего внимания. Обычно ожидается, что функция возвращает один объект, как показано ниже:

maximumValue = max( a, b )
minimumValue = min( a, b )

где a, b, maximumValue (максимальное значение) и minimumValue (минимальное значение) – целые числа. Обычный синтаксис операции поддерживает именно эту ситуацию: каждая операция обычно имеет только одно возвращаемое значение. Как мы видели, в UML такие «обычные» операции можно смоделировать следующим образом:

maximumValue( a:Integer, b:Integer ) : Integer

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

maximumValue, minimumValue = maxMin( a, b )

где maxMin( a, b ) возвращает два значения – максимальное и минимальное. В UML это можно смоделировать следующим образом:

maxMin( in a: Integer, in b:Integer, return maxValue:Integer, return minValue:Integer )

Как видим, направление return параметра позволяет моделировать ситуации, когда операция возвращает более одного значения. Возвращаемые параметры могут быть перечислены и после имени операции:

maxMin( in a: Integer, in b:Integer ) : Integer, Integer

В данном случае применение ключевого слова return было бы плохим стилем, поскольку возвращаемые параметры и так явно выделены.
На самом деле направления параметров являются вопросом проектирования, поэтому обычно во время анализа о них не заботятся (если только не используется OCL).
Направления параметров имеют большое значение при проектировании, особенно если речь идет о генерации кода. Генераторы кода будут проецировать направления параметров UML в конкретную семантику передачи параметров в целевом языке программирования.

Запись опубликована в рубрике Компьютеры и интернет с метками . Добавьте в закладки постоянную ссылку.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

*

code