UML-relasjonstyper: Forening, avhengighet, generalisering
โก Smart oppsummering
UML-relasjoner kobler sammen strukturelle, atferdsmessige og gruppebaserteping Elementer i en modell, som viser hvordan objekter er avhengige av hverandre under utfรธrelse. Denne ressursen forklarer assosiasjon, avhengighet, generalisering, realisering, komposisjon og aggregering, med notasjon og eksempler fra den virkelige verden for hver type.

Hva er UML-forhold?
Relasjoner i UML brukes til รฅ representere en forbindelse mellom strukturelle, atferdsmessige eller gruppemessigeping ting. Det kalles ogsรฅ en lenke som beskriver hvordan to eller flere ting kan forholde seg til hverandre under utfรธrelsen av et system. Typer UML-relasjoner er assosiasjon, avhengighet, generalisering og realisering.
La oss studere dem i detalj
Typer UML-klassediagramrelasjoner
Association
Det er et sett med lenker som kobler sammen elementer i UML-modellen. Den definerer ogsรฅ hvor mange objekter som deltar i den relasjonen.
Avhengighet
I et avhengighetsforhold, som navnet antyder, er to eller flere elementer avhengige av hverandre. I denne typen forhold, hvis vi gjรธr en endring til et bestemt element, er det sannsynlig at alle de andre elementene ogsรฅ vil bli pรฅvirket av endringen.
Generalisering
Det kalles ogsรฅ et foreldre-barn-forhold. I generalisering er ett element en spesialisering av en annen generell komponent. Det kan erstattes med det. Det brukes mest for รฅ representere arv.
realisering
I et realiseringsforhold til UML, betegner en enhet et ansvar som ikke er implementert av seg selv og den andre enheten som implementerer dem. Dette forholdet finnes for det meste i tilfelle av grensesnitt.
Association
Det er et strukturelt forhold som representerer objekter som kan kobles til eller assosieres med et annet objekt inne i systemet. Fรธlgende begrensninger kan brukes pรฅ assosiasjonsforholdet.
- {implisitt} โ Implisitte begrensninger spesifiserer at forholdet ikke er รฅpenbart; den er basert pรฅ et konsept.
- {bestilt} โ Ordnede begrensninger spesifiserer at settet med objekter i den ene enden av en assosiasjon er pรฅ en bestemt mรฅte.
- {changable} โ Changeable constraint spesifiserer at forbindelsen mellom ulike objekter i systemet kan legges til, fjernes og endres i henhold til kravet.
- {addOnly} โ Den spesifiserer at de nye forbindelsene kan legges til fra et objekt som ligger i den andre enden av en assosiasjon.
- {frossen} โ Den spesifiserer at nรฅr en kobling legges til mellom to objekter, kan den ikke endres mens den frosne begrensningen er aktiv pรฅ den gitte koblingen eller en tilkobling.
Vi kan ogsรฅ lage en klasse som har assosiasjonsegenskaper; det kalles som en foreningsklasse.
Refleksiv assosiasjon
Den refleksive assosiasjonen er en undertype av assosiasjonsforhold i UML. I en refleksiv assosiasjon kan forekomstene av samme klasse relateres til hverandre. En forekomst av en klasse sies ogsรฅ รฅ vรฆre et objekt.
Refleksiv assosiasjon sier at en kobling eller en forbindelse kan vรฆre tilstede innenfor objektene til samme klasse.
La oss se pรฅ et eksempel pรฅ en klassefrukt. Fruktklassen har to forekomster, som mango og eple. Refleksiv assosiasjon sier at en kobling mellom mango og eple kan vรฆre til stede da de er forekomster av samme klasse, for eksempel frukt.
Regissert forening
Som navnet antyder, er den rettet assosiasjonen knyttet til strรธmningsretningen innenfor foreningsklasser.
I en rettet assosiasjon er strรธmmen rettet. Assosiasjonen fra en klasse til en annen klasse flyter bare i en enkelt retning.
Det er angitt med en heltrukket linje med en pilspiss.
Eksempel:
Du kan si at det er et rettet assosiasjonsforhold mellom en server og en klient. En server kan behandle forespรธrsler fra en klient. Denne flyten er enveis, som bare flyter fra server til klient. Derfor kan et rettet assosiasjonsforhold vรฆre tilstede i servere og klienter til et system.
Avhengighet
Ved รฅ bruke et avhengighetsforhold i UML kan man relatere hvordan ulike ting i et bestemt system er avhengige av hverandre. Avhengighet brukes til รฅ beskrive forholdet mellom ulike elementer i UML som er avhengige av hverandre.
Stereotyper
- "binde" โ Bind er en begrensning som spesifiserer at kilden kan initialisere malen pรฅ et mรฅlsted ved รฅ bruke oppgitte parametere eller verdier.
- ยซavledeยป โ Det representerer at plasseringen til et kildeobjekt kan beregnes fra mรฅlobjektet.
- ยซvennยป โ Den spesifiserer at kilden har unik synlighet i mรฅlobjektet.
- ยซinstanceOfยป โ Den spesifiserer at forekomsten av en mรฅlklassifikator er kildeobjektet.
- ยซinstansiereยป โ Den spesifiserer at kildeobjektet er i stand til รฅ lage forekomster av et mรฅlobjekt.
- "raffinere" โ Den spesifiserer at kildeobjektet har eksepsjonell abstracsjon enn mรฅlobjektets.
- "bruk" โ Den brukes nรฅr pakker opprettes i UML. Bruksstereotypen beskriver at elementene i en kildepakke ogsรฅ kan vรฆre tilstede inne i mรฅlpakken. Den beskriver at kildepakken bruker noen elementer i en mรฅlpakke.
- "erstatte" โ spesifiserer at klienten kan erstattes av leverandรธren under kjรธring.
- "adgang" โ Den spesifiserer at kildepakken har tilgang til elementene i mรฅlpakken som ogsรฅ kalles som en privat sammenslรฅing.
- "Import" โ Den spesifiserer at mรฅlet kan importere elementet i en kildepakke slik de er definert i mรฅl som ogsรฅ kalles som en offentlig sammenslรฅing.
- "tillate" โ spesifiserer at kildeelementet har tilgang til leverandรธrelementet uansett leverandรธrens deklarerte synlighet.
- "forlenge" โ Hjelper deg med รฅ spesifisere at mรฅlet kan utvide virkemรฅten til kildeelementet.
- "inkludere" โ Lar deg spesifisere kildeelementet som kan inkludere virkemรฅten til et annet element pรฅ et spesifisert sted. (samme som et funksjonskall i c/c++)
- "bli" โ Den spesifiserer at mรฅlet ligner kilden med forskjellige verdier og roller.
- "ringe" โ Den spesifiserer at kilden kan pรฅkalle en mรฅlobjektmetode.
- "kopiere" โ Den spesifiserer at mรฅlobjektet er uavhengig, kopi av et kildeobjekt.
- ยซparameterยป โ leverandรธren er en parameter for kundens drift.
- "sende" โ klienten er en operasjon som sender leverandรธren et uspesifisert mรฅl.
Stereotyper blant statsmaskiner
- "sende" โ Spesifiserer at kildeoperasjonen sender mรฅlhendelsen.
Generalisering
Det er et forhold mellom en generell enhet og en unik enhet som er tilstede inne i systemet.
I et generaliseringsforhold kalles det objektorienterte konseptet arv kan implementeres. Det eksisterer et generaliseringsforhold mellom to objekter, ogsรฅ kalt enheter eller ting. I et generaliseringsforhold er en enhet en forelder, og en annen sies รฅ vรฆre som barn. Disse enhetene kan representeres ved รฅ bruke arv.
Ved arv kan et barn av en hvilken som helst forelder fรฅ tilgang til, oppdatere eller arve funksjonaliteten som spesifisert i det overordnede objektet. Et underordnet objekt kan legge til funksjonaliteten til seg selv, samt arve strukturen og oppfรธrselen til et overordnet objekt.
Denne typen forhold kollektivt kjent som et generaliseringsforhold.
Stereotyper og deres begrensninger
- ยซimplementeringยป โ Denne stereotypen brukes til รฅ representere at den underordnede enheten blir implementert av den overordnede enheten ved รฅ arve strukturen og oppfรธrselen til et overordnet objekt uten รฅ bryte reglene. OBS: Denne stereotypen er mye brukt i en enkelt arv.
Generaliseringsforhold inneholder begrensninger som fullstendig, ufullstendig for รฅ sjekke om alle underordnede enheter er inkludert i forholdet eller ikke.
realisering
I et realiseringsforhold til UML, betegner en enhet et ansvar som ikke er implementert av seg selv og den andre enheten som implementerer dem. Dette forholdet finnes for det meste i tilfelle av grensesnitt.
Realisering kan representeres pรฅ to mรฅter:
- Ved hjelp av en kanonisk form
- Bruke en elided form

I diagrammet ovenfor realiserer kontoforretningsregler grensesnittet IRuleAgent.
Typer realisering
- Kanonisk form: I en realiseringsrelasjon for UML brukes den kanoniske formen til รฅ realisere grensesnitt pรฅ tvers av systemet. Den bruker en grensesnittstereotypi for รฅ opprette et grensesnitt, og realiseringsrelasjonen brukes til รฅ realisere det spesifikke grensesnittet. I en kanonisk form er realiseringsrelasjonen angitt med den stiplede linjen med en betydelig รฅpen pilspiss. I diagrammet ovenfor realiseres grensesnittet Iruleagent ved hjelp av et objekt kalt Account Business Rules.
- Utelatt form: Realisering i UML klassediagram kan ogsรฅ vises ved hjelp av en elidert form. I en elidert form er grensesnittet angitt med en sirkel, som ogsรฅ kalles en lollipop-notasjon. Dette grensesnittet, nรฅr det realiseres ved hjelp av noe som helst som finnes i systemet, skaper en elidert struktur. I diagrammet ovenfor er grensesnittet Iruleagent angitt med en elidert form som realiseres av acctrule.dll.
sammensetning
Det er ikke et standard UML-forhold, men det brukes fortsatt i ulike applikasjoner.
Sammensatt aggregering er en undertype av aggregeringsforhold med egenskaper som:
- det er en toveis assosiasjon mellom objektene.
- Det er en hel/del-relasjon.
- Hvis en kompositt slettes, slettes alle andre deler knyttet til den.
Sammensatt aggregering beskrives som en binรฆr assosiasjon dekorert med en fylt svart diamant i den samlede (hele) enden.
En mappe er en struktur som inneholder n antall filer. En mappe brukes til รฅ lagre filene i den. Hver mappe kan knyttes til et hvilket som helst antall filer. I et datasystem er hver enkelt fil en del av minst รฉn mappe inne i filorganisasjonssystemet. Den samme filen kan ogsรฅ vรฆre en del av en annen mappe, men det er ikke obligatorisk. Nรฅr en fil fjernes fra mappen, forblir mappen upรฅvirket, mens dataene knyttet til den aktuelle filen blir รธdelagt. Hvis en sletteoperasjon utfรธres pรฅ mappen, pรฅvirker det ogsรฅ alle filene som finnes i mappen. Alle filene knyttet til mappen blir automatisk รธdelagt nรฅr mappen er fjernet fra systemet.
Denne typen relasjoner i UML er kjent av sammensatt aggregeringsforhold.
aggregering
An aggregering er en undertype av en assosiasjonsrelasjon i UML. Aggregasjon og komposisjon er begge typene assosiasjonsrelasjoner i UML. En aggregasjonsrelasjon kan beskrives enkelt som ยซet objekt i รฉn klasse kan eie eller fรฅ tilgang til objektene i en annen klasseยป.
I et aggregeringsforhold forblir det avhengige objektet innenfor omfanget av et forhold selv nรฅr kildeobjektet blir รธdelagt.
La oss se pรฅ et eksempel pรฅ en bil og et hjul. En bil trenger et hjul for รฅ fungere korrekt, men et hjul trenger ikke alltid en bil. Den kan ogsรฅ brukes med sykkelen, sykkelen eller andre kjรธretรธy, men ikke en bestemt bil. Her er hjulobjektet meningsfylt ogsรฅ uten bilobjektet. En slik type relasjon kalles en aggregeringsrelasjon.

