Presentation laddar. Vänta.

Presentation laddar. Vänta.

Next previous Introduktion Kort allmän presentation och översikt Kursledare Björn Eiderbäck, NADA, KTH Adress: Rum 1641, 6tr.

Liknande presentationer


En presentation över ämnet: "Next previous Introduktion Kort allmän presentation och översikt Kursledare Björn Eiderbäck, NADA, KTH Adress: Rum 1641, 6tr."— Presentationens avskrift:

1 next previous Introduktion Kort allmän presentation och översikt Kursledare Björn Eiderbäck, NADA, KTH Adress: Rum 1641, 6tr NADA Osquars Backe 2 Tel: Kursledare Björn Eiderbäck, NADA, KTH Adress: Rum 1641, 6tr NADA Osquars Backe 2 Tel: Objektorienterad Realtidsprogrammering 2000 Objektorienterad Realtidsprogrammering 2000 Viktiga adresser Kursens hemsida: som innehåller allmän info, labblydelser, föreläsningsanteckningar, pekare till intressanta web-sidor och kursnyheter. Sidan kommer uppdateras kontinuerligt. Delfi och systemgruppens mottagning ligger på Osquars Backe 2 bottenplanet. Viktiga adresser Kursens hemsida: som innehåller allmän info, labblydelser, föreläsningsanteckningar, pekare till intressanta web-sidor och kursnyheter. Sidan kommer uppdateras kontinuerligt. Delfi och systemgruppens mottagning ligger på Osquars Backe 2 bottenplanet.

2 previous next 2 Introduktion Presentation •" bakgrund" –Matematikerlinjens dataloglinje –OO sen 1981 •Simula 1981 •Smalltalk 1985 •(Java 1995) –Objective Systems •CASE-verktyg, databasgränssnitt och prototyper –KTH •Forskning inom framförallt CSCW och Distribuerad OO programmering •Undervisning –Egen (liten) "verksamhet" •Kurslitteratur •Programutveckling •Föredrag och kurser •Konsultverksamhet

3 previous next 3 Introduktion... •"intressen" –OO, OOA, OOAD –IDEer –GUI –CSCW –CASE –Distribuerade system •Internet, CORBA –Designmönster •Från MVC (1985), via allmänt designintresse till designmönster (1995)

4 previous next 4 Introduktion... •"kurser idag" –Objektorienterad Modellering Programmering och Analys –Grafik och Interaktionsprogrammering –Internetprogrammering •"preferenser" –Favoritspråk: Smalltalk –Favorit IDE: VisualWorks –Favoritmönster: (I det lilla) Strategy, (Större) MVC –Roligast att programmera: Distribuerade realtidssystem inom CSCW –Favoritwhiskey: Lagavulin –...

5 previous next 5 Introduktion Deltagarna presenterar sig •Tex –Vem är jag? –Var jobbar jag? –Vad har jag för programmeringsbakgrund? •språk •metod •system •realtid, parallella eller distribuerade system –Hur kommer objektorientering, UML och realtid in mitt arbete? –Vad förväntar jag mig av kursen och hur vill jag utnyttja kunskaperna i mitt arbete?

6 previous next 6 Introduktion Vad går kursen ut på? •Kursens mål är att –ge fördjupad förståelse av dom olika faserna i analys, design och konstruktion av objektorienterade realtidsproblem, –ge fördjupad inblick och förståelse av hur UML kan användas för att beskriva objektorienterade realtidssystem, –ge inblick i möjliga problem och sätt att lösa dem i framförallt icke hårda realtidssystem, men även insikter i problem vid konstruktion av hårda realtidsproblem. •för att deltagarna ska –kunna utforma och konstruera objektorienterade realtidssystem

7 previous next 7 Introduktion Efter genomgången kurs ska deltagarna kunna •ta fram objektstruktur för multitrådat system/delsystem utifrån teknisk specifikation, t.ex. en funktionsspecifikation för ett paket; innefattande analys, modellering, strukturering och implementation •beskriva syftet med, och UML-notation för olika modeller: användningsfallsmodell, modell av statisk struktur, modeller för att beskriva dynamik, sekvens, objektsamverkan, aktiviteter, tillståndsövergångar •beskriva begrepp inom de olika modellerna, t.ex. klass, metaklass, kvalificerad association, paket, etc. Även definiera när de är användbara, samt hur de kan avbildas på en implementation. •beskriva vad tråd-/process-objekt och ”passiva” objekt har gemensamt och vad som skiljer dem åt samt hur man delar upp systemet i trådar •förstå vilka hänsyn som måste tas vid utformningen av multitrådade system •behärska olika strategier och mekanismer för att vidmakthålla konsistenta tillståndsrepresentationer hos objekt, synkronisering, begränsning, lås, etc. •behärska olika strategier och mekanismer för att hantera tillståndsberoende handlingar, "guarded methods", semaforer, "latches", transaktioner, etc. •behärska olika idiom för trådbegreppet: aktörsbaserade, uppgiftsbaserade; behärska effektiva sätt att skapa trådar och trådstrukturer

8 previous next 8 Introduktion Uppläggning av kursen •Tre delar –Del 1 (föreläsning 1-6, 7-10/3) •Allmän introduktion (idag) •UML, översikt •Java kort introduktion med fokus på trådar och synkronisering •Problem i "Concurrent Programming" •Speciella tekniker för synkronisering •Javas RMI (Remote Method Invocation) som vi använder för att "emulera" parallella processer och konstruera distribuerade system •OCTOPUS översikt Översikt Översikt av krav- och arkitekturfaserna Parallella system RMI

9 previous next 9 Introduktion... tre delar... –Del 2 (föreläsning 7-10, 26-27/4) •Kravspecifikationer •Systemarkitektur •Analys •Olika diagramtyper för analys (både OCTOPUS och UML) •Strukturella modeller •Funktionell modell •Dynamisk modell •Designfas och olika diagramtyper •Prioritera processer •Från design till implementation OOA, OOD fördjupning Processprioritering Modeller UML för realtid Implementation

10 previous next 10 Introduktion... tre delar... –Del 3 (föreläsning projektpresentationer, 5-7/6) •Större exempel ur Awad •Speciella realtidsproblem, ett urval ur Lea, tex –Exklusiva processer –Synkronisering –Lås –Tillståndsberoenden –Felhantering –Transaktioner –Trådar och relaterade problem •Presentationer av färdiga eller pågående projektuppgifter Stort exempel Utvalda problem och lösningar ur Lea Hantering av trådar Projektuppgifter

11 previous next 11 Introduktion... uppläggning... •Fyra laborationer –Utförs i grupper om två personer, både i labbsalar på NADA och "hemma" –"Publicering" •Laboration 1-2 delas ut vid föreläsning 2-3 •Resten av labbarna kan anpassas lite efter deltagarnas intresse och delas ut mellan del 1 och del 2 av kursen •Tre övningar –Görs enskilt eller i grupper om två personer •Övning 1 delas ut vid slutet av del 1 •Resterande övningar delas ut senast under del 2 •En projektuppgift –En större enskild realtidsuppgift som innehåller både analys, design och implementation av prototyp –Bestäms i samråd mellan kursledning och deltagare –Redovisas antingen i slutversion eller som pågående arbete vid sista mötestillfället

12 previous next 12 Introduktion Tid •Tid är fundamentalt för oss –Även om vi inte har något tidssinne så lever vi i nuet •Vi kan relatera till dåtid och framtid, dvs händelser i tidsdomänen •Tidens betydelse i historien –I antiken baserades tidangivelser sig främst på subjektiva bedömningar –I och med den moderna vetenskapens födelse har vi fått objektiva metoder att mäta tid •dessa metoder har sedan successivt förbättrats

13 previous next 13 Introduktion... tidmätningens utveckling i historien Sekunder/ år År Atomuret Kvartsklockan Kompensation för tryck Kompensation för temperatur Pendeln

14 previous next 14 Introduktion Realtidssystem •Ett realtidssystem är ett system som ändrar sitt tillstånd som en funktion av (real-) tiden •Ett inbäddat system –en blandning av hård- och mjukvara och kanske mekaniska delar, designat för en speciell funktion –kontrasterat mot en generell dator som kan göra olika saker –Exempel: •mikrovågsugn •komponent i bil (bromsar, växlar, farthållare, osv) •kaffebryggare •video –i viss mening är en generell dator också inbäddad, om man ser till dom delar som bygger upp det •videokort, hårdisk, modem, floppy, ljud, mus, tangentbord,...

15 previous next 15 Introduktion Typiska realtidssystem, några exempel •Styrsystem •Telefonväxel •Automatisk kontroll •Intelligenta produkter •Web service •Beräkningssystem •I/O •GUI •Simulering •Mobil kod •Inbäddade system i alla möjliga apparater

16 previous next 16 Introduktion Ett realtidssystem har begränsad kapacitet •Det går inte att konstruera det perfekta realtidssystemet! •Load Hypothesis –Definierar maximala belastningen som omgivningen antas generera –Anges genom •Minimala intervallet mellan transaktioner •eller maximala intensiteten av händelserna •Fault Hypothesis –Definierar typerna och frekvenserna av fel som ett feltolerant system måste hantera –Om dom identifierade felen inträffar så måste systemet ändå erbjuda en viss servicenivå

17 previous next 17 Introduktion Klassificering av realtidssystem •Mjukt realtidssystem –är ett realtidssystem i vilket ett fel att hantera en händelse inom en viss tid inte betraktas som ett fel. Att något sker inom viss tid betraktas snarare som en kvalitet (dvs det är bra men inte nödvändigt) –Exempel: kopiering av fil, nerladdning av websida, telefonväxel,... •Hårt realtidssystem –ett svar som kommer för sent betraktas som ett fel. Ett svar som kommer för tidigt kan också betraktas som ett fel. –det är alltså viktig att vi tar hand om händelser i tid här, annars kan kanske egendom eller liv gå till spillo –Exempel: signalsystem för järnväg, kontrollenhet för kärnkraftverk, flygplan, vissa medicinska system,... •Det finns ett kontinum mellan mjuka och hårda realtidssystem Måste vara färdigt i tid! Måste vara färdigt i tid! Hantering av händelser inom viss tid ej fundamentalt Hantering av händelser inom viss tid ej fundamentalt

18 previous next 18 Introduktion... •Felsäkert (fail-safe) –innebär att om något går fel så stoppas systemet –Exempel: om signalsystemet för en järnväg fallerar så stoppas alla tågen •Feloperationellt (fail-operational) –i vissa fall kan vi inte stoppa systemet om fel inträffar utan måste ta hand om det på bästa sätt och fortsätta "operera" –Exempel: kontrollenhet i flygplan •Garanterad respons –om vi bygger ett system efter principen att alla upptänkliga fel skall hanteras och systemet skall fungera även vi extrem belastning pratar vi om system med garanterad respons •Bästa möjliga hantering –vissa system är byggda efter principen att det är för dyrt att hantera alla möjliga situationer. Dom flesta realtidssystem är faktiskt byggda på detta sätt

19 previous next 19 Introduktion Klassificering av realtidssystem Realtidssystem Mjukt RT-system Hårt RT-system Stor tillgänglighet Stor integritet Felsäkert Operationellt vid fel Telefonväxel On-line-bank Järnvägssignaler Flygkontroll

20 previous next 20 Introduktion Vi kan också klassificera ett system efter om det är •Reaktivt –dvs om systemet kan reagera på händelser inom givna tidsramar •Event-triggat –dvs ett system som reagerar på externa händelser direkt och omedelbart •Tids-triggat –dvs ett system som reagerar på externa händelser vid fördefinierade tillfällen

21 previous next 21 Introduktion Objektorienterade metoder •Baseras på modeller av kommunicerande objekt •Tongivande språk –Simula-67 första OO-språket för bla simuleringar –Spreds via Smalltalk (första versionen 1972, fic k vidare spridning med Smalltalk-80) –Java (1995) spred ideerna till en bredare allmänhet •Metoder –Booch –Shlaer-Mellor –OMT (Object-Modeling-Technique) –CRC-kort (Class-Responsibility-Collaboration) av Beck och Cunningham –Objectory/OOSE •Med användningsfall som utgångspunkt •OCTOPUS –Baserad på OMT och Fusion med realtidstillägg

22 previous next 22 Introduktion Parallellitet i realtidssystem •Externa händelser kan inträffa när som helst, även parallellt, och måste behandlas inom givna tidsintervall •Parallellitet möjliggör effektivt utnyttjande av hårdvaran •Parallellitet ger oss möjlighet att dela upp ett program på separata aktiviteter –utan att behöva beskriva den exakta ordningen mellan aktiviteterna

23 previous next 23 Introduktion Exempel S E2E1 S behöver kunna reagera på två olika event E1 och E2 S behöver kunna reagera på två olika event E1 och E2 S reagerar på E2 genom två icke delbara operationer T4 och T2 var och en av dem tar en tidsenhet S reagerar på E1 genom tre icke delbara operationer T1, T2 och T3 var och en av dem tar en tidsenhet Vi antar att i båda fallen är den första operationen kritisk men att dom efterföljande bara är viktiga Då en händelse inträffar skall systemet börja processa den första operationen inom en tidsenhet och vara klar med den högst två två tidsenheter senare S måste vara färdig med T3 inom sex tidsenheter efter E1 inträffat och med T2 inom fyra tidsenheter efter E2 inträffat

24 previous next 24 Introduktion... Antag att vi har följande situation 1. E1 inträffar vid t=0 2. E2 inträffar vid t= E1 inträffar vid t=3.5 Idealt parallellt system Systemet kan hantera ett godtyckligt antal sekvenser av operationer. Dvs systemet reagerar momentant efter varje händelse. se figur 1-2 s 6 Idealt parallellt system Systemet kan hantera ett godtyckligt antal sekvenser av operationer. Dvs systemet reagerar momentant efter varje händelse. se figur 1-2 s 6 Ett idealt parallellt system kan inte implementeras Parallellt system utan processbyte Varje sekvens av operationer körs obrutna. se figur 1-3 s 6 Parallellt system utan processbyte Varje sekvens av operationer körs obrutna. se figur 1-3 s 6 Vi kan inte uppfylla givna villkor Kvasiparallellt system Systemet kan exekvera olika processers operationer om vartannat. se figur 1-4 s 6 Kvasiparallellt system Systemet kan exekvera olika processers operationer om vartannat. se figur 1-4 s 6 Vi kan uppfylla givna villkor

25 previous next 25 Introduktion Objektorienterade realtidsmodeller •Från krav till analys till design till implementation •Då parallellitet ingår i realtidssystem så bör det ingå i modellen •Objektorienterade modeller baseras på objekt –Hur kan parallellitet och objektorientering kombineras? •Ett objektorienterad angreppsätt är att antingen använda –explicit modell för parallellitet (fig 1-5 s 7 högra delen) –implicit modell för parallellitet (fig 1-5 s 7 vänstra delen) •I den implicita modellen "fördröjs" designen av parallellitet –vi utgår från objektmodellen •I den explicita modellen utgår vi från parallellitet och processer •Exempel –explicit •första versionen som inte klarar alla krav se fig 1-6 •för att klara kraven så delar vi upp det hela på fler processer, se fig 1-7 –implicit skapa objekt som utför operationerna (T1, T2 osv) •se fig 1-8 för uppdelning, fig 1-9 för ideal modell och 1-10 för kvasiparallell modell

26 previous next 26 Introduktion Parallella processer och objektorientering •Simula hade visst stöd för parallella processer –man använder korutiner, som dock kräver mer explicita beskrivningar av hur man går från en process till en annan •Objektorientering (oo) påverkade inte utvecklingen i stort av multitrådade system under 70-talet –dock är monitorbegreppet influerat av oo •Parallella oo program är ofta uppbyggda mha samma programtekniker som sekventiella oo program •OO-program av typ (händelsebaserade) GUI har mycket gemensamt med parallella progam •Parallella oo-program skiljer sig från motsvarande i traditionella imperativa programspråk som C –inkapsling, moduläritet, utvidgbarhet, säkerhet, polymorfi,...

27 previous next 27 Introduktion Hur interaktivt, en klassificering låg objektinteraktion parallellitet medel interobjekt parallellitet hög intraobjekt parallellitet f()g()h() f() g() f() g() objekt 1 objekt 3 object 2 objekt 4 objekt 5 objekt 6 tid Typiskt inkluderar en högre nivå en lägre Typiskt inkluderar en högre nivå en lägre

28 previous next 28 Introduktion Olika typer av fel •Hur bör ett RT-system vara? –tillförlitligt •systemet skall fungera länge –säkert •systemet skall med största sannolikhet inte fallera –tillgängligt •systemet skall kunna utföra "sin service" –lätt att underhålla •om systemet blir fel så bör det vara enkelt att åtgärda •Fel och felorsaker –Olika typer av fel kan uppkomma i mjuk eller hårdvara •se följande två figurer

29 previous next 29 Introduktion Klassificering av fel Fel Natur Perception Effekt Frekvens Värde Konsekvent Ofarlig Enstaka Timing Inkonsekvent Farlig Upprepad

30 previous next 30 Introduktion Klassificering av felorsaker Felorsak Natur Orsak Begränsning Källa Slump Fysisk Intern Utveckling Avsiktligt Design Extern Operationell Varaktighet Temporär Permanent

31 previous next 31 Introduktion Utvecklingsmetoder och tekniker för att beskriva objektorienterade och realtidssystem Under kursen kommer vi också diskutera oo principer, grunder, analys-design och titta närmare på OCTOPUS, UML samt designmönster


Ladda ner ppt "Next previous Introduktion Kort allmän presentation och översikt Kursledare Björn Eiderbäck, NADA, KTH Adress: Rum 1641, 6tr."

Liknande presentationer


Google-annonser