Практикалық жұмыс №6

Зертханалық жұмыс№6

Практикалық жұмыс №6

Тәжірибелік сабақ

1. Есептеу нәтижесінің мазмұны;

2. Графикалқ бейнелерді жасаудың тәжірибелік дағдыны алу;

3. СӨЖ үшін тапсырма.

Бағдарламаға оны өзіндік жұмыс ретінде идентификациялайтын жетілдіру элементтерін қайталауға кіргізу, барлық модификацияларды есепке енгізу:

1. Міндетті белгілеу;

2. Талаптар ерекшелігі;

3. Мәліметтер құрылымы;

4. Бағдарламалық қамтамасыз етудің архитектурасы;

5. Қолданушы интерфейсі;

6. Түсініктемесі бар код ;

7. Тестілеу нәтижесі.

Сабаққа дайындалуға арналған әдістемелік нұсқаулар

Әдебиеттер:

1 Покушалова, Л.В. Метод case - study как современная технология профессионально-ориентированного обучения студентов [Текст] / Л.В. Покушалова // Молодой ученый. —2011. —No5. Т.2. —С. 155-157.

2 Романов П.В. Стратегия кейс-стади в исследовании социальныхслужб//Социс,2005, No4, с 101-109.6.

3 Фливберг, Б. Кейс-стади в контексте качественно-количественнойпроблематики: Ст. из Дании] / Б. Фливберг // Социологические исследования. -2004. -No 9. -С. 15 –

4 Гагарина, Л.Г. Разработка и эксплуатация автоматизированных систем: учеб. пособие/ Л.Г. Гагарина, Д.В. Киселев, Е.Л. Федотова; ред. Л.Г. Гагарина. - М.: Форум: ИНФРА-М, 2011. - 384с. 2. Пирогов, В.Ю. Информационные системы и базы данных: организация и проектирование: учеб. пособие для вузов/ В.Ю. Пирогов. - СПб. : БХВ-Петербург, 2009. - 528 с. 3.

5 Фуфаев, Д.Э. Разработка и эксплуатация автоматизированных информационных систем : учеб. Для студ. сред. проф. образования/ Д.Э. Фуфаев, Э.В. Фуфаев. - М.: Академия, 2010. - 304 с.б)

6 Федорова, Г.Н. Информационные системы : учебник/ Г.Н. Федорова. - 2-еизд., испр. - М.: Академия, 2011. - 208 с.

Қосымша:

7 Ларман К. Применение UML и шаблонов проектирования. 2-е издание.: Пер. с англ. – М.: Издательский дом “Вильямс”, 2002. – 624 с.: ил.

8 Калянов Г.Н. CASE-технологии: Консалтинг в автоматизации бизнес-процессов. 2-е изд. перераб. и доп. - М.-Горячая линия – Телеком, 2000.-320 с.

9 Вендров А.М. Проектирование программного обеспечения экономических информационных систем. Учебник. М.: Финансы и статистика, 2000.

10 Александров, Д.В. Инструментальные средства информационного менеджмента. CASE-технологии и распределенные информационные системы : учебное пособие / .В.Александров. -М. : Финансы и статистика, 2011. -225 с. -ISBN 978-5-279-03475-8;

11 http://www.bookwebmaster.narod.ru/uml.html

12 http://wm-help.net/books-online/book/57663/57663-53.html

Зертханалық жұмыс 6

Агрегация қатынасы

Жұмыстың мақсаты:

1. Кластар құру және оларды пакетке біріктіру бойынша машықтар алу.

##### Өз бетінше дайындалуға арналған тапсырма:

1. Жүйе Кластары диаграммаларын құру және олдарды пакетке біріктіру технологиясын кеңсе тауарларына тапсырыс бойынша қолданба жобасын жасау мысалында зерделеу (файл ппо (кп).doc қараңыз);

2. UML тілінде класс Диаграммасын әзірлеу технологиясын зерделеу;

3. UML Ratoinal Rose бағдарлаамсында класс Диаграммасын салу процесі зерделеу;

4. Жобаланатын бағдарламалық жүйеге «Эскиздік жоба» құжатын дайындау (оның толық көлемінің 30%).

## Жұмыстың мазмұны:

1. ПК-да №3 жаттығуды орындау;

2. ПК-да №4 жаттығуды орындау;

3. ПК-да №5 жаттығуды орындау;

4. Жобаланатын бағдарламалық жүйе үшін нұсқа бойынша класс Диаграммасын салу;

5. Жүйе кластарын пакетке біріктіру;

6. Атрибуттар мен класс операцияларын анықтау;

7. Кластар арасындағы байланыстарды анықтау.

## Есеп беру мазмұны:

1. Класс диаграммасының әзірленген диаграммасын келтіру, оларды пакетке біріктіру, атрибуттар мен класс операциялары, кластар арасындағы байланыстар;

2. Берілген диаграммалардың әрбір элементін сипаттау.

##

## Әдістемелік нұсқаулар

Ассоциациялар қатынасы

Ассоциация қатынасы кластар арасында кейбір қатынастың болдуына сәйкес келеді. Берілген қатынас қосымша арнайы символдары бар тұтас сызықпен белгіленеді, олар нақты ассоциацияның жеке қасиеттерін сипаттайды. Қосымша арнайы символдар ретінде ассоциация атауы, сонымен қатар ассоциация класс-рольдерінің атаулары мен еселігі пайдаланылуы мүмкін. Ассоциация атауы оны белгілеудің міндетті емес элементі болып табылады. Егер ол берілген болса, онда сәйкес ассоциация сызығымен қатар бас (үлкен) әріппен жазылады.

Берілген қатынастың анағұрлым қарапайым жағдайы — бинарлық ассоциация. Ол екі класты дәлме-дәл байланыстырады және ерекшелік ретінде класты өзімен-өзін байланыстыра алады. Бинарлық ассоциаця үшін диаграммада берілген ассоциация атауымен қатар стрелка түрінде үш бұрышты пайдалану арқылы кластардың келу тәртібін көрсете алады. Осы стрелканың бағыты кластар тәртібін көрсетеді, олардың бірі - бірінші (үш бұрыш жағынан), ал екіншісі – екінші (үш бұрыш төбесі жағынан) болып табылады. Ассоциация атауының жанында берілген стрелканың болмауы, қарастырылатын қатынаста кластардың келу тәртібі анықталмағандығын білдіреді.

Бинарлық ассоциация қатынасының қарапйым мысалы ретінде екі класс - "Компания" класы мен "Қызметкер" класы арасында қатынасты қарастырамыз (4.5-сурет). Олар өзара Жұмыс бинарлық қатынасымен байланысқан, оның атауы ассоциация атауының жанында суретте көрсетілген. Берілген қатынас үшін кластардың келу тәртібі аықталған, олардың біріншісі "Қызметкер" класы бодлып табылады, ал екіншісі "Компания" класы болып табылады. осы қатынастың жеке мысалы немесе данасы мәндер жұбы болып табылуы мүмкін (Петров И. И., "Рога&Копыта"). Бұл, қызметкер Петров И. И. "Рога&Копыта" компаниясында жұмыс істейтінін білдіреді.

4.5-сурет – Кластар арасында бинарлық ассоциацияның графиктік бейнесі

Тернарлік ассоциация және анағұрлым жоғары бинарлық ассоциация жалпы жағдайда N-арлық ассоциация ("эн арная ассоциация" деп оқылады) деп аталады. Осындай ассоциация кейбір қатынаспен 3 немесе одан көп кластарды байланыстырады, осы кезде бір класс бір реттен артық қатыса алады. Ассоциация класында сәйкес қатынаста белгілі бір роль болады, бұл диаграммада айқын көрсетле алады. N-арлық ассоциацияның әрбір данасы сәйкес кластардан тұратын объекті мәндерінің N-арлық кортежі болып табылады. Бинарлық ассоциация является частным случаем N-арлық ассоциацияның жеке жағдайы болып табылады, сол кезде мәні N=2 және өзінің жеке белгісі болады.

N-арлық ассоциация графиктік түрде ромбпен белгіленеді, одан берілген ассоциация кластары символына сызықтар жүргізіледі. Бұл жағдайда ромб сәйкес кластар символымен тұтас сызықтар арқылы қосылады. Әдетте сызықтар ромб төбелерінен немесе оның қабырғаларының ортасынан жүргізіледі. N-арлық ассоциация атауы сәйкес ассоциация ромбысының жанында жазылады.

Порядок классов в N-арлық ассоциацияда кластар тәртібінің қатынастағы жиындар тәртібінен айырмасы диаграммада белгіленбейді. Кейбір класс ромбқа үзік сызықпен жалғануы мүмкін. Бұл, берілген класс сәйкес N-арлық ассоциация қасиеттерін қолдауды қамтамасыз етеді, ал N-арлық ассоциацияның өзінде атрибуттар, операциялар және/немесе ассоциациялар болатынын білдіреді. Басқаша айтқанда, мұндай ассоциация, өз кезегінде тік бұрыш түрінде сәйкес белгісі бар класс болып табылады және UML тілінде өз бетіндік элемент – ассоциация-класс болып табылады (Association Class). N-арлық ассоциация өз рольдерінің ешқайсысы үшін агрегация символы болмайды.

Нақты тернарлық ассоциации ретінде үш класс арасындағы қатынасты қарастырамыз: "Футбол командасы", "Жыл" және "Ойын". Берілген ассоциация осы үш класс арасындағы қатынастың болуын көрсетеді, ол соңғы бірнеше жыл болы ұлттық чемпионатта футбол командасының ойындары туралы ақпаратты бере алады (4.6-сурет).

Бұрын еске салынғандай, ассоциацияың жеке класында қатынаста жеке ролі болады. Бұл роль графиктік түрде кластар диаграммасында бейнеленуі мүмкін. Осы мақсатта UML тілінде арнайы элемент – ассоциацияның соңы (Association End), қарастыруға енгізіледі, ол графиктік түрде жеке класпен ассоциация сызығының қосылу нүктесіне сәйкес келеді. Ассоциация соңы, класс емес, ассоциация бөлігі болып табылады. Әрбір ассоциацияның екі немесе көп ассоциация соңдары болады. Ассоциацияның анағұрлым маңызды қасиеттері диаграммада ассоциацияның осындай элементтерімен қатар көрсетіледі және олармен бірге араласуы керек.

4.6-сурет – Үш класс арасында тернарлық ассоциацияның графиктік бейнесі

Осындай қосымша белгілердің бірі ассоциацияға енетін жеке класс ролінің атауы болып табылады. Роль атауы сәйкес класс үшін ассоциация соңымен қатар мәтін жолы болып табылады. Ол қарастырылатын ассциация соңы болып табылатын класс ойнайтын өзіндік рольді көрсетеді. Рольдің атауы белгілеудің міндетті элементі болып табылмайды және диаграммада болмауы мүмкін.

Келесі белгілеу элементі — ассоциация соңдары болып табылатын жеке кластар еселігі. Жеке класс еселігі класс атрибуттары мен операциялары еселігіне ұқсас тұтас сандар аралығы түрінде белгіленеді. Аралық ассоциация шетінің жанына жазылады және N-арлық ассоциация үшін жеке даналардың немесе осы ассоциация кортеждері мәндерінің потенциал санын білдіреді, олар N-1 даналар немесе класс мәндерінің қалғандары бекітілген болса, орын алады.

Сонымен, бұрын қарастырылған мысал үшін (5.5-суретті қараңыз) "Компания", әрбір қызметкер тек бір компанияда жұмыс істей алатынын білдіреді. "Қызметкер" класы үшін "1.." еселігі, әрбір компанияда біреше қызметкер жұмыс істей алатынын білдіреді, олардың жалпы саны күні бұрын белгілі және ештемемен шектелмеген. Заметим, что вместо кратности "1..*" еселігінің орнына тек "*" символын жазуға болмайтынын байқайық, себебі соңғысы "0..*" еселігін білдіреді. Берілген мысал үшін бұл, жеке компониялардың өзінің штатында мүлдем қызметкерлер болмауы мүмкін екенін көрсетеді. Бірақ осындай еселік басқа жағдайларда толығымен қабылдарлық, бұл жоғарыда қарастылған мысалдан көрінеді (5.6-сурет).

Қатынастардың, ассоциацияның басқа қасиеттеріне келетін болсақ, онда олар болған жағдайда, оларды ассоциация класының атрибуттары ретінде қарастырылуы және диаграммада класс үшін қарапайым тәсілмен класс тік бұрышының сәйкес секциясында көрсетілуі мүмкін.

Ассоциация қатынасының жеке жағдайы шығаратын ассоциация (Xor-association) болып табылады. Берілген ассоциацияның семантикасы берілген ассоциацияның, әрбір уақыт моментінде берілген бірнеше потенциалды ықтималдан тек бір дананы ғана пайдалануға юолатын фактіні көрсетеді. Кластар диаграммасында шығаратын екі немесе одан көп ассоциацияларды қосатын үзік сызықпен бейнеленеді, онымен қатар шектеу- жол "{хог}" жазылады.

Мысалы, банктегі шот клиент үшін ашылуы мүмкін, ол ретінде жеке тұлға (индивидум) немесе компания қатыса алады, бұл шығаратын ассоциация көмегімен бейнеленеді (4.7-сурет).

4.7-сурет - Үш класс арасында шығаратын ассоциацияның графиктік бейнеленуі

Ассоциация қатынасының арнайы түрі немесе жеке жағдайы агрегация қатынасы болып табюылады, оның, өз кезегінде арнайы формасы – композиция қатынасы болады. Осы қатынастарда өздерінің аранйы белгілері болатындықтан және UML тілінің базалық ұғымына жататындықтан олардың реттілікпен қарастырамыз.

Агрегация қатынасы

Агрегация қатынасы, кластардың бірін құрамды бөліктер ретінде басқа маңыздар еетін кейбір маңыз болып табылатын жағдайда бірнеше кластар арасында орын алады.

Бірлген қатынаста күрделі жүйелер құрылымын сипаттау үшін іргелі мәні болады, себебі "бөлік-тұтас" типті жүйелі өзара байланыстарды беру үшін қолданылады. Жүйенің ішкі құрылымын аша отырып, агрегация қатынасы, жүйенің қандай компоненттерден тұратынын және олар өзара қалай байланысқандығын көрсетеді. Модель тұрғысынан жүйенің жеке бөліктері элементтер түрінде де, сондай-ақ ішкі жүйелер түрінде де қатыса алады, олар өз кезегінде құрамды компоненттерді немесе ішкі жүйелерді құрай алады. Осы қатынас шын мәнінде декомпозицияны немесе күрделі жүйені анағұрлым қарапайым құрамды бөліктерге бөлуді сипаттайды, олар сондай-ақ, егер бұдан кейінгіге қажеттілік туатын болса декопозицияға түсуі мүмкін.

Берілген қатынасты қарастыруға байлаысты арнайы "агрегат" термині туралы еске алу толық орынды, ол өзара әрекеттесетін құрамды бөліктерден немесе ішкі жүйеде тұратын техникалық жүйені белгілеу үшін қызмет етеді. Бұл аналогия кездейсоқ емес және қарастырылатын қатынас мәнін анағұрлым көрнекті түсіну үшін қызмет ете алады.

Осындай аспектіде қарастырылатын жүйенің құрамды бөліктерге бөлінуі оның компоненттерінің кейбір иерархиясы болып табылады, алайда берілген иеррахия жалпылау қатынасы тудыратын иерархиядан принципті түрде ерекшеленетіні айқын. Айырмасы, жүйе бөліктері оның қөасиеттері мен тәртібін мүлдем мұра етуге мідетті емес екенімен шектеледі, себебі толық өз бетіндік маңыздар болып табылады. Сонымен қатар, тұтас бөлігінің өзіің жеке атрибуттары мен операциялары болады, олар тұтас атрибуттар мен операциялардан айтарлықтай ерекшеленеді.

Агрегация қатынасының мысалы ретінде "бөлік-тұтас" типті өзара байланысты қарастырамыз, ол "Жүк автомобилі" және "Қозғалтқыш", "Шасси", "Кабина", "Шанақ" сияқты компоненттер маңызы арасында орын алады. Берілігне тақырыптық аймақ терминологиясыныңдәл сәйкестігіне үміттенбестен, жүк автомобилі қозғалтқыштан, шассиден, кабинадан және шанақтан тұратынын түсіну қиын емес. Нақ осы "Жүк автомобилі" класы және "Қозғалтқыш", "Шасси", "Кабина", "Шанақ" кластары арасындағы қатынасагрегация қатынасын сипаттайды.

Графиктік түрде агрегация қатынасы тұтас сызықпен бейнеленеді, оың шеттерінің бірі іші боялмаған ромб болып табылады. Бұл ромб "тұтас" болып табылатын кластардың бірін көрсетеді. Қалған кластар оның "бөліктері" болып табылады (4.8-сурет).

4.8-сурет - UML тілінде агрегация қатынасының гарфиктік бейнелеуі

Агрегация қатынасының тағы бір мысалы ретінде оқырмандардың әрқайсысына белгілі дербес компьютерді құрамды бөліктерге бөлу қызмет етеді: жүйелік блок, мноитор, пернетақта және тышқан. UML тілінің белгісін пайдаланып, ДК компоненттік құрамын кластардың сәйкес диаграммасы түрінде беруге болады (4.9-сурет), ол берілген жағдайда агрегация қатынасын иллюстрациялайды.

4.9-сурет- ДК мысалында агрегация қатынастарының иллюстрациясы үшін кластар диаграммасы.

Композициялар қатынасы

Композициялар қатынасы, бұрын еске салынғандай, агрегацияның қатынасының жеке жағдайы болып табылады. Бұл қатынас "бөлік-тұтас" қатынасының арнайы формасын бөлу үшін қызмет етеді, сол кезде бөлік құраушылар кейбір мағынада тұтастың ішінде болады. олардың арасында өзара байланыс ерекшелігі, бөліктер тұтастан бөлініп қатыса алмайтынымен, яғни тұтастың жойылумен қатар оның барлық құрамды бөліктері де жойылатынымен шектеледі.

Осы қатынастың мүмкіндігінше ең үздік емес, бірақ бәріне түсінікті мысалы биологиядағы тірі клетка болып табылады. Басқа мысал — бағдарлама интерфейсінің терезесі, ол тақырып жолынан, өлшемдерді басқару батырмаларынан, бұралу жолақтарынан, басты менюден, жұмыс аймағынан және күй жолынан тұруы мүмкін. Осындай терезе , класс болып табылатыны, ал оның компоненттері кластар болып та, сондай-ақ терезе атрибуттары немесе қасиеттері де болып табылатынын түсіну қиын емес. Соңғы жағдай композиция қатынасы үшін анағұрлым тән, себебі берілген қатынасты берудің түрлі тәсілдерін бейнелейді.

Композиция қатынасы графиктік түрде тұтас сызықпен бейнеленеді, оның бір шеті іші боялған ромб болып табылады. Бұл ромб класс-композиция немесе "тұтас" болып табылатын кластардың бірін көрсетеді. Қалған кластар оның «бөліктері» болып табылады (4.10-сурет).

4.10-сурет - UML тілінде композиция қатынасын графиктік бейнелеу

Композициялар мен агрегация қатынастары үшін қосымша белгілеулер ретінде ассоциация қатынасы үшін қолданылатын қосымша белгілер пайдаланылуы мүмкін. Атап айтқанда, ассоциация класының еселігін және берілген ассциация атауын көрсету, олар міндетті болып табылмайды. Жоғарыда сипатталған "Бағдарлама терезесі" класы мысалы қатысты кластар диаграммасында келесі түр болуы мүмкін (4.11-сурет).

4.11-сурет – Бағдарлама терезесі класыың мысалында композиция қатынасының иллюстрациясы үшін кластар диаграммасы

Берілген мысал, осы мысалды сипаттау кезінде айқы түрде көрсетілмеген әзірленетін компьютерлік бағдарламаның басқа ерекшеліктерін де иллююстрациялай алады. Сонымен, жеке алғанда 1 еселігін "Жұмыс аймағы" класымен қатар көрсету бір құжатты қосымшаларға тән.

Жалпылау қатынасы

Жалпылау қатынасы анағұрлым жалпы элемент (ата немесе баба)және анағұрлым жеке немесе арнайы элемент (ешілес немесе ұрпақ) арасында кәдімгі таксонометрлік қатынас болып табылады. Берілген қатынас пайдалану пакеттері, кластары, нұсқалары және UML тілінің басқа элементтері арасында өзара байлаыстарды беру үшін пайдаланылады.

Кластар диаграммасына байланысты берілген қатынас кластардың иерархиялық құрылымын және олардың қасиеттері мен тәртібін мұра етуді сипаттайды. Осы кезде, класс-ұрпақтың класс-атаның барлық қасиеттері мен тәртібі болады, сонымен қатар өзінің жеке қасиеттері мен тәртібі болады, олар класс-батада болматыны болжанады. Жалпылау қатынасы диаграммаларында шеттерінің бірінде үш бұрышты стрелкасы болатын тұтас сызықпен белгіленеді (4.12-сурет). Стрелка анағұрлым жалпы класты (класс ата немесе суперкласс), ал оның болмауы — анағұрлым арнайы класс (класс-ата немесе ішкі класс).

4.12-сурет - UML тілінде жалпылдау қатынасының графиктік бейнелеу

Ережеге сай, диаграммада бір жалпылай қатынас үшін бірнеше сызық көрсетілуі мүмкін, бұл оның таксонометрлік сипаты анықтайды. Бұл жағдайда анағұрлым жалпы класс бір Жалпылау қатынасымен ішкі кластарға бөлінеді. Мысалы, жазықтықтықта Тік бұрыш, шеңбер, Эллипс және басқалары сияқты нақты геометриялық фигураларға сәйкес келетін ішкі кластар үшін суперкласс ретінде қатыса алады. Берілген факт келесі түрдегі кластар джиаграммасы түрінде графиктік түрде берілуі мүмкін (4.13-сурет).

4.13-сурет – Кластарды жалпылау қатынасын графиктік бейнелеу мысалы

Кластар диаграммасында белгілерді жеңілдету мақсатында сол бір жалпылау қатынасын белгілейтін сызықтар жиынтығы бір сызыққа біріктірілген болуы мүмкін. Бұл жағдайда берілген жеке сызықтар олармен жалпы қиылысу нүктесі болатын жалғыз стрелкаға түйісетін болып бейнеленеді (4.14-сурет).

4.14-сурет – Жеке сызықтарды біріктіру жағдайы үшін кластарды жалпылау қатынасын графиктік бейнелеу нұсқалары

Бұл белгі түрі бойынша 2-тарауда қарастырылған арнайы түрдегі графқа, атап айтқанда иерархиялық ағашқа сәйкес келеді. Бұл жағдайда класс-ата осы ағаштың түбірі, ал класс-ұрпақтар оырң жапырақтары болып табылады. Айырмасы кластар диаграммасында, диаграммада берілген кластарды белгілеуге енгізілмеген басқа класс-ұрпақтардың болуының потенциал мүмкіндіктерін көрсетумүмкіндігімен шектеледі (тік бұрыштиың орнына көп нүкте).

Жалпылау стрелкасымен қатар осы қатынастың кейбір қосымша қасиеттерін көрсететін мәтін жолы орналаса алады. Берілген мәтін класс-ұрпақтарға келетін барлық жалпылау сызықтарына жатады. Басқаша айтқанда, белгіленген қасиет берілген қатынастың барлық ішкі кластарына жатады. Осы кезде мәтінді шектеу ретінде қарастырған жөн, сонда ол фигуралы жақшаларға жазылады.

Шектеу ретінде UML тілінде келесі түйінді сөз пайдаланылуы мүмкін:

 {complete} — берілген жалпылау қатынасында барлық класс-ұрпақтар спецификацияланғанын білдіреді және берілген класс-атада басқа класс-ұрпақ болуы мүмкін емес. Мысал —_Банк клиенті класы екі класс үшін клиент болып табылады: жеке тұлға мен компания және басқа класс-ұрпақтар онда болмайды. Сәйкес кластар диаграммасында бұны, жалпылау сызығының қатарына берілген жол-шектеуді жазып, айқын көрсетуге болады;

 {disjoint} — класс-ұрпақтар бір мезгілде екі емесе одан көп кластың даналары болып табылатын объектілерге ие болмайтынын білдіреді. Жоғарыда келтірілген мысалда бұл шарт солай орындалады, себебі ешбір нақты физикалық тұлға бір мезгілде нақты компания бола алмайтыны болжанады. Бұл жағдайда жалпылау сызығымен қатар берілген жол-шектеуді жазуға болады;

 {incomplete} — біріншіге қарама-қайшы жағдайды білдіреді. Атап айтқанда, диаграммада барлық класс-ұрпақтар көрсетілмеген деп болжанады. Кейінгіде салынған диаграмманы өзгертпестен олардың тізімін толықтыруға болады. Мысалы —"Автомобиль" класының диаграммасы үшін автомобильдердің барлық модельдерін таңдамастан көрсету сәйкес каталогты жасаумен өлшемдес. Екінші жағынан, нақты модельдегі автомобильдерді сату жүйесін әзірлеу сияқты жеке мәселе үшін бұның қажеттігі жоқ. бірақ класс-ұрпақтар құрылымының толық еместігін көрсету дегенмен керек;

 {overlapping} — класс-ұрпақтарыдң жеке даналары бір мезгілде бірнеше кластарға жатуы мүмкін. Мысалы —"Көп бұрыш" класы "Тік бұрыш" және "Ромб" класы үшін класс-ұрпақ болып табылады. Алайда жеке "Квадрат" класы болады, оның даналары бір мезгілде алғашқы екі класс объектілері болып табылады. осындай жағдайды берілген шектеу-жолы көмегімен көрсету толық табиғи.

Шектеу-жолды пайдалану мүмкіндігін ескергенде кластар диаграммасы (4.14-сурет) көп нүктесіз және ақпаратты жоғалтпастан бейнеленуі мүмкін (4.15-сурет).

4.15-сурет – Шектеу-жолды пайдалану арқылы кластардың жалпылау қатынастарын графиктік белгілеу нұсқасы

Жалпылау қатынасын пайдалану ерекшеліктеріне иллюстрация жасау үшін бұрын қарастырылған кластарды бейнелеу мысалдарының бірін UML тілінің графиктік нотациясына түрлендіреміз. Осындай мысал ретінде "Автомобиль" абстракты класы үшін кластардың енгізілгендік иерархиясын қарастырамыз (1,2, 2.7-суретті қараңыз). Осы суреттерде жеке кластар арасында қатынас UML тілінде арнайы графиктік бейнелеуі болатын нақ жалпылау қатынасы екенін байқау қиын емес. Осы графиктік нотацияны ескергенде "Автомобиль" класы иерархиясын беру үшін семантикалық желікөрінісі (2.7-суретті қараңыз) кластардың келесі диаграммасы түрінде берілген (4.16-сурет).

Берілге мысалда жоғарғы деңгейдегі барлық кластар абстракты болыр табылатынын, яғни өздерінің даналарымен берілуі мүмкін еместігін байқаймыз. Нақ сондықтан олардың атаулары курсивпен жаызлған. Олардан айырмасы төменгі деңгей кластары нақты болып табылады, себебі өздерінің даналарымен берілуі мүмкін, олар ретінде бірегей зауыттық номері бар сәйкес модельде дайындалған автомаобильдер қатыса алады.

4.13-сурет - "Автомобиль" кластарының иерархиясын б еру үшін жалпылау қатынасымен кластар диаграммасының көрінісі

Қарастырылған материалды бекіту үшін жаттығулар ретінде кластар диаграммасын немесе UML тілінің графиктік нотациясын пайдалану арқылы MFC (Microsoft) жәнеи VCL (Borland/Inprise) стандартты кластар кітапханалары үшін олардың көріністерін салуға тырысуға болады. Жақын болашақта бағдарламалаудың сәйкес орталары бойынша анықтамалық нұсқаулықтарда нақ осындай кластар диаграммасы, ал мүмкін, кейбір басқалары болады.

Интерфейстер

Интерфейстер пайдалану нұсқалары диаграммасының элементтері болып табылады және 4-тарауда қарастырылды. Алайда кластар диаграммасын салған кезде жеке интерфейстер нақтылануы мүмкін және бұл жағдайда оларды бейнелеу үшін арнайы графиктік символ – түйінді сөзі немесе "interface" стереотипі бар класс тік бұрышы пайдаланылады (4.17-сурет). Осы кезде тік бұрышта атрибуттар секциясы болмайды, тек операция секциясы ғана көрсетіледі.

4.17-сурет – Кластар диаграммасында интерфейсті графиктік бейнелеу мысалы

## Rational Rose ортасында кластар диаграммасын әзірлеу

Кластар диаграммасы модельдің негізгі логикалық берілуі болып табылады және объектілік-бағдарланған бағдарламалық жүйенің ішкі құрылысы туралы ең толық ақпараты болады. Диаграмма терезесінде кластар диаграммасын сондай-ақ бірнеше тәсілдермен белсендіруге болады:

 Бұл диаграмма диаграмма терезесінде келісім бойынша жаңа жобаны жасағаннан кейін пайда болады;

 Инструменттердің стандартты панелінде кластар диаграммасы бейнеленген батырманы шерту;

 Раскрыть логическое представление в браузере (Logical View) браузерінде логикалық берілуді ашу және Main (Басты). Пиктограммасын екі рет шерту;

 Browse->CIass Diagram (Браузер-> Кластар диаграммасы) меню пункті арқылы.

Кластар диаграммасын белсендіргеннен кейін арнайы иструменттер панелі 1.5-суретте көрсетілген түрге ие болады. Элементтерді қосу және алып тастау ұқсас жүреді, алайда әр класта оның атрибуттары мен операциялары туралы ақпарат болатын кең спецификация болады. Осы кезде атрибуттар мен операциялардың көрінуі арнайы пиктограммалар немесе безендіргіштер түрінде бейнеленеді (4.18-сурет).

Көріну үші пайдаланылатын пиктограммалар сәйкес атрибут немесе операция атауы алдында бейнеленеді және келесі мағынасы болады:

 Жалпы, ашық (Public) — келісім бойынша бекітіледі. Мысал — 1 класта 1 атрибут. атрибут модельдің барлық қалған кластарына көрінерлік. Кез келген класты қарап шығуға және осы атрибуттың мәнін өзгертуге болады. UML тілінің нотациясында осындай атрибутқа "+" белгісі сәйкес келеді;

 Қорғалған (Protected). Мысал —1 класта 2 атрибут. Бұл жағдайда атрибутты қарап шығуға және 1 кластың өзінен немесе оның ұрпақтарынан өзгертуге болады. UML тілі нотациясында осындай атрибутқа "#" белгісі сәйкес келеді;

 Жабық (Private). Мысал —1 класта 3 атрибут. Бұл жағдайда атрибут ешқандай басқа класқа көрінбейді, сонымен қатар өзі анықталған. UML тілінің нотациясында осындай атрибутқа "-" белгісі сәйкес келеді;

 Пакеттік (Implemented). Мысал —1 класта 4 атрибут. Осындай атрибут тек өзінің пакеті шектерінде ғана жалпы болып табылады. UML тілінің нотациясында осындай атрибут үшін пиктограмма болмайды.

Ұқсас пиктограммалар класс операциясының көрінерлігін белгілеу үшін қолданылады. Сонымен 1 кластық операция_1() қорғалған болып табылады және сондықтан оған қол жеткізу 1 кластың өзінен немесе оның ұрпақтарынан рұқсат етіледі. Осы кластың операция_2() жабық болып табылады және ол ешқандай басқа класқа қол жетерлік емес.

Бөліп қаралатын кластың жеке атрибуттары үшін деректер типін және атрибуттың бастапқы мәндерін беруге болады, сондай-ақ Open Specification (Спецификацияы ашу) контекстік меню пункті арқылы стереотипті белгілеуге болады. Осы кезде ашылатын тізімнен сәйкес мәндерді таңдау ұсынылады. Таңдап алынған кластың жеке операциялары үшін қайтарылатын нәтиже (қайтарылатын класс) типін беруге, операцияға аргументтер қосуға, ол үшін стереотип белгілеуге, сонымен қатар хаттаманы және өлшемді анықтауға, ерекше жағдайлар және қосымша қасиеттердің тұтас қатарын беруге болады. Операцияның осы қасиеттері Open Specification (Спецификацияны ашу) контекстік меню пункті және Operations (Операциялар) қосымша арқылы қолжетімді. Екі рет шерткен кезде таңдап алынған операцияда бұрын аталған жеке қасиеттерге сәйкес келетін қосымшалары бар қосымша терезе ашылады.

4.18-сурет - Rational Rose ортасында кластар диаграммасын графиктік бейнелеу мысалы

Ассоциация, тәуелділіктер және жалпылау типті кластар арасында қатынастар (байланыстар) кластарының диаграммасына қосу келесі түрде орындалады. Арнайы инструменттер панелінде байланыстың талап етілген типі сәйкес бейнелеумен батырма бойынша шерту арқылы таңдалады. Егер байланыс бағытты болса, онда кластар диаграммасында байланыстың бірінші элементін бөліп алу керек (шығу көзі, біріншіден байланыс шығады) және тышқанның басулы сол батырмасын босатпастан оның нұсқағышын байланыстың екінші элементіне (байланыс бағытталған қабылдағыш) ығыстыру керек. Екінші элементке жылжытқаннан кейін тышқанның батырмасын босату керек, ал кластар диаграммасына жаңа байланыс қосылады.

Егер де байланыс бағытты болмаса (екі бағытты), онда осы байланыс үшін кластар таңдау тәртібі еркін. Байланыстар үшін байланыстар соңының әрқайсысының еселігін анықтау, атау мен стереотип беру, шектеулер мен рольді, сонымен қатар кейбір басқа қасиеттерді пайдалану керек. Байланыстар спецификациясына диаграммада байланысты бөліп алып, контекстік менюді тышқанның оң батырмасын шерту арқылы шақырғаннан кейін қол жеткізуге болады.

Кластар диаграммасын салу бойынша ұсыныстар

Кластар диаграммасын салу процесі күрделі жүйелер ООАП-да орталық орын алады. Кластарды дұрыс таңдауға және олардың арасында өзара байланыстар орнатуға көбінесе жобалау процесінің табысы ғана емес, сондай-ақ бағдарламаны орындау өнімділігі де тәуелді. ООП практикасы көрсеткендей, әрбір программист өзінің жұмысында сол немесе басқа дәрежеде жаңа жобалар дайындау кезінде жинақтаған жеке тәжірибесін пайдалануға тырысады. Бағдарламалық кодтың тексерілген көріністері ғана емес, сондай-ақ тұтастай жеке компоненттерді (компоненттер кітапханасы) де пайдалану мүмкіндігі болу үшін, бұл жаңа мәселені бұрын шешілгенге келтіру ниетімен байланысты.

Осындай стереотиптік тәсіл жобаны жүзеге асыру мерзімдерін айтарлықтай қысқартуға мүмкіндік береді, алайда бұл тек, жаңа жоба концептуалды және технологиялық түрде алдыңғылардан онша ерекшеленбеген жағдайда ғана қабылдарлық. Қарсы жағдайда жоба мерзімдерін қысқартудың төлемі ескірген технологиялық базада оны жүзеге асыру болуы мүмкін. Тақырыптық аймақты жеке объектілік құрылымдауға келсек, мұнда ООП-да жинақталған ұсыныстарды қолдау орындау.

При определении кластарды, атрибуттар мен операцияларды және олардың атаулары мен типтерін беруді анықтау кезінде отандық әзірлеушілер алдында әрқашан еріксіз сұрақ туады: табиғи ретінде тілдердің қайсысын, орыс немесе ағылшынды пайдалану керек? Бір жағынан модельді сипаттау үшін ана тілін пайдалану оны берудің анағұрлым табиғи тәсілі болып табылады және ең үлкен дәрежеде жүйе моделінің коммуникативтік функциясын бейнелейді. Екінші жағынан модельді әзірлеу сәйкес жүйені әзірлеу кезеңдерінің бірі ғана болып табылады, ал оны жүзеге асыру үшін инструменттік құралдарды қолдану басым көпшілік жағдайда ағылшын тілді терминдерді пайдалануды талап етеді. Нақ сондықтан өзіндік бір мәнді еместік пайда болады, онымен ағылшын тілді аудитория мүлдем таныс емес.

Жоғарыда қойылған сұраққа жауап бере отырып, келесі ұсыныстарды ұстану анағұрлым мақсатты екенін атап өткен жөн. Жобаланатын жүйенің анағұрлым жалпы концептуалды моделі болып табылатын пайдалану нұсқалары диаграммасын салған кезде орыс тілді терминдерді қолдану тақырыптық аймақ құрылымын сипаттау тұрғысынан ақталған ғана емес, сондай-ақ тапсырушы мен пайдаланушының коммуникативтік өзара әрекеті тұрғысынан да тиімді болып табылады. Диаграммалардың қалған типтерін салу кезінде қонымды компромисті ұстанған жөн.

Жеке алғанда, диаграммаларды әзірлеудің бастапқы кезеңдерінде орыс тілді терминдерді пайдалану мақсаттылығы толық айқын және ақталған. Алайда бағдарламалық жүйе түрінде жүзеге асыру және оны одан әрі жұмыс үшін программистерге беру үшін графиктік модельдің дайындық шамасына қарай акцент ағылшын тілді терминдерді пайдалану жағына қарай ығысуы мүмкін, олар сол немесе басқа дәрежеде бағдарламалау тілінің ерекшеліктерін бейнелейді, ондаберілген модельді жүзеге асыру болжанады.

Сонымен қатар ООАП-ны автоматтандыру үшін CASE-инструментарийлерін пайдалану модельдер спецификациясы тіліне өзінің жеке талаптарын қояды. Нақ сол себепті әдебиетте мысалдардың көпшілігі ағылшын тілді түсінікпен беріледі, ал оларды орыс тіліне аударған кезде тұжырымдамалар дәлдігі ғана емес, сондай-ақ сәйкес ұғымдар семантикасы да жоғалуы мүмкін.

Кластар диаграммасын әзірлегеннен кейін ООАП процесі екі бағытта жалғасуы мүмкін. Бір жағынан, егер жүйе тәртібі тривиалды болса, онда кооперациялар мен компоненттер диаграммаларын әзірлеуге кірісуге болады. Алайда күрделі динамикалық жүйелер үшін тәртіп олардың қызмет етуде маңызды аспектісін береді. Тәртіпті нақтылау күй, реттілік және қызмет ету диаграммаларын әзірлеу кезінде бірізді жүзеге асырылады.

Сур. 7.8. «Снятие наличных по кредитной карточке» қолдану варианта процессін сипаттайтын кооперациялар диаграммасының толық нұсқасы

1. Бақылау сұрақтары:

2. Объектіге бағытталған программалау?

3. Объект, қасиеттер, оқиғаларға не жатады?

4. ОБП негізгі принциптері? сипаттамасы

5. Case құралдарының жіктелуі

6. Модель дегеніміз не?

7. Rational Rose құралы интерфейіс элементтері, сипаттамасы

8. Браузер қандай көрсетілімдерді қолдайды

9. Актер, Прецедент-тің сипаттамасы

10. RationalRose –тіңтағайындалуы

11. Байланыс түрлері, сипаттамасы

12. Класстар арасындағы қатынас түрлері, сипаттамасы

13. Атрибуттардың көріну кванторлар түрлері

14. Атрибут, операция ұғымдары

15. Логикалық көрсетілімде қандай диаграммалар құрастырылуы мүмкін?

16. Класстар диаграммасы үшін қандай нотациялар қолданылады?

17. Нотация дегеніміз не?

18. Кооперациялар диаграммасының тағайындалуы, іске қосу тәсілдері

19. Кооперация диаграммасына объектіні қосу және оның қасиеттерін редактілеу. Қасиеттер түрлері

20. Байланыстарды қосу және қасиеттерді редактілеу. Қасиеттер түрлері

21. Хабарламаны қосу және оның қасиеттерін редактілеу. Қасиеттер түрлері