Programmering nivå 2
Kap 3.6 – UML för objektmodeller
Planera objektorienterade program med klassdiagram, attribut, metoder och relationer.
Mål med lektionen
När du har arbetat klart med denna lektion ska du:
- Förstå vad ett UML-klassdiagram är och hur det används för att planera programstruktur.
- Kunna tolka enkla UML-diagram och koppla dem till kod.
- Kunna skapa egna UML-klassdiagram med attribut, metoder och relationer.
Så här lär du dig bäst
UML är inte kod. Det är ett visuellt språk för att strukturera din kod innan du skriver den. Studera exemplen noggrant och försök sedan att omvandla UML till kod, eller kod till UML. UML hjälper dig att få överblick och planera logiskt.
Centrala begrepp
- UML: ett standardiserat sätt att rita upp system och programstruktur.
- Klassdiagram: en UML-modell som visar klasser, attribut, metoder och relationer.
- Attribut eller fält: variabler som hör till en klass eller ett objekt, till exempel
self.nameellerself.balance. - Metoder: funktioner som hör till en klass eller ett objekt.
- Association: en relation mellan två klasser.
- Arv: en relation där en klass ärver från en annan.
UML för objektmodeller
Ett klassdiagram visar ofta varje klass som en ruta med tre delar:
- klassens namn,
- attribut, alltså fält eller variabler,
- metoder, alltså funktioner eller beteenden.
Exempel: klassdiagram för Dog
classDiagram
class Dog {
-string name
-int age
+bark() void
+haveBirthday() void
}
Symbolerna betyder:
+betyder publik.-betyder privat.#betyder skyddad, alltså protected.- Typen, till exempel
stringellerint, visar vilken datatyp attributet har.
Relationer mellan klasser: arv
Arv visas med en pil från subklassen till basklassen. Här ärver Dog från
Animal.
classDiagram
Animal <|-- Dog
class Animal {
+speak() void
}
class Dog {
+bark() void
+speak() void
}
Association mellan klasser
Association betyder att två klasser har en koppling. En student kan till exempel gå på en skola.
classDiagram
Student --> School : attends
class Student {
-string name
-int age
+printInfo() void
}
class School {
-string name
-string city
+addStudent(student) void
}
Exempel: bankapplikation
En enkel bankmodell kan innehålla kunder, konton och en bank. Diagrammet visar att en bank har kunder och att en kund kan ha konton.
classDiagram
Bank -- Customer : has
Customer -- Account : owns
class Bank {
-string name
+addCustomer(customer) void
+findCustomer(name) Customer
}
class Customer {
-string name
-string customerId
+addAccount(account) void
+getAccounts() list
}
class Account {
-string accountNumber
-float balance
+deposit(amount) void
+withdraw(amount) bool
+getBalance() float
}
Öva: analysera och skapa UML
- Skapa ett klassdiagram för en enkel bankapplikation med klasserna
Customer,AccountochBank. - Visa vilka attribut och metoder som varje klass har.
- Rita ut associationer, till exempel att en kund kan ha flera konton.
- Omvandla ett tidigare program du skrivit till ett UML-diagram.
Verktyg att använda
Du kan rita UML för hand eller med digitala verktyg som draw.io, Lucidchart, yEd eller StarUML. Det viktiga är inte programmet utan att du kan strukturera och förklara din idé.
Sammanfattning
- UML-klassdiagram visar klasser, attribut, metoder och relationer visuellt.
- De hjälper dig att planera, förklara och strukturera din kod.
- Arv, association och inkapsling kan visas grafiskt.
- UML är ett kraftfullt analysverktyg för objektorienterad programmering.