Кіріспе

Статикалық құрылым диаграммасының түрі

Бағдарламалық жасақтауда, Бірыңғай модельдеу тіліндегі (UML) сынып диаграммасы – жүйенің кластарын, олардың атрибуттарын, операцияларын (немесе әдістерін) және объектілер арасындағы қатынастарды көрсете отырып, жүйенің құрылымын сипаттайтын статикалық құрылым диаграммасының бір түрі. Сынып диаграммасы – объектіге бағытталған модельдеудің негізгі құрылыс бөлігі. Ол қосымшаның құрылымын жалпы тұжырымдамалық түрде модельдеу үшін, сондай-ақ модельдерді бағдарламалау кодына аудару үшін егжей-тегжейлі модельдеу үшін қолданылады. Сынып диаграммаларын деректерді модельдеу үшін де пайдалануға болады. Сынып диаграммасындағы кластар қосымшадағы негізгі элементтерді, өзара әрекеттесулерді және бағдарламаланатын кластарды көрсетеді. Диаграммада сыныптар үш бөлімнен тұратын тіктөртбұрыштармен бейнеленеді: Жоғарғы бөлімде сыныптың атауы болады. Ол қалың әріппен және ортасынан басылады, ал бірінші әрпі үлкен болады. Ортаңғы бөлімде сыныптың атрибуттары болады. Олар сол жаққа тізіліп, бірінші әрпі кіші болады. Төменгі бөлімде сыныптың орындай алатын операциялары болады. Олар да сол жаққа тізіліп, бірінші әрпі кіші болады. Жүйені жобалау кезінде бірнеше сыныптар анықталады және олардың арасындағы статикалық қатынастарды анықтауға көмектесетін сынып диаграммасында топтастырылады. Егжей-тегжейлі модельдеуде тұжырымдамалық дизайн кластары көбінесе кіші сыныптарға бөлінеді. Жүйелердің мінез-құлқын одан әрі сипаттау үшін бұл сынып диаграммаларын жай-күй диаграммасымен немесе UML жай-күй машинасымен толықтыруға болады.

Мүшелер

UML кластың мүшелерін, мысалы атрибуттар мен әдістерді, сондай-ақ олар туралы қосымша ақпаратты, сияқты конструкторларды көрсету механизмдерін қамтамасыз етеді.

Қарым-қатынастар

Қатынас – сыныптар мен объектілер диаграммаларында кездесетін логикалық байланыстардың нақты түрлерін қамтитын жалпы ұғым. UML келесі қатынастарды анықтайды:

Тәуелділік

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

Қауымдастық

Қауымдастық құрылымдық байланыстар отбасын білдіреді. Бинарлық қауымдастық екі сынып арасындағы қатты сызық түрінде бейнеленеді. Рефлексивті қауымдастық – бұл сыныптың өзімен арасындағы екілік қауымдастық. Екіден астам сыныптар арасындағы қауымдастық, әр байланысты сыныпқа қатты сызықпен жалғанған алмаз түрінде бейнеленеді. Үш сынып арасындағы қауымдастық – үштік қауымдастық. Көптеген сыныптар арасындағы қауымдастық n-арлы қауымдастық деп аталады. Қауымдастыққа атау берілуі мүмкін, ал қауымдастықтың соңғы нүктелері рөл атауларымен, агрегация көрсеткіштерімен, көптікпен, көрінумен, бағыттылығымен және басқа да қасиеттермен безендірілуі мүмкін. Мысалы, нүктелік нотациясы бір сыныптың қауымдастық соңы екінші сыныпқа тиесілі екенін кішкентай нүктемен көрсетуге мүмкіндік береді. Қауымдастықтың үш түрі бар: қарапайым қауымдастық, ортақ агрегация, құрастырма агрегация (композиция). Қауымдастық бір немесе бірнеше бағытта бағыттала алады. Бағыттылықтың нақты көрсетілуі міндетті емес. Сыныптың бір жағындағы ашық жебе, осы сыныпқа қарсы жақтан орындалу кезінде тиімді қол жеткізуге болатынын көрсетеді. Бір бағытты бағыттылық қауымдастық сызығында қол жеткізе алмайтын сынып жағында кішкентай крестпен көрсетіледі. Мысалы, ұшу сыныбы ұшақ сыныбымен екі бағытта қауымдастырылған.

Жинақтау

Агрегация – «құрамында бар» ассоциациялық қатынастың бір түрі; агрегация ассоциациядан гөрі нақтырақ. Бұл – қатынастың бір бөлігін немесе толық бөлігін көрсететін ассоциация. Мысалда көрсетілгендей, профессордың оқытатын "сыныбы" бар. Ассоциацияның бір түрі ретінде, агрегацияға атау берілуі мүмкін және ассоциацияға тән безендірулерге ие болуы мүмкін. Дегенмен, агрегацияда екі сыныптан артық қатыса алмайды; ол екілік ассоциация болуы керек. Сонымен қатар, іске асыру кезінде агрегация мен ассоциация арасында айқын айырмашылық жоқ, сондықтан диаграммада агрегациялық қатынастар көрсетілмеуі де мүмкін. Агрегация, егер сынып басқа сыныптардың жиынтығы немесе контейнері болғанда пайда болады, бірақ контейнердегі сыныптар контейнерге тікелей өмірлік циклге тәуелді болмайды. Контейнер жойылған кезде де, оның ішіндегі мазмұн сақталады. UML-де, бұл контейнердегі сыныпқа жалғанған бір сызықпен көрсетілген қуыс ромб пішінінде графикалық түрде бейнеленеді. Агрегат – семантикалық тұрғыдан алғанда, көптеген операцияларда бірлік ретінде қарастырылатын, бірақ физикалық тұрғыдан бірнеше кішірек объектілерден құралған кеңейтілген объект.

Құрамы

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

Тәуелділік

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

Көптік

Бұл қатынас екі байланысты кластың (кем дегенде) бірі екіншісіне сілтеме жасайтынын көрсетеді. Бұл қарым-қатынас әдетте "А-ның Б-і бар" түрінде сипатталады (ана мысықтың балалары болады, балалардың ана мысығы болады). Қауымдастықтың UML бейнелеуі – екі байланысты класты қосатын сызық. Сызықтың әр шетінде қосымша белгілер болуы мүмкін. Мысалы, жебе бағытын қолданып, жебе ұшы жебе табанынан көрінетінін көрсетуге болады. Меншік құқығын дөңгелек белгісімен, сол шеттегі элементтердің рөлін рөл атауымен, ал осы тұлғаның саны (басқа шеттен қарағанда қатынасқа қатысатын нысандардың санының диапазоны) көрсетуге болады. 0 – Ешбір мысал (сирек) 0 1 – Ешбір мысал немесе бір мысал 1 – Дәл бір мысал 1 1 – Дәл бір мысал 0 * – Нөл немесе одан көп мысал * – Нөл немесе одан көп мысал 1 * – Бір немесе одан көп мысал.

Ұйымдар

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