Головна

Операції і методи в мові UML. властивості понять і нотація. приклади

  1.  I. Як побудувати розповідь про себе англійською мовою.
  2.  I. Поняття про постановку наголоси в російській мові (загальновживані слова).
  3.  II. МЕТОДИ ВИВЧЕННЯ ЗАХВОРЮВАНОСТІ НАСЕЛЕННЯ
  4.  III. Приклади фізіологічного будови тварин
  5. " Прихильники ": методи психологічного захисту
  6.  Rule # 1Чтоби задати питання в англійській мові допоміжне дієслово потрібно поставити на перше місце
  7.  А. Перенесення понять через дисциплінарні кордону

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

Операція (Operation) - Це специфікація або опис результату перетворення або запиту, який повинен виконати викликається об'єкт. Має ім'я і список параметрів. Ім'я операції пишеться з маленької літери.

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

Крім методу операцію можна реалізовувати подією виклику (подія переходу зі стану в стан), яке призводить до переходу в кінцевому автоматі активного об'єкта - це інший спосіб реалізації операції.

операція - Це деяка послідовність дій. Сукупність операцій характеризує функціональний аспект поведінки класу.

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

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

Якщо два оголошення операції мають однакові імена і упорядкований список типів параметрів (виключаючи повертаються параметри), а інші властивості цих операцій відрізняються, (наприклад, якщо параметр є вхідним параметром (in-parameter) в одній операції і вихідним параметром (out-parameter) в інший), то між цими двома оголошеннями виникає конфлікт і модель вважається погано узгодженою.

Якщо у двох однакових оголошень операцій немає загального оголошення -предка, однак, при цьому вони успадковуються одним класом, значить, модель погано узгоджена - однакові оголошення операцій викличуть конфлікт в класі, який їх успадковує.

Синтаксис загального визначення операції:

[<Стереотип>] [<видимість>] <ім'я> (<спісок_параметров>): [<возващ. тип>] [{рядок властивостей}]

Стереотип, видимість, вираз повертається типу і рядок властивостей опційні (так само як і відокремлюють їх знаки пунктуації). Список параметрів може бути порожнім.

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

Операція з областю дії на весь клас показується підкресленням імені і рядки висловлювання на кшталт. За замовчуванням під областю операції розуміється об'єкт класу. У цьому випадку ім'я та рядок висловлювання на кшталт операції не підкреслює.

приклад:

+ Display (): ochtion

-hide ()

"Constructor" + create ()

-atlachXWindow (x win: Xwindow ')

Як приклади запису операцій можна навести такі позначення окремих операцій:

Властивості операцій:

1. Concurrency (Паралелізм) - можливість виконувати операції паралельно з ін. Операціями даного екземпляра класу

зображується за допомогою рядка властивостей concurrency = значення

a) Sequential - Послідовне виконання

b) Guarded (Під охороною операція) - всі виклики даної операції шикуються в чергу і упорядковуються за часом.

c) Concurrent(Паралельна)

За замовчуванням прийнято послідовний спосіб.

a) Sequential. Під час її виконання може пройти тільки один виклик, здійснюється блокування даної операції на час її виконання. (Викликають об'єкти повинні бути скоординовані таким чином, щоб одночасно здійснювався тільки один виклик будь-послідовної операції об'єкта. У разі якщо виклики йтимуть паралельно, гарантувати семантику і цілісність системи неможливо).

b) Guarded. Всі виклики і операції строго шикуються в чергу, вони приймаються в міру виконання операції до виконання. Розробник повинен спроектувати систему таким чином, щоб в подібній ситуації в ній не виникало взаімоблокіровок. У разі наявності послідовної одночасної операції, що охороняються операції повинні виконуватися коректно (або ж саме блокуватися). В іншому випадку дотримати семантику охоронюваних операцій не можна.

c) Concurrent.Всі виклики даної операції обробляються паралельно в різних нитках управління. Всі вони можуть відбуватися одночасно. Семантика при цьому залишається коректною. Паралельні операції можна проектувати таким чином, щоб вони здійснювалися коректно в разі наявності паралельної, послідовної або охороняється onqtannw для одного і того ж об'єкта.

2. поліморфізм - Можливість заміщення цієї реалізації операції (метод або подія виклику) своїм способом. IsPolymorphism = true | false. Якщо полиморфность є, то реалізація операції може бути підмінена в класі-нащадку, який надає нове визначення методу або інший перехід в кінцевому автоматі. Таким чином, реалізація може приймати різні форми (інакше кажучи, вона полиморфна). Якщо ж полиморфность відсутня, то поточна реалізація успадковується без змін усіма нащадками і має одну єдину форму.

3. запит (query). Вказує, чи залишає операція стан системи незмінним, інакше кажучи, чи є вона запитом. Якщо так, то операція повертає значення і більше нічого не робить. Якщо немає, то вона може змінити стан системи. isQuery = true | false.

4. ім'я (name) - Унікальне в межах проекту. Якщо ж зустрічаємося дублювання, то воно сприймається як повторне оголошення операції, яка повинна повністю збігатися з попереднім. Дієслово або дієслівна форма з (), з малої літери.

5. значення, що повертається. Список типів значень, які повертаються викликом операції (якщо такі є). Якщо операція не повертає значень, значить, це властивість має нульове значення (null).

Спочатку йде список параметрів операції, потім двокрапка і вже після нього - рядок повертається типу. Якщо операція не повертає ніякого значення, то двокрапка і рядок типу просто не вказуються (в мові С ++ відповідає типу void). Деякі мови програмування підтримують можливість повернення декількох значень.

6. список параметрів (parameter list) - Список оголошень параметрів операції, розділених комами. Кожен з них складається напрямки, імені та типу. Весь список береться в круглі дужки - навіть якщо цей список порожній.

7. область дії (scope) - Може вказуватися. Вказує, чи застосовується операція стосуються окремих об'єктах чи до всього класу. Можливі такі значення:

a) екземпляр (instance) Операцію можна застосовувати до окремих об'єктів.

b)клас (class) Операція застосовується до самого класу, - наприклад, операція але створення екземпляра класу.

8. видимість (visibility) - Видимість операції для класів, відмінних від того, в якому вона визначається.

a) + Public

b) - Protected

c) # Private

9. специфікація (specification) - Вираз, що описує дії, вироблені в результаті виконання операції (наприклад, умови до-і-після). Мова UML не визначає формат специфікації, тобто вона може приймати різноманітні форми. Його можна сформулювати по-різному, включаючи текст, умови до-після і інтервали. У будь-якому випадку специфікація повинна бути виражена в термінах спостережуваного впливу операції на стан системи, а не в термінах алгоритму виконання. За алгоритм відповідає метод.

Операції поділяються на абстрактні і конкретні.

Абстрактна (узагальнення) операція не має певного методу реалізації. При специфікації абстрактних операцій можна використовувати << abstract >>. Абстрактна операція записується курсивом.

Якщо операція має певний метод реалізації, то це операція конкретна.

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

Call Event - подія виклику. Подія виклику має ті ж складові, що і операція. Реалізація операції повинна визначатися одним або декількома переходами, які активуються подією виклику.

Особливим видом операції є сигнали - signal. Сигнал - це одностороннє повідомлення, яке не має повертається значення. сигнал є фундаментальним видом комунікації. Перед нею ставиться стереотип «signal».

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

методи

Метод має алгоритм і тіло.

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

Метод має ті ж складовими, що і операція. Крім того, у нього може бути одне або кілька своїх власних властивостей:

1) Поведінка (behavior) - Необов'язковий кінцевий автомат, що описує реалізацію методу.

2) тіло (body) - Вираз, що описує процедуру (зміст) методу. Може бути представлено у вигляді фрагмента тексту (що знаходиться в примітці, яке прикріплено до оголошення операції). Зазвичай тіло методу записується на мові програмування (потрібно брати в фігурні дужки), проте для неформальних визначень може підійти і природна мова (коментар). Взагалі, це значення зазвичай не вказується разом з кінцевим автоматом. Присутній або кінцевий автомат, або текст методу.

Зв'язок між оголошенням методу і його кінцевим автоматом або кооперацією не має візуального представлення, однак інструмент моделювання може створити у відповідному місці гіперпосилання.

3) кооперація (collaboration) - Безліч кооперацій, що описують реалізацію методу у вигляді упорядкованого безлічі повідомлень, якими обмінюються ролі (при взаємодії).

Метод має діаграму активності. Ця діаграма відповідає схемі алгоритму і схемою програми.

 



 UML. Концептуальний рівень. Діаграма класів і правила її побудови. Приклад. |  Відносини між класами в UML. приклади

 Методологія об'єктно-орієнтованого програмування (ООП). Поняття класу та об'єкта. Загальні принципи |  Методологія об'єктно-орієнтованого аналізу і проектування. Основні етапи розвитку UML |  Основні компоненти мови UML. Уніфікований процес проектування. склад моделей |  Generalization »ставлення узагальнення |  UML. Логічний і фізичний рівень. Діаграма класів. Об'єкти і шаблони (параметризрвані класи). |  Діаграма станів (прості стану) і правила її побудови. Приклад. |  Складові і історичні стану в діаграмі станів. Складні переходи. Синхронизирующие стану. Приклади. |  Діаграма діяльності та правила її побудови. «Плавальні доріжки». Приклади. |  Діаграма послідовності і правила її побудови. Види повідомлень і правила їх позначень. приклади |  Діаграма кооперації та правила її побудови. Активні і пасивні об'єкти. Зв'язки в кооперації і їх позначення. |

© um.co.ua - учбові матеріали та реферати