Oplossing Examenvragen Software-ontwerp (2007-2008)



Vergelijkbare documenten
Oplossing mogelijke theorievragen Real Time Systemen

Oplossing mogelijke theorievragen Real Time Systemen

soft: systemen waar deadlines belangrijk zijn maar waar het system nog correct blijft functioneren wanneer er een deadline gemist wordt

Real-Time systemen samenvatting

VHDL overzicht. Digitale Systemen (ET1 410) VHDL? VHDL? Sequentieel vs. Concurrent 2/15/2011

Real-Time Systems (RTSYST)

Deel I Hoofdstuk 4: Modelleren van Toestand

High Performance Computing

Software Test Plan. Yannick Verschueren

Digitale Systemen (ET1 410)

Software Processen. Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 4 Slide 1. Het software proces

Software Test Plan. Yannick Verschueren

Voorkennis: C, basiskennis microprocessoren (bij voorkeur ARM7 processor)

Tim Mallezie Architectuur van besturingssystemen: Vraag A2.

Toets In2305-ii Embedded Programming Dinsdag 28 November 2006, 15:45-16:30

Testomgevingen beheer

Vraag 1... Vraag 2... Vraag 3...

Gelijktijdigheid: Wederzijdse Uitsluiting & Synchronisatie Concurrency: Mutual Exclusion & Synchonization (5e ed: , Appendix A.

case: toestandsdiagrammen

VAN HET PROGRAMMEREN. Inleiding

Technology, Innovation & Society Delft

Vakgroep CW KAHO Sint-Lieven

ONTWERP VAN GEDISTRIBUEERDE SOFTWARE ACADEMIEJAAR STE EXAMENPERIODE, 15 JANUARI 2010, 14U 17U30 VRAAG 1: INLEIDENDE BEGRIPPEN[20 MIN]

Programmeren. Inleiding

Deel 1: Arduino kennismaking. Wat is een microcontroller, structuur van een programma, syntax,

Zelftest OOAD/UML. Document: N0767Test.fm 30/08/2010. ABIS Training & Consulting P.O. Box 220 B-3000 Leuven Belgium

Labo 2 Programmeren II

Computervaardigheden. Universiteit Antwerpen. Computervaardigheden en Programmatie. Grafieken en Rapporten 1. Inhoud. Wat is scripting?

Take-home Tentamen Protocolvericatie. Universiteit van Amsterdam. 27 Maart 1994

De keuzestructuur. Versie DD

CPU scheduling : introductie

Hardware-software Co-design

II. ZELFGEDEFINIEERDE FUNCTIES

Nederlandse samenvatting (Dutch summary)

Die inputs worden op een gecontroleerde manier aangeboden door (test) stubs. De test driver zorgt voor de uiteindelijke uitvoering ervan.

Datatypes Een datatype is de sort van van een waarde van een variabele, veel gebruikte datatypes zijn: String, int, Bool, char en double.

Auteur: S. van Beek. Copyright

Objectgeorïenteerd werken is gebaseerd op de objecten die door het systeem gemanipuleerd worden.

Geheugenbeheer. ICT Infrastructuren 2 december 2013

Pagina 1/6. Joris Van Geet! :59 Comment: 1pt voor iteratief 1pt voor incrementeel niets voor een voorbeeldje

Zelftest Inleiding Programmeren

Het Versacom systeem is gedefinieerd in DIN 43861, deel 301 als "transfer protocol A".

Software Quality Assurance Plan

Vraag 1... Ieder risico in een risico analyse moet geschat worden voor wat betreft zijn impact... en zijn kans/propabiliteit...

Noties Informatica. In java fungeren objecten als een model voor de elementen waarin een probleem kan worden opgesplitst

Elfde college algoritmiek. 18 mei Algoritme van Dijkstra, Heap, Heapify & Heapsort

Van doemaar naar succesvol projectmanagement, de &-&-& Paradox. Ir. Roel Wessels ESEF maart 2012

Serieel Protocol voor Robotica v1.3. David Vollmar 13 augustus 2013

TECHNISCHE UNIVERSITEIT EINDHOVEN FACULTEIT DER TECHNISCHE NATUURKUNDE

Waarom is artificiële intelligentie niet zo succesvol geweest als we vroeger hoopte?

Tim Mallezie Architectuur van besturingssystemen: Vraag A4.

6. Project management

Netwerken in productiesystemen. Automatiseringspiramide SCADA. Inleiding computersystemen en netwerken deel 2

Factsheet CONTINUOUS VALUE DELIVERY Mirabeau

VAN HET PROGRAMMEREN. Inleiding. Het spiraalmodel. De programmeertaal. vervolgens de berekening van het totale bedrag, incl. BTW:

E-Basic. E-Studio. E-Run Real-Time Experiment Generator. E-Merge. E-DataAid Spreadsheet Application for E-Prime Data Files

Inhoud vandaag. Interrupts. Algemeen ARM7 AIC

Tentamen Object Georiënteerd Programmeren TI oktober 2014, Afdeling SCT, Faculteit EWI, TU Delft

High Performance Computing

Vraag 1. Vraag 1a TERUGKOPPELING PROEFTENTAMEN. Software architecture

Van Poort tot Pipeline. Ben Bruidegom & Wouter Koolen-Wijkstra AMSTEL Instituut Universiteit van Amsterdam

Socio-technisch systemen. Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 2 Slide 1

Hoofdstuk 3: Processen: Beschrijving en Besturing. Wat is een proces? Waarom processen? Wat moet het OS ervoor doen? Is het OS zelf een proces?

ICT Infrastructuren: Processen en Threads. 18 november 2013 David N. Jansen

Frontend performance meting

Modeleren. Modelleren. Together UML. Waarvan maken we een model? overzicht les 14 t/m 18. ControlCenter 6.2

TECHNISCHE UNIVERSITEIT EINDHOVEN Faculteit Wiskunde en Informatica

Ontwerp van Informatiesystemen

Workflow Management MIS 3TI

Projectmanagement. Hoofdstuk 3 en 4 Het project van begin tot eind De planning. Roel Grit

Netwerk Interfacing Data Logging.

Software Mobiliteit. UAMS - 6 maart Theo D'Hondt Lab voor Pogrammeerkunde Vrije Universiteit Brussel

Kleine cursus PHP5. Auteur: Raymond Moesker

Beschrijving toolset Netwerk/Protocol/Applicatie test Datum 11 januari 2012 Auteur Louis de Wolff Versie 1.0

Zelftest TSO/E REXX. Document: n0167test.fm 25/01/2017. ABIS Training & Consulting P.O. Box 220 B-3000 Leuven Belgium

Modelleren C Appels. Christian Vleugels Sander Verkerk Richard Both. 2 april Inleiding 2. 3 Data 3. 4 Aanpak 3

Inhoudstafel. UML (Unified Modeling Language)

ES1 Project 1: Microcontrollers

Handleiding helpdesk. Datum: Versie: 1.0 Auteur: Inge van Sark

Business Process Management

EE1410: Digitale Systemen BSc. EE, 1e jaar, , vragencollege 2

Auditen van Agile projecten

De juiste requirements juist

4 ASP.NET MVC. 4.1 Controllers

Praktijkinstructie Industriële automatisering 3 (ICT09.3/CREBO:53270)

INSTALLATIE EXCHANGE CONNECTOR

Releasen met een druk op de knop: Met behulp van Continuous Delivery sneller uw doel bereiken

VMB1BLS 1-kanaals rolluiksturing voor universele montage. Handleiding

B.Sc. Informatica Module 4: Data & Informatie

Temperatuur logger synchronisatie

Semaforen. Semaforen p. 1/2

College Introductie

Constanten. Variabelen. Expressies. Variabelen. Constanten. Voorbeeld : varid.py. een symbolische naam voor een object.

Syfadis Suite. LMS & Talent applicatie

Inhoud. VBA Excel 2010

n-queens Local Search met Conflict Minimalizatie

Monitoring. SolidBE B.V. Maarten Schoutenstraat SV Waddinxveen

Risk & Requirements Based Testing

AFO 139 Automatische export

Conclusie: voor elke organisatie die dit nastreeft is het goed besturen en beheersen van de bedrijfsprocessen

Transcriptie:

1 Oplossing Examenvragen Software-ontwerp (2007-2008) door Faysal Boukayoua 1. Geef de definitie van real-time systemen. Een real-time systeem is een informatieverwerkend systeem dat moet reageren op extern gegenereerde signalen binnen een eindige, opgegegen tid. Een laat antwoord = een slecht antwoord. 2. Wat betekent hard, soft, real en firm real-time? hard real-time: 1 laat antwoord = falen van systeem (hartmonitor, kerncentrale,...) soft real-time: 1 laat antwoord = kwaliteitsverlies. Herhaaldelik missen van deadline = falen (vluchtreservatiesysteem, data-acquisitiesysteem). firm real-time: combinatie van 2 vorige (beademingstoestel: een paar seconden vertraging in beademing is niet erg) real real-time: hard real-time met zeer korte responstiden (raketgeleidingssysteem) 3. Geef de figuur voor een typisch embedded systeem en bespreek. 4. Wat zin de kenmerken van real-time systemen? 1. Groot en complex Groot, want grote verscheidenheid aan real-world gebeurtenissen waar op moet kunnen gereageerd worden Complex, want systeem moet continu mee veranderen met wizigende noden en activiteiten. 2. Werken met echte getallen: rekening houden met sampling en nauwkeurigheid (ADC's en DAC's)

3. Extremely reliable & safe Hoe meer afhankelikheid van computers, hoe erger de gevolgen kunnen zin van iets dat mis loopt (economisch, milieu, mensenlevens) Minimaliseren kans op menselike fouten! Rekening houden met moeilikheden inherent aan toepassing + bi softwareontwikkeling 4. Concurrent control of seperate components Nood aan parallele processing Makkeliker als programmeertaal ondersteuning voor parallelisme heeft 5. Real-time facilities Responstid cruciaal systeem krachtig genoeg nemen zodat worst case-gedrag geen ongewenste vertraging geeft tidens kritische periodes Nodig: Opgeven tidstip van uitvoering Opgeven van deadlines Reageren wanneer niet aan alle vereisten kan voldaan worden Reageren op situaties waar tidseiseisen dynamisch wizigen (noodlanding vliegtuig) Om antwoordtiden te halen voorspelbaar gedrag nodig (=probleem!) 6. Interface met hardware (machine-afhankelik) Vroeger: OS en assembly language Nu: tid-kritisch. Huidige middelen geven verhoogde betrouwbaarheid en directe controle geen low-level programming meer. 7. Efficiënte implementatie en uitvoeringsomgeving: focus op oplossing abstractie van implementatiedetails indien reponstiden grootteorde µs, geen taalmogelikheid gebruiken die grootteorde ms aankan 5. Bespreek het simple process model (fixed-priority-scheduling, rate monotonic assignment, schedulability test). 1. Simple process model Vast aantal processen Alle processen periodisch, met gekende periodes 1 Processen onafhankelik van elkaar System overhead, context-switching,... verwaarloosd (= zero-cost ) 1 Belangrik onderscheid: Periodisch: vast tidsinterval tussen elke release = periode Aperiodisch: helemaal geen regelmaat in tid tussen elke release moeilik uit te drukken in scheduling Sporadisch: er zit een minimum tidsinterval tussen elke release (minimum interarrival time). Proces mag minder vaak opgestart worden, maar niet vaker. = manier om beter te kunnen werken met aperiodische processen. 2

3 Alle processen hebben deadline = periode (process moet voltooid zin vooraleer het volgende keer losgelaten wordt) Alle processen hebben een vaste worst-case execution time 2. Fixed-priority-scheduling Meest gebruikt elk proces heeft vaste, statische prioriteit (prioriteit vloeit voort uit tidseisen) volgorde van uitvoering bepaald door prioriteit 3. Rate monotonic assignment = toewizen van prioriteit op basis van lengte van periode periodelengte prioriteit: T i <T P i >P Rate monotonic assignment is optimaal: als een reeks processen kan ge-scheduled worden met een fixed priority assignment scheme, dan kan deze ook steeds gescheduled worden met een rate monotonic assignment scheme.!! prioriteit 1 is laagste (minst belangrike) prioriteit 4. Schedulability test: dit is een test, aan de hand van een specifieke formule, op basis van dewelke men kan bepalen of een reeks processen kunnen ge-scheduled worden. Richtlinen zin: Alle processen moeten schedulable zin, gebruik makend van average execution times en average arrival rates Alle hard real-time processen moeten schedulable zin, gebruik makend van worst case execution times en worst case average arrival rates van alle processen (ook soft realtime) 6. Wat is het probleem bi scheduling als processen interageren (priority ceiling protocols)? Probleem: proces van hogere prioriteit dat een resource nodig heeft die in het bezit is van een proces van lagere prioriteit en daardoor moet wachten (geblokkeerd) = priority inversion Priority ceiling protocols: Met deze protocollen wordt op 1 enkele processor: een hogere-prioriteitsproces maximaal 1 keer geblokkeerd door een proces van lagere prioriteit deadlocks vermeden transitief blokkeren vermeden: transitief blokkeren = als proces van hogere prioriteit geblokkeerd processen met lagere prioriteit ook geblokkeerd wederzidse uitsluiting gewaarborgd Protocollen: Original ceiling priority protocol (OCPP): Default statische prioriteit voor elk proces Dynamische prioriteit voor elk proces = max uit verzameling prioriteiten

4 gevormd door eigen statische prioriteit en prioriteiten die proces overerft 2 door blokkeren van hogere-prioriteitsprocessen. Static ceiling value voor elke resource = max prioriteit uit de verzameling processen die het gebruiken. Een proces kan een resource vergrendelen als zin dynamische prioriteit hoger is dan de ceiling van elke huidig vergrendelde (niet door het proces zelf) resource. Illustration 1: Voorbeeld van OCPP Immediate ceiling priority protocol(icpp): Default statische prioriteit voor elk proces Static ceiling value voor elke resource = max prioriteit uit de verzameling processen die het gebruiken. Dynamische prioriteit voor elk proces = max uit verzameling gevormd door eigen prioriteit en ceiling values van resources die door het proces vergrendeld zin. (NIET ZEKER) Weerom: een proces kan een resource vergrendelen als zin dynamische prioriteit hoger is dan de ceiling van elke huidig vergrendelde (niet door het proces zelf) resource. Gevolg: Bi ICPP zal de blokkering van een proces helemaal in het begin plaatsvinden. Eenmaal een proces begint met uitvoeren ZULLEN per definitie alle nodige resources vri zin. Indien niet, dan zou een ander proces een even hoge / hogere prioriteit krigen en zou de uitvoering worden uitgesteld. OCPP versus ICPP Worst case-gedrag nagenoeg dezelfde. 2 Priority inheritance: als proces met prioriteit 1 een belangriker proces met prioriteit 5 blokkeert, dan krigt het eerste proces tidelik prioriteit 5, zodat geen priority inversion optreedt.

5 ICPP makkelikst te implementeren. ICPP heeft minder context-switching want blokkeringen voornamelik in het begin. ICPP geeft meeste prioriteitsveranderingen OCPP verandert prioriteit enkel indien er een echte blokkering komt R i +J T C 3 worst case reponse time = worst case computation time + total inteference 7. Leg de volgende formule uit: R i +B i hp i D i R i I i time Illustration 2: Voorbeeld van ICPP Gedurende R, zal elke hogere-prioriteitstaak een # keer uitvoeren. R i = # releases van hogere-prioriteitstaak. T R i T C = totale interferentie door hogere-prioriteitstaak I i = R i hp i T C R i I i hp i 3 R: worst case response time C: worst case computation time I: interference time of higher priority tasks T: period D: deadline B: worst case blocking time J: release itter = totale inteferentie op taak I van alle hogere-prioriteitstaken R i T C

6 Rekening houden met blocking: R i I i B i B i hp i R i T C Rekening houden met release itter: sporadisch proces ge-released door een periodiek proces (met periode T) op 0, T-J, 2T-J, 3T-J 1 inteferentie als R i [0,T J ] 2 inteferenties als R i [T J,2T J ] 3 inteferenties als R i [2T J,3T J ] R i I i B i B i hp i R J i i T C 8. Wat zin de problemen bi het instellen van de delay voor een proces? Delay (absoluut of relatief) is minimum delay en niet maximum delay! Problemen: Lokale drift = over-run afkomstig van zowel absolute als relatieve delays: kan niet geëlimineerd worden! Cumulatieve drift = over-run door cumuleren van alle lokale driften: kan wel verholpen worden Oplossing: Mét cumulatieve drift (verkeerd): task T; task body T is begin loop Action; delay 5.0; //Kan niet minder dan 5 seconden vertragen (cumulatieve drift mogelik) end loop; end T; Zonder cumulatieve drift (uiste manier): task body T is Interval : constant Duration := 5.0; //constante van 5 seconden Next_Time : Time; begin Next_Time := Clock + Interval; loop Action; delay until Next_Time; Next_Time := Next_Time + Interval; end loop; end T;

9. Hoe reageer e op het niet voorkomen van een extern event? Door het proces dat aan het draaien is, te laten wachten op de externe event. Indien deze niet binnen een opgegeven tid plaatsvindt, dan wordt het proces afgebroken (timeout): Ada: select delay 0.1; then abort -- action end select; RT Java: via Timed, een subklasse van AsynchronouslyInterruptedException. Wanneer maximale tid verstreken, wordt een AsynchronouslyInterruptedException opgeworpen, die dan kan worden afgehandeld. 10. Welke tidseisen kan e stellen op processen? Deadline: tegen wanneer ten laatste voltooid Minimum delay: minimale tid die voorbi moet zin vooraleer proces start Maximum delay: tid die maximaal voorbi mag zin vooraleer proces start Maximum execution time: maximale verstreken rekentid Maximum elapse time:maximale verstreken tid (tout court) Hard real-time // soft real-time // firm real-time // interactief. Periodisch // sporadisch //aperiodisch 11. Hoe detecteer e het overschriden van tidseisen en hoe ga e erop reageren? Ada: er wordt bepaalde code voorzien die zou worden uitgevoerd met als delay de deadline van het proces. Indien de deadline gehaald wordt, wordt de code nooit uitgevoerd.!!!stopt proces met uitvoering en begint recovery procedure Java: Er wordt een asynchrone event opgeworpen wanneer bvb. de maximale rekentid (cost) of de deadline zin verstreken. Deze events worden afgehandeld met event handlers.!!!proces kan gestopt worden of toegelaten worden om verder te werken (evt. met andere prioriteit) 12. Wat zin atomische acties en wat zin de eisen ervoor? Wat? Actie atomisch als proces die het uitvoert Eisen: niet bewust is van andere actieve processen en vice versa; niet communiceert met andere processen tidens uitvoering actie; er geen toestandswizigingen zin, behalve die die het proces zelf veroorzaakt. Proces zal ook zin eigen toestandswizigingen niet bekend maken tot de actie voltooid is (bvb: veranderen waarde van variabele) als direct en ondeelbaar kan worden gezien door andere processen goed gedefinieerde grenzen (begin, einde, scheiding tussen processen betrokken bi atomische actie en deze die dat niet zin) 7

Ondeelbaar: geen uitwisseling informatie tussen interne en externe processen (behalve resourcemanagers) waarde van gedeelde data na acties bepaald door strikte opeenvolging van acties in bepaalde volgorde orde geen synchronisatie bi start: processen kunnen op momenten binnenkomen alle processen moeten wachten tot het mogelik is om allemaal tegelik de atomische actie te verlaten. 13. Bespreek conversations, dialogs en colloquys (hier: backward error recovery) 4. Conversation //In proces P1: action A with (P2, P3) do ensure <acceptance test> by -- primary module else by -- alternative module else by -- alternative module else error end A; Wanneer processen binnenkomen, wordt hun toestand opgeslagen. De set van entry points (ingangen) vormt een recovery line. Proces in conversation kan enkel communiceren met andere actieve processen in conversation en algemene resource managers. Aangezien een conversatie opgebouwd is uit atomische acties, wordt deze eigenschap ervan overgeërfd. Om conversation te verlaten moeten alle processen slagen voor de acceptance test. Geslaagd? Conversation beëindigd en recovery points verwiderd Niet geslaagd? ALLE processen hersteld tot hun oorspronkelike staat. Bi faling herstelling + overgaan tot alternatieve module. Alle alternatieven falen ook? recovery op hoger niveau Verschil in opvatting: Originele definitie: alle deelnemende processen moeten binnen zin voor 1 eruit kan Hier: zolang actieve processen in conversatie er niet mee willen communiceren, is het niet nodig dat een proces zich er bevindt. Indien toch communicatie gewenst, kan het actieve proces wachten (blokkeren) tot nodige proces binnenkomt of voortdoen. Voordelen: 4 Op de slides kon ik niet direct voor 100% terugvinden wat ik zocht. Een groot deel van het boek van real-time systems staat online als preview: http://books.google.be/books?id=0_lxnan6gec&printsec=frontcover#ppp1,m1 8

Kritieken Dialogs Mogelik om conversaties te specifiëren zonder verplichte deelname Mogelik dat processen met een deadline de conversatie verlaten en verder doen. Eventueel met uitvoer van een alternatieve code. Bi faling ALLE processen hersteld en in alternatieve modus Voor 2de module kan het misschien zin dat een proces met totaal andere processen zou moeten communiceren. Acceptance test voor elke module kan anders zin. Processen die willen deelnemen aan een backward recoverable atomic action, voeren een DIALOG statement uit. Elk proces dat wil deelnemen, definieert ook een DISCUSS-statement De reeks DISCUSS statements vormt hier de recovery line Dialog faalt? processen hesteld tot hun oorspronkelike staat. Er zin geen alternatieve modules! Wel mogelik om verschillende dialogs samen te nemen tot een dialog sequence: SELECT --dialog 1 OR --dialog 2 //Als dialog 1 faalt OR dialog 3 //Als dialog 2 faalt ELSE --laatste redmiddel //Als alle dialogs gefaald hebben END SELECT Colloquy = gecombineerde uitvoering van verwante dialog sequences (1 in elk proces dat deelneemt) 14. Bespreek atomische acties en forward error recovery. //Exception handling: action A with (P2, P3) do -- the action exception when exception_a => -- sequence of statements when exception_b => -- sequence of statements when others => raise atomic_action_failure; end A; Exception in 1 proces van een atomic action? Opgeworpen in alle deelnemende processen (alle deelnemende processen maken deel uit van de forward error recovery). =Asynchrone exception (want komt van een ander proces). 9

Zowel termination als resumption model mogelik als geen opvang is in een van de deelnemende processen of als opvang faalt atomic action faalt met een standaard exception atomic_action_failure, opgegooid in alle betrokken processen Omgaan met 2 concurrent opgegooide exceptions: 2 handlers in elk proces welke handler kiezen? 3e exception gebruiken die wist op optreden van 2 vorige tegelik. exception tree: handler gebruiken voor exception op wortel van kleinste subtree die alle opgetreden exceptions bevat. Onduidelik hoe parameters van fouten combineren... Omgaan met exceptions en geneste atomische acties Probleemstelling: proces in een atomische actie gooit een exception op. ALLE processen moeten meedoen aan recovery. Een (nested) atomic action is echter ondeelbaar! Mogelike oplossingen: Wachten met opgooien van exception tot geneste atomische actie voltooid. Dit is echter niet zo een goed idee want: De exception kan iets te maken hebben met een gemiste deadline. De exception tidelik onderdrukken kan dus een nefaste impact hebben op tidig reageren van het systeem. De exception kan gerelateerd zin aan een deadlock in de geneste atomische actie geneste actie zal dan nooit voltooid worden. Gebruik maken van een voorgedefinieerde abortion exception. Dit zal ervoor zorgen dat de geneste atomische actie gestopt wordt, zodat alle processen kunnen deelnemen aan de recovery. Indien er geen voorgedefinieerde abortion exception is, is er geen andere keuze dan te wachten op het voltooien van de geneste atomische actie. 15. Beschrif kort het HRT HOOD proces. 1. Hard Real-time Hierarchical Obect-Oriented Design 2. Focus op ontwikkeling van fysische en logische architectuur (architectural design). 3. obect-gebaseerde notatie 4. onderverdelen in modules met goed gedefinieerde interfaces: ofwel direct geïmplementeerd ofwel verder onderverdeeld 5. gestandaardiseerd formalisme: tekstueel en grafisch 6. Regels automatisch laten checken: bvb scheduling, precondities,... 7. design = voortgang van alsmaar specifiekere commitments commitments = eigenschappen van ontwerp die niet gewizigd mogen worden door de ontwerpers die zich op een specifieker ontwerp-niveau bevinden. 10

aspecten van design zonder commitment = obligations te behandelen in lagere (specifiekere) niveaus. 8. ontwerpverfining (obligations omzetten naar commitments) vooral beïnvloed door beperkingen van uitvoeringsomgeving: resource constraints: CPU klokfrequentie, netwerkbandbreedte,... mechanism constraints: interrupt priorities, task dispatching, data locking, 9. Obligations, commitments en constraints hebben belangrike invloed op architectuur-design. Architectuur-design kan opgesplitst worden in 2 delen: logical architecture: onafhankelik van uitvoeringsomgeving doel: vooral voldoen aan functionele eisen physical architecture: vooral niet-functionele eisen vormt een basis om a te gaan of aan functionele eisen voldaan wordt, na implementatie. 10. Verschillende soorten obecten: Actief: Controle over uitvoering eigen code In staat andere obecten op te roepen Passief: omgekeerde van actief protected: Controle over eigen operaties Niet mogelik om code van andere obecten op te roepen Mogen geen arbitraire synchronisatiebeperkingen hebben Blokkeertiden die ze veroorzakn bi hun oproepers, moeten analyseerbaar zin Cyclisch: vertegenwoordigen periodieke activiteiten spontaan oproepen van code van andere obecten Sporadisch: vertegenwoordigen sporadische activiteiten spontaan oproepen code van andere obecten 11. Naar einde van ontwerp toe mag programma alle obecttypen bevatten, behalve actieve. actieve obecten enkel voor achtergrondtaken actieve obecten enkel gebruikt bi ontwerp moeten naar einde toe veranderd worden naar ander type. 11

12 16. Beschrif kort het ROPES proces. 1. Rapid Obect-Oriented Process for Embedded Systems 2. ROPES Macro Cycle 1. Analysis: identificatie van alle aspecten voor correctheid Requirements analysis 2. Design Informatie verkrigen van klant in vorm van: 1. use cases 2. state charts (toestandsdiagrammen?) 3. beperkingen Activiteiten: 1. use case maken 2. externe events identificeren 3. gedragsscenario's definiëren 4. beperkingen en interfaces naar andere systemen Systeem in grote delen splitsen en gedrag uitwerken externe actoren identificeren messages uitwerken tussen systeem en actoren protocols voor communicatie verfinen Systems analysis/engineering Obect analysis Architectural Mechanistic (~mechanisms?) Detailed 3. Translation 4. Testing