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

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

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

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

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

Для опрСдСлСния Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ… Π² языкС UML ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ ΠΊΠ°ΠΊ простыС конструкции: Ρ†Π΅Π»ΠΎΠ΅ число (Integer), строка (String), имя (Name), Π‘ΡƒΠ»Π΅Π² (Boolean), врСмя (Time), ΠΊΡ€Π°Ρ‚Π½ΠΎΡΡ‚ΡŒ (Multiplicity), Ρ‚ΠΈΠΏ видимости (VisibilityKind), Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ кратности (MultiplicityRange), Ρ‚Π°ΠΊ ΠΈ Π±ΠΎΠ»Π΅Π΅ слоТныС: Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ (Expression), булСвскоС Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ (BooleanExpression), Ρ‚ΠΈΠΏ агрСгирования (AggregationKind), Ρ‚ΠΈΠΏ измСнСния (ChangeableKind), гСомСтрия (Geometry), ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ (Mapping), Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅-ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° (ProcedureExpression), Ρ‚ΠΈΠΏ псСвдосостояния (PseudostateKind), Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ (TimeExpression), Π½Π΅ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π΅ΠΌΡ‹ΠΉ (Uninterpreted).

ΠŸΠ°ΠΊΠ΅Ρ‚ Π­Π»Π΅ΠΌΠ΅Π½Ρ‚Ρ‹ повСдСния

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

Рис. 3.7. ΠŸΠΎΠ΄ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹ ΠΏΠ°ΠΊΠ΅Ρ‚Π° Π­Π»Π΅ΠΌΠ΅Π½Ρ‚Ρ‹ повСдСния языка UML

ΠŸΠ°ΠΊΠ΅Ρ‚ ΠžΠ±Ρ‰Π΅Π΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅

ΠŸΠ°ΠΊΠ΅Ρ‚ ΠžΠ±Ρ‰Π΅Π΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ являСтся Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Ρ„ΡƒΠ½Π΄Π°ΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Ρ‹ΠΌ ΠΈΠ· всСх ΠΏΠΎΠ΄ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² ΠΈ опрСдСляСт Π±Π°Π·ΠΎΠ²Ρ‹Π΅ понятия ядра, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ для всСх элСмСнтов повСдСния. Π’ этом ΠΏΠ°ΠΊΠ΅Ρ‚Π΅ спСцифицирована сСмантика для динамичСских элСмСнтов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Ρ‹ Π² Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΏΠΎΠ΄ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹ элСмСнтов повСдСния. Π’ ΠΏΠ°ΠΊΠ΅Ρ‚ ΠžΠ±Ρ‰Π΅Π΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π²Ρ…ΠΎΠ΄ΠΈΡ‚ достаточно большоС число элСмСнтов, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ (Object), дСйствиС (Action), ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ дСйствий (ActionSequence), Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ (Argument), экзСмпляр (Instance), ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ (Exception), связь (Link), сигнал (Signal), Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Ρ… (DataValue), связь Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ² (AttributeLink), дСйствиС Π²Ρ‹Π·ΠΎΠ²Π° (CallAction), дСйствиС создания (CreateAction), дСйствиС уничтоТСния (DestroyAction).

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

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

ΠŸΠ°ΠΊΠ΅Ρ‚ ΠšΠΎΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ

ΠŸΠ°ΠΊΠ΅Ρ‚ ΠšΠΎΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ спСцифицируСт контСкст повСдСния ΠΏΡ€ΠΈ использовании элСмСнтов ΠΌΠΎΠ΄Π΅Π»ΠΈ для выполнСния ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΉ Π·Π°Π΄Π°Ρ‡ΠΈ. Π’ Π½Π΅ΠΌ задаСтся сСмантика понятий, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹ для ΠΎΡ‚Π²Π΅Ρ‚Π° Π½Π° вопрос: «Как Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ элСмСнты ΠΌΠΎΠ΄Π΅Π»ΠΈ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΡƒΡŽΡ‚ ΠΌΠ΅ΠΆΠ΄Ρƒ собой с Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния структуры?Β» Π­Ρ‚ΠΎΡ‚ ΠΏΠ°ΠΊΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ конструкции, ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ Π² ΠΏΠ°ΠΊΠ΅Ρ‚Π°Ρ… ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ элСмСнты языка UML ΠΈ ΠžΠ±Ρ‰Π΅Π΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅.

Π’ частности, Π² ΠΏΠ°ΠΊΠ΅Ρ‚ ΠšΠΎΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ входят элСмСнты: коопСрация (Collaboration), взаимодСйствиС (Interaction), сообщСниС (Message), Ρ€ΠΎΠ»ΡŒ ассоциации (AssociationRole), Ρ€ΠΎΠ»ΡŒ классификатора (ClassifierRole), Ρ€ΠΎΠ»ΡŒ ΠΊΠΎΠ½Ρ†Π° ассоциации (AssociationEndRole). Как ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ³Π°Π΄Π°Ρ‚ΡŒΡΡ ΠΈΠ· названия ΠΏΠ°ΠΊΠ΅Ρ‚Π°, Π΅Π³ΠΎ элСмСнты нСпосрСдствСнно ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ ΠΏΡ€ΠΈ построСнии Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌ ΠΊΠΎΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ. ΠŸΠΎΠ½ΡΡ‚ΠΈΠ΅ ΠΊΠΎΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ΠΈΠΌΠ΅Π΅Ρ‚ Π²Π°ΠΆΠ½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ для прСдставлСния взаимодСйствия элСмСнтов ΠΌΠΎΠ΄Π΅Π»ΠΈ с Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния классификаторов ΠΈ ассоциаций. ΠžΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΠΈ ΠΈΡ… примСнСния Π±ΡƒΠ΄ΡƒΡ‚ Π±ΠΎΠ»Π΅Π΅ Π΄Π΅Ρ‚Π°Π»ΡŒΠ½ΠΎ рассмотрСны ΠΏΡ€ΠΈ ΠΈΠ·ΡƒΡ‡Π΅Π½ΠΈΠΈ Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΡ‹ ΠΊΠΎΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ (см. Π³Π»Π°Π²Ρƒ 9).

ΠŸΠ°ΠΊΠ΅Ρ‚ Π’Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹ использования

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

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅ 27

Π’ ΠΏΠ°ΠΊΠ΅Ρ‚ Π’Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹ использования ΠΊΡ€ΠΎΠΌΠ΅ ΡƒΠΆΠ΅ упомянутых элСмСнтов Π°ΠΊΡ‚Π΅Ρ€ (Actor) ΠΈ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ использования (UseCase) входят: Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ (Extension), Ρ‚ΠΎΡ‡ΠΊΠ° Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ (ExtensionPoint), Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ (Include) ΠΈ экзСмпляр Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π° использования (UseCaselnstance). Π‘ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠ· этих понятий Π±ΡƒΠ΄ΡƒΡ‚ рассмотрСны ΠΏΡ€ΠΈ описании Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ² использования (см. Π³Π»Π°Π²Ρƒ 4).

ΠŸΠ°ΠΊΠ΅Ρ‚ Автоматы

ΠŸΠ°ΠΊΠ΅Ρ‚ Автоматы спСцифицируСт ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΈ построСнии ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ с использованиСм систСм ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΎΠ² для ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠ³ΠΎ мноТСства состояний. Π’ Π½Π΅ΠΌ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΎ мноТСсто понятий, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹ для прСдставлСния повСдСния ΠΌΠΎΠ΄Π΅Π»ΠΈ Π² Π²ΠΈΠ΄Π΅ дискрСтного пространства с ΠΊΠΎΠ½Π΅Ρ‡Π½Ρ‹ΠΌ числом состояний ΠΈ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΎΠ².

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

Π’ ΠΏΠ°ΠΊΠ΅Ρ‚ Автоматы входят элСмСнты: состояниС (State), ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ (Transition), событиС (Event), Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ (StateMachine), простоС состояниС (SimpleState), составноС состояниС CompositeState, псСвдосостояниС (PseudoState), ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠ΅ состояниС (FinalState) ΠΈ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄Ρ€ΡƒΠ³ΠΈΠ΅.

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

Π‘ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ понятия этого ΠΏΠ°ΠΊΠ΅Ρ‚Π° Π±ΡƒΠ΄ΡƒΡ‚ рассмотрСны ΠΏΡ€ΠΈ ΠΈΠ·ΡƒΡ‡Π΅Π½ΠΈΠΈ Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌ состояний (см. Π³Π»Π°Π²Ρƒ 6).

ΠŸΠ°ΠΊΠ΅Ρ‚ ΠžΠ±Ρ‰ΠΈΠ΅ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΡ‹

Π’ этом ΠΏΠ°ΠΊΠ΅Ρ‚Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Ρ‹ ΠΎΠ±Ρ‰ΠΈΠ΅ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΡ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠΌΡ‹ ΠΊΠΎ всСм модСлям UML. ΠŸΠ°ΠΊΠ΅Ρ‚ состоит ΠΈΠ· СдинствСнного ΠΏΠΎΠ΄ΠΏΠ°ΠΊΠ΅Ρ‚Π° управлСния модСлями (рис. 3.8). Π­Ρ‚ΠΎΡ‚ ΠΏΠΎΠ΄ΠΏΠ°ΠΊΠ΅Ρ‚ слуТит для спСцификации способов ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ элСмСнтов Π² ΠΌΠΎΠ΄Π΅Π»ΠΈ, ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹ ΠΈ подсистСмы. ΠšΡ€Π°Ρ‚ΠΊΠΎ рассмотрим основныС особСнности Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ΄ΠΏΠ°ΠΊΠ΅Ρ‚Π°.

Рис. 3.8. Бостав ΠΏΠ°ΠΊΠ΅Ρ‚Π° ΠžΠ±Ρ‰ΠΈΠ΅ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΡ‹

ΠŸΠ°ΠΊΠ΅Ρ‚ Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ модСлями

ΠŸΠ°ΠΊΠ΅Ρ‚ Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ модСлями (Model Management) спСцифицируСт Π±Π°Π·ΠΎΠ²Ρ‹Π΅ элСмСнты языка UML, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹ для формирования всСх ΠΌΠΎΠ΄Π΅Π»ΡŒΠ½Ρ‹Ρ… прСдставлСний. ИмСнно Π² Π½Π΅ΠΌ опрСдСляСтся сСмантика ΠΌΠΎΠ΄Π΅Π»ΠΈ (Model), ΠΏΠ°ΠΊΠ΅Ρ‚Π° (Package) ΠΈ подсистСмы (Subsystem). Π­Ρ‚ΠΈ элСмСнты слуТат своСобразными ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°ΠΌΠΈ для Π³Ρ€ΡƒΠΏΠΏΠΈΡ€ΠΎΠ²ΠΊΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… элСмСнтов ΠΌΠΎΠ΄Π΅Π»ΠΈ.

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