UML Association vs. Aggregation vs. Komposition [EXEMPEL]

Relationer i UML-diagram anvรคnds fรถr att representera en koppling mellan olika saker. En relation รคr en koppling mellan saker, sรฅsom strukturella, beteendemรคssiga eller grupper.ping saker i det enhetliga modelleringssprรฅket.

Fรถljande รคr de olika typerna av standardrelationer i UML,

  • Fรถrening
  • Dependency
  • Generalisering
  • Insikt

Fรถrutom dessa tillรฅter UML anvรคndningen av aggregering och ett sammansรคttningsfรถrhรฅllande.

UML-fรถreningen

Det รคr en strukturell relation som representerar objekt som kan kopplas till eller associeras med ett annat objekt inuti systemet. Fรถljande begrรคnsningar kan tillรคmpas pรฅ UML Association-relationen.

  • {implicit} โ€“ Implicita begrรคnsningar anger att fรถrhรฅllandet inte รคr uppenbart; den bygger pรฅ ett koncept.
  • {beordrade} โ€“ Ordnade begrรคnsningar anger att uppsรคttningen objekt i ena รคnden av en association รคr pรฅ ett specifikt sรคtt.
  • {fรถrรคnderlig} โ€“ Changeable constraint specificerar att kopplingen mellan olika objekt i systemet kan lรคggas till, tas bort och modifieras enligt kravet.
  • {addOnly} โ€“ Den specificerar att de nya anslutningarna kan lรคggas till frรฅn ett objekt som รคr belรคget i andra รคnden av en association.
  • {frysta} โ€“ Den anger att nรคr en lรคnk infogas mellan tvรฅ objekt kan den inte รคndras medan den frysta begrรคnsningen รคr aktiv pรฅ den givna lรคnken eller en anslutning.

Vi kan ocksรฅ skapa en klass som har UML Association-egenskaper; det kallas som en fรถreningsklass.

Reflexiv fรถrening

Den reflexiva associationen รคr en undertyp av associationsrelation i UML. I en reflexiv association kan instanserna av samma klass relateras till varandra. En instans av en klass sรคgs ocksรฅ vara ett objekt.

Reflexiv association anger att en lรคnk eller en koppling kan finnas inom objekten i samma klass.

Exempelvis:

Lรฅt oss betrakta ett exempel pรฅ en klassfrukt.

Fruktklassen har tvรฅ instanser, som mango och รคpple. Reflexiv association sรคger att en koppling mellan mango och รคpple kan finnas eftersom de รคr instanser av samma klass, sรฅsom frukt.

Reflexiv fรถrening
Reflexiv fรถrening

Riktad fรถrening

Som namnet antyder รคr den riktade associationen relaterad till flรถdesriktningen inom fรถreningsklasser.

I en riktad association รคr flรถdet riktat. Associationen frรฅn en klass till en annan klass flyter endast i en enda riktning.

Det betecknas med en heldragen linje med en pilspets.

UML Association Exempel:

Man kan sรคga att det finns en riktad associationsrelation mellan en server och en klient.

En server kan behandla fรถrfrรฅgningar frรฅn en klient. Detta flรถde รคr enkelriktat, som endast flyter frรฅn server till klient. Dรคrfรถr kan en riktad associationsrelation finnas inom servrar och klienter i ett system.

Riktad fรถrening

Riktad fรถrening

UML sammansรคttning

Det รคr ingen standard UML-fรถrhรฅllande, men det anvรคnds fortfarande i olika applikationer.

Sammansatt aggregation รคr en undertyp av aggregationsrelation med egenskaper som:

  • Det รคr en tvรฅvรคgsassociation mellan objekten.
  • Det รคr en hel/del relation.
  • Om en komposit raderas raderas alla andra delar som รคr associerade med den.

Sammansatt aggregering beskrivs som en binรคr association dekorerad med en fylld svart diamant i aggregatets (hela) รคnde.

UML sammansรคttning

Mappen kan innehรฅlla mรฅnga filer, medan varje fil har exakt en mappfรถrรคlder. Om en mapp raderas tas alla ingรฅende filer bort ocksรฅ.

I en sammansatt aggregering kan ett objekt vara en del av endast en sammansรคttning รฅt gรฅngen.

Exempel pรฅ UML-sammansรคttning:

Till exempel, i ett fรถnstersystem hรถr en ram till exakt ett fรถnster. I en sammansatt aggregering รคr hela systemet ansvarigt fรถr dispositionen av sina delar, vilket innebรคr att kompositen mรฅste hantera skapandet och fรถrstรถrelsen av sina delar.

UML sammansรคttning

Sammansรคttning

UML Aggregation

En aggregering รคr en undertyp av en associationsrelation i UML. Aggregation och sammansรคttning รคr bรฅda typerna av associationsrelationer i UML. En aggregeringsrelation kan med enkla ord beskrivas som "ett objekt i en klass kan รคga eller komma รฅt objekt i en annan klass."

I en aggregeringsrelation fรถrblir det beroende objektet inom ramen fรถr en relation รคven nรคr kรคllobjektet fรถrstรถrs.

UML Aggregation Exempel:

Lรฅt oss รถvervรคga ett exempel pรฅ en bil och ett hjul.

En bil behรถver ett hjul fรถr att fungera korrekt, men ett hjul behรถver inte alltid en bil. Den kan ocksรฅ anvรคndas med cykeln, cykeln eller andra fordon men inte en speciell bil. Hรคr รคr hjulobjektet meningsfullt รคven utan bilobjektet. En sรฅdan typ av relation kallas UML Aggregation relation.

UML Aggregation Relation

aggregation

Fรถreningen vs. Aggregation vs. Sammansรคttning

Fรถrening aggregation Sammansรคttning
Associationsfรถrhรฅllande markeras med en pil. Aggregationsfรถrhรฅllandet anges med en rak linje med en tom pilspets i ena รคnden. Sammansรคttningsfรถrhรฅllandet anges med en rak linje med en fylld pilspets vid nรฅgon av รคndarna.
Samband kan finnas mellan tvรฅ eller flera klasser i UML. Aggregation รคr en del av en fรถreningsrelation. Sammansรคttningen รคr en del av en associationsrelation.
Det kan finnas en-en, en-mรฅnga, mรฅnga-en och mรฅnga-mรฅnga fรถrening nรคrvarande mellan fรถreningsklasserna. Aggregation betraktas som en svag typ av association. Sammansรคttningen anses vara en stark typ av association.
I en associationsrelation kan ett eller flera objekt associeras med varandra. I ett aggregeringsfรถrhรฅllande kan objekt som รคr associerade med varandra fรถrbli inom ramen fรถr ett system utan varandra. I ett kompositionsfรถrhรฅllande kan objekt som รคr associerade med varandra inte fรถrbli i omfรฅnget utan varandra.
Objekt รคr kopplade till varandra. Lรคnkade objekt รคr inte beroende av det andra objektet. Objekt รคr mycket beroende av varandra.
I UML Association kan borttagning av ett element pรฅverka ett annat associerat element eller inte. I UML Aggregation pรฅverkar inte borttagning av ett element ett annat associerat element. I UML Composition pรฅverkar borttagning av ett element ett annat associerat element.
Exempel:
En lรคrare รคr kopplad till flera elever.
Or
en lรคrare ger instruktioner till eleverna.
Exempel:
En bil behรถver ett hjul, men det krรคver inte alltid samma hjul. En bil kan fungera bra med ett annat hjul ocksรฅ.
Exempel:
En fil placeras i mappen. Om man tar bort mappen raderas ocksรฅ filen som รคr associerad med den givna mappen.

Sammanfattning

  • En relation รคr ett samband mellan saker.
  • Association, beroende, generalisering och realisering รคr olika relationer som tillhandahรฅlls av UML.
  • Fรถrutom standardrelationer anvรคnds komposition och aggregering i UML.
  • Aggregation och sammansรคttning รคr bรฅda typerna av associationsrelationer i UML.
  • UML-kompositionen รคr en tvรฅvรคgsrelation som ocksรฅ kallas fรถr en binรคr relation.

Lรคs vรฅr artikel om bรคsta UML-verktyg:- Klicka hรคr

Sammanfatta detta inlรคgg med: