2EMHNWRULHQWHUDG5HDOWLGVSURJUDPPHULQJ Föreläsning 11 Tisdag 6/6 2000 OCTOPUS en kort repetition Farthållare previous next OCTOPUS Kravspec Vi konstruerar bla användningsfall Användningsfallsdiagram Systemarkitektur Dela upp systemet på applikationsdel hårdvara hårdvaruwrapper(s) previous next 2 Björn Eiderbäck 2000 1
... 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 3... Delsystem designfas Delsystem implementationsfas previous next 4 Björn Eiderbäck 2000 2
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 5 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 previous next 6 Björn Eiderbäck 2000 3
Systemkontextmodell (mjukvaru-)systemet och dess relationer till omgivningen/hårdvaran Awad figur 10-2 previous next 7 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 previous next 8 Björn Eiderbäck 2000 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 previous next 9 Funktionell modell Operationerna O1-O7 Awad figur s 211-213 previous next 10 Björn Eiderbäck 2000 5
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 11 Analys av händelser Identifiera händelser Ordna händelser i hierarkier Beskriv händelser Awad figur s 214-217 previous next 12 Björn Eiderbäck 2000 6
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 13 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 previous next 14 Björn Eiderbäck 2000 7
... Vi ser om vi kan slå ihop händelser också metod Awad s 87-88 exemplet Awad tabell 10-7 till 10-9 previous next 15 Delsystem-omgivning: interaktionsdiagram Några typiska scenarier när objekt i omgivningen interagerar Awad figur 10-11 till 10-13 previous next 16 Björn Eiderbäck 2000 8
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 17 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 previous next 18 Björn Eiderbäck 2000 9
Funktionell modell för hårdvaruwrapper Awad s 231-232 previous next 19 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 20 Björn Eiderbäck 2000 10
... analys av händelser Vi undersöker vilka dom primitiva händelserna är Awad tabell 10-12 Vi grupper också händelserna Awad figur 10-16 previous next 21... analys av tillstånd för vissa klasser gör vi tillståndsdiagram Awad figur 10-17 till 10-18 previous next 22 Björn Eiderbäck 2000 11
... 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 previous next 23 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 24 Björn Eiderbäck 2000 12
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 25... 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 26 Björn Eiderbäck 2000 13
... 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 27... 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 28 Björn Eiderbäck 2000 14
... En skiss av processernas funktioner och avbrottshanterande rutiner följer i Awad s 239-242 previous next 29 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 previous next 30 Björn Eiderbäck 2000 15
... Vi delar upp det hela på två grupper Icke kommandoorienterade objektgrupper Awad figur 10-27 Kommandoorienterade objektgrupper Awad figur 10-28 previous next 31 Ö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 32 Björn Eiderbäck 2000 16
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 33 Utkast av koden Slutligen tittar vi på utkast av koden för delsystemet Awad s 248-251 previous next 34 Björn Eiderbäck 2000 17