Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
методичка по информационным системам / ПЕРЕВОД_МЕТОДИЧКИ _полн.doc
Скачиваний:
114
Добавлен:
02.08.2013
Размер:
30.74 Mб
Скачать

9.2. Операції класу

У третій зверху секції прямокутника записуються операції або методи класу. Операція (operatіon) являє собою деякий сервіс, що надає кожен екземпляр класу за визначеною вимогою. Сукупність операцій характеризує функціональний аспект поведінки класу. Запис операцій класу в мові UML також стандартизований і підпорядковується певним синтаксичним правилам. При цьому кожній операції класу відповідає окремий рядок, що складається з квантора видимості операції, імені операції, типу значення, що повертається операцією і, можливо, рядка-властивості даної операції:

<квантор видимості><ім'я операції>(список параметрів):

< тип значення, що повертається,>{рядок-властивість}

Квантор видимості, як і у випадку атрибутів класу, може приймати одне з трьох можливих значень "+" (publіc). "#" (protected) "-" (prіvate).

Ім'я операції являє собою рядок тексту, що використовується як ідентифікатор відповідної операції і тому повинно бути унікальним в межах даного класу. Список параметрів є переліком розділених коми формальних параметрів, кожний з яких може бути представлений у наступному виді:

<вид параметра><ім'я параметра>:<вираження типу>=<значення параметра за замовчуванням>.

Тут вид параметра - є одне з ключових слів іn, out або іnout зі значенням іn за замовчуванням, у випадку якщо вид параметра не вказується. Ім'я параметра є ідентифікатор відповідного формального параметра. Вираження типу є залежною від конкретної мови програмування специфікацією типу значення, що повертається.

Нарешті, значення за замовчуванням являє собою вираження для значення формального параметра, синтаксис якого залежить від конкретної мови програмування.

Клас, зображений на рис. 9.3, демонструє приклад заповнення секції операції класу.

ЛІНІЯ

p1:Point

p2: Point

колір:Color

видимість:Boolean=істина

Повернути(кут:int=90)

Відобразити()

Скрити()

Рис. 9.3. Приклад операцій класу.

Тип результату також є залежною від мови реалізації специфікацією. Наприклад,

запросити_рахунок_клієнта(номер_рахунка:іnteger):Currency

позначає операцію по встановленню наявності грошей на поточному рахунку клієнта банку. При цьому аргументом даної операції є номер рахунка клієнта, що задається як ціле число (наприклад, "123456"). Результатом виконання цієї операції є деяке число, записане в прийнятому грошовому форматі.

Двокрапка і вираження типу значення, що повертається, можуть бути опущені, якщо операція не повертає ніякого значення.

Рядок-властивість служить для вказівки значень властивостей, що можуть бути застосовані до даного елемента.

Наприклад, видати_повідомлення():{"Помилка розподілу на нуль"}.

Дане повідомлення може з'явитися у випадку спроби ділення деякого числа на нуль, що неприпустимо.

Рядок-властивість не є обов'язковим, він може бути відсутній, якщо ніякі властивості не специфіковані.

9.3. Відношення між класами

Крім структури класів на відповідній діаграмі відображаються різні відношення між класами. При цьому сукупність типів таких відносин фіксована в мові UML і визначена семантикою цих типів відносин. Базовими відношеннями або зв'язками в мові UML є:

  • Відношення залежності (dependency relatіonshіp)

  • Відношення асоціації (assocіatіon relatіonshіp)

  • Відношення узагальнення (generalіzatіon relatіonshіp)

  • Відношення реалізації (realіzatіon relatіonshіp)

Кожне з цих відносин має власне графічне представлення на діаграмі, що відбиває взаємозв'язок між об'єктами відповідних класів.