Въпрос 22! uml класова диаграма

Атрибут (атрибут) - смислена характеристика на клас, която описва набора от стойности, които отделните обекти от този клас могат да приемат.

Атрибутът на клас се използва за представяне на едно свойство или характеристика, която е обща за всички обекти от даден клас. Атрибутите на класа са записани във втората секция на правоъгълника на класа отгоре. Този раздел често се нарича раздел за атрибути.

UML е възприел определена стандартизация на нотацията на атрибутите на класа, която е предмет на определени синтактични правила. Всеки атрибут на класа има свой собствен ред текст, който се състои от квантификатора за видимост на атрибута, името на атрибута, неговата множественост, типа стойност на атрибута и евентуално неговата начална стойност. Общият формат за писане на един атрибут на клас е както следва:

Видимостта е качествена характеристика на описанието на елементите на класа, характеризираща потенциалната способност на други обекти на модела да влияят на определени аспекти от поведението на този клас.

Видимостта в UML се определя с помощта на квантора за видимост, който може да приеме една от 4 възможни стойности и да се показва с помощта на специални знаци.

Символът "+" обозначава атрибут с обхват от тип public ( public ). Атрибут с този обхват е достъпен или видим от всеки друг клас пакет, в който е дефинирана диаграмата.

Символът "#" обозначава атрибут с обхват от защитен тип ( protected ). Атрибут с този обхват не е достъпен или видим за всички класове, с изключение на подкласовете на този клас.

Символът "-" обозначава атрибут с обхват от тип private ( private ). Атрибутът с този обхват не е наличен или не е видим за всичкикласове без изключение.

И накрая символът

" - обозначава атрибут с обхват на пакет. Атрибут с този обхват не е наличен или видим за всички класове извън пакета, в който е дефиниран притежаващият клас на атрибута.

Кванторът за видимост може да бъде пропуснат. Липсата му означава, че видимостта на атрибута не е посочена. Тази ситуация се различава от конвенциите по подразбиране в традиционните езици за програмиране, където липсата на квантор за видимост се третира като публична или частна. Въпреки това, вместо конвенционалните графични символи, можете да напишете съответната ключова дума: public, protected, private, package.

Името на атрибута е низ от текст, който се използва като идентификатор за съответния атрибут и следователно трябва да бъде уникален в рамките на класа. Името на атрибута е единственият задължителен елемент от синтактичното обозначение на атрибута, трябва да започва с малка (малка) буква и не трябва да съдържа интервали.

Множеството е спецификация на обхвата на разрешената кардиналност, която могат да имат съответните набори.

Множеството на даден атрибут характеризира общия брой специфични атрибути от даден тип, които са част от определен клас. В общия случай кратността се записва като текстов низ от числа в квадратни скоби след името на съответния атрибут, като числата са разделени с две точки: [долна граница .. горна граница], където долната и горната граница са цели положителни числа. Всяка такава двойка служи за обозначаване на отделен затворен интервал от цели числа, в който долната (горната) граница е равна на стойността на долната (горната) граница. Може да се използва горната границазнакът "*" (звездичка), което означава произволно цяло положително число, т.е. стойността на множествеността на съответния атрибут неограничена отгоре.

Може да има няколко интервала на множественост за един атрибут. В този случай тяхното съвместно използване съответства на теоретико-множественото обединение на съответните интервали. Стойностите на множествеността от интервала следват в монотонно нарастващ ред, без да се пропускат отделни числа, лежащи между долната и горната граница. В този случай се спазва следното правило: съответните долна и горна граница на интервалите се включват в стойността на кратността.

Ако едно число е посочено като кратност, тогава кратността на атрибута се приема за равна на това число. Ако е посочен единственият знак " * ", това означава, че кратността на атрибута може да бъде произволно цяло положително число или нула. В UML множествеността също се използва широко за указване на ролите на асоциации, съставни обекти и стойности на атрибути. Ако кратността на атрибута не е посочена, то по подразбиране в езика UML стойността му е равна на [1..1], т.е. точно 1.

Тип атрибут е израз, чиято семантика се дефинира от някакъв тип данни, дефиниран в пакета UML Data Types или от самия разработчик. В UML нотацията типът на атрибут понякога се определя в зависимост от езика за програмиране, който е предназначен да се използва за прилагане на даден модел. В най-простия случай типът на атрибут се обозначава с ред текст, който има смислено значение в пакета или модела, към който принадлежи въпросният клас.

Началната стойност се използва за задаване на началната стойност на съответния атрибут в момента на създаване на отделен екземпляр от класа. Тук е необходимо да се следватправила за принадлежност на стойност към типа на конкретен атрибут. Ако първоначалната стойност не е посочена, тогава стойността на съответния атрибут не е дефинирана в момента на създаване на нов екземпляр на класа. От друга страна, конструкторът на обекта може да замени оригиналната стойност по време на изпълнение на програмата, ако е необходимо.

При посочване на атрибути могат да се използват допълнителни синтактични конструкции - това е подчертан атрибутен низ, обяснителен текст във къдрави скоби и наклонена черта преди името на атрибута. Подчертаването на атрибутен низ означава, че съответният атрибут е общ за всички обекти от дадения клас, т.е. стойността му е еднаква за всички създадени обекти (аналогично на ключовата дума static в някои езици за програмиране).

Обяснителният текст във къдрави скоби може да означава две различни конструкции. Ако този ред съдържа знак за равенство, тогава целият запис на свойство на низ се използва за указване на допълнителни свойства на атрибута, които могат да характеризират характеристиките на промяна на стойностите на атрибута по време на изпълнение на програмата. Къдравите скоби просто обозначават фиксирана стойност на съответния атрибут за класа като цяло, която всички новосъздадени екземпляри на класа трябва да приемат без изключение. Тази стойност се приема като начална стойност на атрибута, която не може да бъде предефинирана по-късно. Липсата на низ със свойства по подразбиране се интерпретира по такъв начин, че стойността на съответния атрибут може да бъде променена в програмата.

Знакът "/" пред името на атрибута показва, че този атрибут е извлечен от друг атрибут от същия клас.

Производен атрибут (производен елемент) - атрибут на класа, чиято стойност за отделни обекти може да бъде изчисленачрез стойностите на други атрибути на същия обект.

Операция (операция) е услуга, предоставяна от всеки екземпляр или обект от клас по искане на неговите клиенти, които могат да бъдат други обекти, включително екземпляри от този клас.

Операциите на класа се записват в третата секция от горната част на правоъгълника на класа, често наричана секция за операции. Наборът от операции характеризира функционалния аспект на поведението на всички обекти от даден клас. Нотацията на класовите операции в UML също е стандартизирана и следва определени синтактични правила. В този случай всяка операция от класа съответства на отделен низ, който се състои от квантора за видимост на операцията, името на операцията, израза на типа на стойността, върната от операцията, и, евентуално, свойството на низа на тази операция. Общият формат за писане на единична класова операция е както следва:

Кванторът за видимост, както в случая с атрибутите на класа, може да приеме една от четири възможни стойности и съответно се показва с помощта на специален знак или ключова дума. Знакът "+" означава операция с публичен обхват. Символът "#" обозначава операция с обхват от защитен тип. Знакът "-" се използва за обозначаване на операция с частен обхват. И накрая символът

" се използва за обозначаване на операция с обхват от тип пакет.

Кванторът за видимост за дадена операция може да бъде пропуснат. В този случай липсата му просто означава, че видимостта на операцията не е посочена. Вместо конвенционални графични символи, можете също да напишете съответната ключова дума: public, protected, private, package.

Името на операцията е низ от текст,който се използва като идентификатор на съответната операция и следователно трябва да бъде уникален в този клас. Името на операцията е единственият задължителен елемент от синтактичното обозначение на операцията, то трябва да започва с малка (малка) буква и като правило да се пише без интервали.

Списъкът с параметри е разделен със запетаи списък от формални параметри, всеки от които на свой ред може да бъде представен по следния начин:

Параметърът е спецификация на операционна променлива, която може да бъде променена, предадена или върната.

Параметърът може да включва име, тип, посока и стойност по подразбиране. Parameter direction - е една от ключовите думи in, out или inout със стойност по подразбиране in, ако типът на параметъра не е посочен. Името на параметър е идентификаторът на съответния формален параметър, който следва правилата за указване на имена на атрибути, когато е написан. Типовият израз е спецификация на типа данни за валидните стойности на съответния формален параметър. И накрая, стойността по подразбиране обикновено е някаква специфична стойност за този формален параметър.

Изразът тип връщане също така показва типа данни на стойността, върната от обекта след извършване на съответната операция. Двете точки и изразът за върнат тип могат да бъдат пропуснати, ако операцията не връща никаква стойност. За да посочите множество връщани стойности, този елемент от спецификация на операция може да бъде написан като списък от отделни изрази.

Операция, която е с обхват на целия клас, се показва чрез подчертаване на името и низа на израза на типа. В този случай обхватът на операция се отнася за всички обекти от този клас. В товаслучай, целият ред на записа на операцията е подчертан.

Низът на свойствата се използва за указване на стойностите на свойствата, които могат да бъдат приложени към дадената операция. Низът на свойствата може да бъде пропуснат, ако не са посочени свойства.

Списъкът с формални параметри и типът на връщане не са задължителни. Кванторът за видимост на атрибутите и операциите може да бъде определен като специална икона или символ, който се използва за графично представяне на модели в инструмента. Още веднъж трябва да припомним, че имената на операциите, както и атрибутите и параметрите се пишат с малка (малка) буква, а типовете им параметри се пишат с главна (главна) буква. В този случай задължителната част от реда за запис на операция е наличието на името на операцията и скоби.