Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Разработка_и_анализ_требований_практика

.pdf
Скачиваний:
26
Добавлен:
04.06.2015
Размер:
5.31 Mб
Скачать

ɅȺȻɈɊȺɌɈɊɇȺə ɊȺȻɈɌȺ ʋ 7 ɊȺɁɊȺȻɈɌɄȺ ɉɊɈɋɌɈȽɈ MDA-ɉɊɂɅɈɀȿɇɂə

Ʌɫɛɭɥɣɠ ɭɠɩɫɠɭɣɲɠɬɥɣɠ ɬɝɠɟɠɨɣɺ

Ⱦɚɥɟɟ ɩɨɞɨɛɧɚɹ ɦɨɞɟɥɶ ɞɟɬɚɥɢɡɢɪɭɟɬɫɹ ɢ ɬɪɚɧɫɥɢɪɭɟɬɫɹ ɜ ɢɫɯɨɞɧɵɣ ɤɨɞ ɧɚ ɜɵɛɪɚɧɧɨɦ ɹɡɵɤɟ.

Ɍɟɯɧɨɥɨɝɢɹ MDA ɨɪɢɟɧɬɢɪɨɜɚɧɚ ɧɚ ɫɨɡɞɚɧɢɟ ɩɪɢɥɨɠɟɧɢɣ, ɤɨɬɨɪɵɟ ɧɟɡɚɜɢɫɢɦɵ ɨɬ ɩɥɚɬɮɨɪɦɵ, ɨɩɟɪɚɰɢɨɧɧɨɣ ɫɢɫɬɟɦɵ ɢ ɹɡɵɤɨɜ ɩɪɨɝɪɚɦɦɢɪɨɜɚɧɢɹ. Ɉɧɚ ɩɨɡɜɨɥɹɟɬ ɫɬɪɨɢɬɶ ɦɚɫɲɬɚɛɢɪɭɟɦɵɟ ɩɪɢɥɨɠɟɧɢɹ ɢɡ ɤɨɦɩɨɧɟɧɬɨɜ, ɤɨɬɨɪɵɟ ɦɨɝɭɬ ɢɫɩɨɥɶɡɨɜɚɬɶɫɹ ɩɨɜɬɨɪɧɨ ɢ ɦɧɨɝɨɤɪɚɬɧɨ. ɋɚɦ ɩɪɨɰɟɫɫ ɪɚɡɪɚɛɨɬɤɢ ɜɵɩɨɥɧɹɟɬɫɹ, ɤɚɤ ɹɜɫɬɜɭɟɬ ɢɡ ɧɚɡɜɚɧɢɹ, ɩɨɞ ɭɩɪɚɜɥɟɧɢɟɦ ɦɨɞɟɥɢ.

Ɇɨɞɟɥɶ ɩɪɢɥɨɠɟɧɢɹ ɷɬɨ ɜɡɚɢɦɨɫɜɹɡɚɧɧɵɣ ɧɚɛɨɪ ɜɢɡɭɚɥɶɧɵɯ ɞɢɚɝɪɚɦɦ, ɧɚɝɥɹɞɧɨ ɨɩɢɫɵɜɚɸɳɢɯ ɜɧɭɬɪɟɧɧɸɸ ɫɬɪɭɤɬɭɪɭ ɫɢɫɬɟɦɵ ɢ ɩɪɢɧɰɢɩɵ ɟɟ ɮɭɧɤɰɢɨɧɢɪɨɜɚɧɢɹ. Ɇɨɞɟɥɶ ɩɪɢɥɨɠɟɧɢɹ ɧɟ ɩɪɢɜɹɡɚɧɚ ɤ ɤɨɧɤɪɟɬɧɨɦɭ ɹɡɵɤɭ ɢɥɢ ɤɨɧɤɪɟɬɧɨɣ ɫɪɟɞɟ ɩɪɨɝɪɚɦɦɢɪɨɜɚɧɢɹ.

ȼɢɡɭɚɥɶɧɵɟ ɞɢɚɝɪɚɦɦɵ ɱɚɳɟ ɜɫɟɝɨ ɫɬɪɨɹɬɫɹ ɫ ɩɨɦɨɳɶɸ ɭɧɢɮɢɰɢɪɨɜɚɧɧɨɝɨ ɹɡɵɤɚ ɦɨɞɟɥɢɪɨɜɚɧɢɹ UML.

Ɇɟɬɨɞɨɥɨɝɢɹ MDA ɨɩɢɫɵɜɚɟɬ ɧɟ ɫɬɨɥɶɤɨ ɦɨɞɟɥɢɪɨɜɚɧɢɟ, ɫɤɨɥɶɤɨ ɦɟɬɚɦɨɞɟɥɢɪɨɜɚɧɢɟ, ɩɪɟɞɭɫɦɚɬɪɢɜɚɸɳɟɟ ɛɨɥɶɲɭɸ ɝɢɛɤɨɫɬɶ ɜ ɤɨɧɤɪɟɬɧɵɯ, ɩɪɢɤɥɚɞɧɵɯ ɩɨɞɯɨɞɚɯ ɤ ɦɨɞɟɥɢɪɨɜɚɧɢɸ.

Ɇɟɬɚɦɨɞɟɥɢɪɨɜɚɧɢɟ – ɫɩɨɫɨɛ ɨɩɢɫɚɧɢɹ ɦɨɞɟɥɟɣ, ɨɩɪɟɞɟɥɹɸɳɢɣ ɦɟɯɚɧɢɡɦɵ ɩɨɫɬɪɨɟɧɢɹ ɤɨɧɤɪɟɬɧɵɯ ɦɨɞɟɥɟɣ ɩɪɨɝɪɚɦɦɧɵɯ ɫɢɫɬɟɦ ɫ ɩɨɦɨɳɶɸ ɛɚɡɨɜɨɝɨ ɫɥɨɜɚɪɹ ɢ ɧɚɛɨɪɚ ɨɝɪɚɧɢɱɟɧɢɣ, ɧɚɥɚɝɚɟɦɵɯ ɧɚ ɫɨɡɞɚɜɚɟɦɵɟ ɦɨɞɟɥɢ.

ɍɠɰɨɩɦɩɞɣɺ ECO

Ʉɨɪɩɨɪɚɰɢɹ Borland ɪɚɡɪɚɛɨɬɚɥɚ ɫɨɛɫɬɜɟɧɧɭɸ ɜɟɪɫɢɸ (ɪɟɚɥɢɡɚɰɢɸ) ɤɨɧɰɟɩɰɢɢ MDA, ɤɨɬɨɪɚɹ ɧɚɡɵɜɚɟɬɫɹ Borland MDA (BMDA). ɋɟɝɨɞɧɹ ɜɦɟɫɬɨ ɬɟɪɦɢɧɚ BMDA ɩɪɢɦɟɧɹɟɬɫɹ ɧɨɜɵɣ ɬɟɪɦɢɧ ECO. Ɍɟɯɧɨɥɨɝɢɹ ECO (Enterprise Core Objects – ɤɥɸɱɟɜɵɟ ɤɨɪɩɨɪɚɬɢɜɧɵɟ ɨɛɴɟɤɬɵ), ɪɟɚɥɢɡɭɸɳɚɹ ɤɨɧɰɟɩɰɢɸ MDA, ɫɬɚɥɚ ɧɚɢɛɨɥɟɟ ɜɚɠɧɵɦ ɭɥɭɱɲɟɧɢɟɦ ɩɨɫɥɟɞɧɢɯ ɜɟɪɫɢɣ ɫɪɟɞɵ Delphi. Ɉɧɚ ɩɪɟɞɫɬɚɜɥɟɧɚ ɜ Delphi 2006 ɜ ɜɢɞɟ ɬɪɟɬɶɟɣ ɜɟɪɫɢɢ ȿɋɈ III. Ʉɚɠɞɵɣ ɤɨɦɩɨɧɟɧɬ ȿɋɈ ɩɪɟɞɫɬɚɜɥɹɟɬ ɫɨɛɨɣ ɫɜɨɟɨɛɪɚɡɧɭɸ ɩɪɨɝɪɚɦɦɧɭɸ ɨɛɟɪɬɤɭ ɩɨɥɨɠɟɧɢɣ ɤɨɧɰɟɩɰɢɢ MDA. Ɉɧ ɹɜɥɹɟɬɫɹ ɩɪɨɦɟɠɭɬɨɱɧɵɦ ɫɥɨɟɦ ɦɟɠɞɭ ɫɪɟɞɫɬɜɚɦɢ ɜɢɡɭɚɥɶɧɨɝɨ ɩɪɨɟɤɬɢɪɨɜɚɧɢɹ ɩɪɨɝɪɚɦɦɧɵɯ ɦɨɞɟɥɟɣ ɢ ɢɯ ɤɨɧɤɪɟɬɧɨɣ ɪɟɚɥɢɡɚɰɢɟɣ ɧɚ ɹɡɵɤɚɯ ɩɪɨɝɪɚɦɦɢɪɨɜɚɧɢɹ Delphi ɢ C#.

Ɍɟɯɧɨɥɨɝɢɹ ȿɋɈ ɩɟɪɟɜɨɞɢɬ ɩɪɨɰɟɫɫ ɫɨɝɥɚɫɨɜɚɧɢɹ ɬɪɟɛɨɜɚɧɢɣ ɧɚ ɦɨɞɟɥɶɧɵɣ ɭɪɨɜɟɧɶ. Ⱦɢɚɝɪɚɦɦɵ UML ɨɛɵɱɧɨ ɯɨɪɨɲɨ ɜɨɫɩɪɢɧɢɦɚɸɬɫɹ ɢ ɡɚɤɚɡɱɢɤɨɦ, ɢ ɢɫɩɨɥɧɢɬɟɥɟɦ. ɉɨɷɬɨɦɭ, ɯɨɬɹ ɢɫɩɨɥɶɡɨɜɚɧɢɟ ɜɢɡɭɚɥɶɧɨɝɨ ɹɡɵɤɚ ɦɨɞɟɥɢɪɨɜɚɧɢɹ ɜ MDA ɧɟ ɨɛɹɡɚɬɟɥɶɧɨ, ɩɨɱɬɢ 100 % ɩɪɨɟɤɬɨɜ MDA ɫɨɡɞɚɸɬɫɹ ɫ ɩɪɢɦɟɧɟɧɢɟɦ ɹɡɵɤɚ UML.

ɉɨɫɬɪɨɟɧɢɟ ɝɨɬɨɜɨɝɨ ɩɪɢɥɨɠɟɧɢɹ ɩɪɨɢɫɯɨɞɢɬ ɜ ɧɟɫɤɨɥɶɤɨ ɷɬɚɩɨɜ. ɋɧɚɱɚɥɚ ɫɬɪɨɹɬɫɹ ɩɥɚɬɮɨɪɦɧɨ-ɧɟɡɚɜɢɫɢɦɵɟ ɦɨɞɟɥɢ PIM (Platform Independent Model), ɡɚɬɟɦ ɜɵɩɨɥɧɹɟɬɫɹ ɢɯ ɩɟɪɟɧɨɫ ɜ ɩɥɚɬɮɨɪɦɧɨ-ɫɩɟɰɢɮɢɱɧɵɟ ɦɨɞɟɥɢ PSM (Platform Specific Model). Ⱦɨɫɬɭɩɧɵɟ ɧɚ ɫɟɝɨɞɧɹɲɧɢɣ ɞɟɧɶ ɩɪɨɞɭɤɬɵ ɚɜɬɨɦɚɬɢɡɢɪɭɸɬ ɷɬɢ ɲɚɝɢ ɧɚ 50–70 %. ɉɟɪɟɧɨɫ ɦɨɞɟɥɟɣ PSM ɜ ɤɨɞ ɤɨɧɤɪɟɬɧɨɝɨ ɹɡɵɤɚ ɩɪɨɝɪɚɦɦɢɪɨɜɚɧɢɹ ɚɜɬɨɦɚɬɢɡɢɪɨɜɚɧ ɩɨɱɬɢ ɧɚ 100 %.

ɍɠɰɨɩɦɩɞɣɣ ɫɛɢɫɛɜɩɭɥɣ ɪɫɩɞɫɛɧɧɨɩɞɩ ɩɜɠɬɪɠɲɠɨɣɺ. Ɇɛɜ. ɪɫɛɥɭɣɥɮɧ

-111-

ɅȺȻɈɊȺɌɈɊɇȺə ɊȺȻɈɌȺ ʋ 7 ɊȺɁɊȺȻɈɌɄȺ ɉɊɈɋɌɈȽɈ MDA-ɉɊɂɅɈɀȿɇɂə

Ʌɫɛɭɥɣɠ ɭɠɩɫɠɭɣɲɠɬɥɣɠ ɬɝɠɟɠɨɣɺ

ȿɳɟ ɨɞɢɧ ɩɨɞɯɨɞ, ɧɚɫɬɨɹɬɟɥɶɧɨ ɪɟɤɨɦɟɧɞɭɟɦɵɣ ɝɪɭɩɩɨɣ OMG ɩɪɢ ɢɫɩɨɥɶɡɨɜɚɧɢɢ ɩɨɞɯɨɞɚ MDA, ɡɚɤɥɸɱɚɟɬɫɹ ɜ ɜɵɞɟɥɟɧɢɢ ɥɨɝɢɤɢ ɩɪɢɥɨɠɟɧɢɹ ɜ ɨɬɞɟɥɶɧɭɸ, ɩɨ ɜɨɡɦɨɠɧɨɫɬɢ ɩɥɚɬɮɨɪɦɧɨ-ɧɟɡɚɜɢɫɢɦɭɸ, ɫɬɪɭɤɬɭɪɭ. Ⱦɨɫɬɢɝɚɟɬɫɹ ɷɬɨ ɢɫɩɨɥɶɡɨɜɚɧɢɟɦ ɹɡɵɤɚ ɨɛɴɟɤɬɧɵɯ ɨɝɪɚɧɢɱɟɧɢɣ OCL, ɤɨɬɨɪɵɣ ɫɟɝɨɞɧɹ ɫɱɢɬɚɟɬɫɹ ɱɚɫɬɶɸ ɹɡɵɤɚ UML. Ʉɨɦɚɧɞɵ OCL ɜɫɬɪɚɢɜɚɸɬɫɹ ɧɟɩɨɫɪɟɞɫɬɜɟɧɧɨ ɜ ɦɨɞɟɥɶ UML, ɨɩɢɫɵɜɚɹ ɢ ɭɬɨɱɧɹɹ ɚɫɩɟɤɬɵ ɟɟ ɪɚɛɨɬɵ. ɍɞɨɛɫɬɜɨ OCL ɟɳɟ ɢ ɜ ɬɨɦ, ɱɬɨ ɟɝɨ ɜɵɪɚɠɟɧɢɹ ɧɚɩɨɦɢɧɚɸɬ ɟɫɬɟɫɬɜɟɧɧɵɣ ɹɡɵɤ (ɩɪɟɞɥɨɠɟɧɢɹ, ɡɚɩɢɫɚɧɧɵɟ ɧɚ ɚɧɝɥɢɣɫɤɨɦ). ɗɬɨ ɩɨɡɜɨɥɹɟɬ ɫɨɯɪɚɧɹɬɶ ɩɪɢ ɩɨɫɬɪɨɟɧɢɢ ɦɨɞɟɥɟɣ ɤɨɧɬɚɤɬ ɫ ɥɸɞɶɦɢ (ɧɚɩɪɢɦɟɪ, ɩɪɟɞɫɬɚɜɢɬɟɥɹɦɢ ɡɚɤɚɡɱɢɤɚ), ɧɟ ɹɜɥɹɸɳɢɦɢɫɹ ɫɩɟɰɢɚɥɢɫɬɚɦɢ ɜ ɨɛɥɚɫɬɢ ɩɪɨɝɪɚɦɦɢɪɨɜɚɧɢɹ.

Ɏɢɡɢɱɟɫɤɢɟ ɨɛɴɟɤɬɵ, ɫɬɪɭɤɬɭɪɚ ɤɨɬɨɪɵɯ ɨɩɢɫɚɧɚ ɫ ɩɨɦɨɳɶɸ ɹɡɵɤɚ UML, ɚ ɨɫɨɛɟɧɧɨɫɬɢ ɫɭɳɟɫɬɜɨɜɚɧɢɹ – ɫ ɩɨɦɨɳɶɸ ɹɡɵɤɚ OCL, ɮɭɧɤɰɢɨɧɢɪɭɸɬ ɜ ɩɪɨɰɟɫɫɟ ɪɚɛɨɬɵ ɩɪɢɥɨɠɟɧɢɹ ɜ ɫɩɟɰɢɚɥɶɧɨ ɜɵɞɟɥɟɧɧɨɣ ɨɛɥɚɫɬɢ ɨɩɟɪɚɬɢɜɧɨɣ ɩɚɦɹɬɢ, ɬɚɤ ɧɚɡɵɜɚɟɦɨɦ ɨɛɴɟɤɬɧɨɦ ɩɪɨɫɬɪɚɧɫɬɜɟ. Ɍɟɯɧɨɥɨɝɢɹ ȿɋɈ ɫɩɨɫɨɛɧɚ ɚɜɬɨɦɚɬɢɱɟɫɤɢ ɨɬɨɛɪɚɠɚɬɶ ɦɨɞɟɥɶ ɧɟ ɬɨɥɶɤɨ ɜ ɩɪɨɝɪɚɦɦɧɵɣ ɤɨɞ, ɧɨ ɢ ɜ ɤɨɞ ɧɚ ɹɡɵɤɟ SQL. Ɉɧ ɝɟɧɟɪɢɪɭɟɬɫɹ ɞɥɹ ɩɨɫɬɪɨɟɧɢɹ ɫɯɟɦɵ ɛɚɡɵ ɞɚɧɧɵɯ, ɯɪɚɧɹɳɟɣ ɤɨɩɢɸ ɨɛɴɟɤɬɧɨɝɨ ɩɪɨɫɬɪɚɧɫɬɜɚ. ɉɨɞɞɟɪɠɤɚ ɪɚɡɧɵɯ ɋɍȻȾ ɹɜɥɹɟɬɫɹ ɜ ȿɋɈ ɨɞɧɨɣ ɢɡ ɤɥɸɱɟɜɵɯ ɬɟɯɧɨɥɨɝɢɣ. ɋ ɟɟ ɩɨɦɨɳɶɸ ɭɞɚɟɬɫɹ ɫɨɯɪɚɧɹɬɶ ɬɟɤɭɳɟɟ ɫɨɫɬɨɹɧɢɟ ɨɛɴɟɤɬɧɨɝɨ ɩɪɨɫɬɪɚɧɫɬɜɚ ɩɪɢɥɨɠɟɧɢɹ ɜ ɛɚɡɟ ɞɚɧɧɵɯ ɢ ɡɚɬɟɦ, ɩɨɫɥɟ ɩɟɪɟɡɚɩɭɫɤɚ ɩɪɢɥɨɠɟɧɢɹ, ɡɚɝɪɭɠɚɬɶ ɟɝɨ ɢ ɩɪɨɞɨɥɠɚɬɶ ɪɚɛɨɬɭ ɫ ɩɪɟɪɜɚɧɧɨɝɨ ɦɟɫɬɚ.

ɋɪɟɞɚ Delphi ɧɚ ɨɫɧɨɜɟ ɩɨɞɝɨɬɨɜɥɟɧɧɨɣ ɦɨɞɟɥɢ ɚɜɬɨɦɚɬɢɱɟɫɤɢ ɮɨɪɦɢɪɭɟɬ ɫɯɟɦɭ ɛɚɡɵ ɞɚɧɧɵɯ ɫ ɭɱɟɬɨɦ ɜɟɪɫɢɢ ɢ ɫɩɟɰɢɮɢɤɢ ɤɨɧɤɪɟɬɧɨɣ ɋɍȻȾ. Ɉɧɚ ɚɜɬɨɦɚɬɢɱɟɫɤɢ ɫɨɡɞɚɟɬ ɜ ɧɟɣ ɜɫɟ ɬɚɛɥɢɰɵ, ɧɭɠɧɵɟ ɞɥɹ ɯɪɚɧɟɧɢɹ ɨɛɴɟɤɬɧɨɝɨ ɩɪɨɫɬɪɚɧɫɬɜɚ ɢ ɜɡɚɢɦɨɫɜɹɡɟɣ ɦɟɠɞɭ ɤɥɚɫɫɚɦɢ, ɞɚɠɟ ɟɫɥɢ ɷɬɨ ɬɪɟɛɭɟɬ ɜɜɟɞɟɧɢɹ ɞɨɩɨɥɧɢɬɟɥɶɧɵɯ ɬɚɛɥɢɰ. ɉɨ ɦɟɪɟ ɫɨɜɟɪɲɟɧɫɬɜɨɜɚɧɢɹ ɦɨɞɟɥɢ ɫɥɟɞɭɟɬ ɩɟɪɢɨɞɢɱɟɫɤɢ ɫɢɧɯɪɨɧɢɡɢɪɨɜɚɬɶ ɫɯɟɦɭ ɛɚɡɵ ɞɚɧɧɵɯ ɫ ɜɧɟɫɟɧɧɵɦɢ ɜ ɦɨɞɟɥɶ ɦɨɞɢɮɢɤɚɰɢɹɦɢ, ɞɥɹ ɷɬɨɝɨ ɞɨɫɬɚɬɨɱɧɨ ɧɚɠɚɬɶ ɨɞɧɭ ɤɧɨɩɤɭ. Ɍɚɤɨɣ ɩɪɨɰɟɫɫ ɧɚɡɵɜɚɟɬɫɹ ɜ ɬɟɯɧɨɥɨɝɢɢ ȿɋɈ ɷɜɨɥɸɰɢɨɧɧɵɦ ɪɚɡɜɢɬɢɟɦ ɛɚɡɵ ɞɚɧ-

ɧɵɯ.

ɋɬɵɤɨɜɤɚ ɨɛɴɟɤɬɧɨɝɨ ɩɪɨɫɬɪɚɧɫɬɜɚ ɫ ɩɨɥɶɡɨɜɚɬɟɥɶɫɤɢɦ ɢɧɬɟɪɮɟɣɫɨɦ ɪɟɚɥɢɡɭɟɬɫɹ ɜ ȿɋɈ ɫ ɩɨɦɨɳɶɸ ɞɟɫɤɪɢɩɬɨɪɨɜ. Ⱦɟɫɤɪɢɩɬɨɪ ȿɋɈ – ɷɬɨ ɫɬɵɤɨɜɨɱɧɚɹ ɬɨɱɤɚ (ɤɨɦɩɨɧɟɧɬ ɩɪɨɦɟɠɭɬɨɱɧɨɝɨ ɭɪɨɜɧɹ), ɫɜɹɡɵɜɚɸɳɚɹ ɫ ɩɨɦɨɳɶɸ ɜɵɪɚɠɟɧɢɣ OCL ɷɥɟɦɟɧɬɵ ɦɨɞɟɥɢ UML (ɤɥɚɫɫɵ) ɫ ɩɪɨɝɪɚɦɦɧɵɦ ɤɨɞɨɦ ɢ ɜɧɭɬɪɟɧɧɟɣ ɫɬɪɭɤɬɭɪɨɣ ɨɛɵɱɧɨɝɨ ɩɪɢɥɨɠɟɧɢɹ Delphi. Ⱦɟɫɤɪɢɩɬɨɪɵ ɡɚɞɚɸɬ ɫɩɨɫɨɛɵ ɮɨɪɦɢɪɨɜɚɧɢɹ ɧɚɛɨɪɨɜ ɨɛɴɟɤɬɨɜ ɜ ɨɛɴɟɤɬɧɨɦ ɩɪɨɫɬɪɚɧɫɬɜɟ ɩɨ ɤɪɢɬɟɪɢɹɦ, ɡɚɞɚɧɧɵɦ ɜɵɪɚɠɟɧɢɹɦɢ OCL. Ɉɧɢ ɬɚɤɠɟ ɨɛɟɫɩɟɱɢɜɚɸɬ ɞɨɫɬɭɩ ɤ ɧɢɦ ɷɥɟɦɟɧɬɨɜ ɩɨɥɶɡɨɜɚɬɟɥɶɫɤɨɝɨ ɢɧɬɟɪɮɟɣɫɚ, ɚ ɩɪɨɝɪɚɦɦɧɨɦɭ ɤɨɞɭ ɩɪɟɞɥɚɝɚɸɬ ɫɫɵɥɤɢ ɧɚ ɨɛɴɟɤɬɵ ȿɋɈ.

ɍɠɰɨɩɦɩɞɣɣ ɫɛɢɫɛɜɩɭɥɣ ɪɫɩɞɫɛɧɧɨɩɞɩ ɩɜɠɬɪɠɲɠɨɣɺ. Ɇɛɜ. ɪɫɛɥɭɣɥɮɧ

-112-

ɅȺȻɈɊȺɌɈɊɇȺə ɊȺȻɈɌȺ ʋ 7 ɊȺɁɊȺȻɈɌɄȺ ɉɊɈɋɌɈȽɈ MDA-ɉɊɂɅɈɀȿɇɂə

Ʌɫɛɭɥɣɠ ɭɠɩɫɠɭɣɲɠɬɥɣɠ ɬɝɠɟɠɨɣɺ

Ʉɚɤ ɩɪɚɜɢɥɨ, ɪɭɱɧɨɟ ɤɨɞɢɪɨɜɚɧɢɟ ɧɚ ɹɡɵɤɟ Delphi ɬɪɟɛɭɟɬɫɹ, ɟɫɥɢ ɤɥɚɫɫɵ ɦɨɞɟɥɢ, ɩɨɫɬɪɨɟɧɧɨɣ ɫ ɩɨɦɨɳɶɸ ɬɟɯɧɨɥɨɝɢɢ ȿɋɈ, ɜɤɥɸɱɚɸɬ ɦɟɬɨɞɵ, ɤɨɬɨɪɵɟ ɧɟɨɛɯɨɞɢɦɨ ɡɚɩɪɨɝɪɚɦɦɢɪɨɜɚɬɶ ɹɜɧɨ.

ɋɟɪɶɟɡɧɭɸ ɪɨɥɶ ɜ ɫɨɡɞɚɧɢɢ ɩɪɢɥɨɠɟɧɢɣ ȿɋɈ ɢɝɪɚɟɬ ɹɡɵɤ OCL. Ɉɧ ɩɪɟɞɨɫɬɚɜɥɹɟɬ ɩɪɨɝɪɚɦɦɧɵɟ ɫɪɟɞɫɬɜɚ ɨɛɪɚɳɟɧɢɹ ɤ ɩɪɨɫɬɪɚɧɫɬɜɭ ȿɋɈ ɢ ɫɨɞɟɪɠɢɬ ɫɪɟɞɫɬɜɚ ɫɨɡɞɚɧɢɹ, ɦɨɞɢɮɢɤɚɰɢɢ ɢ ɭɧɢɱɬɨɠɟɧɢɹ ɨɛɴɟɤɬɨɜ, ɧɚɜɢɝɚɰɢɢ ɩɨ ɷɬɨɦɭ ɩɪɨɫɬɪɚɧɫɬɜɭ ɢ ɜɵɩɨɥɧɟɧɢɹ ɜɫɟɜɨɡɦɨɠɧɵɯ ɜɵɱɢɫɥɢɬɟɥɶɧɵɯ ɡɚɞɚɱ.

ɚɢɶɥ ɩɜɵɠɥɭɨɶɰ ɩɞɫɛɨɣɲɠɨɣɤ OCL

Ⱥɪɯɢɬɟɤɬɭɪɚ MDA ɫɬɚɜɢɬ ɧɚ ɩɟɪɜɨɟ ɦɟɫɬɨ ɦɨɞɟɥɶ ɩɪɢɥɨɠɟɧɢɹ, ɢ ɩɨɷɬɨɦɭ ɨɧɚ ɧɟɩɨɫɪɟɞɫɬɜɟɧɧɨ ɫɜɹɡɚɧɚ ɫ ɹɡɵɤɨɦ, ɧɚ ɤɨɬɨɪɨɦ ɬɚɤɢɟ ɦɨɞɟɥɢ ɫɨɡɞɚɸɬɫɹ (ɹɡɵɤ ɭɧɢɮɢɰɢɪɨɜɚɧɧɨɝɨ ɦɨɞɟɥɢɪɨɜɚɧɢɹ UML). Ɉɞɢɧ ɢɡ ɫɚɦɵɯ ɫɟɪɶɟɡɧɵɯ ɢ ɫɩɪɚɜɟɞɥɢɜɨ ɤɪɢɬɢɤɭɟɦɵɯ ɧɟɞɨɫɬɚɬɤɨɜ ɹɡɵɤɚ ɦɨɞɟɥɢɪɨɜɚɧɢɹ UML – ɩɪɟɞɨɫɬɚɜɥɟɧɢɟ ɪɚɡɪɚɛɨɬɱɢɤɭ ɬɨɥɶɤɨ ɜɢɡɭɚɥɶɧɵɯ ɫɪɟɞɫɬɜ ɦɨɞɟɥɢɪɨɜɚɧɢɹ. ɗɬɢ ɫɪɟɞɫɬɜɚ ɚɛɫɬɪɚɤɬɧɵ, ɩɨɷɬɨɦɭ ɞɚɥɟɤɨ ɧɟ ɜɫɟɝɞɚ ɫɩɨɫɨɛɧɵ ɬɨɱɧɨ ɢ ɮɨɪɦɚɥɶɧɨ ɨɬɪɚɡɢɬɶ ɬɨɬ ɢɥɢ ɢɧɨɣ ɧɸɚɧɫ ɮɭɧɤɰɢɨɧɢɪɨɜɚɧɢɹ ɩɪɨɟɤɬɢɪɭɟɦɨɣ ɫɢɫɬɟɦɵ. ɂɦɟɧɧɨ ɧɟɨɛɯɨɞɢɦɨɫɬɶ ɮɨɪɦɚɥɢɡɚɰɢɢ ɨɩɢɫɚɧɢɹ ɭɫɥɨɜɢɣ ɢ ɨɝɪɚɧɢɱɟɧɢɣ, ɧɚɤɥɚɞɵɜɚɟɦɵɯ ɧɚ ɷɥɟɦɟɧɬɵ ɞɢɚɝɪɚɦɦ ɤɥɚɫɫɨɜ, ɜɵɡɜɚɥɨ ɩɨɹɜɥɟɧɢɟ OCL (Object Constraint Language). Ʉɨɧɟɱɧɨ, ɬɚɤɢɟ ɭɫɥɨɜɢɹ ɦɨɝɭɬ ɛɵɬɶ ɫɮɨɪɦɭɥɢɪɨɜɚɧɵ ɢ ɧɚ ɟɫɬɟɫɬɜɟɧɧɨɦ ɹɡɵɤɟ, ɨɞɧɚɤɨ ɨɧ ɧɟ ɛɭɞɟɬ ɹɜɥɹɬɶɫɹ ɫɬɪɨɝɢɦ ɢ ɦɨɠɟɬ ɞɨ-

ɩɭɫɤɚɬɶ ɧɟɨɞɧɨɡɧɚɱɧɵɟ ɬɪɚɤɬɨɜɤɢ.

əɡɵɤ OCL ɧɟ ɹɜɥɹɟɬɫɹ ɹɡɵɤɨɦ ɩɪɨɝɪɚɦɦɢɪɨɜɚɧɢɹ, ɬ. ɟ. ɧɟ ɩɨɡɜɨɥɹɟɬ ɫɨɡɞɚɬɶ ɩɪɨɝɪɚɦɦɭ ɢɡ ɫɜɨɢɯ ɨɩɟɪɚɬɨɪɨɜ ɢɥɢ ɨɩɢɫɚɬɶ ɥɨɝɢɤɭ ɜɵɩɨɥɧɟɧɢɹ ɤɚ- ɤɢɯ-ɥɢɛɨ ɞɟɣɫɬɜɢɣ. Ɉɧ ɫɨɡɞɚɜɚɥɫɹ ɤɚɤ ɮɨɪɦɚɥɶɧɵɣ ɬɟɤɫɬɨɜɵɣ ɹɡɵɤ, ɞɨɩɨɥɧɹɸɳɢɣ ɝɪɚɮɢɱɟɫɤɢɟ ɜɨɡɦɨɠɧɨɫɬɢ ɹɡɵɤɚ UML. ȼɵɪɚɠɟɧɢɟ OCL ɨɛɵɱɧɨ ɩɪɢɜɹɡɚɧɨ ɤ ɨɩɪɟɞɟɥɟɧɧɨɦɭ ɤɥɚɫɫɭ ɢ ɡɚɞɚɟɬ ɦɧɨɠɟɫɬɜɨ ɷɤɡɟɦɩɥɹɪɨɜ ɷɬɨɝɨ ɤɥɚɫɫɚ. Ʉɨɦɚɧɞɵ OCL ɜɵɩɨɥɧɹɸɬ ɬɚɤɠɟ ɮɢɥɶɬɪɚɰɢɸ ɷɬɨɝɨ ɦɧɨɠɟɫɬɜɚ ɢɥɢ, ɧɚɩɪɢɦɟɪ, ɨɩɪɟɞɟɥɹɸɬ ɱɢɫɥɨ ɟɝɨ ɷɥɟɦɟɧɬɨɜ.

əɡɵɤ OCL ɫɨɞɟɪɠɢɬ ɪɚɡɜɢɬɵɟ ɫɪɟɞɫɬɜɚ ɦɚɧɢɩɭɥɹɰɢɢ ɧɚɞ ɦɧɨɠɟɫɬɜɚɦɢ ɨɛɴɟɤɬɨɜ, ɩɨɷɬɨɦɭ ɨɧ ɯɨɪɨɲɨ ɩɨɞɯɨɞɢɬ ɞɥɹ ɪɟɲɟɧɢɹ ɡɚɞɚɱ, ɝɞɟ ɨɛɵɱɧɨ ɩɪɢɦɟɧɹɟɬɫɹ ɹɡɵɤ ɡɚɩɪɨɫɨɜ ɤ ɪɟɥɹɰɢɨɧɧɵɦ ɛɚɡɚɦ ɞɚɧɧɵɯ SQL. əɡɵɤ OCL ɩɨɡɜɨɥɹɟɬ ɨɪɝɚɧɢɡɨɜɵɜɚɬɶ ɡɚɩɪɨɫɵ ɫ ɛɨɥɶɲɟɣ ɷɮɮɟɤɬɢɜɧɨɫɬɶɸ ɢ ɧɚ ɛɨɥɟɟ ɜɵɫɨɤɨɦ, ɦɨɞɟɥɶɧɨɦ ɭɪɨɜɧɟ ɚɛɫɬɪɚɤɰɢɢ, ɧɟɠɟɥɢ ɹɡɵɤ SQL.

ȼɵɪɚɠɟɧɢɟ OCL ɮɚɤɬɢɱɟɫɤɢ ɡɚɞɚɟɬ ɭɫɥɨɜɢɟ, ɤɨɬɨɪɨɦɭ ɞɨɥɠɧɵ ɭɞɨɜɥɟɬɜɨɪɹɬɶ ɜɫɟ ɷɤɡɟɦɩɥɹɪɵ ɫɨɨɬɜɟɬɫɬɜɭɸɳɟɝɨ ɨɛɴɟɤɬɚ UML. Ɋɟɡɭɥɶɬɚɬɨɦ ɜɵɩɨɥɧɟɧɢɹ ɜɵɪɚɠɟɧɢɹ OCL ɹɜɥɹɟɬɫɹ ɦɧɨɠɟɫɬɜɨ ɨɛɴɟɤɬɨɜ, ɭɞɨɜɥɟɬɜɨɪɹɸɳɢɯ ɷɬɨɦɭ ɭɫɥɨɜɢɸ.

ɉɪɢ ɷɬɨɦ ɫɪɟɞɫɬɜɚɦɢ ɹɡɵɤɚ OCL ɧɟɜɨɡɦɨɠɧɨ ɢɡɦɟɧɢɬɶ ɫɚɦɢ ɷɥɟɦɟɧɬɵ ɦɨɞɟɥɢ (ɤɥɚɫɫɵ, ɚɬɪɢɛɭɬɵ, ɨɬɧɨɲɟɧɢɹ). ɋɪɟɞɚ, ɜɵɱɢɫɥɹɸɳɚɹ ɜɵɪɚɠɟɧɢɟ

ɍɠɰɨɩɦɩɞɣɣ ɫɛɢɫɛɜɩɭɥɣ ɪɫɩɞɫɛɧɧɨɩɞɩ ɩɜɠɬɪɠɲɠɨɣɺ. Ɇɛɜ. ɪɫɛɥɭɣɥɮɧ

-113-

ɅȺȻɈɊȺɌɈɊɇȺə ɊȺȻɈɌȺ ʋ 7 ɊȺɁɊȺȻɈɌɄȺ ɉɊɈɋɌɈȽɈ MDA-ɉɊɂɅɈɀȿɇɂə

Ʌɫɛɭɥɣɠ ɭɠɩɫɠɭɣɲɠɬɥɣɠ ɬɝɠɟɠɨɣɺ

OCL, ɩɪɨɫɬɨ ɨɩɪɟɞɟɥɹɟɬ ɪɟɡɭɥɶɬɢɪɭɸɳɟɟ ɡɧɚɱɟɧɢɟ, ɤɨɬɨɪɨɟ ɦɨɠɟɬ ɜɩɨɫɥɟɞɫɬɜɢɢ ɢɫɩɨɥɶɡɨɜɚɬɶɫɹ (ɯɨɬɹ ɷɬɨ ɢ ɧɟ ɨɛɹɡɚɬɟɥɶɧɨ).

əɡɵɤ OCL ɛɵɥ ɪɚɡɪɚɛɨɬɚɧ ɜ ɤɨɪɩɨɪɚɰɢɢ IBM, ɜ 1997 ɝɨɞɭ ɜɵɲɥɚ ɫɩɟɰɢɮɢɤɚɰɢɹ ɹɡɵɤɚ ɜɟɪɫɢɢ 1.1, ɜ ɪɚɡɪɚɛɨɬɤɟ ɢ ɫɨɝɥɚɫɨɜɚɧɢɢ ɤɨɬɨɪɨɣ ɩɪɢɧɹɥɢ ɭɱɚɫɬɢɟ ɬɚɤɢɟ ɤɨɦɩɚɧɢɢ, ɤɚɤ Rational, Microsoft, Oracle, Hewlett-Packard ɢ ɪɹɞ ɞɪɭɝɢɯ. ɋɢɥɶɧɨɣ ɫɬɨɪɨɧɨɣ ɹɡɵɤɚ OCL ɨɤɚɡɚɥɚɫɶ ɧɟɡɚɜɢɫɢɦɨɫɬɶ ɨɬ ɩɥɚɬɮɨɪɦɵ ɪɟɚɥɢɡɚɰɢɢ ɢ ɥɟɝɤɚɹ ɚɞɚɩɬɚɰɢɹ ɤ ɪɚɡɧɵɦ ɫɪɟɞɫɬɜɚɦ ɩɪɨɝɪɚɦɦɢɪɨɜɚɧɢɹ.

MDI-ɥɩɨɭɠɤɨɠɫɶ

MDI – Multiple Document Interface (ɦɧɨɝɨɞɨɤɭɦɟɧɬɧɵɣ ɢɧɬɟɪɮɟɣɫ).

ȼ ɩɪɢɥɨɠɟɧɢɹɯ ɫ MDI ɜ ɨɫɧɨɜɧɨɦ (ɪɨɞɢɬɟɥɶɫɤɨɦ) ɨɤɧɟ ɦɨɠɧɨ ɨɬɤɪɵɬɶ ɛɨɥɟɟ ɨɞɧɨɝɨ ɞɨɱɟɪɧɟɝɨ ɨɤɧɚ. Ⱦɚɧɧɚɹ ɜɨɡɦɨɠɧɨɫɬɶ ɨɛɵɱɧɨ ɢɫɩɨɥɶɡɭɟɬɫɹ ɜ ɷɥɟɤɬɪɨɧɧɵɯ ɬɚɛɥɢɰɚɯ ɢɥɢ ɬɟɤɫɬɨɜɵɯ ɪɟɞɚɤɬɨɪɚɯ.

Ʉɚɠɞɨɟ MDI ɩɪɢɥɨɠɟɧɢɟ ɢɦɟɟɬ ɬɪɢ ɨɫɧɨɜɧɵɟ ɫɨɫɬɚɜɥɹɸɳɢɟ: ɨɞɧɭ (ɢ ɬɨɥɶɤɨ ɨɞɧɭ) ɪɨɞɢɬɟɥɶɫɤɭɸ ɮɨɪɦɭ MDI;

ɨɞɧɭ ɢ ɛɨɥɟɟ ɞɨɱɟɪɧɢɯ ɮɨɪɦ MDI; ɨɫɧɨɜɧɨɟ ɦɟɧɸ MDI.

Ɋɨɞɢɬɟɥɶɫɤɚɹ ɮɨɪɦɚ ɞɨɥɠɧɚ ɛɵɬɶ ɫɬɚɪɬɨɜɨɣ, ɨɧɚ ɧɭɠɞɚɟɬɫɹ, ɩɨ ɤɪɚɣɧɟɣ ɦɟɪɟ, ɜ ɨɞɧɨɣ ɞɨɱɟɪɧɟɣ ɮɨɪɦɟ. Ⱦɨɱɟɪɧɢɟ ɮɨɪɦɵ MDI – ɷɬɨ ɩɪɨɫɬɵɟ ɮɨɪɦɵ, ɡɚ ɢɫɤɥɸɱɟɧɢɟɦ ɬɨɝɨ, ɱɬɨ ɢɯ ɜɢɞɢɦɚɹ ɱɚɫɬɶ ɨɝɪɚɧɢɱɟɧɚ ɪɚɡɦɟɪɚɦɢ ɪɨɞɢɬɟɥɶɫɤɨɝɨ ɨɤɧɚ. ɉɪɢ ɦɢɧɢɦɢɡɚɰɢɢ ɬɚɤɨɝɨ ɨɤɧɚ ɨɧɨ ɩɨɦɟɳɚɟɬɫɹ ɧɟ ɜ ɩɚɧɟɥɶ ɡɚɞɚɱ, ɚ ɨɫɬɚɟɬɫɹ ɜɧɭɬɪɢ ɪɨɞɢɬɟɥɶɫɤɨɝɨ ɨɤɧɚ (ɧɚ ɩɚɧɟɥɶ ɡɚɞɚɱ ɩɨɩɚɞɟɬ ɬɨɥɶɤɨ ɪɨɞɢɬɟɥɶɫɤɨɟ ɨɤɧɨ).

Ɍɩɢɟɛɨɣɠ ɪɫɩɬɭɩɞɩ MDA-ɪɫɣɦɩɡɠɨɣɺ

Ɋɚɫɫɦɨɬɪɢɦ ɩɪɢɦɟɪ ɫɨɡɞɚɧɢɹ ɩɪɨɫɬɨɝɨ MDA-ɩɪɢɥɨɠɟɧɢɹ. ɂɦɟɸɬɫɹ ɞɜɟ ɫɭɳɧɨɫɬɢ Ʉɚɮɟɞɪɚ ɢ ɉɪɟɩɨɞɚɜɚɬɟɥɶ. ɉɪɟɞɫɬɚɜɢɦ ɷɤɡɟɦɩɥɹɪɵ ɷɬɢɯ ɫɭɳɧɨɫɬɟɣ ɜ ɬɚɛɥɢɰɚɯ ɮɨɪɦɵ. ȼ ɷɬɢɯ ɠɟ ɬɚɛɥɢɰɚɯ ɦɨɠɧɨ ɛɭɞɟɬ ɦɨɞɢɮɢɰɢɪɨɜɚɬɶ ɡɧɚɱɟɧɢɹ ɨɬɞɟɥɶɧɵɯ ɩɨɥɟɣ ɩɪɟɞɫɬɚɜɥɟɧɧɵɯ ɜ ɧɢɯ ɨɛɴɟɤɬɨɜ (ɷɤɡɟɦɩɥɹ-

ɪɨɜ Ʉɚɮɟɞɪɚ ɢ ɉɪɟɩɨɞɚɜɚɬɟɥɶ).

Ⱦɥɹ ɪɚɡɪɚɛɨɬɤɢ ɩɪɢɥɨɠɟɧɢɹ ɩɪɢɦɟɧɹɬɫɹ ɫɪɟɞɚ ɪɚɡɪɚɛɨɬɤɢ Borland Developer Studio 2006. ɉɪɢɥɨɠɟɧɢɟ ɪɚɡɪɚɛɚɬɵɜɚɟɬɫɹ ɞɥɹ ɩɥɚɬɮɨɪɦɵ .NET Framework.

ɉɬɨɩɝɨɶɠ ɸɭɛɪɶ ɫɛɢɫɛɜɩɭɥɣ ɪɫɣɦɩɡɠɨɣɺ

1. Ɏɨɪɦɢɪɭɟɬɫɹ ɦɨɞɟɥɶ UML ɛɭɞɭɳɟɝɨ ɩɪɢɥɨɠɟɧɢɹ. ɋɨɡɞɚɸɬɫɹ ɤɥɚɫɫɵ, ɨɩɢɫɵɜɚɸɬɫɹ ɢɯ ɚɬɪɢɛɭɬɵ ɢ ɦɟɬɨɞɵ, ɧɚɫɬɪɚɢɜɚɸɬɫɹ ɜɡɚɢɦɨɫɜɹɡɢ ɦɟɠɞɭ ɧɢɦɢ.

ɍɠɰɨɩɦɩɞɣɣ ɫɛɢɫɛɜɩɭɥɣ ɪɫɩɞɫɛɧɧɨɩɞɩ ɩɜɠɬɪɠɲɠɨɣɺ. Ɇɛɜ. ɪɫɛɥɭɣɥɮɧ

-114-

ɅȺȻɈɊȺɌɈɊɇȺə ɊȺȻɈɌȺ ʋ 7 ɊȺɁɊȺȻɈɌɄȺ ɉɊɈɋɌɈȽɈ MDA-ɉɊɂɅɈɀȿɇɂə

Ʌɫɛɭɥɣɠ ɭɠɩɫɠɭɣɲɠɬɥɣɠ ɬɝɠɟɠɨɣɺ

2.ȼ ɩɪɨɟɤɬ ɞɨɛɚɜɥɹɸɬɫɹ ɢ ɧɚɫɬɪɚɢɜɚɸɬɫɹ ɧɟɜɢɡɭɚɥɶɧɵɟ ɤɨɦɩɨɧɟɧɬɵ, ɫɜɹɡɵɜɚɸɳɢɟ ɫɨɡɞɚɧɧɭɸ ɦɨɞɟɥɶ UML ɫ ɩɪɢɤɥɚɞɧɨɣ ɱɚɫɬɶɸ ɩɪɨɟɤɬɚ.

3.ɉɪɨɫɬɪɚɧɫɬɜɨ ȿɋɈ ɫɜɹɡɵɜɚɟɬɫɹ ɫ ɛɚɡɨɣ ɞɚɧɧɵɯ. ȼ ɧɟɣ ɛɭɞɟɬ ɞɨɥɝɨɜɪɟɦɟɧɧɨ ɯɪɚɧɢɬɶɫɹ ɟɝɨ ɤɨɩɢɹ: ɜɫɟ ɨɛɴɟɤɬɵ ȿɋɈ ɢ ɜɡɚɢɦɨɫɜɹɡɢ ɦɟɠɞɭ ɧɢɦɢ.

4.ɉɪɨɟɤɬɢɪɭɟɬɫɹ ɩɨɥɶɡɨɜɚɬɟɥɶɫɤɢɣ ɢɧɬɟɪɮɟɣɫ. Ɂɚɞɟɣɫɬɜɭɸɬɫɹ ɤɨɦɩɨɧɟɧɬɵ, ɨɛɟɫɩɟɱɢɜɚɸɳɢɟ ɫɜɹɡɶ ɢɧɬɟɪɮɟɣɫɚ ɫ ɦɨɞɟɥɶɸ UML.

5.ɋɨɡɞɚɟɬɫɹ ɩɟɪɟɧɨɫɢɦɚɹ ɥɨɝɢɤɚ ɩɪɢɥɨɠɟɧɢɹ ɧɚ ɹɡɵɤɟ OCL. ɗɥɟɦɟɧɬɵ ɭɩɪɚɜɥɟɧɢɹ ɫɜɹɡɵɜɚɸɬɫɹ ɫ ɜɵɪɚɠɟɧɢɹɦɢ OCL ɞɥɹ ɜɵɩɨɥɧɟɧɢɹ ɬɢɩɢɱɧɵɯ ɫɬɚɧɞɚɪɬɧɵɯ ɞɟɣɫɬɜɢɣ (ɞɨɛɚɜɥɟɧɢɟ, ɪɟɞɚɤɬɢɪɨɜɚɧɢɟ ɢ ɭɞɚɥɟɧɢɟ ɨɛɴɟɤɬɨɜ

ECO).

ɉɜɢɩɫ ɝɩɢɧɩɡɨɩɬɭɠɤ Borland Developer Studio 2006 ɟɦɺ ɫɛɢɫɛɜɩɭɥɣ MDAɪɫɣɦɩɡɠɨɣɺ

1. ɉɨɫɥɟ ɡɚɩɭɫɤɚ BDS 2006 ɧɚ ɷɤɪɚɧɟ ɨɬɤɪɵɜɚɟɬɫɹ ɝɥɚɜɧɨɟ ɨɤɧɨ ɫɪɟɞɵ ɪɚɡɪɚɛɨɬɤɢ (ɪɢɫ. 7.1). ɉɪɨɟɤɬ Delphi ɩɪɟɞɫɬɚɜɥɹɟɬ ɫɨɛɨɣ ɝɪɭɩɩɭ ɮɚɣɥɨɜ, ɫɨɞɟɪɠɚɳɢɯ ɢɫɯɨɞɧɵɣ ɬɟɤɫɬ ɩɪɨɝɪɚɦɦɵ ɢ ɜɫɩɨɦɨɝɚɬɟɥɶɧɵɟ ɞɚɧɧɵɟ. ȼɫɟ ɨɧɢ ɨɛɴɟɞɢɧɟɧɵ ɬɟɦɚɬɢɤɨɣ ɪɟɲɚɟɦɨɣ ɡɚɞɚɱɢ.

Ɋɢɫ. 7.1. ɇɚɱɚɥɨ ɪɚɛɨɬɵ ɜ ɫɪɟɞɟ BDS

ɍɠɰɨɩɦɩɞɣɣ ɫɛɢɫɛɜɩɭɥɣ ɪɫɩɞɫɛɧɧɨɩɞɩ ɩɜɠɬɪɠɲɠɨɣɺ. Ɇɛɜ. ɪɫɛɥɭɣɥɮɧ

-115-

ɅȺȻɈɊȺɌɈɊɇȺə ɊȺȻɈɌȺ ʋ 7 ɊȺɁɊȺȻɈɌɄȺ ɉɊɈɋɌɈȽɈ MDA-ɉɊɂɅɈɀȿɇɂə

Ʌɫɛɭɥɣɠ ɭɠɩɫɠɭɣɲɠɬɥɣɠ ɬɝɠɟɠɨɣɺ

2.ɋɨɡɞɚɞɢɦ ɩɭɫɬɭɸ ɡɚɝɨɬɨɜɤɭ ɩɪɢɥɨɠɟɧɢɹ ȿɋɈ ɤɨɦɚɧɞɨɣ File > New

>Other. ȼɵɛɟɪɟɦ ɡɧɚɱɨɤ ECO WinForms Application ɜɨ ɜɤɥɚɞɤɟ Delphi for

.NET Projects (ɪɢɫ. 7.2).

3.ȼ ɞɢɚɥɨɝɨɜɨɦ ɨɤɧɟ ɜɜɟɞɟɦ ɢɦɹ ɩɪɨɟɤɬɚ (ɧɚɩɪɢɦɟɪ, projDeanOffice) ɢ ɟɝɨ ɦɟɫɬɨɩɨɥɨɠɟɧɢɟ (ɤɚɬɚɥɨɝ). ɇɚɠɦɟɦ ɤɧɨɩɤɭ ɈɄ.

Ɋɢɫ. 7.2. ɋɨɡɞɚɧɢɟ ɡɚɝɨɬɨɜɤɢ ɩɪɨɟɤɬɚ ECO

Ɋɢɫ. 7.3. Ɉɤɧɨ ɩɪɨɫɦɨɬɪɚ ɦɨɞɟɥɢ

ɍɠɰɨɩɦɩɞɣɣ ɫɛɢɫɛɜɩɭɥɣ ɪɫɩɞɫɛɧɧɨɩɞɩ ɩɜɠɬɪɠɲɠɨɣɺ. Ɇɛɜ. ɪɫɛɥɭɣɥɮɧ

-116-

ɅȺȻɈɊȺɌɈɊɇȺə ɊȺȻɈɌȺ ʋ 7 ɊȺɁɊȺȻɈɌɄȺ ɉɊɈɋɌɈȽɈ MDA-ɉɊɂɅɈɀȿɇɂə

Ʌɫɛɭɥɣɠ ɭɠɩɫɠɭɣɲɠɬɥɣɠ ɬɝɠɟɠɨɣɺ

4. ɋɪɟɞɚ Delphi ɫɮɨɪɦɢɪɭɟɬ ɩɭɫɬɭɸ ɡɚɝɨɬɨɜɤɭ ɩɪɢɥɨɠɟɧɢɹ ECO ɢ ɨɬɤɪɨɟɬ ɨɤɧɨ ɉɪɨɟɤɬɢɪɨɜɳɢɤɚ. ȼ ɧɟɦ ɪɚɫɩɨɥɨɠɟɧɚ ɧɚɱɚɥɶɧɚɹ ɩɭɫɬɚɹ ɮɨɪɦɚ ɩɪɢɥɨɠɟɧɢɹ. ɋɬɪɭɤɬɭɪɚ ɚɜɬɨɦɚɬɢɱɟɫɤɢ ɫɨɡɞɚɧɧɨɣ ɦɨɞɟɥɢ (ɩɭɫɬɨɣ ɡɚɝɨɬɨɜɤɢ) ɞɨɫɬɭɩɧɚ ɜ ɨɤɧɟ ɩɪɨɫɦɨɬɪɚ ɦɨɞɟɥɢ, ɨɬɤɪɵɜɚɟɦɨɦ ɤɨɦɚɧɞɨɣ View > Model View ɥɢɛɨ ɜɵɛɨɪɨɦ ɜɤɥɚɞɤɢ Model View ɜ ɩɪɚɜɨɦ ɜɟɪɯɧɟɦ ɨɤɧɟ (ɫɦ. ɪɢɫ. 7.3). ȼ ɷɬɨɦ ɨɤɧɟ ɜ ɞɨɩɨɥɧɟɧɢɟ ɤ ɫɚɦɨɦɭ ɩɪɨɟɤɬɭ (projDeanOffice) ɢ ɝɥɚɜɧɨɣ ɮɨɪɦɟ (WinForm) ɦɨɠɧɨ ɭɜɢɞɟɬɶ ɟɳɟ ɧɟɫɤɨɥɶɤɨ ɚɜɬɨɦɚɬɢɱɟɫɤɢ ɞɨɛɚɜɥɟɧɧɵɯ ɷɥɟɦɟɧɬɨɜ. ɋɪɟɞɢ ɧɢɯ ɢɦɟɸɬɫɹ ɫɥɟɞɭɸɳɢɟ:

ɷɥɟɦɟɧɬ projDeanOfficeEcoSpace ɩɪɟɞɫɬɚɜɥɹɟɬ ɨɛɴɟɤɬɧɨɟ ɩɪɨɫɬɪɚɧɫɬɜɨ ȿɋɈ. ɗɬɨ ɨɫɧɨɜɧɨɟ ɯɪɚɧɢɥɢɳɟ, ɜ ɤɨɬɨɪɨɦ ɪɚɫɩɨɥɚɝɚɸɬɫɹ ɷɤɡɟɦɩɥɹɪɵ ɤɥɚɫɫɨɜ ɫɨɡɞɚɜɚɟɦɨɣ ɦɨɞɟɥɢ ɜɨ ɜɪɟɦɹ ɪɚɛɨɬɵ ɩɪɨɝɪɚɦɦɵ. ɗɬɨ ɩɪɨɫɬɪɚɧɫɬɜɨ ɬɚɤɠɟ ɨɬɜɟɬɫɬɜɟɧɧɨ ɡɚ ɯɪɚɧɟɧɢɟ ɨɛɴɟɤɬɨɜ ȿɋɈ, ɧɚɩɪɢɦɟɪ ɜ ɛɚɡɟ ɞɚɧɧɵɯ ɢɥɢ ɮɚɣɥɟ

XML;

ɷɥɟɦɟɧɬ Package_1 ɩɪɟɞɫɬɚɜɥɹɟɬ ɩɚɤɟɬ ɤɥɚɫɫɨɜ UML, ɤɨɬɨɪɵɟ ɦɵ ɛɭɞɟɦ ɫɨɡɞɚɜɚɬɶ.

ɉɟɪɟɢɦɟɧɭɟɦ ɷɥɟɦɟɧɬ Package_1 ɜ ɭɞɨɛɧɨɟ ɞɥɹ ɧɚɫ ɧɚɡɜɚɧɢɟ packModel.

Ɍɩɢɟɛɨɣɠ ɧɩɟɠɦɣ UML

1.Ⱦɥɹ ɫɨɡɞɚɧɢɹ ɦɨɞɟɥɢ ɞɜɚɠɞɵ ɳɟɥɤɧɟɦ ɦɵɲɶɸ ɧɚ ɫɬɪɨɤɟ packModel ɜ ɨɤɧɟ ɩɪɨɫɦɨɬɪɚ ɦɨɞɟɥɢ. Ɉɬɤɪɨɟɬɫɹ ɨɤɧɨ packModel [diagram] ɞɢɚɝɪɚɦɦɵ ɤɥɚɫɫɨɜ ȿɋɈ. ɗɬɨ ɨɤɧɨ ɧɚɩɨɦɢɧɚɟɬ ɨɤɧɨ ɩɨɫɬɪɨɟɧɢɹ ɨɛɵɱɧɵɯ ɞɢɚɝɪɚɦɦ ɤɥɚɫɫɨɜ UML, ɬɨɥɶɤɨ ɩɪɢ ɪɚɛɨɬɟ ɫ ɧɢɦ ɩɪɢɦɟɧɹɸɬɫɹ ɷɥɟɦɟɧɬɵ, ɫɩɟɰɢɮɢɱɧɵɟ ɢɦɟɧɧɨ ɞɥɹ ɬɟɯɧɨɥɨɝɢɢ ȿɋɈ.

2.Ɋɚɡɦɟɫɬɢɦ ɧɚ ɞɢɚɝɪɚɦɦɟ ɩɟɪɜɵɣ ɤɥɚɫɫ, ɨɬɪɚɠɚɸɳɢɣ ɫɭɳɧɨɫɬɶ Ⱦɟɤɚɧɚɬ. Ⱦɥɹ ɷɬɨɝɨ ɜɵɛɟɪɟɦ ɧɚ ɩɚɥɢɬɪɟ ɢɧɫɬɪɭɦɟɧɬɨɜ Tool Palette ɢɧɫɬɪɭɦɟɧɬ ECO Class ɜ ɤɚɬɟɝɨɪɢɢ UML ECO Class Diagram ɢ ɳɟɥɤɧɟɦ ɜ ɩɨɞɯɨɞɹɳɟɣ ɬɨɱɤɟ ɩɪɨɫɬɪɚɧɫɬɜɚ ɦɨɞɟɥɢɪɨɜɚɧɢɹ. ȼ ɧɟɣ ɩɨɹɜɢɬɫɹ ɝɪɚɮɢɱɟɫɤɢɣ ɷɥɟɦɟɧɬ, ɢɡɨɛɪɚɠɚɸɳɢɣ ɤɥɚɫɫ.

3.ɇɚɡɨɜɟɦ ɤɥɚɫɫ clChair (Ʉɚɮɟɞɪɚ). ɉɪɨɛɟɥɵ ɜ ɢɦɟɧɢ ɤɥɚɫɫɚ ȿɋɈ ɧɟ ɞɨɩɭɫɤɚɸɬɫɹ.

4.Ⱦɨɛɚɜɢɦ ɚɬɪɢɛɭɬɵ ɤɥɚɫɫɚ ɤɨɦɚɧɞɨɣ ɤɨɧɬɟɤɫɬɧɨɝɨ ɦɟɧɸ Add > Attribute. ɋɨɡɞɚɞɢɦ ɬɚɤɢɦ ɨɛɪɚɡɨɦ ɬɪɢ ɚɬɪɢɛɭɬɚ ChairName (ɇɚɡɜɚɧɢɟ ɤɚɮɟɞɪɵ), ChairHeadSNP (ɎɂɈ ɡɚɜɟɞɭɸɳɟɝɨ ɤɚɮɟɞɪɨɣ), ChairSecrSNP (ɎɂɈ ɫɟɤ-

ɪɟɬɚɪɹ ɤɚɮɟɞɪɵ), ɪɢɫ. 7.4. Ⱦɥɹ ɡɚɞɚɧɢɹ ɬɢɩɚ ɚɬɪɢɛɭɬɚ ɜɵɞɟɥɢɦ ɧɭɠɧɵɣ ɚɬɪɢɛɭɬ ɢ ɜ ɨɤɧɟ Properties ɭɫɬɚɧɨɜɢɦ ɧɟɨɛɯɨɞɢɦɨɟ ɡɧɚɱɟɧɢɟ ɩɨɥɹ Type ɜ ɤɚɬɟɝɨɪɢɢ General. ȼ ɞɚɧɧɨɦ ɫɥɭɱɚɟ ɜɫɟ ɬɪɢ ɚɬɪɢɛɭɬɚ ɢɦɟɸɬ ɬɢɩ String.

ɍɠɰɨɩɦɩɞɣɣ ɫɛɢɫɛɜɩɭɥɣ ɪɫɩɞɫɛɧɧɨɩɞɩ ɩɜɠɬɪɠɲɠɨɣɺ. Ɇɛɜ. ɪɫɛɥɭɣɥɮɧ

-117-

ɅȺȻɈɊȺɌɈɊɇȺə ɊȺȻɈɌȺ ʋ 7 ɊȺɁɊȺȻɈɌɄȺ ɉɊɈɋɌɈȽɈ MDA-ɉɊɂɅɈɀȿɇɂə

Ʌɫɛɭɥɣɠ ɭɠɩɫɠɭɣɲɠɬɥɣɠ ɬɝɠɟɠɨɣɺ

5. ɉɟɪɟɢɦɟɧɭɟɦ ɧɚɡɜɚɧɢɹ ɤɥɚɫɫɚ ɢ ɚɬɪɢɛɭɬɨɜ ɜ ɩɨɧɹɬɧɵɟ ɧɚɡɜɚɧɢɹ ɧɚ ɪɭɫɫɤɨɦ ɹɡɵɤɟ. Ⱦɥɹ ɷɬɨɝɨ ɜ ɫɜɨɣɫɬɜɟ Alias (ɤɚɬɟɝɨɪɢɹ General) ɤɥɚɫɫɚ ɢ ɟɝɨ ɚɬɪɢɛɭɬɨɜ ɜɜɟɞɟɦ ɪɭɫɫɤɨɹɡɵɱɧɵɟ ɧɚɡɜɚɧɢɹ.

Ɋɢɫ. 7.4. Ⱦɨɛɚɜɥɟɧɢɟ ɤɥɚɫɫɚ clChair ɫ ɟɝɨ ɚɬɪɢɛɭɬɚɦɢ

6.ɉɨ ɚɧɚɥɨɝɢɢ ɞɨɛɚɜɢɦ ɤ ɦɨɞɟɥɢ ɟɳɟ ɨɞɢɧ ɤɥɚɫɫ clLecturer (ɉɪɟɩɨɞɚɜɚ-

ɬɟɥɶ) ɫ ɚɬɪɢɛɭɬɚɦɢ LecturerSNP (ɎɂɈ ɩɪɟɩɨɞɚɜɚɬɟɥɹ) ɢ LectAcadDegree (ɍɱɟɧɚɹ ɫɬɟɩɟɧɶ) ɬɢɩɚ String. ɉɟɪɟɢɦɟɧɭɟɦ ɷɥɟɦɟɧɬɵ ɧɨɜɨɝɨ ɤɥɚɫɫɚ ɧɚ ɞɢɚɝɪɚɦɦɟ, ɢɡɦɟɧɢɜ ɡɧɚɱɟɧɢɹ ɫɜɨɣɫɬɜɚ Alias.

7.ɇɚɫɬɪɨɢɦ ɫɜɹɡɢ ɦɟɠɞɭ ɫɨɡɞɚɧɧɵɦɢ ɤɥɚɫɫɚɦɢ. ɗɬɚ ɫɜɹɡɶ ɛɭɞɟɬ ɩɪɟɞɫɬɚɜɥɹɬɶ ɨɬɧɨɲɟɧɢɟ ɚɫɫɨɰɢɚɰɢɢ. ȼɵɛɟɪɟɦ ɧɚ ɩɚɥɢɬɪɟ ɢɧɫɬɪɭɦɟɧɬɨɜ ɢɧɫɬɪɭɦɟɧɬ Generalization/Implementation. ɓɟɥɤɧɟɦ ɦɵɲɶɸ ɧɚ ɩɪɟɞɫɬɚɜɥɟɧɢɢ ɤɥɚɫɫɚ Ʉɚɮɟɞɪɚ, ɩɪɨɬɹɧɟɦ ɫɜɹɡɶ ɤ ɤɥɚɫɫɭ ɉɪɟɩɨɞɚɜɚɬɟɥɶ ɢ ɫɧɨɜɚ ɳɟɥɤɧɟɦ ɦɵɲɶɸ. ȼ ɪɟɡɭɥɶɬɚɬɟ ɦɟɠɞɭ ɞɜɭɦɹ ɤɥɚɫɫɚɦɢ ɫɮɨɪɦɢɪɭɟɬɫɹ ɚɫɫɨɰɢɚɬɢɜɧɨɟ ɨɬɧɨɲɟɧɢɟ.

8.ɇɚɫɬɪɨɢɦ ɦɨɳɧɨɫɬɶ ɚɫɫɨɰɢɚɬɢɜɧɨɝɨ ɨɬɧɨɲɟɧɢɹ. ȼ ɧɚɲɟɦ ɫɥɭɱɚɟ ɨɞɧɨɦɭ ɷɤɡɟɦɩɥɹɪɭ ɤɥɚɫɫɚ Ʉɚɮɟɞɪɚ ɫɨɨɬɜɟɬɫɬɜɭɟɬ ɦɧɨɠɟɫɬɜɨ ɷɤɡɟɦɩɥɹɪɨɜ ɤɥɚɫɫɚ ɉɪɟɩɨɞɚɜɚɬɟɥɶ (ɨɬ 1 ɢ ɛɨɥɟɟ). Ⱦɥɹ ɷɬɨɝɨ ɜ ɨɤɧɟ Properties ɜɵɞɟɥɟɧɧɨɣ ɫɜɹ-

ɡɢ ɜɵɛɟɪɟɦ ɤɚɬɟɝɨɪɢɸ End1, ɫɨɨɬɜɟɬɫɬɜɭɸɳɭɸ ɤɥɚɫɫɭ Ʉɚɮɟɞɪɚ,

ɢɜ ɩɨɥɟ Multiplicity ɭɫɬɚɧɨɜɢɦ ɡɧɚɱɟɧɢɟ 1, ɚ ɜ ɤɚɬɟɝɨɪɢɢ End2 (ɞɥɹ ɤɥɚɫɫɚ ɉɪɟɩɨɞɚɜɚɬɟɥɶ) ɷɬɨɦɭ ɠɟ ɩɨɥɸ – ɡɧɚɱɟɧɢɟ 1..*. Ɍɟɩɟɪɶ ɞɚɞɢɦ ɫɬɨɪɨɧɚɦ ɫɜɹɡɢ ɧɚɡɜɚɧɢɹ. ȼ ɫɜɨɣɫɬɜɨ Name ɞɥɹ ɫɬɨɪɨɧ End1 ɢ End2 ɜɜɟɞɟɦ roleChair

ɢroleLecturers ɫɨɨɬɜɟɬɫɬɜɟɧɧɨ (ɪɢɫ. 7.5). Ɍɚɤɢɦ ɨɛɪɚɡɨɦ, ɦɵ ɧɚɡɜɚɥɢ ɪɨɥɢ

ɍɠɰɨɩɦɩɞɣɣ ɫɛɢɫɛɜɩɭɥɣ ɪɫɩɞɫɛɧɧɨɩɞɩ ɩɜɠɬɪɠɲɠɨɣɺ. Ɇɛɜ. ɪɫɛɥɭɣɥɮɧ

-118-

ɅȺȻɈɊȺɌɈɊɇȺə ɊȺȻɈɌȺ ʋ 7 ɊȺɁɊȺȻɈɌɄȺ ɉɊɈɋɌɈȽɈ MDA-ɉɊɂɅɈɀȿɇɂə

Ʌɫɛɭɥɣɠ ɭɠɩɫɠɭɣɲɠɬɥɣɠ ɬɝɠɟɠɨɣɺ

ɤɚɠɞɨɝɨ ɤɥɚɫɫɚ ɜ ɚɫɫɨɰɢɚɬɢɜɧɨɣ ɫɜɹɡɢ. ɗɬɢ ɢɦɟɧɚ ɩɪɢɝɨɞɹɬɫɹ ɧɚɦ ɩɪɢ ɤɨɞɢɪɨɜɚɧɢɢ ɧɚ ɹɡɵɤɟ OCL.

Ɋɢɫ. 7.5. ɇɚɫɬɪɨɣɤɚ ɫɜɹɡɢ ɦɟɠɞɭ ɤɥɚɫɫɚɦɢ

ɇɚ ɷɬɨɦ ɷɬɚɩɟ ɫɨɡɞɚɧɢɟ ɩɪɨɫɬɟɣɲɟɣ ɦɨɞɟɥɢ ɡɚɤɨɧɱɟɧɨ. Ɍɟɩɟɪɶ ɧɚɞɨ ɫɨɡɞɚɬɶ ɛɚɡɭ ɞɚɧɧɵɯ ɢ ɩɨɞɤɥɸɱɢɬɶ ɟɟ ɤ ɩɪɨɟɤɬɭ.

Ɍɩɢɟɛɨɣɠ ȼȿ ɣ ɨɛɬɭɫɩɤɥɛ ECO ɥɩɧɪɩɨɠɨɭ

1.ɉɟɪɟɣɞɟɦ ɧɚ ɡɚɤɥɚɞɤɭ projDeanOfficeEcoSpace ɪɚɛɨɱɟɝɨ ɨɤɧɚ Delphi (ɪɢɫ. 7.6). ɇɚ ɷɬɨɣ ɡɚɤɥɚɞɤɟ ɧɚɫɬɪɚɢɜɚɸɬ ɨɫɨɛɟɧɧɨɫɬɢ ɮɭɧɤɰɢɨɧɢɪɨɜɚɧɢɹ ɨɛɴɟɤɬɧɨɝɨ ɩɪɨɫɬɪɚɧɫɬɜɚ ɩɪɨɟɤɬɚ. ɉɨɤɚ ɨɛɴɟɤɬɧɨɟ ɩɪɨɫɬɪɚɧɫɬɜɨ ɩɭɫɬɨ – ɨɧɨ ɪɚɛɨɬɚɟɬ ɫɬɚɧɞɚɪɬɧɵɦ ɫɩɨɫɨɛɨɦ. ɗɥɟɦɟɧɬɵ ɦɨɞɟɥɢ ɞɨɫɬɭɩɧɵ ɜ ɞɪɭɝɢɯ ɨɤɧɚɯ

ɜɜɢɞɟ ɞɢɚɝɪɚɦɦ UML.

2.ȼɵɛɟɪɟɦ ɜ ɩɚɥɢɬɪɟ ɢɧɫɬɪɭɦɟɧɬɨɜ ɤɨɦɩɨɧɟɧɬ BdpConnection ɢɡ ɤɚɬɟɝɨɪɢɢ Borland Data Provider, ɩɪɟɞɧɚɡɧɚɱɟɧɧɵɣ ɞɥɹ ɫɜɹɡɢ ɫ ɋɍȻȾ, ɢ ɞɨɛɚɜɢɦ ɟɝɨ ɜ ɩɪɨɟɤɬ.

3.ɇɚɫɬɪɨɢɦ ɷɬɨɬ ɤɨɦɩɨɧɟɧɬ ɧɚ ɞɨɫɬɭɩɧɭɸ ɛɚɡɭ ɞɚɧɧɵɯ. ȼ ɤɚɱɟɫɬɜɟ ɭɱɟɛɧɨɝɨ ɩɪɢɦɟɪɚ ɩɪɨɩɢɲɟɦ ɩɭɬɶ ɤ ɩɭɫɬɨɣ ɛɚɡɟ ɞɚɧɧɵɯ DeOffDB.gbd ɜɵɛɪɚɧɧɨɣ ɋɍȻȾ.

ɍɠɰɨɩɦɩɞɣɣ ɫɛɢɫɛɜɩɭɥɣ ɪɫɩɞɫɛɧɧɨɩɞɩ ɩɜɠɬɪɠɲɠɨɣɺ. Ɇɛɜ. ɪɫɛɥɭɣɥɮɧ

-119-

ɅȺȻɈɊȺɌɈɊɇȺə ɊȺȻɈɌȺ ʋ 7 ɊȺɁɊȺȻɈɌɄȺ ɉɊɈɋɌɈȽɈ MDA-ɉɊɂɅɈɀȿɇɂə

Ʌɫɛɭɥɣɠ ɭɠɩɫɠɭɣɲɠɬɥɣɠ ɬɝɠɟɠɨɣɺ

4. ȼ ɫɜɨɣɫɬɜɟ ConnectionString ɤɨɦɩɨɧɟɧɬɚ BdpConnection ɜɵɛɟɪɟɦ ɢɦɹ ɫɨɟɞɢɧɟɧɢɹ IBConn1.

Ɋɢɫ. 7.6. Ɉɤɧɨ ɧɚɫɬɪɨɣɤɢ ɨɛɴɟɤɬɧɨɝɨ ɩɪɨɫɬɪɚɧɫɬɜɚ

5.ɇɚɫɬɪɨɢɦ ɚɜɬɨɦɚɬɢɱɟɫɤɭɸ ɫɜɹɡɶ ɦɨɞɟɥɢ MDA ɫ ɜɵɛɪɚɧɧɨɣ ɋɍȻȾ. ɋɢɧɯɪɨɧɢɡɚɰɢɹ ɫɨɞɟɪɠɢɦɨɝɨ ɩɪɨɫɬɪɚɧɫɬɜɚ ȿɋɈ ɫ ɞɚɧɧɵɦɢ ɧɚ ɜɧɟɲɧɢɯ ɧɨɫɢɬɟɥɹɯ (ɮɚɣɥɚɯ ɢɥɢ ɛɚɡɚɯ ɞɚɧɧɵɯ) ɜɵɩɨɥɧɹɟɬɫɹ ɤɨɦɩɨɧɟɧɬɚɦɢ, ɧɚɫɥɟɞɭɸɳɢɦɢ ɛɚɡɨɜɵɟ ɯɚɪɚɤɬɟɪɢɫɬɢɤɢ ɤɥɚɫɫɚ PersistenceMapper. ɗɬɨɬ ɤɥɚɫɫ ɨɬɜɟɱɚɟɬ ɡɚ ɨɬɨɛɪɚɠɟɧɢɟ ɫɬɪɭɤɬɭɪɵ ɨɛɴɟɤɬɧɨɝɨ ɩɪɨɫɬɪɚɧɫɬɜɚ ɜ ɫɯɟɦɵ ɩɪɟɞɫɬɚɜɥɟɧɢɹ ɞɚɧɧɵɯ, ɧɚɩɪɢɦɟɪ ɪɟɥɹɰɢɨɧɧɵɟ. Ⱦɨɛɚɜɢɦ ɤ ɩɪɨɟɤɬɭ ɤɨɦɩɨɧɟɧɬ PersistenceMapperBdp ɢɡ ɤɚɬɟɝɨɪɢɢ Enterprise Core Objects. Ɉɧ ɩɪɟɞɧɚɡɧɚɱɟɧ ɞɥɹ ɪɚɫ-

ɤɥɚɞɤɢ ɨɛɴɟɤɬɧɨɝɨ ɩɪɨɫɬɪɚɧɫɬɜɚ ɜ ɫɯɟɦɵ ɛɚɡ ɞɚɧɧɵɯ, ɞɨɫɬɭɩ ɤ ɤɨɬɨɪɵɦ ɩɪɨɢɫɯɨɞɢɬ ɩɨ ɬɟɯɧɨɥɨɝɢɢ BDP.NET. ɗɬɨɬ ɤɨɦɩɨɧɟɧɬ ɪɚɫɩɨɥɚɝɚɟɬɫɹ ɜ ɨɤɧɟ projDeanOfficeEcoSpace ɪɹɞɨɦ ɫ ɨɛɴɟɤɬɨɦ BdpConnection1 (ɷɤɡɟɦɩɥɹɪɨɦ ɤɨɦɩɨɧɟɧɬɚ BdpConnection).

6.ɋɜɹɠɟɦ ɤɨɦɩɨɧɟɧɬ PersistenceMapperBdp ɱɟɪɟɡ ɫɜɨɣɫɬɜɨ Connection

ɫɨɛɴɟɤɬɨɦ BdpConnection1 (ɪɢɫ. 7.7). Ʉɨɦɩɨɧɟɧɬ PersistenceMapperBdp ɩɨɥ-

ɧɨɫɬɶɸ ɨɬɜɟɬɫɬɜɟɧ ɡɚ ɜɫɟ ɚɫɩɟɤɬɵ ɚɜɬɨɦɚɬɢɱɟɫɤɨɝɨ ɫɨɯɪɚɧɟɧɢɹ ɢ ɡɚɝɪɭɡɤɢ ɤɨɩɢɢ ɨɛɴɟɤɬɧɨɝɨ ɩɪɨɫɬɪɚɧɫɬɜɚ ɦɨɞɟɥɢ ɜ ɜɵɛɪɚɧɧɭɸ ɛɚɡɭ ɞɚɧɧɵɯ. Ɏɚɤɬɢɱɟɫɤɢ, ɞɨɛɚɜɢɜ ɤɨɦɩɨɧɟɧɬ PersistenceMapperBdp ɤ ɩɪɨɟɤɬɭ, ɦɵ ɪɟɚɥɢɡɨɜɚɥɢ ɜɫɟ ɨɫɧɨɜɧɵɟ ɚɫɩɟɤɬɵ ɜɡɚɢɦɨɞɟɣɫɬɜɢɹ ɩɪɢɥɨɠɟɧɢɹ MDA ɫ ɛɚɡɨɣ ɞɚɧɧɵɯ.

ɍɠɰɨɩɦɩɞɣɣ ɫɛɢɫɛɜɩɭɥɣ ɪɫɩɞɫɛɧɧɨɩɞɩ ɩɜɠɬɪɠɲɠɨɣɺ. Ɇɛɜ. ɪɫɛɥɭɣɥɮɧ

-120-

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]