Page 153 - 4190
P. 153

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

                  Операція, яка не може змінювати стан системи і, відповідно, не
            має  ніякого  побічного  ефекту,  позначається  рядком-властивістю
            "{запит}" ("{query}"). Інакше операція може змінювати стан системи,

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

            користовується  рядок-властивість виду  "{concurrency  =  ім'я}"де  ім'я
            може приймати одне з таких значень: послідовна (sequential), парале-
            льна (concurrent), така, що охороняється (guarded). При цьому дотри-

            муються такої семантики для цих значень:
                    послідовна (sequential) - для цієї операції необхідно забезпечи-
            ти її єдине виконання в системі, одночасне виконання інших операцій

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

            цьому паралельність повинна підтримуватися на рівні реалізації мо-
            делі.
                    що охороняється (guarded) - усі звернення до цієї операції ма-
            ють бути строго впорядковані в часі з метою збереження цілісності

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

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

            гає послідовного виконання.
                  Поява  сигнатури  операції  на  самому  верхньому  рівні  оголошує
            цю операцію на увесь клас, при цьому ця операція наслідує усіма на-

            щадками цього класу. Якщо в деякому класі операція не виконується
            (тобто деякий метод не застосовується), то така операція може бути
            помічена як абстрактна "{abstract}". Інший спосіб показати абстракт-

            ний характер операції - записати її сигнатуру курсивом. Підпорядко-
            вана поява запису цієї операції без властивості {абстрактна} вказує на

                                                             153
   148   149   150   151   152   153   154   155   156   157   158