Klassdiagram

Den aktuella versionen av sidan har ännu inte granskats av erfarna bidragsgivare och kan skilja sig väsentligt från versionen som granskades den 9 september 2018; kontroller kräver 28 redigeringar .

Klassdiagram ( eng.  class diagram ) - ett strukturdiagram över UML - modelleringsspråket , som visar den allmänna strukturen för systemklasshierarkin , deras samarbeten, attribut (fält), metoder , gränssnitt och relationer (relationer) mellan dem. Det används i stor utsträckning inte bara för dokumentation och visualisering, utan också för att designa genom framåt- eller bakåtteknik [1] .

Introduktion

Syftet med att skapa ett klassdiagram är en grafisk representation av den statiska strukturen för de deklarativa elementen i systemet (klasser, typer etc.) Det innehåller också vissa beteendeelement (till exempel operationer), men deras dynamik bör återspeglas i diagram av andra typer ( kommunikationsdiagram , tillståndsdiagram). För att underlätta uppfattningen kan klassdiagrammet också kompletteras med en representation av paket , inklusive kapslade [2] .

När utvecklaren representerar enheter i den verkliga världen måste de återspegla deras nuvarande tillstånd, deras beteende och deras ömsesidiga relationer. I varje skede görs abstraktion från oviktiga detaljer och begrepp som inte gäller verkligheten (prestanda, inkapsling , synlighet , etc.). Klasser kan ses från olika nivåers perspektiv. Som regel särskiljs de av tre huvudsakliga: den analytiska nivån, designnivån och implementeringsnivån [3] :

Diagramelement

Klassdiagrammet är ett nyckelelement i objektorienterad modellering. I diagrammet presenteras klasserna i rutor som innehåller tre komponenter:

UML tillhandahåller mekanismer för att representera klassmedlemmar, såsom attribut och metoder, och ytterligare information om dem.

Synlighet

För att ställa in synlighet för klassmedlemmar (det vill säga för alla attribut eller metoder), måste dessa symboler placeras före namnet på medlemmen: [4]

+ offentlig
- Privat (privat)
# Skyddad
/ Härledd (kan kombineras med andra)
~ Paket

Omfattning

UML definierar två typer av omfattningar för medlemmar: instans och klassificerare , den senare har understrukna namn . [5]

Namnet är understruket för att indikera klassificeraremedlemskap , annars antas omfattningen vara standardomfattningen.

Relationer

En relation är en speciell typ av logisk relation mellan entiteter, som visas i klass- och objektdiagram . UML har följande typer av relationer:

Relationer mellan klassobjekt

Beroende

Beroende betecknar ett förhållande mellan klasser så att en förändring i specifikationen för leverantörsklassen kan påverka den beroende klassens arbete, men inte vice versa.

Association

En association visar att objekt av en entitet (klass) är associerade med objekt av en annan entitet på ett sådant sätt att du kan flytta från objekt av en klass till en annan. Det är ett allmänt fall av sammansättning och aggregering.

Till exempel har klassen Person och klassen Skola en förening, eftersom en person kan studera på en skola. En förening kan få namnet "studerar i".

Dubbla associationer representeras av en linje utan pilar i ändarna, som förbinder två klassblock. Associationer av högre grad har mer än två ändar och representeras av linjer, vars ena ände går till klassblocket och den andra till den vanliga diamanten. I den enkelriktade associationsvyn läggs en pil till för att indikera associationens riktning.

En association kan namnges och roller, tillhörigheter, indikatorer, multiplikatorer, synlighet eller andra egenskaper kan märkas i ändarna av raden som representerar den.

Aggregation

Aggregation  är ett slags association i förhållandet mellan helheten och dess delar. Som en associationstyp kan en aggregering namnges. En aggregeringsrelation kan inte inkludera mer än två klasser (behållare och innehåll).

Aggregation uppstår när en klass är en samling eller behållare av andra. Och som standard kallas aggregering aggregering genom referens , det vill säga när livslängden för de inneslutna klasserna inte beror på livslängden för den innehållande klassen. Om behållaren förstörs, är dess innehåll inte det.

Grafiskt representeras en aggregering av en tom diamant på en klassruta och en linje från den romben till den innehållande klassen.

Komposition

Komposition  är en striktare version av aggregering. Även känd som aggregering efter värde.

Kompositionen är starkt beroende av livslängden för containerklassinstanser och inneslutna klassinstanser. Om behållaren förstörs kommer allt innehåll också att förstöras.

Grafiskt representerad som aggregering, men med en fylld diamant.

Skillnader mellan sammansättning och aggregering

Låt oss ta ett illustrativt exempel. Rummet är en del av lägenheten, därför är sammansättningen lämplig här, eftersom rummet inte kan existera utan en lägenhet. Och till exempel är möbler inte en integrerad del av lägenheten, men samtidigt innehåller lägenheten möbler, så aggregering bör användas.

Klassrelationer

Generalisering (arv)

Generalisering visar att en av de två relaterade klasserna ( subtyp ) är en speciell form av den andra ( supertyp ), som kallas en generalisering av den första. I praktiken betyder detta att varje instans av subtypen också är en instans av supertypen. Till exempel: djur är supertypen av däggdjur, som i sin tur är supertypen av primater, och så vidare. Detta förhållande beskrivs enklast med frasen "A är B" (primater är däggdjur, däggdjur är djur).//

Grafiskt representeras generaliseringen av en linje med en tom triangel vid supertypen.

Generalisering är också känt som ett arv eller " är ett " förhållande (eller "är ett" förhållande).

Implementering

Implementering är en relation mellan två element i modellen, där ett element ( kund ) implementerar beteendet som specificerats av det andra ( leverantör ). Förverkligande är en hel-del relation. Grafiskt representeras implementering på samma sätt som arv, men med en prickad linje.

En leverantör är vanligtvis en abstrakt klass eller en gränssnittsklass.

Allmän relation

Beroende

Ett beroende är en svag form av användningsförhållande där en förändring i specifikationen för den ena innebär en förändring av den andras specifikation utan att nödvändigtvis vändas. Uppstår när ett objekt visas, till exempel i form av en parameter eller lokal variabel.

Grafiskt representerad av en streckad pil som går från det beroende elementet till det som det beror på.

Det finns flera namngivna varianter.

Ett beroende kan vara mellan instanser, klasser eller en instans och en klass.

Förfining av relationer

Förfining har att göra med detaljnivån. Ett paket förfinar ett annat om det innehåller samma element men i en mer detaljerad representation. Till exempel, när du skriver en bok, kommer du förmodligen att börja med att formulera en mening som kort sammanfattar innehållet i varje kapitel. Låt oss anta att sammanfattningen för varje kapitel ingår som ett separat element i "Proposal"-paketet. Låt oss också anta att "Completed Book" är ett paket vars element är avslutade kapitel. I detta sammanhang är "Completed Book"-paketet en förfining av "Offer"-paketet.

Power of relations (Multiplicity)

Relationens kardinalitet (multiplikator) betyder antalet länkar mellan varje klassinstans (objekt) i början av raden med klassinstansen i slutet. Det finns följande typiska fall:

notation förklaring exempel
0...1 Noll eller en instans Katten har en ägare.
ett Ett exemplar krävs katten har en mamma
0..* eller * Noll eller fler instanser en katt kan ha kattungar eller inte
ett..* En eller flera instanser en katt har minst en plats där den sover

Se även

Anteckningar

  1. Booch, Rambeau, Jacobson, 2006 , Klassdiagram, sid. 120.
  2. Butch, Jacobson, Rambo, 2006 , klassdiagram (klassdiagram), sid. 226.
  3. Booch, Jacobson, Rambeau, 2006 , Klasser, sid. 68.
  4. UML-referenskort, version 2.1.2 , Holub Associates, augusti 2007 , < http://www.holub.com/goodies/uml/ > . Hämtad 12 mars 2011. Arkiverad 2 mars 2010 på Wayback Machine 
  5. OMG Unified Modeling Language (OMG UML) Superstructure Arkiverad 13 mars 2016 på Wayback Machine , version 2.3: maj 2010. Hämtad 23 september 2010.

Källor

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

Länkar