340 likes | 528 Views
OCTOPUS en kort repetition Farthållare. Objektorienterad Realtidsprogrammering 2000. Föreläsning 11 Tisdag 6/6 2000. OCTOPUS. Kravspec Vi konstruerar bla användningsfall Användningsfallsdiagram Systemarkitektur Dela upp systemet på applikationsdel hårdvara hårdvaruwrapper(s).
E N D
OCTOPUS en kort repetitionFarthållare Objektorienterad Realtidsprogrammering 2000 Föreläsning 11 Tisdag 6/6 2000
OCTOPUS • Kravspec • Vi konstruerar bla användningsfall • Användningsfallsdiagram • Systemarkitektur • Dela upp systemet på • applikationsdel • hårdvara • hårdvaruwrapper(s)
... • 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
... • Delsystem designfas • Delsystem implementationsfas
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
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ändningsfallsdiagram Awad figur 10-1 Tolv användningsfall Awad figur s 200-204
Systemkontextmodell • (mjukvaru-)systemet och dess relationer till omgivningen/hårdvaran Awad figur 10-2
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-3 och 10-4
Analys av applikationens delsystem • Vi "behöver" bara ett delsystem i applikationen Delsystemdiagram Awad figur 10-6 Objektmodell, delsystem Awad figur 10-6 Beskrivning av omgivning Awad tabell 10-1 och 10-2
Funktionell modell • Operationerna O1-O7 Awad figur s 211-213
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
Analys av händelser • Identifiera händelser • Ordna händelser i hierarkier • Beskriv händelser Awad figur s 214-217
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
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 metod Awad s 86-87 exemplet Awad tabell 10-6
... • Vi ser om vi kan slå ihop händelser också metod Awad s 87-88 exemplet Awad tabell 10-7 till 10-9
Delsystem-omgivning: interaktionsdiagram • Några typiska scenarier när objekt i omgivningen interagerar Awad figur 10-11 till 10-13
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
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 Awad tabell 10-10 till 10-11 Objektmodell figur 10-15
Funktionell modell för hårdvaruwrapper Awad s 231-232
Dynamisk modell för hårdvaruwrapper • Precis som för delsystemen analyserar vi • händelser • tillstånd • och interaktion för hårvaruwrappern
... 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
... analys av tillstånd • för vissa klasser gör vi tillståndsdiagram Awad figur 10-17 till 10-18
... 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-19 till 10-20
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
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
... 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
... 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
... • 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
... • En skiss av processernas funktioner och avbrottshanterande rutiner följer i Awad s 239-242
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-25 visar alla händelser hörande till händelsegruppen Command Awad figur 10-26 visar händelsetrådarna för övriga händelser
... • Vi delar upp det hela på två grupper • Icke kommandoorienterade objektgrupper Awad figur 10-27 • Kommandoorienterade objektgrupper Awad figur 10-28
Ö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
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
Utkast av koden • Slutligen tittar vi på utkast av koden för delsystemet Awad s 248-251