Klassdiagram är en av de mest användbara typerna av UML-diagram eftersom de tydligt kartlägger strukturen för ett visst system genom att modellera dess klasser, attribut, operationer och relationer mellan objekt. Med vårt program för UML-diagram är det inte så överväldigande att skapa dessa diagram som det först kan verka. Den här guiden visar dig hur du förstår, planerar och skapar dina egna klassdiagram.
8 minutläsning
Vill du göra ditt eget UML-diagram? Prova Lucidchart. Det är snabbt, enkelt och helt gratis.
Vad är ett klassdiagram i UML?
Unified Modeling Language (UML) kan hjälpa dig att modellera system på olika sätt. En av de mer populära typerna av UML-diagram är klassdiagrammet. Klassdiagram används ofta av systemutvecklare för att dokumentera programvaruarkitektur, och är en typ av strukturdiagram eftersom de beskriver vad som måste finnas i systemet som modelleras. Oavsett hur bekant du är med UML och klassdiagram är vårt UML-program utformat för att vara enkelt och lätt att använda.
UML togs fram som en standardiserad modell för att beskriva ett objektorienterat programmeringssätt. Eftersom klasser är byggstenarna för objekt är klassdiagram byggstenarna i UML. De olika komponenterna i ett klassdiagram kan representera de klasser som faktiskt kommer att programmeras, huvudobjekten, eller interaktionerna mellan klasser och objekt.
Själva formen för en klass består av en rektangel med tre rader. Den översta raden innehåller namnet på klassen, den mellersta raden innehåller klassens attribut och den nedersta raden listar de metoder eller operationer som klassen kan använda. Klasser och underklasser grupperas tillsammans för att visa det statiska förhållandet mellan varje objekt.
Lucidcharts UML-diagramverktyg tillsammans med UML-formbiblioteket kan hjälpa dig att skapa nästan vilket anpassat klassdiagram som helst.
Fördelar med klassdiagram
Klassdiagram medför ett antal fördelar för alla organisationer. Använd UML-klassdiagram för att:
- Illustrera datamodeller för informationssystem, oavsett hur enkla eller komplexa de är.
- Bättre förstå den allmänna översikten av det tekniska schemat för en applikation.
- Visuellt uttrycka alla specifika behov hos ett system och sprida den informationen i hela verksamheten.
- Skapa detaljerade diagram som lyfter fram vilken specifik kod som behöver programmeras och implementeras i den beskrivna strukturen.
- Ge en implementeringsoberoende beskrivning av typer som används i ett system och som senare skickas mellan dess komponenter.
Vill du göra ditt eget UML-diagram? Prova Lucidchart. Det är snabbt, enkelt och helt gratis.
Skapa ett UML-diagramGrundläggande komponenter i ett klassdiagram
Ett normalt klassdiagram består av tre sektioner:
Övre sektion:
Innehåller namnet på klassen. Denna sektion måste finnas med, oavsett om du avser klassificeraren eller ett objekt.Mittsektion:
Innehåller klassens attribut. Använd den här sektionen för att beskriva klassens egenskaper. Detta krävs endast när man beskriver en specifik instans av en klass.Nedre sektion:
Innehåller klassoperationer (metoder). De olika operationerna visas i en lista, med en operation per rad. Operationerna beskriver hur en klass interagerar med data.
Medlemsåtkomstmodifierare
Alla klasser har olika åtkomstnivåer beroende på åtkomstmodifierare (synlighet). Här är åtkomstnivåerna med motsvarande symboler:
- Publik (+)
- Privat (-)
- Skyddad (#)
- Paket (~)
- Härledd (/)
- Statisk (understruken)
Medlemstyper
Det finns två typer av medlemmar: klassificerare och instanser.
Klassificerare är statiska medlemmar medan instanser är de specifika instanserna av klassen. Om du är bekant med grunderna i objektorientering är detta inte något banbrytande.
Ytterligare komponenter i klassdiagram
Beroende på sammanhanget kan klasser i ett klassdiagram representera huvudobjekten, interaktioner i applikationen eller klasser som ska programmeras. För att kunna besvara frågan ”Vad är ett klassdiagram i UML?” måste man först förstå dess grundläggande sammansättning.
-
Klasser:
En mall för att skapa objekt och implementera beteende i ett system. I UML representerar en klass ett objekt eller en uppsättning objekt med gemensam struktur och beteende. De representeras av en rektangel med rader för klassens namn, attribut och operationer. När du ritar en klass i ett klassdiagram behöver du bara fylla i den översta raden – de andra kan användas om du vill ge mer detaljerad information.-
Namn:
Den första raden i en klassform. -
Attribut:
Den andra raden i en klassform. Varje attribut visas på en separat rad. -
Metoder:
Den tredje raden i en klassform. Metoder kallas även operationer och visas som en lista med varje metod på en egen rad.
-
-
Signaler:
Symboler som representerar enkelriktad, asynkron kommunikation mellan aktiva objekt. -
Datatyper:
Klassificerare som definierar datavärden. Datatyper kan modellera både primitiva typer och uppräkningar. -
Paket:
Former som har utformats för att organisera relaterade klassificerare i ett diagram. De symboliseras av en stor rektangel med flikar. -
Gränssnitt:
En samling operationssignaturer och/eller attributdefinitioner som definierar en sammanhängande uppsättning beteenden. Gränssnitt liknar klasser, förutom att en klass kan ha en instans av sin typ, och ett gränssnitt måste ha minst en klass för att implementera den. -
Uppräkningar:
Representationer av användardefinierade datatyper. En uppräkning inkluderar grupper av identifierare som representerar värden för uppräkningen. -
Objekt:
Förekomster av en klass eller klasser. Objekt kan läggas till i ett klassdiagram för att representera antingen konkreta eller prototypiska instanser. -
Artefakter:
Modellelement som representerar de konkreta enheterna i ett programvarusystem, såsom dokument, databaser, körbara filer, programvarukomponenter etc.
Interaktioner
Termen ”interaktioner” avser de olika relationer och länkar som kan finnas i klass- och objektdiagram. Några av de vanligaste interaktionerna är:
-
Arv:
Processen där ett barn (en subklass eller underordnad klass) tar på sig den funktion som finns hos en förälder (en superklass eller överordnad klass), även känd som generalisering. Det symboliseras av en rak sammanhängande linje med en stängd pilspets som pekar mot superklassen.
I det här exemplet skulle objektet ”Car” ärva alla attribut (speed, numbers of passengers, fuel) och metoder (go(), stop(), changeDirection()) från den överordnade klassen (”Vehicle”), utöver de specifika attributen (model type, number of doors, auto maker) och metoderna i sin egen klass (Radio(), windshieldWiper(), ac/heat()). Arv visas i ett klassdiagram genom en heldragen linje med en stängd, ihålig pil.
-
Dubbelriktad association:
Standardrelationen mellan två klasser. Båda klasserna är medvetna om varandra och relationen till den andra. Denna association representeras av en rak linje mellan två klasser.
I exemplet ovan är klasserna Car och RoadTrip relaterade till varandra. I ena änden av linjen får bilen associationen ”assignedCar” med multiplicitetsvärdet 0..1, så när instansen av RoadTrip finns kan den antingen ha en instans eller ingen instans av Car associerad med sig. I det här fallet behövs en separat Caravan-klass med ett multiplicitetsvärde på 0..* för att visa att en RoadTrip kan ha flera instanser av Car associerade med sig. Eftersom en Car-instans kan ha flera ”getRoadTrip”-associationer – eller med andra ord: en bil kan åka på flera resor – sätts multiplicitetsvärdet till 0..*
-
Enkelriktad association:
En något mindre vanlig relation mellan två klasser.Den ena klassen är medveten om den andra och interagerar med den. Enkelriktad association modelleras med en rak förbindelselinje som pekar med en öppen pilspets från den medvetna klassen till den kända klassen.
Ett exempel: På din bilresa genom Arizona kan du passera en fartkamera som registrerar din köraktivitet, men du kommer inte att veta om det förrän du får en böteslapp med posten. Det finns inte inritat i bilden, men i det här fallet skulle multiplicitetsvärdet vara 0..* (eftersom du kan köra förbi fartkameran flera gånger).
Exempel på klassdiagram
Det är enkelt att skapa ett klassdiagram för att kartlägga processflöden. Använd de två exemplen nedan när du bygger dina egna klassdiagram i UML.
Klassdiagram för ett ledningssystem för hotell
Ett klassdiagram kan visa relationerna mellan varje objekt i ett ledningssystem för hotell, inklusive gästinformation, personalens ansvarsområden och rumsbeläggning. Exemplet nedan ger en användbar översikt över systemet för hotelledning. Kom igång med ett klassdiagram genom att klicka på mallen nedan.
Klassdiagram för ett system för uttagsautomater
Uttagsautomater, eller bankomater, är till synes enkla maskiner, men även om kunderna bara behöver trycka på några knappar för att ta ut kontanter så finns det många säkerhetslager som en säker och effektiv uttagsautomat måste ha för att förhindra bedrägerier och ge värde till bankkunderna. De olika delarna av ett system för uttagsautomater – både mänskliga och maskinella – illustreras av detta lättlästa diagram där varje klass har sin titel och attributen listas under. Du kan redigera, spara och dela detta diagram genom att öppna dokumentet och registrera dig för ett gratis Lucidchart-konto.
Hur man gör ett klassdiagram
I Lucidchart är det förvånansvärt enkelt att skapa ett klassdiagram från grunden. Följ bara dessa steg:
-
Öppna ett tomt dokument eller börja med en mall.
-
Aktivera UML-formbiblioteket. Klicka på Shapes (Former) på vänster sida i Lucidchart-redigeraren. När du är inne i Shape Library Manager markerar du UML och klickar på Save (Spara).
-
I de bibliotek som du just har lagt till väljer du den form som du vill ha och drar den från verktygslådan till arbetsytan.
-
Modellera processflödet genom att rita linjer mellan former samtidigt som du lägger till text.
Mer information får du i den här guiden till hur man ritar ett klassdiagram i UML. I Lucidchart är det enkelt att ändra storlek och stil på alla element. Du kan till och med importera SVG-former och Visio-filer för en anpassad lösning. Mer information om UML finns i vår handledning Vad är Unified Modeling Language (UML)?