Сынып диаграммасы - Class diagram - Wikipedia

UML 2.5 диаграммаларының иерархиясы, класс диаграммасы түрінде көрсетілген. Жеке сыныптар тек бір бөліммен ұсынылған, бірақ олар көбіне үш бөлімнен тұрады.

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

Сынып диаграммасы негізгі құрылыс материалы болып табылады объектіге бағытталған модельдеу. Ол жалпыға бірдей қолданылады тұжырымдамалық модельдеу қосымшаның құрылымын және модельдерді толығымен модельдеу үшін аудару бағдарламалау коды. Сынып диаграммалары үшін де қолданыла алады деректерді модельдеу.[1] Сынып диаграммасындағы сыныптар негізгі элементтерді де, қолданбадағы өзара әрекеттерді де, бағдарламаланатын сыныптарды да білдіреді.

Диаграммада сыныптар үш бөлімнен тұратын қораптармен ұсынылған:

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

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

Жүйелердің мінез-құлқын одан әрі сипаттау үшін, осы класс диаграммаларын a-мен толықтыруға болады күй диаграммасы немесе UML күй машинасы.[2]

Мүшелер

UML атрибуттар мен әдістер сияқты сынып мүшелерін бейнелейтін тетіктерді және олар туралы қосымша ақпаратты конструкторлар сияқты ұсынады.

Көріну

Сынып мүшесінің көрінуін көрсету үшін (яғни кез-келген атрибут немесе әдіс), бұл белгілер мүшенің атына дейін қойылуы керек:[3]

+Қоғамдық
-Жеке
#Қорғалған
~Пакет

A алынған мүлік мәні (немесе мәндері) басқа ақпараттан өндірілетін немесе есептелетін, мысалы, басқа қасиеттердің мәндерін қолдану арқылы сипатталады.

Туынды қасиет оның атауының алдында '' 'көлбеу сызықпен көрсетілген. [4]

Қолдану аясы

UML екі түрін көрсетеді ауқымы мүшелер үшін: данасы және жіктеуіш, ал соңғысы ұсынылған асты сызылған атаулар.[5]

  • Жіктеуіш мүшелері көптеген бағдарламалау тілдерінде әдетте «статикалық» деп танылады. Ауқымы - бұл сыныптың өзі.
    • Атрибут мәндері барлық даналарға тең
    • Әдісті шақыру жіктеуіштің күйіне әсер етпейді
  • Instance мүшелері ауқымы белгілі бір данадан тұрады.
    • Төлсипат мәндері даналар арасында әр түрлі болуы мүмкін
    • Әдісті шақыру дананың күйіне әсер етуі мүмкін (мысалы, дананың атрибуттарын өзгерту)

Мүше үшін жіктеуіштің ауқымын көрсету үшін оның атының астын сызу керек. Әйтпесе, дананың ауқымы әдепкі бойынша қабылданады.

Қатынастар

UML қатынастарының белгісі

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

Деңгейлік қатынастар

Тәуелділік

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

Қауымдастық

Екі сынып арасындағы ассоциацияның класс диаграммасы

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

Жиынтық

Екі сынып арасындағы біріктіруді көрсететін сынып диаграммасы. Мұнда профессордың сабақ беретін «сыныбы» бар.

Жиынтық «бар» ассоциациялық қатынастың нұсқасы; жинақтау ассоциацияға қарағанда нақтырақ. Бұл қатынастың тұтас немесе бөлігін білдіретін ассоциация. Суретте көрсетілгендей, профессордың 'сабақ беретін' сыныбы бар. Ассоциацияның түрі ретінде біріктіруді атауға болады және ассоциация жасай алатындай әсемдіктерге ие болады. Алайда, біріктіру екі класстан аспауы мүмкін; бұл екілік бірлестік болуы керек. Сонымен қатар, іске асыру кезінде жиынтықтар мен ассоциациялар арасындағы айырмашылық әрең болады және диаграмма жиынтық қатынастарды мүлдем өткізіп жіберуі мүмкін.[7]

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

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

Мысалы: Кітапхана және студенттер. Мұнда студент кітапханасыз өмір сүре алады, студент пен кітапхана арасындағы байланыс жинақтау болып табылады.

Композиция

Екі сынып диаграммасы. Жоғарыдағы диаграммада екі кластың құрамы көрсетілген: автомобильде дәл бір карбюратор бар, ал карбюратор - бір автомобильдің бөлігі. Карбюраторлар белгілі бір машинадан бөлек, бөлек бөліктер ретінде бола алмайды. Төмендегі диаграммада екі кластың бірігуі көрсетілген: Тоғанның нөлдік немесе одан көп үйрегі бар, ал Үйректің көп дегенде бір тоғаны болады (бір уақытта). Үйрек тоғаннан бөлек болуы мүмкін, мысалы. ол көлдің жанында өмір сүре алады. Тоғанды ​​бұзған кезде біз әдетте барлық үйректерді өлтірмейміз.

UML композиция байланысының көрінісі композицияны а түрінде көрсетеді толтырылған құрамындағы класты (сызықтарды) құрамына кіретін сызықтардың соңында орналасқан алмаз пішіні.

Композиция мен біріктірудің айырмашылықтары

Композициялық қатынас
1. Шынайы әлемдегі қатынастарды ұсынуға тырысқанда, мысалы. қозғалтқыш - бұл автомобильдің бөлігі.
2. Контейнер жойылған кезде оның ішіндегісі де жойылады, мысалы. университет және оның бөлімдері.
Жиынтық қатынас
1. Бағдарламалық жасақтама немесе мәліметтер қорымен байланысты ұсынғанда, мысалы. ENG01 автомобиль қозғалтқышы CM01 автомобильінің бөлігі болып табылады, өйткені ENG01 қозғалтқышы басқа автомобиль моделінің бөлігі де болуы мүмкін.[8]
2. Контейнер жойылған кезде, оның мазмұны әдетте жойылмайды, мысалы. профессордың студенттері бар; профессор қайтыс болған кезде студенттер олармен бірге өлмейді.

Осылайша, жиынтық қатынас көбінесе оны «физикалық» оқшаулауынан ажырату үшін «каталог» оқшаулау болып табылады.

Сынып деңгейіндегі қатынастар

Жалпылау / мұрагерлік

Супер класс арасындағы жалпылауды көрсететін класс диаграммасы Адам және екі кіші сынып Студент және Профессор

Бұл екі сабақтың біреуі ( кіші сынып) екіншісінің мамандандырылған түрі болып саналады ( супер тип) және суперкласс ішкі сыныпты Жалпылау болып саналады. Іс жүзінде бұл кіші түрдің кез-келген данасы суперкласстың данасы екенін білдіреді. Бұл форманы жалпылаудың үлгілі ағашы табылған биологиялық классификация: адамдар кіші сыныбы болып табылады симиан, бұл кіші сынып болып табылады сүтқоректілер, және тағы басқа. Бұл қарым-қатынасты «А - В» тіркесімен оңай түсінуге болады (адам - ​​сүтқоректілер, сүтқоректілер - жануарлар).

Жалпылаудың UML графикалық көрінісі қуыс болып табылады үшбұрыш сызықтың суперкласс ұшында (немесе сызықтар ағашында) оны бір немесе бірнеше кіші типтерге қосатын пішін.

Жалпылау қатынастары деп те аталады мұрагерлік немесе «Бұл» қарым-қатынас.

The суперкласс (базалық класс) жалпылау қатынастарындағы деп те аталады «ата-ана», суперкласс, негізгі сынып, немесе базалық тип.

The кіші түр мамандану қатынасы ретінде де белгілі «бала», кіші сынып, туынды сынып, алынған тип, мұрагерлік сынып, немесе мұрагерлік түрі.

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

А - В типі
Мысалы, «емен - ағаштың бір түрі», «автомобиль - көлік құралының түрі»

Жалпылау тек сынып диаграммаларында және басқаларында көрсетілуі мүмкін іс сызбаларын қолдану.

Іске асыру / іске асыру

UML модельдеуде іске асыру қатынасы дегеніміз екі модель элементтері арасындағы қатынас, онда бір модель элементі (клиент) басқа модель элементі (жеткізуші) көрсеткен мінез-құлықты жүзеге асырады (жүзеге асырады немесе орындайды).

Іске асырудың UML графикалық көрінісі - интерфейстің ұшындағы қуыс үшбұрыш пішіні үзік-үзік оны бір немесе бірнеше іске асырушылармен байланыстыратын сызық (немесе сызықтар ағашы). Қарапайым жебе басы пайдаланушылармен байланыстыратын үзік сызықтың интерфейс соңында қолданылады. Компоненттік диаграммаларда шар мен розетканың графикалық конвенциясы қолданылады (іске асырушылар допты немесе лолипопты ашады, ал пайдаланушылар ұяны көрсетеді). Шынайылықты тек сынып немесе компоненттік диаграммаларда көрсетуге болады, ал іске асыру дегеніміз - сыныптар, интерфейстер, клиент элементін жеткізуші элементімен байланыстыратын компоненттер мен пакеттер. Сыныптар / компоненттер мен интерфейстер арасындағы өзара байланысты сынып / компонент интерфейс ұсынатын әрекеттерді жүзеге асыратынын көрсетеді.

          іске асырудың символдық ------- ▻

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

«Автокөлік» сыныбы мен «Дөңгелек» сыныбы арасындағы тәуелділікті көрсететін класс диаграммасы («Көлік дөңгелекке тәуелді» деген одан да айқын мысал болар еді, өйткені автомобиль қазірдің өзінде агрегаттар (және жай емес қолданады) Доңғалақ)

Тәуелділік

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

Көптік

Бұл ассоциациялық қатынас (ең болмағанда) байланысты екі кластың біреуі екіншісіне сілтеме жасайтындығын көрсетеді. Бұл қарым-қатынас әдетте «А-да В» бар деп сипатталады (аналық мысықта котят, котятада мысық бар).

Қауымдастықтың UML көрінісі - бұл екі байланысты кластарды байланыстыратын сызық. Жолдың әр соңында міндетті емес жазба бар. Мысалы, көрсеткі ұшын көрсете отырып, ұштық ұштың жебенің құйрығынан көрінеді. Меншік құқығын допты орналастыру арқылы көрсете аламыз, сол элементтердің рөлі рөлге ат беру арқылы және көптік сол ұйымның даналары (екінші жақтан ассоциацияға қатысатын объектілер санының ауқымы).

0Дана жоқ (сирек)
0..1Даналар немесе бір даналар жоқ
1Дәл бір данасы
1..1Дәл бір данасы
0..*Нөл немесе одан көп даналар
*Нөл немесе одан көп даналар
1..*Бір немесе бірнеше даналар

Стереотиптерді талдау

EntityControlBoundary Pattern.jpg

Субъектілер

Субъекттер сыныптары жүйемен жұмыс жасайтын ұзақ өмір сүретін ақпаратты, кейде ақпаратпен байланысты мінез-құлықты модельдейді. Оларды мәліметтер базасының кестелері немесе басқа деректер қоймалары ретінде анықтауға болмайды.

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

Сондай-ақ қараңыз

Байланысты диаграммалар

Әдебиеттер тізімі

  1. ^ Ұшқындар, Джеффри. «UML-де мәліметтер базасын модельдеу». Алынған 8 қыркүйек 2011.
  2. ^ Скотт В.Амблер (2009) UML 2 сынып диаграммалары. Webdoc 2003-2009. 2 желтоқсан 2009 ж
  3. ^ UML анықтамалық картасы, 2.1.2 нұсқасы, Holub Associates, тамыз 2007 ж, алынды 12 наурыз 2011
  4. ^ «UML туынды сипаты - бұл басқа ақпараттан, мысалы, басқа қасиеттерді пайдалану арқылы өндірілетін немесе есептелетін сипат». www.uml-diagrams.org. Алынған 2019-01-24.
  5. ^ OMG бірыңғай модельдеу тілі (OMG UML) қондырмасы, 2.3 нұсқасы: мамыр 2010 ж. 23 қыркүйек 2010 ж. Алынды.
  6. ^ Fowler (2003) UML Distill: Стандартты нысанды модельдеу тіліне қысқаша нұсқаулық
  7. ^ «UML оқулығы 1 бөлім: сынып диаграммалары» (PDF). Архивтелген түпнұсқа (PDF) 2007-01-03. Алынған 2015-07-18.
  8. ^ Гудвин, Дэвид. «Модельдеу және модельдеу, 26-бет» (PDF). Уорвик университеті. Алынған 28 қараша 2015.

Сыртқы сілтемелер