MMP 11
2 Model og Metode til Programudvikling – MMP 1 Kursusindhold: Modellering af postkontor Objekt Orienteret Programudvikling - OO* Unified Modelling Language - UML Værktøjer Eksempel Projekthjælp Human Computer Interface - HCI Objektorientering og C Struktureret Programudvikling - SPU –V-model, SPU/UML, Review, Testmetoder C-verifikation (Splint Opgaver: En blanding af eksemplificerende og direkte projektrelaterede
MMP 13 Modellering og simulering af Posthus - 1 Dagens emner: Generelt om modellering: –hvorfor & hvordan Postkontoret: –formål, afgrænsning, funktionalitet Struktur – nedbrydning i delsystemer Objekter: –definition, adfærd, data og operationer Klasser Referencevariable (pointere)
MMP 14 Modeller – hvorfor? SUMMEOPGAVE: Find mindst 3 gode grunde til at bruge simuleringsmodeller? Sikkerhed Hurtighed Mulighed for gentagelse Forudsigelser/planlægning Pris Træning
MMP 15 Opdeling af komplekse modeller Hvorfor? Når vi forsøger at forstå store og komplekse dynamiske systemer, begrænses vi af vores hjernekapacitet. Vi kan kun relatere få ideer på samme tid, og tvinges derfor til at splitte større systemer op i mindre dele, som vi kan håndtere. Med en fornuftig opdeling kan vi koncentrere os om en mindre del af systemet af gangen.
MMP 16 Top-down opdeling Bil MotorHjulKarosseri
MMP 17 Eksempel: Et postkontor Formålet med modelleringen er at etablere en forståelsesplatform for folk som er interesseret i: Kø-problemer Servicering af kunder Arbejdsbyrde for ekspedienter
MMP 18 Postkontor - afgrænsning Kunderne har kun én dør til rådighed Modellen beskæftiger sig ikke med det der er udenfor døren Døren repræsenterer kundernes ankomst og afgang fra posthuset Ved ankomsten ”udstyres” kunderne med en liste over de opgaver de skal have løst på posthuset Statistisk viden om hvornår kunder ankommer og hvilke opgaver de har er hentet fra observationer af et virkeligt posthus og benyttes af døren
MMP 19 Postkontor - funktionalitet Postkontoret har 4 diske, én kun til pakker og 3 til betalinger, brevekspedition samt bestillinger Diskene bemandes efter behov Kunderne vælger, på baggrund af deres opgaveliste, en passende bemandet disk Hvis der ikke er kø og ekspedienten er i færd med andet arbejde kontakter kunden ham Er der kø venter kunden til det er hans tur Når ekspeditionerne er udført skiftes disk, hvis der er flere opgaver, ellers forlades posthuset
MMP 110 Modellering - struktur Disk Postkontor System Dør Del-systemer
MMP 111 Del-systemer Disk KøEkspedient Kunde Første Kunde Næste Sidste
MMP 112 Slut på Top-Down Kunde Liste af opgaverUdfør alle opgaver
MMP 113 Objekter Kunde Liste af opgaver Udfør alle opgaver Navn Data (tilstand) Adfærd Generelt
MMP 114 Adfærdsbeskrivelse Hvordan? Simpelt sprog Simple konstruktioner: HVIS.... SÅ.... ELLERS.... GENTAG.... INDTIL.... Og lignende Konsulter listen af opgaver og vælg en disk; Stil op i diskens kø; HVIS ekspedienten er fri SÅ kontakt ham ELLERS vent i køen indtil det bliver din tur; Deltag i ekspeditionerne; Forlad disken; HVIS der er flere opgaver GENTAG disse handlinger ELLERS forlad posthuset; Liste af opgaver Kunde Eksempel:
MMP 115 Hvad er kunden i gang med? Kunde I gang med? Liste af opgaver Konsulter listen og vælg disk; Gå til disk; Kontakt eller vent; Deltag; Forlad disken; HVIS flere opgaver SÅ gentag ELLERS forlad ph.; Kunde I gang med? Liste af opgaver Konsulter listen og vælg disk; Gå til disk; Kontakt eller vent; Deltag; Forlad disken; HVIS flere opgaver SÅ gentag ELLERS forlad ph.;
MMP 116 Data/variabel - format Data eller variable kan være: Statiske Dynamiske Men formatet er ens: TypeNavnVærdi HeltalAntOpg5 Eksempel:
MMP 117 Dynamiske variable - operationer Kunde I gang med? HELTAL AntOpg 4 Liste af opgaver GENTAG: Konsulter listen og vælg disk; Gå til disk; Kontakt eller vent; Deltag; Forlad disken; AntOpg:=AntOpg – 1; INDTIL AntOpg = 0; Forlad posthuset;
MMP 118 Klasser - definition En klasse er en samling af objekter med samme struktur: Navnetype Variabeltyper Adfærdsmønster Når der oprettes specifikke objekter af en given klasse får de deres eget: Navn Varible (f.eks. Antal opgaver og arten af dem) Pointer til hvor i adfærden de er (i gang med)
MMP 119 Klasser og objekter på posthuset Posthusets delsystemer kan udgøres af: Et variabelt antal objekter af klassen: KUNDE 4 objekter af klassen: DISK 4 objekter af klassen: KØ 4 objekter af klassen: EKSPEDIENT 1 objekt af klassen: DØR
MMP 120 Del-systemer Disk KøEkspedient Kunde Første Kunde Næste Sidste
MMP 121 Reference variable (pointere) Kø 1 I gang med REF (KUNDE) Første Adfærd Kunde 1 I gang med REF (KUNDE) Næste Adfærd
MMP 122 Eksempel: En Kø Kø 1 Første Kunde 1 Næste Kunde 2 Næste Kunde 3 Næste TOM Sidste