Introduktion Kort allmän presentation och översikt

31
next previou s Introduktion Kort allmän presentation och översikt Kursledare Björn Eiderbäck, NADA, KTH Email: [email protected] Adress: Rum 1641, 6tr NADA Osquars Backe 2 Tel: 7906277 Objektorienterad Realtidsprogrammering 2000 Viktiga adresser Kursens hemsida: http://www. nada .kth.se/kurser/kth/2D4501 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

description

Kursledare Björn Eiderbäck, NADA, KTH Email: [email protected] Adress: Rum 1641, 6tr NADA Osquars Backe 2 Tel: 7906277. Introduktion Kort allmän presentation och översikt. Objektorienterad Realtidsprogrammering 2000. Viktiga adresser Kursens hemsida: - PowerPoint PPT Presentation

Transcript of Introduktion Kort allmän presentation och översikt

Page 1: Introduktion Kort allmän presentation och översikt

nextprevious

IntroduktionKort allmän presentation och översikt

Kursledare Björn Eiderbäck, NADA, KTH

Email:[email protected]

Adress:Rum 1641, 6trNADAOsquars Backe 2Tel: 7906277

Kursledare Björn Eiderbäck, NADA, KTH

Email:[email protected]

Adress:Rum 1641, 6trNADAOsquars Backe 2Tel: 7906277

Objektorienterad Realtidsprogrammering

2000

Objektorienterad Realtidsprogrammering

2000

Viktiga adresserKursens hemsida:http://www.nada.kth.se/kurser/kth/2D4501

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 adresserKursens hemsida:http://www.nada.kth.se/kurser/kth/2D4501

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.

Page 2: Introduktion Kort allmän presentation och översikt

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

Page 3: Introduktion Kort allmän presentation och översikt

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)

Page 4: Introduktion Kort allmän presentation och översikt

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– ...

Page 5: Introduktion Kort allmän presentation och översikt

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?

Page 6: Introduktion Kort allmän presentation och översikt

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

Page 7: Introduktion Kort allmän presentation och översikt

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

Page 8: Introduktion Kort allmän presentation och översikt

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 avkrav- och

arkitekturfaserna

Parallellasystem

RMI

Page 9: Introduktion Kort allmän presentation och översikt

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, OODfördjupning

Processprioritering

Modeller

UMLför realtid

Implementation

Page 10: Introduktion Kort allmän presentation och översikt

previous next 10

Introduktion

... tre delar ...– Del 3 (föreläsning 11-13 + 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

Stortexempel

Utvaldaproblem

och lösningarur Lea

Hantering avtrådar

Projektuppgifter

Page 11: Introduktion Kort allmän presentation och översikt

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

Page 12: Introduktion Kort allmän presentation och översikt

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

Page 13: Introduktion Kort allmän presentation och översikt

previous next 13

Introduktion

... tidmätningens utveckling i historien

1600 1700 1800 1900 2000

102

100

10-2

10-4

10-6

Sekunder/år

År

Atomuret

Kvartsklockan

Kompensation för tryck

Kompensation för temperatur

Pendeln

Page 14: Introduktion Kort allmän presentation och översikt

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, ...

Page 15: Introduktion Kort allmän presentation och översikt

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

Page 16: Introduktion Kort allmän presentation och översikt

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å

Page 17: Introduktion Kort allmän presentation och översikt

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 varafärdigt i tid!

Måste varafärdigt i tid!

Hantering av händelser

inom viss tidej

fundamentalt

Hantering av händelser

inom viss tidej

fundamentalt

Page 18: Introduktion Kort allmän presentation och översikt

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

Page 19: Introduktion Kort allmän presentation och översikt

previous next 19

Introduktion

Klassificering av realtidssystem

Realtidssystem

Mjukt RT-system

Hårt RT-system

Stor tillgänglighet

Stor integritet

Felsäkert

Operationelltvid fel

Telefonväxel

On-line-bank

Järnvägssignaler

Flygkontroll

Page 20: Introduktion Kort allmän presentation och översikt

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

Page 21: Introduktion Kort allmän presentation och översikt

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, fick 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

Page 22: Introduktion Kort allmän presentation och översikt

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

Page 23: Introduktion Kort allmän presentation och översikt

previous next 23

Introduktion

Exempel

S

E2E1

S behöver kunna reagerapå två olika event E1 och E2

S behöver kunna reagerapå två olika event E1 och E2

S reagerar på E2 genom två icke delbara operationer T4 och T2var och en av dem tar en tidsenhet

S reagerar på E1 genom tre icke delbara operationer T1, T2 och T3var och en av dem tar en tidsenhet

Vi antar att i båda fallen är den första operationen kritiskmen att dom efterföljande bara är viktiga

Då en händelse inträffar skall systemet börja processa den första operationen inomen 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äffatoch med T2 inom fyra tidsenheter efter E2 inträffat

Page 24: Introduktion Kort allmän presentation och översikt

previous next 24

Introduktion

...Antag att vi har följande situation1. E1 inträffar vid t=02. E2 inträffar vid t=1.53. E1 inträffar vid t=3.5

Idealt parallellt systemSystemet kan hantera ett godtyckligt antal sekvenser av operationer.Dvs systemet reagerar momentant efter varje händelse.se figur 1-2 s 6

Idealt parallellt systemSystemet kan hantera ett godtyckligt antal sekvenser av operationer.Dvs systemet reagerar momentant efter varje händelse.se figur 1-2 s 6

Ett idealtparallellt system

kan inte implementeras

Parallellt system utan processbyteVarje sekvens av operationer körs obrutna.se figur 1-3 s 6

Parallellt system utan processbyteVarje sekvens av operationer körs obrutna.se figur 1-3 s 6

Vi kan inte uppfylla givna

villkor

Kvasiparallellt systemSystemet kan exekvera olika processers operationer om vartannat.se figur 1-4 s 6

Kvasiparallellt systemSystemet kan exekvera olika processers operationer om vartannat.se figur 1-4 s 6

Vi kan uppfylla givna villkor

Page 25: Introduktion Kort allmän presentation och översikt

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

Page 26: Introduktion Kort allmän presentation och översikt

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,...

Page 27: Introduktion Kort allmän presentation och översikt

previous next 27

Introduktion

Hur interaktivt, en klassificeringlågobjektinteraktion parallellitetlågobjektinteraktion parallellitet

medelinterobjekt parallellitetmedelinterobjekt parallellitet

högintraobjekt parallellitethögintraobjekt parallellitet

f()

g()

h()

f()

g()

f()

g()

objekt1

objekt3

object2

objekt4

objekt5

objekt6

tidTypiskt inkluderar enhögre nivå en lägre

Typiskt inkluderar enhögre nivå en lägre

Page 28: Introduktion Kort allmän presentation och översikt

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

Page 29: Introduktion Kort allmän presentation och översikt

previous next 29

Introduktion

Klassificering av fel

Fel

Natur

Perception

Effekt

Frekvens

Värde

Konsekvent

Ofarlig

Enstaka

Timing

Inkonsekvent

Farlig

Upprepad

Page 30: Introduktion Kort allmän presentation och översikt

previous next 30

Introduktion

Klassificering av felorsaker

Felorsak

Natur

Orsak

Begränsning

Källa

Slump

Fysisk

Intern

Utveckling

Avsiktligt

Design

Extern

Operationell

VaraktighetTemporär

Permanent

Page 31: Introduktion Kort allmän presentation och översikt

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

Under kursen kommer vi också diskutera oo principer, grunder,

analys-design och titta närmare på OCTOPUS, UML samt

designmönster