Presentation laddar. Vänta.

Presentation laddar. Vänta.

Objektorienterad Realtidsprogrammering

Liknande presentationer


En presentation över ämnet: "Objektorienterad Realtidsprogrammering"— Presentationens avskrift:

1 Objektorienterad Realtidsprogrammering
2000 Föreläsning 9-10 Analysera beteende - Mer om att beskriva tillstånd och beteende med interaktionsdiagram - tillståndsdiagram tillståndsövergångar, villkor, parallella maskiner, inre maskiner, fork och join, signaler, history, arv mellan maskiner - scenarier och tidsdiagram Design - Vad är design? - Objektinteraktion, trådar och händelser

2 Beteende Viktigt är att beskriva ett systems struktur med hjälp av bla klassdiagram En annan viktig del av systemkonstruktionen är att beskriva dom ingående objektens beteende Ett vanligt och relativt kraftfullt sätt att beskriva beteende för ett objekt i form av att beskriva dess tillstånd och reaktioner på händelser är att använda tillståndsdiagram

3 Tillståndsdiagram Ett objekts olika tillstånd och sätt att ändra tillstånd kan beskrivas med ett tillståndsdiagram keyPress Idle Running shutDown finished

4 Tillståndsdiagram: grundläggande syntax
Start Övergång event(arguments)[condition] / action State name variable: Type = initialvalue entry / action do / activity exit / action event / action(arguments) State name Tillstånd Slut

5 Tillståndsdiagram: övergångar
ovillkorliga övergångar after(2 seconds)/send c.isAlive noise Idle Searching Engaging targetAt(p) [isThreat]/ t.addTarget(p) Tracking Engaging contact

6 … händelser, parametrar och signaler
Ett tillståndsdiagram kan reagera på händelser och reagera genom att utföra operationer vid övergångarna mellan dom olika tillstånden Övergångarna kan också vara villkorade och olika grenar kan väljas beroende av villkor D s 136

7 … olika deltillstånd och symboler
D s 139

8 ... D s 143

9 … grenar (med val) och föreningspunkter
D s 144

10 ... D s 147

11 ... D s 148

12 … nästlade tillstånd D s 150

13 ... Heating shutDown Idle toCold(desiredTemp) toHot(desiredTemp)
atTemp Heating atTemp Cooling Activating ready/turnOn() toHot(desiredTemp) Active toCold(desiredTemp)

14 ... Active cardInserted Idle cancel Validating maintain [continue]
Maintenance Selecting Processing [not continue] Printing entry/readCard exit/ejectCard

15 … parallella tillstånd i en maskin
D s 151

16 … fork, join och propagerade tillstånd
D s 153

17 ...signaler och propagerade tillstånd
D s 154

18 … synkronisering D s 156

19 … delmaskiner D s 158

20 … arv mellan tillståndsmaskiner

21 Exempel: pacemaker (4.3.5) En pacemaker är ett system i vilket dom flesta ingående objekten med fördel använder sig av tillståndsmaskiner för att beskriva sitt beteende

22 D s 161 (problemformulering)

23 … klassdiagram D s 163

24 … lässwitch D s 164

25 … coil driver D s 165

26 … communication gnome D s 166

27 … chamber model D s 167

28 … atrial model D s 168

29 … ventricular model D s 169

30 Dynamisk modellering två exempel
Som exempel på hur scenarier, objektmodeller, sekvensdiagram och tillståndsdiagram kan se ut i en mer sammanhållen beskrivning tittar vi på två exempel först metodiken, appendix 2 s 1 sen ett exempel telefonsamtal med scenario och sekvensdiagram, appendix 2 s 2-3 och slutligen ett billarm med ”kravspec”, objektmodell, scenario, händelseflödesdiagram, sekvensdiagram samt tillståndsdiagram, appendix 2 s 4-11

31 Design Vad är design? Vad säger några i väldig förenkling: Enligt RUP
I design formar vi systemet så att det lever upp till alla krav. Fysisk modell. Specifik för viss implementation. Enligt OCTOPUS Målet är att systematiskt ta analysmodellen och skapa en beskrivning av hur systemet skall fungera på en abstraktionsnivå närmast över ett programmeringsspråk. Vi skapar en explicit modell och beskriver hur objekt interagerar med varandra. Enligt Douglass Definierar lösningar som optimerar applikationen och tar hänsyn till speciella krav och mål i projektet samtidigt som den inte bryter mot analysens beskrivningar. Design handlar alltid om optimering

32 Objekt Ett objektdiagram består av klasser, instanser och associationer Awad 6-3, s 98

33 Objektinteraktion Server-klient-modeller Objektinteraktion Trådar
objektinteraktion är riktad och punkt-till-punkt den som frågar kallas för klient och den som genomför kallas server Objektinteraktion Vi tittar på systemet och ser hur olika objekt samarbetar Speciellt tittar vi på hur objekt reagerar på dom i analysen definierade händelserna och därmed följande kontrollflöde i vilket andra objekt indirekt reagerar Detta "flöde" brukar kallas objektinteraktion Trådar om en given objektinteraktion helt kan genomlöpas av en enda tråd talar vi om objektinteraktionstråd

34 …notation (OCTOPUS) Interaktionsgraf med intern delay med två trådar
Awad 6-4, s 100 med intern delay Awad 6-5, s 101 med två trådar Awad 6-6, s 102

35 … kommunikation med tillståndsdiagram
Vi kan integrera tillståndsdiagram i objektinteraktionsgrafen Awad 6-7, s 104 Nyckelordet statechart används för att indikera kommunikation med tillståndsdiagram Läsning respektive skrivning indikeras med hjälp av R respektive W

36 … händelsetrådar Följande figur
Awad 6-8, s 106 Illustrerar hur en händelse från en "originator" till en "controller" leder till ett händelseflöde Objekt i omgivningen placeras underst Om interaktion med originatorn skall ske så måste denna också (parallellt) placeras nederst då den initiala händelsen bara är "triggande" utan association

37 … icke kvalificerade händelsetrådar
Börja med interaktionsmodell där vi antar momentan behandling, s.k. icke kvalificerad interaktionsmodell Bra att börja med denna idealiserade modell och först senare införa asynkrona meddelanden, returmeddelanden och mer användning av interna väntepunkter osv

38 … konstruktion av händelsetrådar
Vi bygger händelsetrådar till ett visst delsystem genom att gå igenom dom händelser vi identifierat i analysen och utför följande sju steg 1 Välj en ännu icke behandlad händelse 2 Identifiera ett objekt som påverkas av händelsen 3 Designa och "bokför" efterföljande interaktion 4 Slå ihop den nya interaktionstråden med tidigare 5 Repetera steg 3 så länge nya involverade objekt kan hittas 6 Repetera från steg 1 tills alla händelser genomgångna 7 Iterera och balansera användningen av objekt och tillståndsdiagram

39 ... Följande bilder illustrerar förloppet Awad s 110-111
Se också beskrivningen och förklaringarna på dessa sidor

40 Tidsdiagram I elektronikindustrin har tidsdiagram använts länge vid design av elektronisk tillståndsmaskiner Ett tidsdiagram är ett diagram med tiden längs den horisontella axeln och objektens tillstånd längs den vertikala D s , 178


Ladda ner ppt "Objektorienterad Realtidsprogrammering"

Liknande presentationer


Google-annonser