Klassediagram

Den aktuelle version af siden er endnu ikke blevet gennemgået af erfarne bidragydere og kan afvige væsentligt fra den version , der blev gennemgået den 9. september 2018; checks kræver 28 redigeringer .

Klassediagram ( eng.  klassediagram ) - et strukturdiagram af UML - modelleringssproget , der demonstrerer den generelle struktur af systemklassehierarkiet , deres samarbejder, attributter (felter), metoder , grænseflader og relationer (relationer) mellem dem. Det er meget udbredt, ikke kun til dokumentation og visualisering, men også til at designe gennem forlæns eller omvendt konstruktion [1] .

Introduktion

Formålet med at skabe et klassediagram er en grafisk repræsentation af den statiske struktur af de deklarative elementer i systemet (klasser, typer osv.) Det indeholder også nogle adfærdselementer (f.eks. operationer), men deres dynamik bør afspejles i diagrammer af andre typer ( kommunikationsdiagrammer , tilstandsdiagrammer). For nemheds skyld kan klassediagrammet også suppleres med en repræsentation af pakker , herunder indlejrede [2] .

Når udvikleren repræsenterer enheder i den virkelige verden, skal udvikleren afspejle deres nuværende tilstand, deres adfærd og deres gensidige relationer. På hvert trin foretages abstraktion fra uvæsentlige detaljer og begreber, der ikke gælder for virkeligheden (performance, indkapsling , synlighed osv.). Klasser kan ses fra forskellige niveauers perspektiv. Som regel er de kendetegnet ved tre hovedniveauer: det analytiske niveau, designniveauet og implementeringsniveauet [3] :

Diagramelementer

Klassediagrammet er et nøgleelement i objektorienteret modellering. I diagrammet er klasserne præsenteret i kasser, der indeholder tre komponenter:

UML giver mekanismer til at repræsentere klassemedlemmer, såsom attributter og metoder, og yderligere information om dem.

Synlighed

For at indstille synligheden af ​​klassemedlemmer (det vil sige til attributter eller metoder), skal disse symboler placeres før navnet på medlemmet: [4]

+ Offentlig
- Privat (privat)
# Beskyttet
/ Afledt (kan kombineres med andre)
~ Pakke

Omfang

UML definerer to typer scopes for medlemmer: instans og klassificerer , hvor sidstnævnte har understregede navne . [5]

Navnet er understreget for at angive klassificeringsmedlemskab , ellers antages omfanget at være standardomfanget.

Relationer

En relation er en speciel type logisk relation mellem entiteter, vist i klasse- og objektdiagrammer . UML har følgende typer relationer:

Relationer mellem klasseobjekter

Afhængighed

Afhængighed betegner et forhold mellem klasser, således at en ændring i specifikationen af ​​udbyderklassen kan påvirke den afhængige klasses arbejde, men ikke omvendt.

Forening

En association viser, at objekter af en enhed (klasse) er forbundet med objekter fra en anden enhed på en sådan måde, at du kan flytte fra objekter af en klasse til en anden. Det er et generelt tilfælde af sammensætning og aggregering.

For eksempel har klassen Person og klassen Skole en forening, da en person kan læse på en skole. En forening kan få navnet "studerer i".

Dobbeltforeninger er repræsenteret af en linje uden pile i enderne, der forbinder to klasseblokke. Sammenslutninger af højere grad har mere end to ender og er repræsenteret ved linjer, hvoraf den ene ende går til klasseblokken og den anden til den fælles diamant. I den ensrettede tilknytningsvisning tilføjes en pil for at angive retningen af ​​tilknytningen.

En tilknytning kan navngives, og roller, tilknytninger, indikatorer, multiplikatorer, synlighed eller andre egenskaber kan mærkes i enderne af linjen, der repræsenterer den.

Aggregation

Aggregation  er en slags association i forholdet mellem helheden og dens dele. Som tilknytningstype kan en aggregering navngives. En aggregeringsrelation kan ikke omfatte mere end to klasser (container og indhold).

Aggregation opstår, når en klasse er en samling eller beholder af andre. Og som standard kaldes aggregering aggregering ved reference , det vil sige, når levetiden for de indeholdte klasser ikke afhænger af levetiden for den indeholdende klasse. Hvis beholderen er ødelagt, er dens indhold ikke det.

Grafisk er en aggregering repræsenteret af en tom diamant på en klasseboks og en linje fra den diamant til den indeholdende klasse.

Sammensætning

Komposition  er en strengere version af aggregering. Også kendt som aggregering efter værdi.

Sammensætning er meget afhængig af levetiden for containerklasseforekomster og indeholdte klasseforekomster. Hvis beholderen destrueres, så vil alt dens indhold også blive ødelagt.

Grafisk repræsenteret som aggregering, men med en udfyldt diamant.

Forskelle mellem sammensætning og aggregering

Lad os tage et illustrativt eksempel. Rummet er en del af lejligheden, derfor er sammensætningen velegnet her, fordi rummet ikke kan eksistere uden en lejlighed. Og fx er møbler ikke en integreret del af lejligheden, men samtidig indeholder lejligheden møbler, så sammenlægning bør bruges.

Klasseforhold

Generalisering (arv)

Generalisering viser, at den ene af de to beslægtede klasser ( subtype ) er en speciel form af den anden ( supertype ), som kaldes en generalisering af den første. I praksis betyder det, at enhver instans af undertypen også er en instans af supertypen. For eksempel: dyr er supertypen af ​​pattedyr, som igen er supertypen af ​​primater, og så videre. Dette forhold beskrives nemmest med sætningen "A er B" (primater er pattedyr, pattedyr er dyr).//

Grafisk er generaliseringen repræsenteret af en linje med en tom trekant ved supertypen.

Generalisering er også kendt som en arv eller " er et " forhold (eller "er et" forhold).

Implementering

Implementering er et forhold mellem to elementer i modellen, hvor det ene element ( kunde ) implementerer adfærden specificeret af det andet ( udbyder ). Erkendelse er et hel-delt forhold. Grafisk er implementering repræsenteret på samme måde som arv, men med en stiplet linje.

En udbyder er normalt en abstrakt klasse eller en grænsefladeklasse.

Generelt forhold

Afhængighed

En afhængighed er en svag form for brugsforhold, hvor en ændring i specifikationen af ​​den ene medfører en ændring i specifikationen af ​​den anden uden nødvendigvis at blive omvendt. Opstår, når et objekt optræder, for eksempel i form af en parameter eller lokal variabel.

Grafisk repræsenteret af en stiplet pil, der går fra det afhængige element til det, det afhænger af.

Der er flere navngivne varianter.

En afhængighed kan være mellem instanser, klasser eller en instans og en klasse.

Forbedring af forhold

Forfining har at gøre med detaljeringsgraden. En pakke forfiner en anden, hvis den indeholder de samme elementer, men i en mere detaljeret repræsentation. For eksempel, når du skriver en bog, vil du sandsynligvis begynde med at formulere en sætning, der kort opsummerer indholdet af hvert kapitel. Lad os antage, at resuméet for hvert kapitel er inkluderet som et separat element i "Proposal"-pakken. Lad os også antage, at "Completed Book" er en pakke, hvis elementer er afsluttede kapitler. I denne sammenhæng er "Completed Book"-pakken en forfining af "Offer"-pakken.

Power of relations (Multiplicitet)

Kardinaliteten af ​​relationen (multiplikatoren) betyder antallet af links mellem hver klasseinstans (objekt) i begyndelsen af ​​linjen med klasseinstansen i slutningen. Der er følgende typiske tilfælde:

notation forklaring eksempel
0...1 Nul eller én instans Katten har en ejer.
en Ét eksemplar påkrævet kat har en mor
0..* eller * Nul eller flere forekomster en kat kan have killinger eller ej
en..* Et eller flere tilfælde en kat har mindst ét ​​sted, hvor den sover

Se også

Noter

  1. Booch, Rambeau, Jacobson, 2006 , Klassediagram, s. 120.
  2. Butch, Jacobson, Rambo, 2006 , klassediagram (klassediagram), s. 226.
  3. Booch, Jacobson, Rambeau, 2006 , Klasser, s. 68.
  4. UML-referencekort, version 2.1.2 , Holub Associates, august 2007 , < http://www.holub.com/goodies/uml/ > . Hentet 12. marts 2011. Arkiveret 2. marts 2010 på Wayback Machine 
  5. OMG Unified Modeling Language (OMG UML) Superstructure Arkiveret 13. marts 2016 på Wayback Machine , Version 2.3: Maj 2010. Hentet 23. september 2010.

Kilder

  • G. Booch, D. Rambo, I. Jacobson. UML sprog. User's Guide = The Unified Modeling Language User's Guide. - 2. - M.  : DMK Press, 2006. - 496 s. — ISBN 5-94074-334-X .
  • G. Booch, A. Jacobson, D. Rambo. UML. Classic CS = The Unified Modeling Language Reference Manual. - 2. - Sankt Petersborg.  : "Peter", 2006. - 736 s. — ISBN 5-469-00599-2 .

Links