You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 4 Next »

Klassediagrammer er en illustrasjon av innholdet i og sammenhengen mellom klasser, som et supplement til tekslig kode. Et klassediagram viser klasser som bokser, attributter og operasjoner som tekstlinjer inni boksene (i hver sine deler) og assosiasjoner og arv som streker med. I tillegg annoteres assosiasjonsstreker med informasjon om navn og såkalt multiplisitet (også kalt kardinalitet). Figuren under viser et enkelt klassediagram med tilsvarende Java-kode til høyre.

PersonString firstNameString familyNameString getFullName()CarString brandownershipowner: 1cars: *
class Person {
	String firstName
	String familyName
	String getFullName()
	Collection<Car> cars
 }

class Car {
	String brand
	Person owner
}

Figuren lengst til venstre viser et klassediagram med to klasser. Person-klassen har to attributter og én operasjon/metode, mens Car-klassen har ett attributt. Person- og Car-klassene er knyttet sammen med en ownership-assosiasjon. ownership-assosiasjon er annotert med "owner: 1" i Person-enden og "cars: *" i Car-enden, for å indikere hvordan assosiasjonen forstås fra hver ende:

  • Fra Person-enden kan en komme til Car-enden via cars-rollen, og *-tegnet indikerer at én Person-instans kan være knyttet til flere Car-instanser.
  • Fra Car-enden kan en komme til Person-enden via owner-rollen, og 1-tegnet indikerer at én Car-instans bare kan være knyttet til én Person-instans.

Diagrammet tilsvarer omtrent Java-koden som er vist til høyre. Vi ser at attributter og operasjoner i klassediagrammet tilsvarer felt og metoder i Java-koden. Assosiasjonene har ikke noe direkte Java-motstykke, men en finner igjen assosiasjonsrollene som felt som brukes som implementasjonsteknikk. Når en instans kan være koblet til flere andre instanser, så må en bruke Collection (evt. array, List eller Set) og ikke en enkel type.

  • No labels