Post on 08-Jan-2016
description
nextprevious
OCTOPUS en kort repetitionFarthållare
Objektorienterad Realtidsprogrammering
2000
Objektorienterad Realtidsprogrammering
2000Föreläsning 11Tisdag 6/6 2000
previous next 2
OCTOPUS: Farthållare
OCTOPUS• Kravspec
– Vi konstruerar bla användningsfall
– Användningsfallsdiagram
• Systemarkitektur– Dela upp systemet på
• applikationsdel
• hårdvara
• hårdvaruwrapper(s)
previous next 3
OCTOPUS: Farthållare
...• Delsystem analysfas
– skapa objektmodeller• statisk struktur
– funktionell modell• funktionalitet
– dynamisk modell• operationer mellan "applikationsgränser"
• ta hänsyn till realtidsspecifika aspekter
• analysera händelser, tillstånd, mm
previous next 4
OCTOPUS: Farthållare
...• Delsystem designfas• Delsystem implementationsfas
previous next 5
OCTOPUS: Farthållare
Farthållare• Som exempel skapar "vi" en farthållare
– huvudsyfte: hålla konstant fart
– farthållaren konstrueras för en automatväxlad låda• kan operera då högsta växeln ilagd
• föraren skall när som helst kunna ”återta kommandot”
• opereras från speciell meny
Awad figur 1-14
previous next 6
OCTOPUS: Farthållare
Användningsfall• Vi identifierar användningsfall
– På systemnivå U1-U3– Autonoma U4-U5– Vissa nästlade eller relaterade till föregående, tex U6, U10-U12– Exceptions U7-U9
användningsfallsdiagramAwad figur 10-1
Tolv användningsfallAwad figur s 200-204
previous next 7
OCTOPUS: Farthållare
Systemkontextmodell• (mjukvaru-)systemet och dess relationer till
omgivningen/hårdvaran
Awad figur 10-2
previous next 8
OCTOPUS: Farthållare
Hårdvara• Vissa ”hårdvaruregler”
• Två avbrott INT0 och INT1, den första ”triggas av” rotationspuls och den senare av 10ms timer
• RealtidsOS med kvasiparallella processer, preemption
• Oset kan– schedulera process
– schedulera process med fördröjning
– stänga av respektive slå på avbrottsmöjlighet
– stänga av respektive slå på kontextbyte
Awad figur 10-3och 10-4
previous next 9
OCTOPUS: Farthållare
Analys av applikationens delsystem• Vi "behöver" bara ett delsystem i applikationen
Objektmodell, delsystemAwad figur 10-6
DelsystemdiagramAwad figur 10-6
Beskrivning av omgivningAwad tabell 10-1 och 10-2
previous next 10
OCTOPUS: Farthållare
Funktionell modell• Operationerna O1-O7
Awad figur s 211-213
previous next 11
OCTOPUS: Farthållare
Dynamisk modell• I den dynamiska modellen analyserar vi
– händelser
– tillstånd
– därefter gör vi en fördjupad analys av både händelser och tillstånd tillsammans
– vi tittar också på interaktionen mellan objekten
previous next 12
OCTOPUS: Farthållare
Analys av händelser• Identifiera händelser• Ordna händelser i hierarkier• Beskriv händelser
Awad figur s 214-217
previous next 13
OCTOPUS: Farthållare
Analys av tillstånd• Vilka tillstånd har dom ingående objekten?• Vilka är objektens associationer?• Hur sker tillståndsövergångar?• Vilka "aktiviteter" sker?
Awad figur 217-219
previous next 14
OCTOPUS: Farthållare
Utvidgad analys av händelser och tillstånd• Vi undersöker/avgör vilka händelser som är kritiska,
viktiga respektive kan ignoreras samt är neutrala i ett visst tillstånd
exempletAwad tabell 10-6
metodAwad s 86-87
previous next 15
OCTOPUS: Farthållare
...• Vi ser om vi kan slå ihop händelser också
exempletAwad tabell 10-7 till 10-9
metodAwad s 87-88
previous next 16
OCTOPUS: Farthållare
Delsystem-omgivning: interaktionsdiagram• Några typiska scenarier när objekt i omgivningen
interagerar
Awad figur 10-11till 10-13
previous next 17
OCTOPUS: Farthållare
Analys och design av hårdvaruwrapper• Vi tittar på applikationsobjekten och relaterar dem till
– logisk vy
– fysisk vy
– avbildning av vy
Awad s 224-228
previous next 18
OCTOPUS: Farthållare
Objektmodell och andra beståndsdelar av hårdvaruwrappern
• Dom två avbrotten INT0 och INt1 generarar alla primitiva händelser antingen via avbrottsservicerutinerna ISPRINT0 och ISPRINT1 eller indirekt genom att ”ticka” OS:et
Objektmodellfigur 10-15
Awad tabell 10-10till 10-11
previous next 19
OCTOPUS: Farthållare
Funktionell modell för hårdvaruwrapper•
Awad s 231-232
previous next 20
OCTOPUS: Farthållare
Dynamisk modell för hårdvaruwrapper• Precis som för delsystemen analyserar vi
– händelser
– tillstånd
– och interaktion för hårvaruwrappern
previous next 21
OCTOPUS: Farthållare
... analys av händelser• Vi undersöker vilka dom primitiva händelserna är
• Vi grupper också händelserna
Awad tabell 10-12
Awad figur 10-16
previous next 22
OCTOPUS: Farthållare
... analys av tillstånd• för vissa klasser gör vi tillståndsdiagram
Awad figur 10-17till 10-18
previous next 23
OCTOPUS: Farthållare
... analys av scenarier• För att bena ut hur instanser av klasser i wrappern
reagerar på frågor från tillämpningen och interagerar med hårdvara och operativsystem så konstruerar vi sekvensdiagram
Awad figur 1-19till 10-20
previous next 24
OCTOPUS: Farthållare
Design av hårdvaruwrappern• Hårdvaruwrappern drivs av två avbrott
– INT0
– INT1
• Dom genererar alla primitiva händelser antingen direkt eller via avbrottsservicerutinerna– ISPRINT0
– ISPRINT1
previous next 25
OCTOPUS: Farthållare
Design av händelsetrådar• Händelsetrådsar, Awad figur 6.13
• Synkron kontra asynkron – Välja ut vad som ska vara vad i händelsetråden, Awad figur 6.14
• Kvalificerade händelsetrådar, Awad figur 6.16
• Objektgrupper– Maximal mängd, Awad figur 6.17
– Överlagra händelsetrådar, Awad figur 6.18
– “fair set”, Awad figur 6.19
– Balansering, Awad figur 6.20
previous next 26
OCTOPUS: Farthållare
... design av hårdvaruwrappern• Följande figur visar händelsetråden för dom primitiva
hårdvaruhändelserna rotation pulse, take measurement och poll input
• Dom kommer från antingen ISPRINT0 eller ISPRINT1 och är alla synkrona
Awad figur 10-21
previous next 27
OCTOPUS: Farthållare
... design av hårdvaruwrappern• Nästa figur visar i mer detalj hur interaktion för
CES1/CSA1 (Command Event Set 1/Control Signal Assignment 1) svarar mot 15.2 i figur 10-21 (dvs poll input till Command Interface)
Awad figur 10-22
• Resten av dom primitiva händelserna är mjuka, throttle update, pulse tick och blink tick. Dessa genereras indirekt av operativsystemet
Awad figur 10-23
previous next 28
OCTOPUS: Farthållare
...• Nästa figur, Awad figur 10-24, slår ihop
händelsetrådarna från dom tidigare figurerna i kvalificerad form
• Trådarna grupperas vilket resulterar i två objektgrupper WG1 och WG2
• Även om vissa av dom genererade applikationshändelserna naturligt definierar rötterna till flera objektgrupper så spar vi definitionerna av dessa tills dess att vi designar applikationens delsystem
previous next 29
OCTOPUS: Farthållare
...• En skiss av processernas funktioner och
avbrottshanterande rutiner följer i Awad s 239-242
previous next 30
OCTOPUS: Farthållare
Design av applikationens delsystem• Från designen av hårdvaruwrappern får vi insikt i vilka
händelser som kan skickas till applikationens delsystem• Från kunskaper från scenarier och objektmodeller
konstruerar vi händelsetrådar för varje händelse
Awad figur 10-25visar alla händelser
hörande till händelsegruppenCommand
Awad figur 10-26visar händelsetrådarnaför övriga händelser
previous next 31
OCTOPUS: Farthållare
...• Vi delar upp det hela på två grupper
Awad figur 10-27
Awad figur 10-28
– Icke kommandoorienterade objektgrupper
– Kommandoorienterade objektgrupper
previous next 32
OCTOPUS: Farthållare
Översikt av processen• Hårdvaruwrappern skickar endast vidare händelsen rotation pulse, vilket medför att G3 styrs av avbrottsrutinen för INT0
• Pss styrs G1 av INT1• G2, G4 och G5 använder OS-processer
Awad s 246-247
previous next 33
OCTOPUS: Farthållare
Delade objekt och synkronisering• Den valda grupperingen och att dom exekverar via
oberoende exekveringsvägar resulterar i en del delade objekt
• För dessa analyserar vi om ”hanteringen” är kritisk, om avbrottsmöjlighet skall stängas av eller om kontextbyte skall stängas av
Awad tabell 10-13
previous next 34
OCTOPUS: Farthållare
Utkast av koden• Slutligen tittar vi på utkast av koden för delsystemet
Awad s 248-251