Introduktion Kort allmän presentation och översikt

Slides:



Advertisements
Liknande presentationer
Idéer för ett bredare entreprenörskap
Advertisements

Att identifiera och utveckla ledare
En Dag i Ramadan Ramadan
Att bygga målstyrt Underhåll
Learning Study / Stöd för genomförande och dokumentation
Teknik 1 utifrån förmågorna och centrala innehållet Vad teknik är
Objektorienterad Modellering Programmering och Analys
Avalon Information Systems Vi är IT-företaget som behärskar framtagning av information och utveckling av konkurrenskraftiga IT-system. - Produktinformation.
Ruttplanering Vad är det??.
Välkomna på information om gymnasievalet!.  Valet görs på  I januari får alla elever i åk 9 inloggningsuppgifter.
Next previous • Realtidsrelaterade nyheter i CORBA 3 • Designmönster med relationer till realtidsprogrammering • Skräpsamling och realtidsprogrammering.
Klasser och objekt.
Task Analysis (”uppgiftsanalys”) inom MDI
Kundundersökning mars 2010
Next previous XP: varför fungerar det? Något om tentan. Innehåll Introduktion till eXtreme Programming (XP) Varför fungerar XP? Något om tentan Vad ska.
Leif Håkansson’s Square Dancer Rotation
Objektorienterad Realtidsprogrammering
Programmeringsteknik Föreläsning 13 Skolan för Datavetenskap och kommunikation.
Next previous Internetprogrammering 2000 Internetprogrammering 2000 Föreläsning 10 Distribuerad programmering med Javas RMI, Remote Method Invocation.
Föreläsning 7 Analys av algoritmer T(n) och ordo
Next previous Refactoring och lite mönster kodade i Java Innehåll Vad är refactoring? Ett större refactoringexempel Några mönster kodade i Java OOMPA 2000.
Föreläsning 1.
IT och kommunikationsvetenskap Teresa Cerratto Pargman, DSV
Välkommna! till kursen HI1024 Programmering, grundkurs 8,0 hp
Objektorienterad tänkande
Välkommen Vahid Mosavat
Att programmera i språket Java
Next previous OCTOPUS en kort repetition Farthållare Objektorienterad Realtidsprogrammering 2000 Objektorienterad Realtidsprogrammering 2000 Föreläsning.
Modellering med UML
Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition, Kapitel 7: Deadlocks.
Programmering B PHP Lektion 2
Möte beträffande kvalitetsgranskning
Programmering B PHP Lektion 3
Digitalteknik 7.5 hp distans: 5.1 Generella sekvenskretsar 5.1.1
Elektronisk attestering och signering
Felkalkyl Ofta mäter man inte direkt den storhet som är den intressanta, utan en grundläggande variabel som sedan används för att beräkna det som man är.
Arv.
TÄNK PÅ ETT HELTAL MELLAN 1-50
1 Joomla © 2009 Stefan Andersson 1. 2 MÅL 2 3 Begrepp Aktör: en användare som interagerar med webbplatsen. I diagrammet till höger finns två aktörer:
Känna till och ha provat metoder och verktyg för processledning
PROCESSPROGRAMMERING Föreläsning ‏ Innehåll: Högnivå objekt för trådprogrammering: - Trådgrupper (”Thread pools”)‏ - Exekverare (Executor.
Next previous Mjukvaruprocessen: översikt och repetition. XP: problemformulering. JUnit. Innehåll Allmännt om utvecklingsprocesser från Bruegge kapitel.
OOPJ I, 5p Objektorienterad Programmering i Java.
Föreläsning 4 Order- och leveransprocessen Kundorderpunkten
SEO Manager för EPiServer LÅT REDAKTÖRERNA VARA REDAKTÖRER.
Distribuerade realtidssystem Dr Peter Parnes
1 Föreläsning 6 Programmeringsteknik och Matlab 2D1312/2D1305 Metoder & parametrar Array API och klassen ArrayList.
Styrteknik 7.5 hp distans: SFC Introduktion SFC_A:1
Styrteknik 7.5 hp distans: SFC Introduction PLC5A:1 Bilder SFC = Sequential Function Chart Language SFC är ett grafiskt programspråk som används.
Next previous RMI, Remote Method Invocation Om du har boken av Marty Hall, läs avsnitt 15.8 För fler exempel se:
1 Logging and monitoring of TCP traffic in SSH tunnels Masters thesis Anton Persson.
Utvecklingsmetoder och processer. UML och OCTUPUS en kort introduktion
Lågnivåprogrammering Översikt av I/O-mekanismer i hårdvara Olika språkkrav och modeller för komponent- hantering(device driving) Modeller för komponent-hantering.
Utvecklingsprocessen Webbutveckling. Utvecklingsprocessen Bli inte rädd för alla begrepp och alla verktyg man verkar behöva kunna. Du måste inte använda.
INTRODUKTION TILL PROGRAMMERING
Föreläsning 1. Innehåll Introduktion till objektorientering –OOP (objektorienterad programmering) –Objekt, instanser, klasser C++ –OO i C++ –Standardbibliotek.
1.1. TechNet Security Summit 2004 Security Framework ”Introduktion av ”Security in Depth” Marcus Murray.
Presentation of I. Name: Disputerat nu vår Forskningsintresset är:
Jonny Karlsson PROCESSPROGRAMMERING Föreläsning 8 ( )‏ Innehåll:  Introduktion till Java EE (Enterprise Edition)  Enterprise Java Beans.
Vara kommun Grundskoleundersökning 2014 Föräldrar 2 Levene skola årskurs 5 Antal svar 2014 för aktuell årskurs i skola: 12 Antal svar 2014 för årskurs.
Räkna till en miljard 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,14,15,16,17,18,19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, En miljard är ett.
© Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003 Föreläsning 12 Sökning och Sökträd.
PROCESSPROGRAMMERING Föreläsning 1 ( )‏ Innehåll: Introduktion till paralellprogrammering (“concurrent programming”)‏ Introduktion till parallellprogrammering.
1 Mjukvaru-utveckling av interaktiva system God utveckling av interaktiva system kräver abstrakt funktionell beskrivning noggrann utvecklingsmetod Slutanvändare.
Lennart Edblom, Frank Drewes, Inst. f. datavetenskap 1 Föreläsning 15: Parallella subrutiner Parallellitet Processer och trådar Semaforer, monitorer.
F. Drewes, Inst. f. datavetenskap1 Föreläsning 15: Parallella subrutiner Parallellitet Processer och trådar Semaforer, monitorer och synkroniseringsmeddelanden.
Föreläsning 1 Introduktion till kursen. Algoritmer
Föreläsning om RUP RUP – Rational Unified Process
Om denna presentation: Version Denna PPT-presentation tillsammans med det talspråksmanus du hittar i anteckningssidorna är framtaget för att.
RMI Av: Josefina & Sarah DS04.
Presentationens avskrift:

Introduktion Kort allmän presentation och översikt Objektorienterad Realtidsprogrammering 2000 Introduktion Kort allmän presentation och översikt Kursledare Björn Eiderbäck, NADA, KTH Email: bjorne@nada.kth.se Adress: Rum 1641, 6tr NADA Osquars Backe 2 Tel: 7906277 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 Backe 2 bottenplanet.

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

... "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)

... "kurser idag" "preferenser" 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 ...

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?

Vad går kursen ut på? Kursens mål är att för att deltagarna ska 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

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

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 Parallella system RMI Översikt av krav- och arkitekturfaserna

... 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 Modeller UML för realtid Processprioritering Implementation

... 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 Stort exempel Utvalda problem och lösningar ur Lea Hantering av trådar Projektuppgifter

... uppläggning ... Fyra laborationer Tre övningar En projektuppgift 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

Tid Tid är fundamentalt för oss Tidens betydelse i historien Ä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

... tidmätningens utveckling i historien Sekunder/ år 10-6 Atomuret 10-4 10-2 Kvartsklockan 100 Kompensation för tryck Kompensation för temperatur 102 Pendeln 1600 1700 1800 1900 2000 År

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

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

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å

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 Hantering av händelser inom viss tid ej fundamentalt Måste vara färdigt i tid!

... Felsäkert (fail-safe) Feloperationellt (fail-operational) 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

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

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

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

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

Exempel S E1 E2 S behöver kunna reagera på två olika event E1 och E2 S reagerar på E1 genom tre icke delbara operationer T1, T2 och T3 var och en av dem tar en tidsenhet S reagerar på E2 genom två icke delbara operationer T4 och T2 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

... Idealt parallellt system Parallellt system utan processbyte Antag att vi har följande situation 1. E1 inträffar vid t=0 2. E2 inträffar vid t=1.5 3. 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 Ett idealt parallellt system kan inte implementeras 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 Vi kan uppfylla givna villkor

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

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

Hur interaktivt, en klassificering låg objektinteraktion parallellitet medel interobjekt parallellitet hög intraobjekt parallellitet objekt1 objekt4 objekt6 f() f() f() h() object2 objekt5 g() g() g() objekt3 Typiskt inkluderar en högre nivå en lägre tid

Olika typer av fel Hur bör ett RT-system vara? Fel och felorsaker 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

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

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

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