Π§ΠΈΡ‚Π°ΠΉΡ‚Π΅ ΠΊΠ½ΠΈΠ³ΠΈ ΠΎΠ½Π»Π°ΠΉΠ½ Π½Π° Bookidrom.ru! БСсплатныС ΠΊΠ½ΠΈΠ³ΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠ»ΠΈΠΊΠ΅

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ Β«Π‘Π°ΠΌΠΎΡƒΡ‡ΠΈΡ‚Π΅Π»ΡŒ UMLΒ». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 25

Автор АлСксандр Π›Π΅ΠΎΠ½Π΅Π½ΠΊΠΎΠ²

Если Π² качСствС ΠΌΠΎΠ΄Π΅Π»ΠΈΡ€ΡƒΠ΅ΠΌΠΎΠΉ сущности выступаСт систСма ΠΈΠ»ΠΈ подсистСма самого Π²Π΅Ρ€Ρ…Π½Π΅Π³ΠΎ уровня, Ρ‚ΠΎ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ² использования этой систСмы ΠΌΠΎΠ΄Π΅Π»ΠΈΡ€ΡƒΡŽΡ‚ΡΡ Π°ΠΊΡ‚Π΅Ρ€Π°ΠΌΠΈ. Π’Π°ΠΊΠΈΠ΅ Π°ΠΊΡ‚Π΅Ρ€Ρ‹, являясь Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠΌΠΈ ΠΏΠΎ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡŽ ΠΊ ΠΌΠΎΠ΄Π΅Π»ΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΌ подсистСмам Π½ΠΈΠΆΠ½ΠΈΡ… ΡƒΡ€ΠΎΠ²Π½Π΅ΠΉ, часто Π² явном Π²ΠΈΠ΄Π΅ Π½Π΅ ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ, хотя ΠΈ ΠΏΡ€ΠΈΡΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‚ нСявно Π² ΠΌΠΎΠ΄Π΅Π»ΠΈ подсистСмы. ВмСсто этого Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹ использования нСпосрСдствСнно ΠΎΠ±Ρ€Π°Ρ‰Π°ΡŽΡ‚ΡΡ ΠΊ Ρ‚Π΅ΠΌ ΠΌΠΎΠ΄Π΅Π»ΡŒΠ½Ρ‹ΠΌ элСмСнтам, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ содСрТат Π² сСбС ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Π΅ нСявныС Π°ΠΊΡ‚Π΅Ρ€Ρ‹, Ρ‚. Π΅. экзСмпляры ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΈΠ³Ρ€Π°ΡŽΡ‚ Ρ€ΠΎΠ»ΠΈ Ρ‚Π°ΠΊΠΈΡ… Π°ΠΊΡ‚Π΅Ρ€ΠΎΠ² ΠΏΡ€ΠΈ взаимодСйствии с Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π°ΠΌΠΈ использования. Π­Ρ‚ΠΈ ΠΌΠΎΠ΄Π΅Π»ΡŒΠ½Ρ‹Π΅ элСмСнты ΠΌΠΎΠ³ΡƒΡ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒΡΡ Π² Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΏΠ°ΠΊΠ΅Ρ‚Π°Ρ… ΠΈΠ»ΠΈ подсистСмах. Π’ послСднСм случаС Ρ€ΠΎΠ»ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ΡΡ Π² Ρ‚ΠΎΠΌ ΠΏΠ°ΠΊΠ΅Ρ‚Π΅, ΠΊ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ относится ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π°Ρ подсистСма.

Π‘ систСмно-аналитичСской Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния построСниС Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΡ‹ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ² использования спСцифицируСт Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Π΅ трСбования ΠΊ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΡƒΠ΅ΠΌΠΎΠΉ систСмС, Π½ΠΎ ΠΈ выполняСт ΠΈΡΡ…ΠΎΠ΄Π½ΡƒΡŽ ΡΡ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€ΠΈΠ·Π°Ρ†ΠΈΡŽ ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚Π½ΠΎΠΉ области. ПослСдняя Π·Π°Π΄Π°Ρ‡Π° сочСтаСт Π² сСбС Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ слСдованиС тСхничСским рСкомСндациям, Π½ΠΎ ΠΈ являСтся Π² Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Ρ€ΠΎΠ΄Π΅ искусством, ΡƒΠΌΠ΅Π½ΠΈΠ΅ΠΌ Π²Ρ‹Π΄Π΅Π»ΡΡ‚ΡŒ Π³Π»Π°Π²Π½ΠΎΠ΅ Π² ΠΌΠΎΠ΄Π΅Π»ΠΈ систСмы. Π₯отя Ρ€Π°Ρ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ ΡƒΠ½ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ процСсс Π½Π΅ ΠΈΡΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΉ Π²ΠΎΠ·Π²Ρ€Π°Ρ‚ Π² ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΠΊ Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΠ΅ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ² использования для Π΅Π΅ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ, Π½Π΅ Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ сомнСний Ρ‚ΠΎΡ‚ Ρ„Π°ΠΊΡ‚, Ρ‡Ρ‚ΠΎ любая подобная модификация ΠΏΠΎΡ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚, ΠΊΠ°ΠΊ ΠΏΠΎ Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ΅, ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π²ΠΎ всСх Π΄Ρ€ΡƒΠ³ΠΈΡ… прСдставлСниях систСмы. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ всСгда Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡΡ‚Ρ€Π΅ΠΌΠΈΡ‚ΡŒΡΡ ΠΊ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π±ΠΎΠ»Π΅Π΅ Ρ‚ΠΎΡ‡Π½ΠΎΠΌΡƒ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»Π΅Π½ΠΈΡŽ ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΈΠΌΠ΅Π½Π½ΠΎ Π² Ρ„ΠΎΡ€ΠΌΠ΅ Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΡ‹ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ² использования.

Если ΠΆΠ΅ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹ использования ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ для спСцификации части систСмы, Ρ‚ΠΎ ΠΎΠ½ΠΈ Π±ΡƒΠ΄ΡƒΡ‚ эквивалСнтны ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π°ΠΌ использования Π² ΠΌΠΎΠ΄Π΅Π»ΠΈ подсистСмы для части ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ ΠΏΠ°ΠΊΠ΅Ρ‚Π°. Π’Π°ΠΆΠ½ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ всС сСрвисы систСмы Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ явно ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Ρ‹ Π½Π° Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΠ΅ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ² использования, ΠΈ Π½ΠΈΠΊΠ°ΠΊΠΈΡ… Π΄Ρ€ΡƒΠ³ΠΈΡ… сСрвисов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‚ Π½Π° Π΄Π°Π½Π½ΠΎΠΉ Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΠ΅, проСктируСмая систСма Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ ΠΏΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΡŽ. Π‘ΠΎΠ»Π΅Π΅ Ρ‚ΠΎΠ³ΠΎ, Ссли для модСлирования Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ систСмы ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ сразу нСсколько ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, модСль Π°Π½Π°Π»ΠΈΠ·Π° ΠΈ модСль проСктирования), Ρ‚ΠΎ мноТСство Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ² использования всСх ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² систСмы Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ эквивалСнтно мноТСству Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ² использования ΠΌΠΎΠ΄Π΅Π»ΠΈ Π² Ρ†Π΅Π»ΠΎΠΌ.

ГЛАВА 5 Π”ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΠ° классов (class diagram)

Π¦Π΅Π½Ρ‚Ρ€Π°Π»ΡŒΠ½ΠΎΠ΅ мСсто Π² ООАП Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° логичСской ΠΌΠΎΠ΄Π΅Π»ΠΈ систСмы Π² Π²ΠΈΠ΄Π΅ Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΡ‹ классов. Нотация классов Π² языкС UML проста ΠΈ ΠΈΠ½Ρ‚ΡƒΠΈΡ‚ΠΈΠ²Π½ΠΎ понятна всСм, ΠΊΡ‚ΠΎ ΠΊΠΎΠ³Π΄Π°-Π»ΠΈΠ±ΠΎ ΠΈΠΌΠ΅Π» ΠΎΠΏΡ‹Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с CASE-инструмСнтариями. БхоТая нотация примСняСтся ΠΈ для ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² – экзСмпляров класса, с Ρ‚Π΅ΠΌ Ρ€Π°Π·Π»ΠΈΡ‡ΠΈΠ΅ΠΌ, Ρ‡Ρ‚ΠΎ ΠΊ ΠΈΠΌΠ΅Π½ΠΈ класса добавляСтся имя ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΠΈ вся надпись подчСркиваСтся.

Нотация UML прСдоставляСт ΡˆΠΈΡ€ΠΎΠΊΠΈΠ΅ возмоТности для отобраТСния Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ (абстрактныС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ΠΈ классы, стСрСотипы, ΠΎΠ±Ρ‰ΠΈΠ΅ ΠΈ частныС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹, Π΄Π΅Ρ‚Π°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ интСрфСйсы, ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈΠ·ΠΎΠ²Π°Π½Π½Ρ‹Π΅ классы). ΠŸΡ€ΠΈ этом Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ использованиС графичСских ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ для ассоциаций ΠΈ ΠΈΡ… спСцифичСских свойств, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠ΅ Π°Π³Ρ€Π΅Π³Π°Ρ†ΠΈΠΈ, ΠΊΠΎΠ³Π΄Π° составными частями класса ΠΌΠΎΠ³ΡƒΡ‚ Π²Ρ‹ΡΡ‚ΡƒΠΏΠ°Ρ‚ΡŒ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ классы.

Π”ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΠ° классов (class diagram) слуТит для прСдставлСния статичСской структуры ΠΌΠΎΠ΄Π΅Π»ΠΈ систСмы Π² Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΎΠ»ΠΎΠ³ΠΈΠΈ классов ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ программирования. Π”ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΠ° классов ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΡ‚Ρ€Π°ΠΆΠ°Ρ‚ΡŒ, Π² частности, Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ взаимосвязи ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ сущностями ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚Π½ΠΎΠΉ области, Ρ‚Π°ΠΊΠΈΠΌΠΈ ΠΊΠ°ΠΊ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ΠΈ подсистСмы, Π° Ρ‚Π°ΠΊΠΆΠ΅ описываСт ΠΈΡ… Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΡŽΡŽ структуру ΠΈ Ρ‚ΠΈΠΏΡ‹ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠΉ. На Π΄Π°Π½Π½ΠΎΠΉ Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΠ΅ Π½Π΅ указываСтся информация ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… аспСктах функционирования систСмы. Π‘ этой Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΠ° классов являСтся дальнСйшим Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΠ΅ΠΌ ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΡƒΠ΅ΠΌΠΎΠΉ систСмы.

Π”ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΠ° классов прСдставляСт собой Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π³Ρ€Π°Ρ„, Π²Π΅Ρ€ΡˆΠΈΠ½Π°ΠΌΠΈ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΡΠ²Π»ΡΡŽΡ‚ΡΡ элСмСнты Ρ‚ΠΈΠΏΠ° «классификатор», ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ связаны Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ Ρ‚ΠΈΠΏΠ°ΠΌΠΈ структурных ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠΉ. Π‘Π»Π΅Π΄ΡƒΠ΅Ρ‚ Π·Π°ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΠ° классов ΠΌΠΎΠΆΠ΅Ρ‚ Ρ‚Π°ΠΊΠΆΠ΅ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ интСрфСйсы, ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹, ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡ ΠΈ Π΄Π°ΠΆΠ΅ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ экзСмпляры, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ΠΈ связи. Когда говорят ΠΎ Π΄Π°Π½Π½ΠΎΠΉ Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΠ΅, ΠΈΠΌΠ΅ΡŽΡ‚ Π² Π²ΠΈΠ΄Ρƒ ΡΡ‚Π°Ρ‚ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ ΡΡ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π½ΡƒΡŽ модСль ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΡƒΠ΅ΠΌΠΎΠΉ систСмы. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΡƒ классов принято ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ графичСским прСдставлСнном Ρ‚Π°ΠΊΠΈΡ… структурных взаимосвязСй логичСской ΠΌΠΎΠ΄Π΅Π»ΠΈ систСмы, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ зависят ΠΈΠ»ΠΈ ΠΈΠ½Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π½Ρ‹ ΠΎΡ‚ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ.

Π”ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΠ° классов состоит ΠΈΠ· мноТСства элСмСнтов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π² совокупности ΠΎΡ‚Ρ€Π°ΠΆΠ°ΡŽΡ‚ Π΄Π΅ΠΊΠ»Π°Ρ€Π°Ρ‚ΠΈΠ²Π½Ρ‹Π΅ знания ΠΎ ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚Π½ΠΎΠΉ области. Π­Ρ‚ΠΈ знания ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΡƒΡŽΡ‚ΡΡ Π² Π±Π°Π·ΠΎΠ²Ρ‹Ρ… понятиях языка UML, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ классы, интСрфСйсы ΠΈ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρƒ Π½ΠΈΠΌΠΈ ΠΈ ΠΈΡ… ΡΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΠΌΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°ΠΌΠΈ. ΠŸΡ€ΠΈ этом ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ этой Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΡ‹ ΠΌΠΎΠ³ΡƒΡ‚ ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒ ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹ для прСдставлСния Π±ΠΎΠ»Π΅Π΅ ΠΎΠ±Ρ‰Π΅ΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ систСмы. Если Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΠ° классов являСтся Ρ‡Π°ΡΡ‚ΡŒΡŽ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΏΠ°ΠΊΠ΅Ρ‚Π°, Ρ‚ΠΎ Π΅Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ элСмСнтам этого ΠΏΠ°ΠΊΠ΅Ρ‚Π°, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Π΅ ссылки Π½Π° элСмСнты ΠΈΠ· Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ².

Π’ ΠΎΠ±Ρ‰Π΅ΠΌ случаС ΠΏΠ°ΠΊΠ΅Ρ‚ статичСской структурной ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ прСдставлСн Π² Π²ΠΈΠ΄Π΅ ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌ классов. ДСкомпозиция Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ прСдставлСния Π½Π° ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΡ‹ выполняСтся с Ρ†Π΅Π»ΡŒΡŽ удобства ΠΈ графичСской Π²ΠΈΠ·ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ структурных взаимосвязСй ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚Π½ΠΎΠΉ области. ΠŸΡ€ΠΈ этом ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΡ‹ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‚ элСмСнтам статичСской сСмантичСской ΠΌΠΎΠ΄Π΅Π»ΠΈ. МодСль систСмы, Π² свою ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ, Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ согласована с Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅ΠΉ структурой классов, которая описываСтся Π½Π° языкС UML.

5.1. Класс

Класс (class) Π² языкС UML слуТит для обозначСния мноТСства ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠ±Π»Π°Π΄Π°ΡŽΡ‚ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎΠΉ структурой, ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ΠΌ ΠΈ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡΠΌΠΈ с ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ ΠΈΠ· Π΄Ρ€ΡƒΠ³ΠΈΡ… классов. ГрафичСски класс изобраТаСтся Π² Π²ΠΈΠ΄Π΅ ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠ°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ Π³ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»ΡŒΠ½Ρ‹ΠΌΠΈ линиями Π½Π° Ρ€Π°Π·Π΄Π΅Π»Ρ‹ ΠΈΠ»ΠΈ сСкции (рис. 5.1). Π’ этих Ρ€Π°Π·Π΄Π΅Π»Π°Ρ… ΠΌΠΎΠ³ΡƒΡ‚ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒΡΡ имя класса, Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹ (ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅) ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ (ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹).

Рис. 5.1. ГрафичСскоС ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ класса Π½Π° Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΠ΅ классов

ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ элСмСнтов обозначСния класса являСтся Π΅Π³ΠΎ имя. На Π½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹Ρ… этапах Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΡ‹ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ классы ΠΌΠΎΠ³ΡƒΡ‚ ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°Ρ‚ΡŒΡΡ простым ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠΎΠΌ с ΡƒΠΊΠ°Π·Π°Π½ΠΈΠ΅ΠΌ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΈΠΌΠ΅Π½ΠΈ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ класса (рис. 5.1, Π°). По ΠΌΠ΅Ρ€Π΅ ΠΏΡ€ΠΎΡ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΡ‹ описания классов Π΄ΠΎΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π°ΠΌΠΈ (рис. 5.1, Π±) ΠΈ опСрациями (рис. 5.1, Π²).

ΠŸΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅Ρ‚ΡΡ, Ρ‡Ρ‚ΠΎ ΠΎΠΊΠΎΠ½Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΡ‹ содСрТит Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ»Π½ΠΎΠ΅ описаниС классов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ состоят ΠΈΠ· Ρ‚Ρ€Π΅Ρ… Ρ€Π°Π·Π΄Π΅Π»ΠΎΠ² ΠΈΠ»ΠΈ сСкций. Иногда Π² обозначСниях классов ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ Ρ‡Π΅Ρ‚Π²Π΅Ρ€Ρ‚Ρ‹ΠΉ Ρ€Π°Π·Π΄Π΅Π», Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ приводится сСмантичСская информация справочного Ρ…Π°Ρ€Π°ΠΊΡ‚Π΅Ρ€Π° ΠΈΠ»ΠΈ явно ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ситуации.

Π”Π°ΠΆΠ΅ Ссли сСкция Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ² ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ являСтся пустой, Π² ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π΅Π½ΠΈΠΈ класса ΠΎΠ½Π° выдСляСтся Π³ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»ΡŒΠ½ΠΎΠΉ Π»ΠΈΠ½ΠΈΠ΅ΠΉ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ сразу ΠΎΡ‚Π»ΠΈΡ‡ΠΈΡ‚ΡŒ класс ΠΎΡ‚ Π΄Ρ€ΡƒΠ³ΠΈΡ… элСмСнтов языка UML. ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ графичСского изобраТСния классов Π½Π° Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΠ΅ классов ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Ρ‹ Π½Π° рис. 5.2. Π’ ΠΏΠ΅Ρ€Π²ΠΎΠΌ случаС для класса Β«ΠŸΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΒ» (рис. 5.2, Π°) ΡƒΠΊΠ°Π·Π°Π½Ρ‹ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π΅Π³ΠΎ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹ – Ρ‚ΠΎΡ‡ΠΊΠΈ Π½Π° ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Π½ΠΎΠΉ плоскости, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ Π΅Π³ΠΎ располоТСниС. Для класса «Окно» (рис. 5.2, Π±) ΡƒΠΊΠ°Π·Π°Π½Ρ‹ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π΅Π³ΠΎ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ, сСкция Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ² оставлСна пустой. Для класса Β«Π‘Ρ‡Π΅Ρ‚Β» (рис. 5.2, Π²) Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½Π° чСтвСртая сСкция, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΡƒΠΊΠ°Π·Π°Π½ΠΎ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ – ΠΎΡ‚ΠΊΠ°Π· ΠΎΡ‚ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ просрочСнной ΠΊΡ€Π΅Π΄ΠΈΡ‚Π½ΠΎΠΉ ΠΊΠ°Ρ€Ρ‚ΠΎΡ‡ΠΊΠΈ.

Рис.5.2. ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ графичСского изобраТСния классов Π½Π° Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΠ΅

Имя класса

Имя класса Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΌ Π² ΠΏΡ€Π΅Π΄Π΅Π»Π°Ρ… ΠΏΠ°ΠΊΠ΅Ρ‚Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ описываСтся Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΡΠΎΠ²ΠΎΠΊΡƒΠΏΠ½ΠΎΡΡ‚ΡŒΡŽ Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌ классов (Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΠΎΠ΄Π½ΠΎΠΉ Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΠΎΠΉ). Оно указываСтся Π² ΠΏΠ΅Ρ€Π²ΠΎΠΉ Π²Π΅Ρ€Ρ…Π½Π΅ΠΉ сСкции ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠ°. Π’ Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊ ΠΎΠ±Ρ‰Π΅ΠΌΡƒ ΠΏΡ€Π°Π²ΠΈΠ»Ρƒ наимСнования элСмСнтов языка UML, имя класса записываСтся ΠΏΠΎ Ρ†Π΅Π½Ρ‚Ρ€Ρƒ сСкции ΠΈΠΌΠ΅Π½ΠΈ ΠΏΠΎΠ»ΡƒΠΆΠΈΡ€Π½Ρ‹ΠΌ ΡˆΡ€ΠΈΡ„Ρ‚ΠΎΠΌ ΠΈ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π½Π°Ρ‡ΠΈΠ½Π°Ρ‚ΡŒΡΡ с Π·Π°Π³Π»Π°Π²Π½ΠΎΠΉ Π±ΡƒΠΊΠ²Ρ‹. РСкомСндуСтся Π² качСствС ΠΈΠΌΠ΅Π½ классов ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅, записанныС ΠΏΠΎ практичСским сообраТСниям Π±Π΅Π· ΠΏΡ€ΠΎΠ±Π΅Π»ΠΎΠ². НСобходимо ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΈΠΌΠ΅Π½Π° классов ΠΎΠ±Ρ€Π°Π·ΡƒΡŽΡ‚ ΡΠ»ΠΎΠ²Π°Ρ€ΡŒ ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚Π½ΠΎΠΉ области ΠΏΡ€ΠΈ ООАП.

Π’ ΠΏΠ΅Ρ€Π²ΠΎΠΉ сСкции обозначСния класса ΠΌΠΎΠ³ΡƒΡ‚ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ ссылки Π½Π° стандартныС ΡˆΠ°Π±Π»ΠΎΠ½Ρ‹ ΠΈΠ»ΠΈ абстрактныС классы, ΠΎΡ‚ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ Π΄Π°Π½Π½Ρ‹ΠΉ класс ΠΈ, соотвСтствСнно, ΠΎΡ‚ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΎΠ½ наслСдуСт свойства ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹. Π’ этой сСкции ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ информация ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ΅ Π΄Π°Π½Π½ΠΎΠ³ΠΎ класса ΠΈ статус состояния Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠ³ΡƒΡ‚ Π·Π°ΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒΡΡ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΎΠ±Ρ‰ΠΈΠ΅ свойства этого класса, ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΠ΅ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠ΅ ΠΊ Π΄Ρ€ΡƒΠ³ΠΈΠΌ классам Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΡ‹ ΠΈΠ»ΠΈ стандартным элСмСнтам языка UML.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€Π°ΠΌΠΈ ΠΈΠΌΠ΅Π½ классов ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Ρ‚Π°ΠΊΠΈΠ΅ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅, ΠΊΠ°ΠΊ Β«Π‘ΠΎΡ‚Ρ€ΡƒΠ΄Π½ΠΈΠΊΒ», «Компания», Β«Π ΡƒΠΊΠΎΠ²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΒ», Β«ΠšΠ»ΠΈΠ΅Π½Ρ‚Β», Β«ΠŸΡ€ΠΎΠ΄Π°Π²Π΅Ρ†Β», Β«ΠœΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€Β», Β«ΠžΡ„ΠΈΡΒ» ΠΈ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Π΄Ρ€ΡƒΠ³ΠΈΠ΅, ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΠ΅ нСпосрСдствСнноС ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠ΅ ΠΊ ΠΌΠΎΠ΄Π΅Π»ΠΈΡ€ΡƒΠ΅ΠΌΠΎΠΉ ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚Π½ΠΎΠΉ области ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠΌΡƒ Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΡƒΠ΅ΠΌΠΎΠΉ систСмы.