Systemudvikling – Fra idé til kode
Jens Bennedsen 2001Multimedie programmering9.2 Begrebsmodellering Problemspecifikke begreber Problem/vision vedrørende fænomener Realiserede begreber Objekter abstraktion modellering ReferencesystemModelsystem
Jens Bennedsen 2001Multimedie programmering9.3 Begrebsmodellering, igen Problemspecifikke begreber (PSB) er prototypiske Realiserede begreber (RB) er Aristoteliske Udfordring i modellering –at give aristoteliansk definition til prototypiske begreber ReferencesystemModelsystem RBPSB
Jens Bennedsen 2001Multimedie programmering9.4 Syn Grænseflade Interaktion Livsforløb Funktionalitet Arkitektur Begreber
Jens Bennedsen 2001Multimedie programmering9.5 analyse Fokus Test Impl. Krav spec Design
Jens Bennedsen 2001Multimedie programmering9.6 Proces Class Odder {... };
Jens Bennedsen 2001Multimedie programmering9.7 Design versus Analyse Applikationen Abstraktioner Formalisering Intern grænseflade Brugerne Virkeligheden Præcise krav i naturligt sprog Ekstern grænseflade
Jens Bennedsen 2001Multimedie programmering9.8 Basal arkitektur Mål: Udvikling af et system, der består af en række samarbejdende forekomster Struktur af systemet: Class8 Class3Class4 Class2 Class7 Class6 Class1 Class9 Class5 Class3Class4 Class7 Class1 Class8 Class3Class4 Class7 Class1 Class4 Class Grænse flade Grænse flade kompo- nent Funktions- komponent Model- komponent Persistens- kompoent Rela- tionel DB
Jens Bennedsen 2001Multimedie programmering9.9 Eksempel - Nim Hvad skal systemet kunne? –Den aktive spiller skal kunne tage et antal tændstikker –Vise tilstanden af spillet Antallet af tændstikker der er Er spillet slut – og hvem vandt –Vælge antallet af tændstiller til en start –Vælge om man ønsker at spillet endnu et spil Dette er de features systemet skal kunne –Normalt vil man vælge/prioritere mellem dem, men vores system er meget simpelt
Jens Bennedsen 2001Multimedie programmering9.10 Model komponent Hvilke begreber er der i spillet? –Spiller (player) –Stak af tændstikker (pile) –Tændstikker (stick) –Spilfører (gameManager) –Tur (turn) –Vundet(won) –... Player, pile og gameManager er relevante begreber, de andre egenskaber ved begreberne
Jens Bennedsen 2001Multimedie programmering9.11 Hvad dækker begreberne over Class Responsability Collaborator Cards –Et hulkort hvor begrebets Navn Ansvar Samarbejdspartnere –angives Class Pile Colaborators Responsibilites: Do: fjerne tændstikker Know: Antallet af tilbageværende tændstikker
Jens Bennedsen 2001Multimedie programmering9.12 CRC Class Player Colaborators Pile Responsibilites: Do: fjerne tændstikker fra bunken Know: Antallet af tændstikker taget sidst Spillerens navn Class Pile Colaborators Player, Pile Responsibilites: Do: spil spillet i.e. styre sekvenseringen Know: spillerne bunken antallet af tændstikker der kan tages i en tur næste spiller sidste spiller er spillet slut hvem vandt hvis spillet er slut
Jens Bennedsen 2001Multimedie programmering9.13 Klassemodel
Jens Bennedsen 2001Multimedie programmering9.14 Hvordan spiller er spiller?
Jens Bennedsen 2001Multimedie programmering9.15 Grænseflade Når der sker noget i bunken, skal det afspejles i grænsefladen –Lad Pile.remove(..) kalde en operation i grænsefladen med informationen –Forkert afhængighed Ændringer i grænsefladen => ændringer i Pile –Fortæl grænsefladen at der er sket noget, og lad grænsefladen selv håndtere hvad der derefter skal ske Observer – det eneste modellen ved, er at gr.fl. har en update operation
Jens Bennedsen 2001Multimedie programmering9.16 Interaktion (Model gr.fl.)
Jens Bennedsen 2001Multimedie programmering9.17 GameManager.play()
Jens Bennedsen 2001Multimedie programmering9.18 Specifikation Pile Player GameManager
Jens Bennedsen 2001Multimedie programmering9.19 Kode
Jens Bennedsen 2001Multimedie programmering9.20 Specifikation