Открытая коллекция знаний

OpenU.Ru

Справочник UML. Объектно-ориентированное проектирование.



expression (выражение)

Строка, содержащая утверждение, которое можно интерпретировать в определенном языке. Многие выражения при интерпретации вырабатывают значения, другие осуществляют некие действия. Например, результат вычисления выражения (7 + 5 * 3) имеет числовой тип и равен 22.

Семантика

Выражение содержит утверждение, с помощью которого, при выполнении его в определенном контексте, вычисляется множество (возможно, пустое) экземпляров, значений или же выполняется некое действие. Выражение не наменяет окружение, в котором осуществляется вычисление. Оно состоит из строки и имени языка вычислений. Элемент выражения состоит из имени языка интерпретации и строки, которая содержит выражение, чей синтаксис принадлежит этому языку. Принято считать, что у языка есть интерпретирующая программа, которую должны предоставлять средства моделирования. Языком интерпретации может служить язык ограничений (например, OCL), язык программирования (C++ или Smalltalk) либо естественный язык. Конечно, если выражение написано на естественном языке, инструмент моделирования не сможет вычислить его автоматически - для этого понадобится человек.
Разные подклассы выражений дают разные типы значений. К ним относятся логические выражения, выражения, описывающие множества объектов, выражения времени, а также выражения процедур.
В UML-моделях выражения используются в качестве действий, ограничений, сторожевых условий и т. п.

Нотация

Выражение имеет вид строки, написанной на определенном языке. Ответственность за синтаксис, используемый в этом выражении, лежит на инструменте моделирования и лингвистическом анализаторе. Предполагается, что анализатор сможет обрабатывать строки во время выполнения, и будет получать значения соответствующего типа либо сможет вырабатывать семантические структуры, передающие значение выражения. Например, в результате вычисления выражения для типа получается ссылка на классификатор, а в результате вычисления логического выражения - значение "истина" или "ложь". Инструменту моделирования указывается язык интерпретации, однако на диаграмме он не показан, так как считается, что форма выражения и так достаточно понятна.

Пример

self.cost < authorization.maxCost 
forall (k in targets) { k. update ( ) }

Алфавитный указатель