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

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ Β«Rational Rose 2000 ΠΈ UML Π’ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎΠ΅ ΠΌΠΎΠ΄Π΅Π»ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅Β». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 18

Автор Π’Π΅Ρ€Ρ€ΠΈ ΠšΠ²Π°Ρ‚Ρ€Π°Π½ΠΈ

Для пСрСмСщСния Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ² ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ Rational Rose:

1. Π’ ΠΎΠΊΠ½Π΅ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π° Ρ‰Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ ΠΏΠΎ Π·Π½Π°Ρ‡ΠΊΡƒ Β«+Β» слСва ΠΎΡ‚ ΠΈΠΌΠ΅Π½ΠΈ подкласса, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ€Π°ΡΠΊΡ€Ρ‹Ρ‚ΡŒ список Π΅Π³ΠΎ свойств.

2. Π’Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ ΠΈΠ»ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π½ΡƒΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ.

3. ΠŸΠ΅Ρ€Π΅Ρ‚Π°Ρ‰ΠΈΡ‚Π΅ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΡ‹ΡˆΠΈ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ ΠΈΠ»ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ Π½Π° супСркласс.

4. Π£Π΄Π°Π»ΠΈΡ‚Π΅ Π΄Π°Π½Π½Ρ‹ΠΉ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ ΠΈΠ»ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ ΠΈΠ· Π΄Ρ€ΡƒΠ³ΠΈΡ… подклассов.

5. Π’Π°ΠΊΠΈΠΌ ΠΆΠ΅ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ пСрСмСститС Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹ ΠΈΠ· подклассов Π² супСркласс.

Π˜Π΅Ρ€Π°Ρ€Ρ…ΠΈΡ наслСдования послС пСрСноса Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ² ΠΏΠΎΠΊΠ°Π·Π°Π½Π° Π½Π° рис. 8.4.

Рис. 8.4. Атрибуты ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ, ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π΅Π½Π½Ρ‹Π΅ Π² супСркласс

ΠžΠ΄ΠΈΠ½ΠΎΡ‡Π½ΠΎΠ΅ ΠΈ мноТСствСнноС наслСдованиС

ΠŸΡ€ΠΈ ΠΎΠ΄ΠΈΠ½ΠΎΡ‡Π½ΠΎΠΌ наслСдовании класс содСрТит СдинствСнный Π½Π°Π±ΠΎΡ€ ΠΏΠΎΡ‚ΠΎΠΌΠΊΠΎΠ², Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ ΠΎΠ΄Π½Ρƒ Ρ†Π΅ΠΏΠΎΡ‡ΠΊΡƒ супСрклассов (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, лСгковая машина β€” это Π°Π²Ρ‚ΠΎΠΌΠΎΠ±ΠΈΠ»ΡŒ, Π° Π°Π²Ρ‚ΠΎΠΌΠΎΠ±ΠΈΠ»ΡŒ β€” срСдство пСрСдвиТСния). ΠœΠ½ΠΎΠΆΠ΅ΡΡ‚Π²Π΅Π½Π½ΠΎΠ΅ наслСдованиС Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π±ΠΎΠ»Π΅Π΅ ΠΎΠ΄Π½ΠΎΠΉ Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠΈ супСрклассов (машина-амфибия β€” это Π°Π²Ρ‚ΠΎΠΌΠΎΠ±ΠΈΠ»ΡŒ, Π°Π²Ρ‚ΠΎΠΌΠΎΠ±ΠΈΠ»ΡŒ β€” срСдство пСрСдвиТСния, Π² Ρ‚ΠΎ ΠΆΠ΅ врСмя машина-амфибия β€” это Π»ΠΎΠ΄ΠΊΠ°, Π° Π»ΠΎΠ΄ΠΊΠ° β€” срСдство пСрСдвиТСния). ΠŸΡ€ΠΈ мноТСствСнном наслСдовании Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ряд ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ, Π² частности ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ ΠΈΠΌΠ΅Π½ ΠΈ нСсколько ΠΊΠΎΠΏΠΈΠΉ унаслСдованных свойств. Бпособ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Ρ‚Π°ΠΊΠΈΡ… ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ выбираСтся Π² зависимости ΠΎΡ‚ языка программирования: Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ Π±Π°Π·ΠΎΠ²Ρ‹Π΅ классы Π² Π‘++ ΠΈΠ»ΠΈ отсутствиС ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ мноТСствСнного наслСдования Π² PowerBuilder. ΠœΠ½ΠΎΠΆΠ΅ΡΡ‚Π²Π΅Π½Π½ΠΎΠ΅ наслСдованиС ΠΌΠΎΠΆΠ΅Ρ‚ ΡΡ‚Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΡ‡ΠΈΠ½ΠΎΠΉ Π·Π°ΠΏΡƒΡ‚Π°Π½Π½ΠΎΠ³ΠΎ ΠΈ Ρ‚Ρ€ΡƒΠ΄Π½ΠΎ сопровоТдаСмого ΠΊΠΎΠ΄Π° β€” Ρ‡Π΅ΠΌ большС супСрклассов, Ρ‚Π΅ΠΌ Ρ‚Ρ€ΡƒΠ΄Π½Π΅Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΎΡ‚ΠΊΡƒΠ΄Π° взялось ΠΈ Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ‚ ΠΏΡ€ΠΈ внСсСнии ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ. Π’Ρ‹Π²ΠΎΠ΄: ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ мноТСствСнноС наслСдованиС Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡ€ΠΈ нСобходимости ΠΈ с большой ΠΎΡΡ‚ΠΎΡ€ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒΡŽ.

НаслСдованиС ΠΈ агрСгация

НаслСдованиС часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π½Π΅ ΠΏΠΎ Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ. БущСствуСт ΠΌΠ½Π΅Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ Β«Ρ‡Π΅ΠΌ большС я Π±ΡƒΠ΄Ρƒ Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ, Ρ‚Π΅ΠΌ Π»ΡƒΡ‡ΡˆΠ΅ станСт ΠΌΠΎΠΉ ΠΊΠΎΠ΄Β». Π­Ρ‚ΠΎ Π·Π°Π±Π»ΡƒΠΆΠ΄Π΅Π½ΠΈΠ΅. Π’ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ наслСдования ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°ΠΌ. НапримСр, студСнт ΠΌΠΎΠΆΠ΅Ρ‚ ΡƒΡ‡ΠΈΡ‚ΡŒΡΡ ΠΎΡ‡Π½ΠΎ ΠΈΠ»ΠΈ Π·Π°ΠΎΡ‡Π½ΠΎ. Π‘ΠΎΠ·Π΄Π°Π΄ΠΈΠΌ супСркласс студСнт (Student) ΠΈ Π΄Π²Π° подкласса β€” студСнт ΠΎΡ‡Π½ΠΎΠ³ΠΎ отдСлСния (FulltimeStudent) ΠΈ студСнт Π·Π°ΠΎΡ‡Π½ΠΎΠ³ΠΎ отдСлСния (ParttimeStudent). Π’ΠΎ врСмя Ρ€Π°Π±ΠΎΡ‚Ρ‹ Ρ‚Π°ΠΊΠΎΠΉ структуры навСрняка Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡƒΡ‚ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹. Π§Ρ‚ΠΎ случится, Ссли:

β–‘ студСнт ΠΎΡ‡Π½ΠΎΠ³ΠΎ отдСлСния Ρ€Π΅ΡˆΠΈΡ‚ ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ Π½Π° Π·Π°ΠΎΡ‡Π½ΠΎΠ΅? Π­Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚, Ρ‡Ρ‚ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρƒ придСтся ΡΠΌΠ΅Π½ΠΈΡ‚ΡŒ класс;

β–‘ Π±ΡƒΠ΄Π΅Ρ‚ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° Π΅Ρ‰Π΅ ΠΎΠ΄Π½Π° Ρ€Π°Π·ΠΌΠ΅Ρ€Π½ΠΎΡΡ‚ΡŒ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, студСнт, ΠΏΠΎΠ»ΡƒΡ‡Π°ΡŽΡ‰ΠΈΠΉ ΡΡ‚ΠΈΠΏΠ΅Π½Π΄ΠΈΡŽ ΠΈ Π½Π΅ ΠΏΠΎΠ»ΡƒΡ‡Π°ΡŽΡ‰ΠΈΠΉ ΡΡ‚ΠΈΠΏΠ΅Π½Π΄ΠΈΡŽ)? Π—Π΄Π΅ΡΡŒ понадобятся Π½ΠΎΠ²Ρ‹Π΅ подклассы для прСдставлСния ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎ стипСндии, Π° Ρ‚Π°ΠΊΠΆΠ΅ мноТСствСнноС наслСдованиС для ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ всСх ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΠΉ (студСнт ΠΎΡ‡Π½ΠΎΠ³ΠΎ отдСлСния, ΠΏΠΎΠ»ΡƒΡ‡Π°ΡŽΡ‰ΠΈΠΉ ΡΡ‚ΠΈΠΏΠ΅Π½Π΄ΠΈΡŽ, студСнт Π·Π°ΠΎΡ‡Π½ΠΎΠ³ΠΎ отдСлСния, ΠΏΠΎΠ»ΡƒΡ‡Π°ΡŽΡ‰ΠΈΠΉ ΡΡ‚ΠΈΠΏΠ΅Π½Π΄ΠΈΡŽ ΠΈ Ρ‚. Π΄.).

НаслСдованиС Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΡΠ»ΡƒΠΆΠΈΡ‚ΡŒ для отдСлСния общности ΠΎΡ‚ спСцифики. АгрСгация β€” для отраТСния ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠΉ. Часто ΠΎΠ±Π° Ρ‚ΠΈΠΏΠ° ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠΉ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ вмСстС. Класс студСнт ΠΈΠΌΠ΅Π΅Ρ‚ ΠΊΠ»Π°ΡΡΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡŽ (Π°Π³Ρ€Π΅Π³Π°Ρ†ΠΈΡŽ), которая, Π² свою ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ, дСлится Π½Π° классы студСнт-ΠΎΡ‡Π½ΠΈΠΊ ΠΈ студСнт-Π·Π°ΠΎΡ‡Π½ΠΈΠΊ (наслСдованиС) β€” см. рис 8.5.

Рис. 8.5. НаслСдованиС Π² сравнСнии с Π°Π³Ρ€Π΅Π³Π°Ρ†ΠΈΠ΅ΠΉ

РСзюмС

НаслСдованиС позволяСт ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΈΠ΅Ρ€Π°Ρ€Ρ…ΠΈΡŽ классов, ΠΊΠΎΠ³Π΄Π° общая структура ΠΈ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Ρ€Π°Π·Π΄Π΅Π»ΡΡŽΡ‚ΡΡ ΠΌΠ΅ΠΆΠ΄Ρƒ Π½ΠΈΠΌΠΈ. Π’Π΅Ρ€ΠΌΠΈΠ½ «супСркласс» Ρ…Π°Ρ€Π°ΠΊΡ‚Π΅Ρ€ΠΈΠ·ΡƒΠ΅Ρ‚ класс, содСрТащий ΠΎΠ±Ρ‰ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ. ΠšΠ»Π°ΡΡΡ‹-ΠΏΠΎΡ‚ΠΎΠΌΠΊΠΈ Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ подклассами. Подкласс наслСдуСт всС Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹, ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ΠΈ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡ, ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ Π²ΠΎ всСх Π΅Π³ΠΎ супСрклассах.

Π•ΡΡ‚ΡŒ Π΄Π²Π° способа опрСдСлСния наслСдования Π² любой систСмС: ΠΎΠ±ΠΎΠ±Ρ‰Π΅Π½ΠΈΠ΅ ΠΈ спСциализация. ΠžΠ±ΠΎΠ±Ρ‰Π΅Π½ΠΈΠ΅ обСспСчиваСт Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ создания супСрклассов, ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΡŽΡ‰ΠΈΡ… ΠΎΠ±Ρ‰ΠΈΠ΅ для Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… классов структуру ΠΈ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅. БпСциализация позволяСт ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ подклассы, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡƒΡ‚ΠΎΡ‡Π½ΡΡŽΡ‚ ΠΈΠ»ΠΈ Π΄ΠΎΠΏΠΎΠ»Π½ΡΡŽΡ‚ структуру ΠΈ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅, ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ Π² супСрклассС.

Π“Π»Π°Π²Π° 9. Анализ повСдСния ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°

ΠœΠΎΠ΄Π΅Π»ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ динамичСского повСдСния

ΠŸΡ€Π΅Ρ†Π΅Π΄Π΅Π½Ρ‚Ρ‹ ΠΈ сцСнарии ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ для описания повСдСния систСмы, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ взаимодСйствия ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Π² Π½Π΅ΠΉ. Иногда трСбуСтся Ρ€Π°ΡΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π²Π½ΡƒΡ‚Ρ€ΠΈ самого ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°. Π”ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΠ° состояний (statechart diagram) ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΎΠ΄ΠΈΠ½ΠΎΡ‡Π½ΠΎΠ³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°, события ΠΈΠ»ΠΈ сообщСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‚ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ ΠΈΠ· ΠΎΠ΄Π½ΠΎΠ³ΠΎ состояния Π² Π΄Ρ€ΡƒΠ³ΠΎΠ΅, ΠΈ дСйствия, ΡΠ²Π»ΡΡŽΡ‰ΠΈΠ΅ΡΡ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠΌ смСны состояния.

Π”ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΡƒ состояний Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ класса Π² систСмС, Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для классов с «особСнным» динамичСским ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ΠΌ. Для опрСдСлСния динамичСских ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Π² систСмС, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², ΠΎΡ‚ΡΡ‹Π»Π°ΡŽΡ‰ΠΈΡ… ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π°ΡŽΡ‰ΠΈΡ… большоС количСство сообщСний, ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΡ‹ взаимодСйствий. Π”ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΠ° состояний Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΠ»Π΅Π·Π½Π° для изучСния повСдСния класса-Π°Π³Ρ€Π΅Π³Π°Ρ‚Π° ΠΈ ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰Π΅Π³ΠΎ класса.

Π‘Π»Π΅Π΄ΡƒΠ΅Ρ‚ Π²Π½ΠΈΠΌΠ°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΠΎΠ΄ΠΎΠΉΡ‚ΠΈ ΠΊ вопросам Π°Π½Π°Π»ΠΈΠ·Π° ΠΈ ΡΠΎΡΡ€Π΅Π΄ΠΎΡ‚ΠΎΡ‡ΠΈΡ‚ΡŒΡΡ Π½Π° Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ прСдставляСт собой ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°, Π° Π½Π΅ Π½Π° Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ ΠΎΠ½Π° Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π΅ΡˆΠ°Ρ‚ΡŒΡΡ. Для создания Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΡ‹ состояний Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ Rational Rose:

1. Π©Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ ΠΏΡ€Π°Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ ΠΌΡ‹ΡˆΠΈ ΠΏΠΎ классу Π² спискС Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°.

2. Π’ появившСмся контСкстно-зависимом мСню Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ New => Statechart Diagram (Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ => Π”ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΠ° состояний). Π’ список Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π° Π±ΡƒΠ΄Π΅Ρ‚ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΠ° New Diagram.

3. Π’Π²Π΅Π΄ΠΈΡ‚Π΅ Π΅Π΅ Π½Π°Π·Π²Π°Π½ΠΈΠ΅.

4. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΡƒ, Ρ‰Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ ΠΏΠΎ Π·Π½Π°Ρ‡ΠΊΡƒ Β«+Β» слСва ΠΎΡ‚ ΠΈΠΌΠ΅Π½ΠΈ подкласса Π² ΠΎΠΊΠ½Π΅ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°, ΠΏΠΎΡ‚ΠΎΠΌ ΠΏΠΎ Π·Π½Π°Ρ‡ΠΊΡƒ Β«+Β» слСва ΠΎΡ‚ ΠΏΡƒΠ½ΠΊΡ‚Π° State/Activity Model (МодСль состояний ΠΈ дСйствий), Π° Π·Π°Ρ‚Π΅ΠΌ Π΄Π²Π°ΠΆΠ΄Ρ‹ ΠΏΠΎ Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΠ΅ состояний.

Π”ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΠ° состояний Π² спискС Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π° для класса ΡƒΡ‡Π΅Π±Π½Ρ‹ΠΉ курс (Course Offering) ΠΏΠΎΠΊΠ°Π·Π°Π½Π° Π½Π° рис. 9.1.


Рис. 9.1. Π”ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΠ° состояний Π² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅

Бостояния

БостояниС (state) β€” это Π½Π΅ΠΊΠΎΠ΅ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π² ΠΆΠΈΠ·Π½ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°, ΠΏΡ€ΠΈ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΎΠ½ удовлСтворяСт ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΌΡƒ ΡƒΡΠ»ΠΎΠ²ΠΈΡŽ, выполняСт Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ дСйствиС ΠΈΠ»ΠΈ ΠΎΠΆΠΈΠ΄Π°Π΅Ρ‚ события. БостояниС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΠΈΡΠ°Ρ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ² класса. НапримСр, ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΡƒΡ‡Π΅Π±Π½Ρ‹ΠΉ курс ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ (доступСн для записи студСнтов) ΠΈΠ»ΠΈ Π·Π°ΠΊΡ€Ρ‹Ρ‚ (максимальноС число студСнтов ΡƒΠΆΠ΅ записано Π½Π° курс). БостояниС зависит ΠΎΡ‚ числа студСнтов, ΠΏΡ€ΠΈΠΊΡ€Π΅ΠΏΠ»Π΅Π½Π½Ρ‹Ρ… ΠΊ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρƒ ΡƒΡ‡Π΅Π±Π½Ρ‹ΠΉ курс. ΠšΡ€ΠΎΠΌΠ΅ этого, ΠΎΠ½ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒΡΡ Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ΠΌ связи с Π΄Ρ€ΡƒΠ³ΠΈΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ. АктСр ΠΏΡ€Π΅ΠΏΠΎΠ΄Π°Π²Π°Ρ‚Π΅Π»ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π»Π΅ΠΊΡ†ΠΈΠΈ ΠΈΠ»ΠΈ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ Π² отпускС. Π­Ρ‚ΠΎ зависит ΠΎΡ‚ наличия связи с ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ ΡƒΡ‡Π΅Π±Π½Ρ‹ΠΉ курс. ΠŸΡ€ΠΈ Π°Π½Π°Π»ΠΈΠ·Π΅ состояния ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ ΠΌΠΎΡ‰Π½ΠΎΡΡ‚ΡŒ, Π²Ρ‹Π±Ρ€Π°Π½Π½ΡƒΡŽ для ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡ с Π΄Ρ€ΡƒΠ³ΠΈΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ. Π’ΠΎ Π΅ΡΡ‚ΡŒ, Ссли Π½Π°Ρ…ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅ Π² ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΌ состоянии зависит ΠΎΡ‚ наличия связи с Π΄Ρ€ΡƒΠ³ΠΈΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ, Π·Π½Π°Ρ‡ΠΈΡ‚, ΠΌΠΎΡ‰Π½ΠΎΡΡ‚ΡŒ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡ, относящаяся ΠΊ связанному классу, Π΄ΠΎΠ»ΠΆΠ½Π° Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Π½ΡƒΠ»Π΅Π²ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ (Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ словами, ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠ΅ Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ). Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, состояния ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ΡΡ ΠΏΡ€ΠΈ ΠΈΠ·ΡƒΡ‡Π΅Π½ΠΈΠΈ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ² ΠΈ связСн, ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹Ρ… для Π½Π΅Π³ΠΎ.

Π’ языкС UML состояниС изобраТаСтся Π² Π²ΠΈΠ΄Π΅ ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠ° с Π·Π°ΠΊΡ€ΡƒΠ³Π»Π΅Π½Π½Ρ‹ΠΌΠΈ ΡƒΠ³Π»Π°ΠΌΠΈ β€” см. рис. 9.2.

Π”ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΠ° состояний Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ всС сообщСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ ΠΈ отправляСт. Π‘Ρ†Π΅Π½Π°Ρ€ΠΈΠΉ β€” это ΠΎΠ΄ΠΈΠ½ΠΎΡ‡Π½Ρ‹ΠΉ ΠΏΡ€ΠΎΡ…ΠΎΠ΄ ΠΏΠΎ Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΠ΅ состояний. Π˜Π½Ρ‚Π΅Ρ€Π²Π°Π» ΠΌΠ΅ΠΆΠ΄Ρƒ двумя сообщСниями, отправляСмыми ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ, ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ прСдставляСт состояниС. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, для опрСдСлСния состояний

ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Π½ΡƒΠΆΠ½ΠΎ ΠΈΠ·ΡƒΡ‡ΠΈΡ‚ΡŒ Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΡƒ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ дСйствий (взглянитС Π½Π° ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π»Ρ‹ ΠΌΠ΅ΠΆΠ΄Ρƒ линиями сообщСний, ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌΡ‹Ρ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ). Если для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π² систСмС рСгистрации ΡƒΡ‡Π΅Π±Π½Ρ‹Ρ… курсов Π±Ρ‹Π»ΠΈ созданы Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΡ‹ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ дСйствий, Ρ‚ΠΎ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π½ΠΈΡ… ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ класса ΡƒΡ‡Π΅Π±Π½Ρ‹ΠΉ курс (CourseOffering) ΠΌΠΎΠ³ΡƒΡ‚ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΈΠ· ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… состояний: инициализация (создан Π΄ΠΎ рСгистрации, Π½ΠΎ студСнты Π½Π΅ ΠΏΡ€ΠΈΠΊΡ€Π΅ΠΏΠ»Π΅Π½Ρ‹), ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ (доступСн для записи студСнтов), Π·Π°ΠΊΡ€Ρ‹Ρ‚ (Π½Π° курс записано максимальноС число студСнтов), ΠΎΡ‚ΠΌΠ΅Π½Π΅Π½ (большС Π½Π΅ читаСтся).

ΠŸΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ создания состояний Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ Rational Rose:

1. Π©Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ ΠΏΠΎ ΠΊΠ½ΠΎΠΏΠΊΠ΅ State (БостояниС) Π½Π° ΠΏΠ°Π½Π΅Π»ΠΈ инструмСнтов.

2. Π©Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ ΠΏΠΎ Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΠ΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ Π½Π° Π½Π΅Π΅ Π½ΠΎΠ²ΠΎΠ΅ состояниС.

3. Π’Π²Π΅Π΄ΠΈΡ‚Π΅ Π΅Π³ΠΎ Π½Π°Π·Π²Π°Π½ΠΈΠ΅.

Бостояния класса ΡƒΡ‡Π΅Π±Π½Ρ‹ΠΉ курс ΠΏΠΎΠΊΠ°Π·Π°Π½Ρ‹ Π½Π° рис. 9.3.

Рис. 9.3. Бостояния

ΠŸΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Ρ‹ ΠΌΠ΅ΠΆΠ΄Ρƒ состояниями

ΠŸΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Ρ‹ ΠΌΠ΅ΠΆΠ΄Ρƒ состояниями (state transitions) ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ собой смСну исходного состояния ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ (ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Ρ‚Π΅ΠΌ ΠΆΠ΅, Ρ‡Ρ‚ΠΎ ΠΈ исходноС). ΠŸΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠΏΡ€ΠΎΠ²ΠΎΠΆΠ΄Π°Ρ‚ΡŒΡΡ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌ дСйствиСм.

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