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

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

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

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

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

Рассмотрим ΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½ΠΎΡΡ‚ΡŒ с Ρ€Π°Π·Π½Ρ‹Ρ… Ρ‚ΠΎΡ‡Π΅ΠΊ зрСния. Π’Π²Π΅Π΄Π΅ΠΌ Π½Π°Π±ΠΎΡ€ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… свойств: ΠΏΡΡ‚ΡŒ ΠΊΡ€ΠΈΡ‚Π΅Ρ€ΠΈΠ΅Π² (criteria), ΠΏΡΡ‚ΡŒ ΠΏΡ€Π°Π²ΠΈΠ» (rules) ΠΈ ΠΏΡΡ‚ΡŒ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠΎΠ² (principles) ΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½ΠΎΡΡ‚ΠΈ, ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‰ΠΈΡ… ΠΏΡ€ΠΈ ΠΈΡ… совмСстном использовании Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Π²Π°ΠΆΠ½Ρ‹Ρ… Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠΉ, ΠΏΡ€Π΅Π΄ΡŠΡΠ²Π»ΡΠ΅ΠΌΡ‹Ρ… ΠΊ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρƒ ΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½ΠΎΠ³ΠΎ проСктирования.

Для ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΡƒΡŽΡ‰Π΅Π³ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° ПО ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡ‹ ΠΈ ΠΏΡ€Π°Π²ΠΈΠ»Π° Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ Π²Π°ΠΆΠ½Ρ‹, Ρ‡Π΅ΠΌ ΠΊΡ€ΠΈΡ‚Π΅Ρ€ΠΈΠΈ. Π Π°Π·Π»ΠΈΡ‡ΠΈΠ΅ лишь Π² ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π½ΠΎΠΉ связи: ΠΊΡ€ΠΈΡ‚Π΅Ρ€ΠΈΠΈ ΡΠ²Π»ΡΡŽΡ‚ΡΡ Π²Π·Π°ΠΈΠΌΠ½ΠΎ нСзависимыми (ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΌΠΎΠΆΠ΅Ρ‚ ΡƒΠ΄ΠΎΠ²Π»Π΅Ρ‚Π²ΠΎΡ€ΡΡ‚ΡŒ ΠΎΠ΄Π½ΠΎΠΌΡƒ ΠΈΠ· Π½ΠΈΡ… ΠΈ Π² Ρ‚ΠΎΠΆΠ΅ врСмя ΠΏΡ€ΠΎΡ‚ΠΈΠ²ΠΎΡ€Π΅Ρ‡ΠΈΡ‚ΡŒ ΠΎΡΡ‚Π°Π²ΡˆΠΈΠΌΡΡ), Π² Ρ‚ΠΎ врСмя ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‚ ΠΈΠ· ΠΊΡ€ΠΈΡ‚Π΅Ρ€ΠΈΠ΅Π², Π° ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡ‹ ΡΠ»Π΅Π΄ΡƒΡŽΡ‚ ΠΈΠ· ΠΏΡ€Π°Π²ΠΈΠ».

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

ΠœΠ΅Ρ‚ΠΎΠ΄ проСктирования, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°Π·Ρ‹Π²Π°Ρ‚ΡŒ "ΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½Ρ‹ΠΌ", Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡƒΠ΄ΠΎΠ²Π»Π΅Ρ‚Π²ΠΎΡ€ΡΡ‚ΡŒ пяти основным трСбованиям:

[x]. Π”Π΅ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ (decomposability).

[x]. ΠšΠΎΠΌΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ (composability).

[x]. ΠŸΠΎΠ½ΡΡ‚Π½ΠΎΡΡ‚ΠΈ (understandability).

[x]. НСпрСрывности (continuity).

[x]. ЗащищСнности (protection).

ДСкомпозиция

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

Π’Π°ΠΊΠΎΠΉ процСсс часто Π±ΡƒΠ΄Π΅Ρ‚ цикличСским, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ каТдая ΠΏΠΎΠ΄Π·Π°Π΄Π°Ρ‡Π° ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ достаточно слоТной ΠΈ ΠΏΠΎΡ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ дальнСйшСго разлоТСния.

Рис. 3.1.  Π”Скомпозиция

БлСдствиСм трСбования Π΄Π΅ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ являСтся Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Ρ‚Ρ€ΡƒΠ΄Π° (division of labor): ΠΊΠ°ΠΊ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ систСма Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π·Π»ΠΎΠΆΠ΅Π½Π° Π½Π° подсистСмы, Ρ€Π°Π±ΠΎΡ‚Ρƒ Π½Π°Π΄ Π½ΠΈΠΌΠΈ слСдуСт Ρ€Π°ΡΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌΠΈ ΠΈΠ»ΠΈ Π³Ρ€ΡƒΠΏΠΏΠ°ΠΌΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ². Π­Ρ‚ΠΎ трудная Π·Π°Π΄Π°Ρ‡Π°, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΡ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Π΅ взаимозависимости ΠΌΠ΅ΠΆΠ΄Ρƒ подсистСмами:

[x]. НСобходимо свСсти Ρ‚Π°ΠΊΠΈΠ΅ взаимозависимости ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌΡƒ; Π² ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΠ· подсистСм Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΠ²Π°Ρ‚ΡŒΡΡ Ρ‚Π΅ΠΌΠΏΠ°ΠΌΠΈ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π½Π°Π΄ Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ подсистСмами.

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

НаиболСС ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½Ρ‹ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠΌ обсуТдаСмого ΠΌΠ΅Ρ‚ΠΎΠ΄Π°3.1), ΡƒΠ΄ΠΎΠ²Π»Π΅Ρ‚Π²ΠΎΡ€ΡΡŽΡ‰ΠΈΠΌ ΠΊΡ€ΠΈΡ‚Π΅Ρ€ΠΈΡŽ Π΄Π΅ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ, являСтся ΠΌΠ΅Ρ‚ΠΎΠ΄ нисходящСго (свСрху Π²Π½ΠΈΠ·) проСктирования (top-down design). Π’ соотвСтствии с этим ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π½Π°Ρ‡Π°Ρ‚ΡŒ с Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ абстрактного описания Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, выполняСмой систСмой. Π—Π°Ρ‚Π΅ΠΌ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ шагами Π΄Π΅Ρ‚Π°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ это прСдставлСниС, разбивая Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΌ шагС ΠΊΠ°ΠΆΠ΄ΡƒΡŽ подсистСму Π½Π° нСбольшоС число Π±ΠΎΠ»Π΅Π΅ простых подсистСм Π΄ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€, ΠΏΠΎΠΊΠ° Π½Π΅ Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Ρ‹ элСмСнты с Π½Π°ΡΡ‚ΠΎΠ»ΡŒΠΊΠΎ Π½ΠΈΠ·ΠΊΠΈΠΌ ΡƒΡ€ΠΎΠ²Π½Π΅ΠΌ абстракции, Ρ‡Ρ‚ΠΎ становится Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΠΉ ΠΈΡ… нСпосрСдствСнная рСализация. Π­Ρ‚ΠΎΡ‚ процСсс ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π² Π²ΠΈΠ΄Π΅ Π΄Π΅Ρ€Π΅Π²Π°.

Рис. 3.2.  Π˜Π΅Ρ€Π°Ρ€Ρ…ия нисходящСго проСктирования

Π’ΠΈΠΏΠΈΡ‡Π½Ρ‹ΠΌ ΠΊΠΎΠ½Ρ‚Ρ€ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠΌ (counter-example) являСтся любой ΠΌΠ΅Ρ‚ΠΎΠ΄, ΠΏΡ€Π΅Π΄ΡƒΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°ΡŽΡ‰ΠΈΠΉ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Π² Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅ΠΌΡƒΡŽ систСму модуля глобальной ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ. МногиС ΠΌΠΎΠ΄ΡƒΠ»ΠΈ систСмы Π½ΡƒΠΆΠ΄Π°ΡŽΡ‚ΡΡ Π² ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ - ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΈΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈΠ»ΠΈ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ….

ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Π΄ΠΎΠ»ΠΆΠ΅Π½ произвСсти эту ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ Π΄ΠΎ Π½Π°Ρ‡Π°Π»Π° выполнСния нСпосрСдствСнно Π²ΠΎΠ·Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Ρ… Π½Π° Π½Π΅Π³ΠΎ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ. Могло Π±Ρ‹ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ всС Ρ‚Π°ΠΊΠΈΠ΅ дСйствия для всСх ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ систСмы Π½Π΅ΠΏΠ»ΠΎΡ…ΠΎ ΡΠΎΡΡ€Π΅Π΄ΠΎΡ‚ΠΎΡ‡ΠΈΡ‚ΡŒ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΌΠΎΠ΄ΡƒΠ»Π΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΡ€ΠΎΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΠ΅Ρ‚ сразу всС для всСх. ΠŸΠΎΠ΄ΠΎΠ±Π½Ρ‹ΠΉ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠ±Π»Π°Π΄Π°Ρ‚ΡŒ Ρ…ΠΎΡ€ΠΎΡˆΠ΅ΠΉ "ΡΠΎΠ³Π»Π°ΡΠΎΠ²Π°Π½Π½ΠΎΡΡ‚ΡŒΡŽ Π²ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ" (temporal cohesion) Π² Ρ‚ΠΎΠΌ смыслС, Ρ‡Ρ‚ΠΎ всС Π΅Π³ΠΎ дСйствия Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ Π½Π° ΠΎΠ΄Π½ΠΎΠΌ этапС Ρ€Π°Π±ΠΎΡ‚Ρ‹ систСмы. Однако для получСния Ρ‚Π°ΠΊΠΎΠΉ "согласованности Π²ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ", придСтся Π½Π°Ρ€ΡƒΡˆΠ°Ρ‚ΡŒ Π°Π²Ρ‚ΠΎΠ½ΠΎΠΌΠΈΡŽ Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ. ΠŸΡ€ΠΈΠ΄Π΅Ρ‚ΡΡ ΠΌΠΎΠ΄ΡƒΠ»ΡŽ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π΄Π°Ρ‚ΡŒ ΠΏΡ€Π°Π²ΠΎ доступа ΠΊΠΎ ΠΌΠ½ΠΎΠ³ΠΈΠΌ структурам Π΄Π°Π½Π½Ρ‹Ρ…, ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ°Ρ‰ΠΈΠΌ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌ модулям систСмы ΠΈ Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‰ΠΈΠΌ спСцифичСских дСйствий ΠΏΠΎ ΠΈΡ… ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ. Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π°Π²Ρ‚ΠΎΡ€ модуля ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡƒΠ΄Π΅Ρ‚ постоянно ΡΠ»Π΅Π΄ΠΈΡ‚ΡŒ Π·Π° структурами Π΄Π°Π½Π½Ρ‹Ρ… Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ ΠΈ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ с ΠΈΡ… Π°Π²Ρ‚ΠΎΡ€Π°ΠΌΠΈ. А это нСсовмСстимо с ΠΊΡ€ΠΈΡ‚Π΅Ρ€ΠΈΠ΅ΠΌ Π΄Π΅ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ.

Π’Π΅Ρ€ΠΌΠΈΠ½ "ΡΠΎΠ³Π»Π°ΡΠΎΠ²Π°Π½Π½ΠΎΡΡ‚ΡŒ Π²ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ" ΠΏΡ€ΠΈΡˆΠ΅Π» ΠΈΠ· ΠΌΠ΅Ρ‚ΠΎΠ΄Π°, извСстного ΠΊΠ°ΠΊ структурноС ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ (см. ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ ΠΊ Π±ΠΈΠ±Π»ΠΈΠΎΠ³Ρ€Π°Ρ„ΠΈΠΈ).

Π’ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΌ ΠΌΠ΅Ρ‚ΠΎΠ΄Π΅ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ свои структуры Π΄Π°Π½Π½Ρ‹Ρ….

ΠœΠΎΠ΄ΡƒΠ»ΡŒΠ½Π°Ρ ΠšΠΎΠΌΠΏΠΎΠ·ΠΈΡ†ΠΈΡ

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

ΠšΠΎΠΌΠΏΠΎΠ·ΠΈΡ†ΠΈΡ опрСдСляСт процСсс, ΠΎΠ±Ρ€Π°Ρ‚Π½Ρ‹ΠΉ Π΄Π΅ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ: элСмСнты ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π° ΠΈΠ·Π²Π»Π΅ΠΊΠ°ΡŽΡ‚ΡΡ ΠΈΠ· Ρ‚ΠΎΠ³ΠΎ контСкста, для ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΎΠ½ΠΈ Π±Ρ‹Π»ΠΈ ΠΏΠ΅Ρ€Π²ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Ρ‹, для использования ΠΈΡ… вновь Π² ΠΈΠ½ΠΎΠΌ контСкстС.

Рис. 3.3.  ΠšΠΎΠΌΠΏΠΎΠ·ΠΈΡ†ΠΈΡ

ΠœΠ΅Ρ‚ΠΎΠ΄ ΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½ΠΎΠ³ΠΎ проСктирования ΠΎΠ±Π»Π΅Π³Ρ‡Π°Π΅Ρ‚ этот процСсс, создавая Π°Π²Ρ‚ΠΎΠ½ΠΎΠΌΠ½Ρ‹Π΅ элСмСнты ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π° достаточно нСзависимыми ΠΎΡ‚ ΠΏΠ΅Ρ€Π²ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ поставлСнной Π·Π°Π΄Π°Ρ‡ΠΈ, Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ Ρ‚Π°ΠΊΠΎΠ΅ ΠΈΠ·Π²Π»Π΅Ρ‡Π΅Π½ΠΈΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹ΠΌ.

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

[x]. ΠŸΡ€ΠΈΠΌΠ΅Ρ€ 1: Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ. Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ ΡΠΎΠ·Π΄Π°ΡŽΡ‚ΡΡ ΠΊΠ°ΠΊ Π½Π°Π±ΠΎΡ€Ρ‹ ΠΊΠΎΠΌΠΏΠΎΠ½ΡƒΠ΅ΠΌΡ‹Ρ… элСмСнтов. Одной ΠΈΠ· областСй, Π³Π΄Π΅ ΠΎΠ½ΠΈ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ, ΡΠ²Π»ΡΡŽΡ‚ΡΡ числСнныС вычислСния, основанныС Π½Π° Ρ‚Ρ‰Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²Π»Π΅Π½Π½Ρ‹Ρ… Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°Ρ… ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π·Π°Π΄Π°Ρ‡ Π»ΠΈΠ½Π΅ΠΉΠ½ΠΎΠΉ Π°Π»Π³Π΅Π±Ρ€Ρ‹, ΠΌΠ΅Ρ‚ΠΎΠ΄Π° ΠΊΠΎΠ½Π΅Ρ‡Π½Ρ‹Ρ… элСмСнтов, Π΄ΠΈΡ„Ρ„Π΅Ρ€Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… ΡƒΡ€Π°Π²Π½Π΅Π½ΠΈΠΉ ΠΈ Π΄Ρ€.

[x]. ΠŸΡ€ΠΈΠΌΠ΅Ρ€ 2: БоглашСния, принятыС Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΌ языкС Shell ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы UNIX. ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ систСмы UNIX ΠΎΠΏΠ΅Ρ€ΠΈΡ€ΡƒΡŽΡ‚ с Π²Ρ…ΠΎΠ΄Π½Ρ‹ΠΌ ΠΏΠΎΡ‚ΠΎΠΊΠΎΠΌ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… символов ΠΈ Π²Ρ‹Π΄Π°ΡŽΡ‚ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚, ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΠΉ Ρ‚Π°ΠΊΡƒΡŽ ΠΆΠ΅ ΡΡ‚Π°Π½Π΄Π°Ρ€Ρ‚Π½ΡƒΡŽ структуру. ΠŸΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½Π°Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ поддСрТиваСтся ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠΌ | ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠ³ΠΎ языка "Shell". Π—Π°ΠΏΠΈΡΡŒ A | B ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ. Π’Π½Π°Ρ‡Π°Π»Π΅ запускаСтся ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° A, Π΅Π΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ ΠΏΠΎΡΡ‚ΡƒΠΏΠ°ΡŽΡ‚ Π½Π° Π²Ρ…ΠΎΠ΄ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ B, Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰Π΅ΠΉ свою Ρ€Π°Π±ΠΎΡ‚Ρƒ ΠΏΠΎ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠΈ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ А. Π’Π°ΠΊΠΎΠ΅ систСмноС соглашСниС благоприятствуСт ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Ρ… срСдств.

[x]. ΠšΠΎΠ½Ρ‚Ρ€ΠΏΡ€ΠΈΠΌΠ΅Ρ€: ΠŸΡ€Π΅ΠΏΡ€ΠΎΡ†Π΅ΡΡΠΎΡ€Ρ‹. ΠžΠ±Ρ‰Π΅ΠΏΡ€ΠΈΠ½ΡΡ‚Ρ‹ΠΌ способом Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ языка программирования, Π° ΠΈΠ½ΠΎΠ³Π΄Π° ΠΈ прСодолСния Π΅Π³ΠΎ нСдостатков, являСтся использованиС "прСпроцСссора", ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°ΡŽΡ‰Π΅Π³ΠΎ Π²Ρ…ΠΎΠ΄Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ Π² Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Π½ΠΎΠΌ синтаксисС ΠΈ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°ΡŽΡ‰Π΅Π³ΠΎ ΠΈΡ… Π² стандартной для этого языка Ρ„ΠΎΡ€ΠΌΠ΅. Π’ΠΈΠΏΠΈΡ‡Π½Ρ‹Π΅ прСпроцСссоры для Fortran'Π° ΠΈ C ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ графичСскиС ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Ρ‹, Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Π½Ρ‹Π΅ ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰ΠΈΠ΅ структуры ΠΈΠ»ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π½Π°Π΄ Π±Π°Π·Π°ΠΌΠΈ Π΄Π°Π½Π½Ρ‹Ρ…. Однако ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Ρ‚Π°ΠΊΠΈΠ΅ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ Π½Π΅ ΡΠ²Π»ΡΡŽΡ‚ΡΡ Π²Π·Π°ΠΈΠΌΠ½ΠΎ совмСстимыми; Ρ‡Ρ‚ΠΎ Π½Π΅ позволяСт ΡΠΎΡ‡Π΅Ρ‚Π°Ρ‚ΡŒ Π΄Π²Π° Ρ‚Π°ΠΊΠΈΡ… прСпроцСссора, ΠΈ приходится Π²Ρ‹Π±ΠΈΡ€Π°Ρ‚ΡŒ ΠΌΠ΅ΠΆΠ΄Ρƒ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π³Ρ€Π°Ρ„ΠΈΠΊΠΎΠΉ ΠΈΠ»ΠΈ Π±Π°Π·ΠΎΠΉ Π΄Π°Π½Π½Ρ‹Ρ….