Uppsala universitet, inst f Informationsteknologi, avd f teknisk databehandling
Programmeringsteknik I, X, ht06.
Torsten Jarkrans, Mats Cedvall

Kort om UML och klassdiagram

UML (Unified Modeling Language) är ett språk för att "specificera, visualisera och konstruera artefakter för ett mjukvarusystem" skriver Booch, Jacobson och Rumbaugh (the three Amigos) i det dokument som specificerar UML. Det finns många typer av artefakter (diagram och andra dokument) i UML.
Ett klassdiagram är en kompakt beskrivning av klasser och visar också hur klasserna är relaterade till varandra. (Se även i kursboken Lewis och Loftus 5:e upplagan sid 195-196).

Exempel 1 - Klassen BankKonto
Antag att en klass för ett bankkonto skall innehålla information om kontonummer, saldo och räntesats samt metoder för att sätta in pengar på kontot, ta ut pengar och skriva ut kontots saldo samt att lägga årsränta till kontots saldo. Klassdiagrammet kan se ut så här:

BankKonto
-kontonr : String
-saldo : double
-räntesats : double
+BankKonto()
+BankKonto(String,double,double)
+sätt_in_pengar(double) : void
+ta_ut_pengar(double) : void
+skrivut_saldo() : void
+läggtill_årsränta() : void
+hämta_saldo() : double

Klassdiagrammet ger information om att:

Exempel 2 - Klassen Atom
I en modell av en atom kan vi antaga att det finns ett antal protoner, neutroner och elektroner. Protonerna är positivt laddade och elektronerna är negativt laddade. Neutronerna är oladdade.

Masstalet för en atom definieras som summan av antalet protoner och neutroner. Atomnr för en atom definieras som antalet protoner. Atomvikten för en atom definieras som summan av enhetsvikterna för protonerna, neutronerna och elektronerna. Antag att enhetsvikten för en proton är 1.00730, en neutron 1.00870, en elektron 0.00050. Om en atom exvis innehåller en proton, ingen neutron och en elektron (dvs det är en väteatom) blir atomvikten 1.0078.

Atom
-namn: String
-antp: int
-antn: int
-ante: int
+Atom()
+Atom(String,int,int,int)
+getAtomNr() : int
+getMasstal() : int
+getAtomvikt() : double

Följande kan utläsas av klassdiagrammet:

Exempel 3 - Biblioteket med flera klasser
Här finns fem st klasser: Bibliotek, Bok, DVD, Lantagare och gemEgenskaper, där gemEgenskaper är sådant som är gemensamt för Bok och DVD.
Relationerna mellan klasserna finns med i klassdiagrammet.
Siffrorna på linjerna visar kardinaliteten, dvs hur många objekt av en klass som svarar mot hur många av det andra. Asterisken i 1 innehåller * anger att Biblioteket kan innehålla godtyckligt många objekt av klassen Bok, under det att en Bok bara kan finnas i ett (1) Bibliotek.


Bibliotek innehåller:

Bibliotek har metoder för: Bok innehåller: Samt diverse metoder för att manipulera innehållet (set-metoder) resp. att hämta innehållet (get-metoder).

DVD innehåller:

Samt diverse metoder för att manipulera innehållet (set-metoder) resp. att hämta innehållet (get-metoder).

Lantagare innehåller:

Samt diverse metoder för att manipulera innehållet (set-metoder) resp. att hämta innehållet (get-metoder).

gemEgenskaper innehåller gemensamma egenskaper för klassen Bok och DVD:

Samt diverse metoder för att manipulera innehållet (set-metoder) resp. att hämta innehållet (get-metoder).