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

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ Β«ΠŸΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎΠ΅ ΠΈ распрСдСлСнноС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π° Π‘++Β». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 140

Автор Π₯ьюз ΠšΠ°ΠΌΠ΅Ρ€ΠΎΠ½

set<long> SuggestionForMinor;

set<long> SuggestionForGeneral;

set<long> SuggestionForElective;

set<long> Schedule;

set<long> DegreePlan;

mutex Mutex[10];

//.. .

public:

blackboard(void) ;

~blackboard(void);

void suggestionsForMajor(set<long> &X);

void suggestionsForMinor(set<long> &X);

void suggestionsForGeneral(set<long> &X);

void suggestionsForElectives(set<long> &X);

set<long> currentDegreePlan(void);

set<long> suggestedSchedule(void);

//.. .

};

Класс blackboard ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ для Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π² качСствС глобального ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°, ΠΊ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ смогут ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ доступ всС ΠΏΠΎΡ‚ΠΎΠΊΠΈ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅. ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ класс blackboard Π² листингС 13.10 Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ массив ΠΌΡŒΡŽΡ‚Π΅ΠΊΡΠΎΠ². Π­Ρ‚ΠΈ ΠΌΡŒΡŽΡ‚Π΅ΠΊΡΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ для Π·Π°Ρ‰ΠΈΡ‚Ρ‹ критичСских Ρ€Π°Π·Π΄Π΅Π»ΠΎΠ² «классной доски». ΠŸΡ€ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ источников Π·Π½Π°Π½ΠΈΠΉ практичСски Π½Π΅Ρ‚ нСобходимости Π±Π΅ΡΠΏΠΎΠΊΠΎΠΈΡ‚ΡŒΡΡ ΠΎ синхронизации доступа ΠΊ критичСским Ρ€Π°Π·Π΄Π΅Π»Π°ΠΌ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΊΠΎΠ΄ синхронизации инкапсулирован Π² классС blackboard.

Активизация источников Π·Π½Π°Π½ΠΈΠΉ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ²

Π’ этом Ρ€Π°Π·Π΄Π΅Π»Π΅ рассматриваСтся рСализация источников Π·Π½Π°Π½ΠΈΠΉ Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΏΠΎΡ‚ΠΎΠΊΠ°Ρ…. ΠŸΠΎΡ‚ΠΎΠΊΠΈ ΡΠΎΠ·Π΄Π°ΡŽΡ‚ΡΡ здСсь ΠΏΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ конструктора класса «классной доски» (blackboard), ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡƒ ΠΏΠΎΡ‚ΠΎΠΊΡƒ назначаСтся ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΉ источник Π·Π½Π°Π½ΠΈΠΉ. Π’Π΅ΠΌ самым рСализуСтся модСль MIMD. Π€Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ ΠΊΠΎΠ΄Π° конструктора класса blackboard ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ Π² листингС 13.11.

// Листинг 13.11. ΠšΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ‚ΠΎΡ€ класса blackboard,

//Β ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ для создания ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ²,

// содСрТащих источники Π·Π½Π°Π½ΠΈΠΉ

blackboard::blackboard(void) {

pthread_t Tid[4];

//.. .

try{

pthread_create(&Tid[0],NULL,suggestionForMajor, NULL);

pthread_create(&Tid[l],NULL, suggestionForMinor, NULL);

pthread_create(&Tid[2], NULL,suggestionForGeneral, NULL);

pthread_create(&Tid[3],NULL, suggestionForElective, NULL);

pthread_join(Tid[0],NULL);

pthread_join(Tid[l],NULL);

pthread_join(Tid[2],NULL);

pthread_join(Tid[3],NULL);

}

//. . .

}

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ конструктор Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ pthread_join(). Π­Ρ‚ΠΎΡ‚ Π²Ρ‹Π·ΠΎΠ² заставляСт конструктор ΠΎΠΆΠΈΠ΄Π°Ρ‚ΡŒ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ Ρ€Π°Π±ΠΎΡ‚Ρ‹ всСх Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅Ρ… ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ². Π­Ρ‚ΠΈ ΠΏΠΎΡ‚ΠΎΠΊΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π°ΠΊΡ‚ΠΈΠ²ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΈ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π΄Ρ€ΡƒΠ³ΠΈΡ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ-Ρ‡Π»Π΅Π½ΠΎΠ² класса blackboard. Но Ρ‚Π΅ дСйствия, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ источники Π·Π½Π°Π½ΠΈΠΉ Β«Π² Ρ€Π°ΠΌΠΊΠ°Ρ…Β» конструктора, ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ своСго Ρ€ΠΎΠ΄Π° ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ «классной доски», поэтому вСсьма умСстно Π½Π΅ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Ρ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ ΠΏΠΎ созданию ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° «классной доски» Π΄ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€, ΠΏΠΎΠΊΠ° эти ΠΏΠΎΡ‚ΠΎΠΊΠΈ Π½Π΅ Π΄ΠΎΠ²Π΅Π΄ΡƒΡ‚ Π΄ΠΎ ΠΊΠΎΠ½Ρ†Π° свою Ρ€Π°Π±ΠΎΡ‚Ρƒ. Π’Π°ΠΊΠΎΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ ΠΊ созданию ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ² Π² конструкторС заставляСт Π·Π°Π΄ΡƒΠΌΠ°Ρ‚ΡŒΡΡ ΠΎΠ± ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ ошибок ΠΈ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ситуаций. Π§Ρ‚ΠΎ ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ‚, Ссли ΠΏΠΎ ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π΅ ΠΏΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ² случится сбой? ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ конструкторы Π½Π΅ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‚ Π½ΠΈΠΊΠ°ΠΊΠΈΡ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ, Ρ‚ΠΎ здСсь просто Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠΎΠ·Π°Π±ΠΎΡ‚ΠΈΡ‚ΡŒΡΡ ΠΎΠ± ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ситуаций. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΏΠΎΡ‚ΠΎΠΊ связываСтся со «своСй» Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ.

void Β  *suggestionForMajor(void *X);

void Β  *suggescionForMinor(void *X);

void Β  *suggestionForGeneral(void *X);

void Β  *suggestionForElective(void *X);

Π­Ρ‚ΠΈ Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ ΠΏΠΎΡ‚ΠΎΠΊΠ°ΠΌΠΈ для Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ дСйствий ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… источников Π·Π½Π°Π½ΠΈΠΉ. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ «классная доска» являСтся Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹ΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ, каТдая ΠΈΠ· этих Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΈΠΌΠ΅Π΅Ρ‚ нСпосрСдствСнный доступ ΠΊ функциям-Ρ‡Π»Π΅Π½Π°ΠΌ класса blackboard. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ источники Π·Π½Π°Π½ΠΈΠΉ ΠΌΠΎΠ³ΡƒΡ‚ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ-Ρ‡Π»Π΅Π½Ρ‹ «классной доски» Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ.

//...

Combination.generateCombinations(1,9, Courses);

Result = Combination.element(9);

//.. .

Blackboard.suggestionsForMinor(Value);

//.. .

ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ€Π°Π·Π΄Π΅Π»Ρ‹ «классной доски» ΠΈΠΌΠ΅ΡŽΡ‚ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½Ρ‹ΠΉ доступ для ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… источников Π·Π½Π°Π½ΠΈΠΉ, Ρ‚ΠΎ ΠΊ этим Ρ€Π°Π·Π΄Π΅Π»Π°ΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ CRCW-ΡΡ‚Ρ€Π°Ρ‚Π΅Π³ΠΈΡŽ доступа (рис. 13.9).

Π’ΠΈΠΏ ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΠΈΠ·ΠΌΠ°, прСдставлСнный Π½Π° рис. 13.9, Π²ΠΏΠΎΠ»Π½Π΅ СстСствСн для систСм, Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‰ΠΈΡ… модСль «классной доски», ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ «классная доска» часто дСлится Π½Π° Ρ€Π°Π·Π΄Π΅Π»Ρ‹, относящиСся ΠΊ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌ частям Π·Π°Π΄Π°Ρ‡ΠΈ ΠΈΠ»ΠΈ ΠΏΠΎΠ΄Π·Π°Π΄Π°Ρ‡ΠΈ. ΠžΠ±Ρ‹Ρ‡Π½ΠΎ ΠΎΠ΄Π½ΠΎΠΉ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ½ΠΎΠΉ области соотвСтствуСт ΠΎΠ΄ΠΈΠ½ источник Π·Π½Π°Π½ΠΈΠΉ, поэтому ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½Ρ‹ΠΉ доступ ΠΊ этим Ρ€Π°Π·Π΄Π΅Π»Π°ΠΌ Π²ΠΏΠΎΠ»Π½Π΅ умСстСн.

РСзюмС

Рис. 13.9. Π§Π΅Ρ‚Ρ‹Ρ€Π΅ источника Π·Π½Π°Π½ΠΈΠΉ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎ ΡΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΈΠ· ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… Ρ€Π°Π·Π΄Π΅Π»ΠΎΠ² «классной доски» ΠΈ Π·Π°ΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ Π΅Π΅ Ρ‚ΡƒΠ΄Π°

МодСль «классной доски» ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΠΈΠ·ΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ присутствуСт ΠΊΠ°ΠΊ Π² структурС «классной доски», Ρ‚Π°ΠΊ ΠΈ Π² ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡΡ… ΠΌΠ΅ΠΆΠ΄Ρƒ «классной доской» ΠΈ источниками Π·Π½Π°Π½ΠΈΠΉ, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠ΅ΠΆΠ΄Ρƒ самими источниками Π·Π½Π°Π½ΠΈΠΉ. МодСль «классной доски» β€” это модСль Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π·Π°Π΄Π°Ρ‡ΠΈ. ΠžΠ±Ρ‰Π°Ρ Π·Π°Π΄Π°Ρ‡Π° дСлится Π½Π° части, ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΌ областям Π·Π½Π°Π½ΠΈΠΉ. КаТдой области назначаСтся источник Π·Π½Π°Π½ΠΈΠΉ, ΠΈΠ»ΠΈ Ρ€Π΅ΡˆΠ°Ρ‚Π΅Π»ΡŒ Π·Π°Π΄Π°Ρ‡. Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊΠΈ Π·Π½Π°Π½ΠΈΠΉ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΎΡ‚Π»ΠΈΡ‡Π°ΡŽΡ‚ΡΡ ΡΠ°ΠΌΠΎΠ΄ΠΎΡΡ‚Π°Ρ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒΡŽ (Π°Π²Ρ‚ΠΎΠ½ΠΎΠΌΠ½ΠΎΡΡ‚ΡŒΡŽ) ΠΈ Π½Π΅ Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ интСнсивного общСния с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ источниками Π·Π½Π°Π½ΠΈΠΉ. НСобходимоС взаимодСйствиС осущСствляСтся Ρ‡Π΅Ρ€Π΅Π· Β«ΠΊΠ»Π°ΡΡΠ½ΡƒΡŽ доску». Π‘Π»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, источники Π·Π½Π°Π½ΠΈΠΉ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ Π΄Π°Π½Π½Ρ‹Ρ… Π² Ρ€Π°ΠΌΠΊΠ°Ρ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΏΠΎ ΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½ΠΎΠΌΡƒ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡƒ. Π’Π°ΠΊΠΈΠ΅ своСобразныС ΠΌΠΎΠ΄ΡƒΠ»ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ ΠΈ ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎ, Π½Π΅ трСбуя слоТной синхронизации. Β«ΠšΠ»Π°ΡΡΠ½ΡƒΡŽ доску» ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² Π²ΠΈΠ΄Π΅ CORBA-ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ². Π’ этом случаС источники Π·Π½Π°Π½ΠΈΠΉ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ распрСдСлСны Π² сСтях intranet ΠΈΠ»ΠΈ Internet. «Классная доска» дСйствуСт ΠΊΠ°ΠΊ Ρ€Π°Π·Π½ΠΎΠ²ΠΈΠ΄Π½ΠΎΡΡ‚ΡŒ ΠΎΠ±Ρ‰Π΅ΠΉ распрСдСлСнной ΠΏΠ° ΠΌ яти Π΄ ля Π·Π° Π΄ Π°Ρ‡, выполняС ΠΌ Ρ‹Ρ… Π² срС Π΄ Π΅ PVM-Ρ‚ΠΈΠΏΠ°. Π’ ΠΌ ΠΎ Π΄ Сль «классной Π΄ оски» Π»Π΅Π³ΠΊΠΎ Π²ΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ΡΡ ΠΌ ΠΎ Π΄ Π΅Π»ΠΈ MPMD (MIMD) ΠΈ SPMD (SIMD). ΠšΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΡ «классной Π΄ оски» ΠΏΠΎΠ±ΡƒΠΆ Π΄ Π°Π΅Ρ‚ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° Ρ€Π°Π· Π΄ Π΅Π»ΠΈΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π΄ΠΎΠ»ΠΆΠ½Π° Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π° ΠΌΠΌ Π°, Π½Π° области Π·Π½Π°Π½ΠΈΠΉ. ПослС провСдСния Π΄Π΅ΠΊΠΎ ΠΌ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ Ρ€Π°Π±ΠΎΡ‚ «классная доска» Π΄ΠΎΠ»ΠΆΠ½Π° ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ ΠΌ ΠΎΠ΄Π΅Π»ΠΈ ПО ΠΏΡ€Π΅Π΄ ΠΌ Π΅Ρ‚Π½ΠΎΠΉ области ΠΈ пространства Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ. Π­Ρ‚ΠΈ ΠΌ ΠΎΠ΄Π΅Π»ΠΈ ПО ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Ρ‰ΠΈΠΊΡƒ ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΡƒ Π²ΡΠΊΡ€Ρ‹Ρ‚ΡŒ ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΠΈΠ· ΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈ ΠΌ ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² ΠΏΡ€ΠΎΠ³Ρ€Π° ΠΌΠΌ Π΅. ПослС классичСской ΠΌ ΠΎΠ΄Π΅Π»ΠΈ распрСдСлСнного ΠΏΡ€ΠΎΠ³Ρ€Π° ΠΌΠΌ ирования Β«ΠΊΠ»ΠΈΠ΅Π½Ρ‚-сСрвСр» ΠΌ одСль «классной доски» являСтся ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· ΠΌ ΠΎ Ρ‰ Π½Ρ‹Ρ… ΠΌ ΠΎΠ΄Π΅Π»Π΅ΠΉ, доступных ΠΊΠ°ΠΊ для распрСдСлСнного, Ρ‚Π°ΠΊ ΠΈ Π΄ Π» я ΠΏΠ°Ρ€Π°Π» Π» Π΅ Π» ьного ΠΏΡ€ΠΎΠ³Ρ€Π° ΠΌΠΌ ирования. Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊΠΈ Π·Π½Π°Π½ΠΈΠΉ, ΠΈ Π» ΠΈ Ρ€Π΅ΡˆΠ°Ρ‚Π΅ Π» ΠΈ Π·Π°Π΄Π°Ρ‡, Π² ΠΌ ΠΎΠ΄Π΅ Π» ΠΈ «классной доски» Π·Π°Ρ‡Π°ΡΡ‚ΡƒΡŽ Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‚ΡΡ ΠΊΠ°ΠΊ Π°Π³Π΅Π½Ρ‚Ρ‹.

ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ A

Π­Ρ‚ΠΎ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ прСдставляСт собой ΠΊΡ€Π°Ρ‚ΠΊΠΈΠΉ справочник UML-Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… Π² этой ΠΊΠ½ΠΈΠ³Π΅. Π£Π½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹ΠΉ язык модСлирования (Unified Modeling Language - UML) ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ графичСскиС обозначСния, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ для проСктирования, Π²ΠΈΠ·ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ, модСлирования ΠΈ докумСнтирования Π°Ρ€Ρ‚Π΅Ρ„Π°ΠΊΡ‚ΠΎΠ² систСмы ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния. Π­Ρ‚ΠΎΡ‚ язык являСтся стандартом Β«Π΄Π΅-Ρ„Π°ΠΊΡ‚ΠΎΒ» для модСлирования ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… систСм. Π’ Π½Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ символы ΠΈ обозначСния для прСдставлСния Π°Ρ€Ρ‚Π΅Ρ„Π°ΠΊΡ‚ΠΎΠ² систСмы ПО с Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Ρ‚ΠΎΡ‡Π΅ΠΊ зрСния. И хотя Π² ΠΊΠ½ΠΈΠ³Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ обозначСния, это ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ Ρ‡ΠΈΡ‚Π°Ρ‚Π΅Π»ΡŽ быстро ΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡ‚ΡŒΡΡ с основными элСмСнтами ΠΈ символами языка UML, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡ‚ΡŒΡΡ Π΅ΠΌΡƒ ΠΏΡ€ΠΈ составлСнии Π”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ Π½Π° Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅ΠΌΡ‹Π΅ систСмы ПО.

Π”ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΡ‹ классов ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ²

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