Typer av UML-relationer: Association, beroende, generalisering

โšก Smart sammanfattning

UML-relationer kopplar samman strukturella, beteendemรคssiga och grupperande element.ping element i en modell som visar hur objekt รคr beroende av varandra under exekvering. Denna resurs fรถrklarar association, beroende, generalisering, realisering, komposition och aggregering, med notation och verkliga exempel fรถr varje typ.

  • ๐Ÿ”— Fรถrening: En strukturell lรคnk dรคr objekt ansluter, med begrรคnsningar och multiplicitet som definierar hur mรฅnga som deltar.
  • โžก๏ธ Beroende: En envรคgsrelation dรคr en fรถrรคndring i leverantรถrselementet kan pรฅverka den beroende kunden.
  • ???? Generalisering: En fรถrรคlder-barn-relation som implementerar arv mellan en generell entitet och en specialiserad.
  • ๐Ÿงฉ Insikt: Ett grรคnssnittsproblemtracdรคr en enhet definierar ansvar och en annan implementerar det, visat i kanonisk eller utelรคmnad form.
  • ๐Ÿ’  Sammansรคttning och aggregering: Relationer mellan helhet och del; komposition fรถrstรถr delar med helheten, medan aggregering lรฅter delarna รถverleva den.

UML-relationstyper

Vad รคr UML-relation?

Relationer i UML anvรคnds fรถr att representera en koppling mellan strukturella, beteendemรคssiga eller grupperping saker. Det kallas ocksรฅ en lรคnk som beskriver hur tvรฅ eller flera saker kan relatera till varandra under exekveringen av ett system. Typer av UML-relationer รคr association, beroende, generalisering och realisering.

Lรฅt oss studera dem i detalj

Typer av UML-klassdiagramrelationer

UML klassdiagram relationer

Fรถrening

Det รคr en uppsรคttning lรคnkar som kopplar samman delar av UML-modellen. Den definierar ocksรฅ hur mรฅnga objekt som deltar i den relationen.

Dependency

I ett beroendefรถrhรฅllande, som namnet antyder, รคr tvรฅ eller flera element beroende av varandra. I den hรคr typen av relation, om vi gรถr en fรถrรคndring av ett visst element, รคr det sannolikt mรถjligt att alla andra element ocksรฅ kommer att pรฅverkas av fรถrรคndringen.

Generalisering

Det kallas ocksรฅ en fรถrรคlder-barn-relation. I generalisering รคr ett element en specialisering av en annan generell komponent. Det kan ersรคttas med det. Det anvรคnds mest fรถr att representera arv.

Insikt

I en realiseringsrelation av UML betecknar en enhet nรฅgot ansvar som inte implementeras av sig sjรคlv och den andra enheten som implementerar dem. Detta fรถrhรฅllande finns mestadels i fallet med grรคnssnitt.

Fรถrening

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รฅ associationsfรถrhรฅllandet.

  • {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 lรคggs till 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 associationsegenskaper; det kallas som en fรถreningsklass.

Reflexiv association

Den reflexiva associationen รคr en undertyp av associationsrelation inom 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.

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.

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.

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.

Dependency

Med hjรคlp av ett beroendefรถrhรฅllande i UML kan man relatera hur olika saker i ett visst system รคr beroende av varandra. Beroende anvรคnds fรถr att beskriva fรถrhรฅllandet mellan olika element i UML som รคr beroende av varandra.

Stereotyper

  • "binda" โ€“ Bind รคr en begrรคnsning som anger att kรคllan kan initiera mallen pรฅ en mรฅlplats med hjรคlp av angivna parametrar eller vรคrden.
  • "hรคrleda" โ€“ Det representerar att platsen fรถr ett kรคllobjekt kan berรคknas frรฅn mรฅlobjektet.
  • "vรคn" โ€“ Den anger att kรคllan har unik synlighet i mรฅlobjektet.
  • "instans av" โ€“ Den anger att instansen av en mรฅlklassificerare รคr kรคllobjektet.
  • "instansiera" โ€“ Den anger att kรคllobjektet kan skapa instanser av ett mรฅlobjekt.
  • "fรถrfina" โ€“ Det anger att kรคllobjektet har exceptionell abstraction รคn mรฅlobjektets.
  • "anvรคnda sig av" โ€“ Det anvรคnds nรคr paket skapas i UML. Anvรคndningsstereotypen beskriver att elementen i ett kรคllpaket ocksรฅ kan finnas i mรฅlpaketet. Den beskriver att kรคllpaketet anvรคnder vissa delar av ett mรฅlpaket.
  • "ersรคttning" โ€“ anger att kunden kan ersรคtta leverantรถren under kรถrning.
  • "tillgรฅng" โ€“ Det anger att kรคllpaketet fรฅr รฅtkomst till elementen i mรฅlpaketet som ocksรฅ kallas som en privat sammanslagning.
  • "Importera" โ€“ Den anger att mรฅlet kan importera elementet i ett kรคllpaket som de รคr definierade i mรฅl som ocksรฅ kallas som en offentlig sammanslagning.
  • "tillรฅta" โ€“ anger att kรคllelementet har tillgรฅng till leverantรถrselementet oavsett leverantรถrens deklarerade synlighet.
  • "fรถrlรคnga" โ€“ Hjรคlper dig att specificera att mรฅlet kan utรถka beteendet hos kรคllelementet.
  • "omfatta" โ€“ Lรฅter dig specificera kรคllelementet som kan inkluderas beteendet hos ett annat element pรฅ en angiven plats. (samma som ett funktionsanrop i c/c++)
  • "bli" โ€“ Den specificerar att mรฅlet liknar kรคllan med olika vรคrden och roller.
  • "ring upp" โ€“ Den anger att kรคllan kan anropa en mรฅlobjektmetod.
  • "kopiera" โ€“ Den anger att mรฅlobjektet รคr oberoende, kopia av ett kรคllobjekt.
  • "parameter" โ€“ leverantรถren รคr en parameter fรถr kundens verksamhet.
  • "skicka" โ€“ klienten รคr en operation som skickar leverantรถren ett ospecificerat mรฅl.

Stereotyper bland statsmaskiner

  • "skicka" โ€“ Anger att kรคllรฅtgรคrden skickar mรฅlhรคndelsen.

Generalisering

Det รคr ett fรถrhรฅllande mellan en allmรคn enhet och en unik enhet som finns i systemet.

I ett generaliseringsfรถrhรฅllande kallas det objektorienterade begreppet arv kan genomfรถras. En generaliseringsrelation existerar mellan tvรฅ objekt, รคven kallade som entiteter eller saker. I ett generaliseringsfรถrhรฅllande รคr en enhet en fรถrรคlder och en annan sรคgs vara som barn. Dessa enheter kan representeras med hjรคlp av arv.

Vid arv kan ett barn till vilken fรถrรคlder som helst komma รฅt, uppdatera eller รคrva funktionaliteten som specificeras i det รถverordnade objektet. Ett underordnat objekt kan lรคgga till sin funktionalitet till sig sjรคlvt samt รคrva strukturen och beteendet hos ett รถverordnat objekt.

Denna typ av relation kallas kollektivt ett generaliseringsfรถrhรฅllande.

Stereotyper och deras begrรคnsningar

  • "genomfรถrande" โ€“ Denna stereotyp anvรคnds fรถr att representera att den underordnade enheten implementeras av den รถverordnade enheten genom att รคrva strukturen och beteendet hos ett รถverordnat objekt utan att bryta mot reglerna. Obs: Denna stereotyp anvรคnds flitigt i en enda arv.

Generaliseringsrelationen innehรฅller begrรคnsningar som komplett, ofullstรคndig fรถr att kontrollera om alla underordnade enheter ingรฅr i relationen eller inte.

Insikt

I en realiseringsrelation av UML betecknar en enhet nรฅgot ansvar som inte implementeras av sig sjรคlv och den andra enheten som implementerar dem. Detta fรถrhรฅllande finns mestadels i fallet med grรคnssnitt.

Realisering kan representeras pรฅ tvรฅ sรคtt:

  • Med hjรคlp av en kanonisk form
  • Anvรคnda en utdragen form
Genomfรถrande i UML
Genomfรถrande i UML

I diagrammet ovan realiserar konto affรคrsregler grรคnssnittet IRuleAgent.

Typer av realisering

  1. Kanonisk form: I en realiseringsrelation fรถr UML anvรคnds den kanoniska formen fรถr att realisera grรคnssnitt รถver hela systemet. Den anvรคnder en grรคnssnittsstereotyp fรถr att skapa ett grรคnssnitt och en realiseringsrelation anvรคnds fรถr att realisera det specifika grรคnssnittet. I en kanonisk form betecknas realiseringsrelationen med den streckade linjen med en stor รถppen pilspets. I diagrammet ovan realiseras grรคnssnittet Iruleagent med hjรคlp av ett objekt som kallas Account Business Rules.
  2. Utslagen form: Fรถrverkligande i UML klassdiagram kan ocksรฅ visas med hjรคlp av en eliderad form. I en eliderad form betecknas grรคnssnittet med en cirkel som ocksรฅ kallas en lollipop-notation. Detta grรคnssnitt, nรคr det realiseras med hjรคlp av nรฅgot som finns inuti systemet, skapar en eliderad struktur. I diagrammet ovan betecknas grรคnssnittet Iruleagent med hjรคlp av en eliderad form som realiseras av acctrule.dll.

Sammansรคttning

Det รคr inte ett 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.

Komposition i UML

Komposition i UML

En mapp รคr en struktur som innehรฅller n antal filer. En mapp anvรคnds fรถr att lagra filerna i den. Varje mapp kan kopplas till valfritt antal filer. I ett datorsystem รคr varje enskild fil en del av minst en mapp i filorganisationssystemet. Samma fil kan ocksรฅ vara en del av en annan mapp, men det รคr inte obligatoriskt. Nรคrhelst en fil tas bort frรฅn mappen fรถrblir mappen opรฅverkad medan data relaterade till den specifika filen fรถrstรถrs. Om en raderingsoperation utfรถrs pรฅ mappen, pรฅverkar det ocksรฅ alla filer som finns i mappen. Alla filer som รคr associerade med mappen fรถrstรถrs automatiskt nรคr mappen tas bort frรฅn systemet.

Denna typ av relation i UML รคr kรคnd som sammansatt aggregeringsrelation.

aggregation

An aggregation รคr en undertyp av en associationsrelation i UML. Aggregering och komposition รคr bรฅda typerna av associationsrelationer i UML. En aggregeringsrelation kan beskrivas med enkla ord 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.

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 en aggregeringsrelation.

Vanliga frรฅgor

Multiplicitet anger hur mรฅnga instanser av en klass som kan lรคnka till instanser av en annan i en relation, skrivet som vรคrden som 1, 0..1 eller 1..*. Till exempel kan en mapp innehรฅlla noll eller mรฅnga filer.

UML anvรคnder olika radslut fรถr att visa relationstyper: en vanlig linje fรถr association, en รถppen pilspets fรถr beroende, en ihรฅlig triangel fรถr generalisering, en streckad linje med en ihรฅlig triangel fรถr realisering och en diamant fรถr aggregering eller komposition.

Association รคr en strukturell lรคnk dรคr objekt kรคnner till varandra under en varaktig period. Beroende รคr en svagare, tillfรคllig relation dรคr ett element anvรคnder ett annat, sรฅ ett byte av leverantรถr kan pรฅverka kunden bara kortvarigt.

AI-kodanalysverktyg kan skanna klasser och fรถreslรฅ sannolika relationer โ€“ association, beroende, generalisering eller aggregering โ€“ baserat pรฅ hur objekt refererar till varandra. Ingenjรถrer bรถr bekrรคfta fรถrslagen, eftersom AI kan misstolka indirekta eller dynamiska kopplingar.

Ja. Vissa AI-diagramverktyg lรคser en beskrivning av dina klasser i enkelt sprรฅk och producerar ett utkast till ett klassdiagram med lรคnkar fรถr association, generalisering och sammansรคttning. Utdata รคr en utgรฅngspunkt som fortfarande behรถver manuell validering.

Sammanfatta detta inlรคgg med: