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

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ Β«ΠžΡΠ½ΠΎΠ²Ρ‹ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ программирования». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 95

Автор Π‘Π΅Ρ€Ρ‚Ρ€Π°Π½ ΠœΠ΅ΠΉΠ΅Ρ€

УпраТнСния

Π£10.1 ΠžΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½Π°Ρ унивСрсализация

Π­Ρ‚ΠΎ ΡƒΠΏΡ€Π°ΠΆΠ½Π΅Π½ΠΈΠ΅ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ спСцифично - ΠΎΠ½ΠΎ ставит вопрос, Π΄Π΅Ρ‚Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΎΡ‚Π²Π΅Ρ‚ Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ Π΄Π°Π½ ΠΏΠΎΠ·Π΄Π½Π΅Π΅ Π² этой ΠΊΠ½ΠΈΠ³Π΅. Π•Π³ΠΎ Ρ†Π΅Π»ΡŒ - Π΄Π°Ρ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΡΡ€Π°Π²Π½ΠΈΡ‚ΡŒ вашС Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ с Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ΠΌ, ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½Π½Ρ‹ΠΌ Π² ΠΊΠ½ΠΈΠ³Π΅. Оно особСнно ΠΏΠΎΠ»Π΅Π·Π½ΠΎ, Ссли Π²Ρ‹ Π½Π΅ Π·Π½Π°ΠΊΠΎΠΌΡ‹ с Ρ€Π΅ΡˆΠ΅Π½ΠΈΡΠΌΠΈ, ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅ΠΌΡ‹ΠΌΠΈ Π² ОО-языках. ΠŸΠΎΠ΄Ρ…ΠΎΠ΄ языка Ada ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠΌΠΎΡ‡ΡŒ Π² поискС Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ, Π½ΠΎ ΠΈ Π±Π΅Π· Π½Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±ΠΎΠΉΡ‚ΠΈΡΡŒ.

ΠŸΡ€ΠΎΠ΄ΡƒΠΌΠ°ΠΉΡ‚Π΅ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½ΠΎΠΉ унивСрсализации, совмСстимый ΠΏΠΎ Π΄ΡƒΡ…Ρƒ с ОО-ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΎΠΌ. Он Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡ‚ΡŒ Π°Π²Ρ‚ΠΎΡ€Ρƒ Ρ€ΠΎΠ΄ΠΎΠ²ΠΎΠ³ΠΎ класса ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹Π΅ фактичСскиС Ρ€ΠΎΠ΄ΠΎΠ²Ρ‹Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΎΠ±Π»Π°Π΄Π°Ρ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌ Π½Π°Π±ΠΎΡ€ΠΎΠΌ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ.

Π£10.2 Π”Π²ΡƒΠΌΠ΅Ρ€Π½Ρ‹Π΅ массивы

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ класс ARRAY ΠΊΠ°ΠΊ источник вдохновСния ΠΈ ΠΊΠ°ΠΊ основу Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ, Π½Π°ΠΏΠΈΡˆΠΈΡ‚Π΅ класс ARRAY2, ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‰ΠΈΠΉ Π΄Π²ΡƒΠΌΠ΅Ρ€Π½Ρ‹Π΅ массивы.

Π£10.3 ИспользованиС своСго Ρ„ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ Ρ€ΠΎΠ΄ΠΎΠ²ΠΎΠ³ΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° фактичСски ΠΊΠ°ΠΊ Ρ‡ΡƒΠΆΠΎΠ³ΠΎ

БконструируйтС ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Ρ€ΠΎΠ΄ΠΎΠ²ΠΎΠ³ΠΎ класса C [G] Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, ΠΎΠ±ΡŠΡΠ²Π»Π΅Π½Π½ΡƒΡŽ Π² Π΄Ρ€ΡƒΠ³ΠΎΠΌ Ρ€ΠΎΠ΄ΠΎΠ²ΠΎΠΌ классС D [G], ΠΈΠΌΠ΅ΡŽΡ‰ΡƒΡŽ Ρ„ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ Ρ‚ΠΈΠΏΠ° G.

ЛСкция 11. ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎ ΠΊΠΎΠ½Ρ‚Ρ€Π°ΠΊΡ‚Ρƒ: построСниС Π½Π°Π΄Π΅ΠΆΠ½ΠΎΠ³ΠΎ ПО

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

БазисныС ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΡ‹ надСТности

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

УтвСрТдСния ΠΈ связанныС с Π½ΠΈΠΌΠΈ ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠΈ, проясняСмыС Π² этой Π»Π΅ΠΊΡ†ΠΈΠΈ, частично Π΄Π°ΡŽΡ‚ ΠΎΡ‚Π²Π΅Ρ‚Ρ‹. НС являясь ΠΏΠΎΠ»Π½Ρ‹ΠΌ Π΄ΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒΡΡ‚Π²ΠΎΠΌ, прСдставлСнныС Π½ΠΈΠΆΠ΅ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΡ‹ ΡΠ½Π°Π±ΠΆΠ°ΡŽΡ‚ программиста основными срСдствами для формулирования ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² коррСктности. ΠšΠ»ΡŽΡ‡Π΅Π²ΠΎΠΉ ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠ΅ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎ ΠΊΠΎΠ½Ρ‚Ρ€Π°ΠΊΡ‚Ρƒ (Design by Contract) - установлСниС ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠΉ ΠΌΠ΅ΠΆΠ΄Ρƒ классом ΠΈ Π΅Π³ΠΎ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°ΠΌΠΈ Π² Π²ΠΈΠ΄Π΅ Ρ„ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ соглашСния, нСдвусмыслСнно ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°ΡŽΡ‰Π΅Π΅ ΠΏΡ€Π°Π²Π° ΠΈ обязанности сторон. Волько Ρ‡Π΅Ρ€Π΅Π· Ρ‚ΠΎΡ‡Π½ΠΎΠ΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ модуля Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠΉ ΠΈ отвСтствСнности ΠΌΠΎΠΆΠ½ΠΎ Π½Π°Π΄Π΅ΡΡ‚ΡŒΡΡ Π½Π° достиТСниС сущСствСнной стСпСни довСрия ΠΊ большим ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΌ систСмам.

ΠŸΡ€ΠΈ ΠΎΠ±Π·ΠΎΡ€Π΅ ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠΉ ΠΌΡ‹ Π²ΠΏΠ΅Ρ€Π²Ρ‹Π΅ столкнСмся с ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠΉ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠΉ ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€ΠΈΠΈ - ΠΊΠ°ΠΊ ΡΠΏΡ€Π°Π²ΠΈΡ‚ΡŒΡΡ с ошибками ΠΏΠ΅Ρ€ΠΈΠΎΠ΄Π° выполнСния, Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡŽΡ‰ΠΈΠΌΠΈ ΠΏΡ€ΠΈ Π½Π°Ρ€ΡƒΡˆΠ΅Π½ΠΈΠΈ ΠΊΠΎΠ½Ρ‚Ρ€Π°ΠΊΡ‚Π°. Π­Ρ‚ΠΎΠΉ Ρ‚Π΅ΠΌΠ΅ - ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ситуаций посвящСна ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ лСкция. РаспрСдСлСниС Ρ€ΠΎΠ»Π΅ΠΉ ΠΌΠ΅ΠΆΠ΄Ρƒ двумя Π³Π»Π°Π²Π°ΠΌΠΈ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ ΠΎΡ‚Ρ€Π°ΠΆΠ°Π΅Ρ‚ Ρ€Π°Π·Π½ΠΈΡ†Ρƒ ΠΌΠ΅ΠΆΠ΄Ρƒ двумя ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°ΠΌΠΈ надСТности: ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΡΡ‚ΡŒΡŽ ΠΈ ΡƒΡΡ‚ΠΎΠΉΡ‡ΠΈΠ²ΠΎΡΡ‚ΡŒΡŽ. ΠšΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΡΡ‚ΡŒ - это Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ПО Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ свои Π·Π°Π΄Π°Ρ‡ΠΈ Π² соотвСтствии со спСцификациями, ΡƒΡΡ‚ΠΎΠΉΡ‡ΠΈΠ²ΠΎΡΡ‚ΡŒ - ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡ‚ΡŒ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ Ρ€Π΅Π°Π³ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½Π° ситуации, выходящиС Π·Π° ΠΏΡ€Π΅Π΄Π΅Π»Ρ‹ спСцификации. УтвСрТдСния (эта лСкция), ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, ΠΏΠΎΠΊΡ€Ρ‹Π²Π°ΡŽΡ‚ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΡΡ‚ΡŒ, Π° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ (ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ лСкция) - ΡƒΡΡ‚ΠΎΠΉΡ‡ΠΈΠ²ΠΎΡΡ‚ΡŒ.

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

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

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

Π•Ρ‰Π΅ ΠΎΠ΄Π½ΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΠ΅ ΠΎΡ€ΡƒΠΆΠΈΠ΅ - автоматичСскоС ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ, Π² особСнности сборка мусора. Π’ Π»Π΅ΠΊΡ†ΠΈΠΈ, посвящСнной этой Ρ‚Π΅ΠΌΠ΅, Π² дСталях пояснСно, ΠΏΠΎΡ‡Π΅ΠΌΡƒ для любой систСмы, ΠΎΠΏΠ΅Ρ€ΠΈΡ€ΡƒΡŽΡ‰Π΅ΠΉ динамичСскими структурами Π΄Π°Π½Π½Ρ‹Ρ…, ΡΡ‚ΠΎΠ»ΡŒ опасно ΠΎΠΏΠΈΡ€Π°Ρ‚ΡŒΡΡ Π½Π° ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ этим процСссом Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ. Π‘Π±ΠΎΡ€ΠΊΠ° мусора Π½Π΅ Ρ€ΠΎΡΠΊΠΎΡˆΡŒ - это ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ ОО-срСды, ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‰ΠΈΠΉ Π½Π°Π΄Π΅ΠΆΠ½ΠΎΡΡ‚ΡŒ.

Π’ΠΎΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΎΠ± Π΅Ρ‰Π΅ ΠΎΠ΄Π½ΠΎΠΌ, ΡΠΎΡ‡Π΅Ρ‚Π°ΡŽΡ‰Π΅ΠΌΡΡ с ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ΅, - статичСской Ρ‚ΠΈΠΏΠΈΠ·Π°Ρ†ΠΈΠΈ. Π‘Π΅Π· ΠΏΡ€Π°Π²ΠΈΠ» строгой статичСской Ρ‚ΠΈΠΏΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΏΡ€ΠΈΡˆΠ»ΠΎΡΡŒ Π±Ρ‹ лишь Π½Π°Π΄Π΅ΡΡ‚ΡŒΡΡ Π½Π° снисхоТдСниС многочислСнных ошибок, Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡŽΡ‰ΠΈΡ… Π² ΠΏΠ΅Ρ€ΠΈΠΎΠ΄ выполнСния.

ВсС эти ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΡ‹ Π΄Π°ΡŽΡ‚ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡƒΡŽ основу для Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ взгляда Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ слСдуСт ΠΏΡ€Π΅Π΄ΠΏΡ€ΠΈΠ½ΡΡ‚ΡŒ для обСспСчСния устойчивости ΠΈ коррСктности ПО.

О коррСктности ПО

Зададимся вопросом, Ρ‡Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ ΡƒΡ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½ΠΈΠ΅ - ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ элСмСнт ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π΅Π½? НаблюдСния ΠΈ рассуТдСния, ΠΎΡ‚Π²Π΅Ρ‡Π°ΡŽΡ‰ΠΈΠ΅ Π½Π° это вопрос, ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ Ρ‚Ρ€ΠΈΠ²ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ. Но, ΠΊΠ°ΠΊ Π·Π°ΠΌΠ΅Ρ‚ΠΈΠ» ΠΎΠ΄ΠΈΠ½ извСстный ΡƒΡ‡Π΅Π½Ρ‹ΠΉ, Ρ‚Π°ΠΊΠΎΠ²Ρ‹ всС Π½Π°ΡƒΡ‡Π½Ρ‹Π΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹, - ΠΎΠ½ΠΈ Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‚ΡΡ с ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Ρ… наблюдСний ΠΈ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°ΡŽΡ‚ΡΡ ΠΏΡƒΡ‚Π΅ΠΌ простых рассуТдСний, Π½ΠΎ всС это Π½ΡƒΠΆΠ½ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ ΡƒΠΏΠΎΡ€Π½ΠΎ ΠΈ настойчиво.

ΠŸΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Π½Π΅ΠΊΡ‚ΠΎ ΠΏΡ€ΠΈΡˆΠ΅Π» ΠΊ Π²Π°ΠΌ с ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΎΠΉ ΠΈΠ· 300 000 строк Π½Π° Π‘ ΠΈ ΡΠΏΡ€Π°ΡˆΠΈΠ²Π°Π΅Ρ‚, ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½Π° Π»ΠΈ ΠΎΠ½Π°? Если Π²Ρ‹ ΠΊΠΎΠ½ΡΡƒΠ»ΡŒΡ‚Π°Π½Ρ‚, Ρ‚ΠΎ Π²Π·Ρ‹Ρ‰ΠΈΡ‚Π΅ Π²Ρ‹ΡΠΎΠΊΡƒΡŽ ΠΏΠ»Π°Ρ‚Ρƒ ΠΈ ΠΎΡ‚Π²Π΅Ρ‚ΡŒΡ‚Π΅ - "Π½Π΅Ρ‚". Π’Ρ‹, вСроятно, ΠΎΠΊΠ°ΠΆΠ΅Ρ‚Π΅ΡΡŒ ΠΏΡ€Π°Π²Ρ‹.

Для Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ Π΄Π°Ρ‚ΡŒ Ρ€Π°Π·ΡƒΠΌΠ½Ρ‹ΠΉ ΠΎΡ‚Π²Π΅Ρ‚ Π½Π° ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹ΠΉ вопрос, ΠΎΠ΄Π½ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ нСдостаточно, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠ° Π΅Ρ‰Π΅ ΠΈ Π΅Π΅ спСцификация, Ρ‚ΠΎΡ‡Π½ΠΎ ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‰Π°Ρ, Ρ‡Ρ‚ΠΎ Π΄ΠΎΠ»ΠΆΠ½Π° Π΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°. ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€


x:= y+1



сам ΠΏΠΎ сСбС Π½Π΅ являСтся Π½ΠΈ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½Ρ‹ΠΌ, Π½ΠΈ Π½Π΅ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½Ρ‹ΠΌ. Π­Ρ‚ΠΈ понятия ΠΏΡ€ΠΈΠΎΠ±Ρ€Π΅Ρ‚Π°ΡŽΡ‚ смысл лишь ΠΏΠΎ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡŽ ΠΊ ΠΎΠΆΠΈΠ΄Π°Π΅ΠΌΠΎΠΌΡƒ эффСкту присваивания. НапримСр, присваиваниС ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ ΠΏΠΎ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡŽ ΠΊ ΡƒΡ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½ΠΈΡŽ: "ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ x ΠΈ y ΠΈΠΌΠ΅ΡŽΡ‚ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ значСния". Но Π½Π΅ гарантируСтся Π΅Π³ΠΎ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΡΡ‚ΡŒ ΠΏΠΎ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡŽ ΠΊ Π²Ρ‹ΡΠΊΠ°Π·Ρ‹Π²Π°Π½ΠΈΡŽ: "пСрСмСнная x ΠΎΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½Π°", ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ присваивания зависит ΠΎΡ‚ значСния y, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ.

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

Бвойство коррСктности ПО

ΠšΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΡΡ‚ΡŒ - понятиС ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅.

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