Hvordan lager man et klassediagram?

3 innlegg i emnet

Skrevet

Jeg skal lage et klassediagram til et fiktivt system i et skoleprosjekt, og er usikker på hvordan jeg skal identifisere klassene i programmet.

Når man har logget seg inn som bruker (bruker er vel en klasse) kommer man til hovedbildet hvor man kan velge ulike funksjoner. Blir da hovedbildet en klasse med funksjonene som objekter av den klassen?

Videre når man velger en funksjon, feks. arbeidsoppgaver og timeregistrering, så får man et nytt dialogvindu hvor man har tilgang til funksjonene: "arbeidsoppgaver, "timerapporter", "timeregistrering". Blir igjen funksjonen arbeidsoppgaver og timereg. klassen, og underfunksjonene objekter av den klassen?

Her er forøvrig bruksmønsteret til programmet.

Hvis brukeren velger Arbeidsoppgave og timeregistrering, utføres S-1: TimeReg

Hvis brukeren velger Reiseregning, utføres S-2: ReiseRegning

Hvis brukeren velger Prosjektregnskap, utføres S-3: Prosjektregnskap

Hvis brukeren velger Faktureringsfunksjon, utføres S-4: FaktureringsFunksjon

Hvis brukeren velger Dokumentarkiv, utføres S-5: Dokumentarkiv

Hvis brukeren velger Programarkiv, utføres S-6: Programarkiv

Hvis brukeren velger Dokumentarkiv, utføres S-7: Dokumentarkiv

Hvis brukeren velger Kalenderfunksjon, utføres S-8: Kalenderfunksjon

Hvis brukeren velger Fraværsfunksjon, utføres S-9: Fraværsfunksjon

Hvis brukeren velger Møtereferater, utføres S-10: Møtereferater

Hvis brukeren velger Søkemotor, utføres S-11: Søkemotor

Hvis brukeren velger Send e-post og SMS, utføres S-12: EpostSMS

Hvis brukeren velger rapportering, utføres S-13: rapportering

Hvis brukeren velger Min side, utføres S-14: MinSide

0

Del dette innlegget


Lenke til innlegg
Del på andre sider

Skrevet (endret)

Et klasse diagram beskriver strukturen av systemet i form av objekter, felt(atributter, variabler) og handlinger(metoder/funksjoner) og

forholdet mellom de ulike klassene.

Og en klasse er en samling av objekter instansiert av klassebeskrivelsen, som deler et sett av felles felt og handlinger som

skiller dem fra de andre objektene.

Når du har definisjonene på plass, så må du identifisere de ulike klassene du har med å gjøre, og da benytter du abstraksjon.

Er bare et fancy ord for å fjerne uvesentlige ting fra det klassen. Altså en prøver å få klassen til å være monogam, holde seg

til en partner av gangen, der "partner", da blir en hovedoppgave.

Det enkleste er å begynne veldig generellt, sorter ut ulike oppgaver som ikke har med hverandre å gjøre. når du har gjort det, se om disse igjen kan deles inn i mindre deler, har noen felles egenskaper osv.

Kan jo begynne med TimeReg eksempelvis, hvem er timene relatert til, en ansatt?..Okei da trenger du et ansatt objekt, men variabel

for navn og timer, og set/get metode for disse.

Samme med arbeidsoppgave, en arb oppgave innholder gjerne beskrivelse, anntatt varighet, tidspunkt, hvor osv. som kan plasseres i et eget objekt, Og hvem utfører oppgaven...en ansatt ?..okei da må ansatt ha en link(objekt referanse til en arb oppgave.

Reiseregning...igjen..et eget objekt...med beskrivelse av destinasjon fra og til, transportmåte, tidspunkt gjerne, kost/losji,

osv.

Prosjektregnskap...igjen...her må du ha en samling av prosjekter, der hvert prosjekt er et eget objekt.

Faktureringsfunksjon...igjen et eget objekt.

Du vet ikke eksakt hva som skal være i en faktura, men det er ikke vesentlig heller i denne sammenhengen, Vil tenke meg at den

må hente informasjon fra den som fakturane senes fra, og den som den sendes til..altså en kunde, som igjen blir et eget objekt.

Kalenderfunksjon blir en egen klasse, spesifikk utforming er ikke nødvendig i denne sammenhengen

Fraværesfunksjon, blir en metode i ansatt klassen, setFravær(int timerFravær){ this.timerFravær + + timerFravær } eksempelvis

Møtereferat...egen klasse, beskrivelse av møtet, møtedeltagere, osv...

Søkemotor..egen klasse, spesifikk utforming er ikke nødvendig i denne sammenhengen

Sende epost...egen klasse, spesifikk utforming er ikke nødvendig i denne sammenhengen

Repportering..tja...hva skal raporteres ?

Min side...et eget objekt som da er koblet mot et ansatt objekt...altså ansatt klasse må ha en peker til et MinSide objekt. ?

------------

Dette var en kort og grov skisse for inndeling som jeg gjorde på et par min, ...så er det noe som kan dels inn videre?(refakturere og dekomponere videre) er det ting som kan samles? Hvordan er de koblet sammen ?

Utformingen av et klassediagram er i realiteten kun endel av det å lage større programmer/software engineering, for objekt orientert programmering. Du har formelle og akademiske tilnærminger, best case tilnærminger, tilnærminger spesifikk for en organsiasjon, økonomsike tilnærminger og ikke minst, et rent kost/nytte forhold i forhold til coder og kunde og oppgave og de som skal velikeholde koden.

Men ihvertfall så vil et klassediagram være et hjelpemiddel for å beskrive og identifisere utad og for deg selv, hvordan du tenker at systemet skal være, om det er fleksibelt og kan utvides, og om du faktisk implementerer de oppgavene som er nødvendig for å løse en oppgave.

Om du vil vite mer om klasse diagrammer osv, gjør et like goodle/live søk

http://www.google.no/search?hl=no&q=cl...am+uml&meta=

http://www.objectmentor.com/resources/arti...assDiagrams.pdf

http://www.agilemodeling.com/artifacts/classDiagram.htm

Endret av exchange
0

Del dette innlegget


Lenke til innlegg
Del på andre sider

Skrevet

Takk for utfyllende svar!

Det hjelper meg veldig:)

0

Del dette innlegget


Lenke til innlegg
Del på andre sider

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!


Start en konto

Logg inn

Har du allerede en konto? Logg inn her.


Logg inn nå

  • Hvem er aktive   0 medlemmer

    Ingen innloggede medlemmer aktive