Real-Time and Embedded Systems

Seminar Echtzeitsysteme und Eingebettete Systeme

Synchrone Sprachen

Sinn dieses Seminars ist es, sich mit einem Themengebiet aus dem Bereich der Echtzeitsysteme und eingebetteten Systeme intensiv und selbständig wissenschaftlich auseinanderzusetzen. Das Thema ist in einem mündlichen Vortrag und einer schriftlichen Ausarbeitung zusammenzufassen. Ein weiterer Sinn dieses Seminars ist es, das Arbeiten in strukturierten zeitlichen Abläufen zu praktizieren, wie es z.B. für Workshops/Tagungen üblich ist. Beide Aspekte sind erfahrungsgemäß eine gute Vorbereitung auf die Anfertigung einer Abschlussarbeit.

Dieses Seminar wird in zwei Varianten angeboten, als Bachelor-Modul (Inf-Sem-Echtz, Univis-Eintrag, Modulbeschreibung) und als Master/Diplom-Modul (MSS1101, Univis-Eintrag, Modulbeschreibung). Im Vergleich zum Bachelorseminar erwartet das Masterseminar eine größere Einbeziehung von verwandten Arbeiten, und dementsprechend eine umfangreichere Ausarbeitung und Präsentation (siehe unten).

Voraussetzungen:

Für Diplomstudierende ist das Vordiplom Voraussetzung für die Teilnahme am Seminar.

Das Seminar baut auf Inhalten aus der Vorlesung "Synchrone Sprachen" auf. Seminarteilnehmern, welche diese Vorlesung noch nicht gehört haben, wird als Einstieg folgendes Überblickspapier empfohlen, zumindest hiervon die Abschnitte I und II:

Benveniste, A.; Caspi, P.; Edwards, S.A.; Halbwachs, N.; Le Guernic, P.; de Simone, R., "The synchronous languages 12 years later," Proceedings of the IEEE , vol.91, no.1, pp.64,83, Jan 2003 (pdf).

Dozenten:

Reinhard v. Hanxleden (rvh@informatik.uni-kiel.de)
Insa Fuhrmann (ima@informatik.uni-kiel.de)
Steven Smyth (ssm@informatik.uni-kiel.de)

Themen

Bereits reservierte Papers sind durch Voranstellung des Vortragenden gekennzeichnet. Links auf externe PDFs sind u.U. nur vom Uninetz aus zugänglich. Reservierungsanfragen bitte per Email an alle Dozenten.

Themen, die bevorzugt an Bachelorstudierende vergeben werden (vorheriger Besuch der Vorlesung Synchrone Sprachen nicht zwingend erforderlich):

1. Mike Tallarek: Jahier, E.; Halbwachs, N.; Raymond, P., "Engineering functional requirements of reactive systems using synchronous languages", Industrial Embedded Systems (SIES), 2013 8th IEEE international Symposion on, pp. 140, 149, 19-21 June 2013. PDF hier.

2. Yip, E.; Kuo, M.; Roop. P. S., Broman, D., "Relaxing the Synchronous Approach for Mixed-Criticality Systems", Proceedings of the 20th IEEE Real-Time and Embedded Technology and Application Symposium (RTAS), Berlin, Germany, April 15-17, 2014. PDF hier (author prepared accepted version).

3. Julian Gill: Raymond, P.; Maiza, C.; Parent-Vigouroux, C.; Carrier, F., "Timing analysis enhancement for synchronous program", Proceedings of the 21st International conference on Real-Time Networks and Systems 2013 (RTNS'13), Pages 141-150. PDF hier.

4. Robin Mohr: Mallet, F.; DeAntoni, J.; André, C.; de Simone, R., "The clock constraint specification language for building timed causality models - Application to synchronous data flow graphs", Innovations in Systems and Software Engineering (ISSE) 6(1-2):99-106(2010). PDF hier.

5. Nadeem, M.; Biglari-Abhari, M.; Salcic, Z., "GALS-JOP: A Java Embedded Processor for GALS Reactive Programs", IEEE Ninth International Conference on Dependable, Autonomic and Secure Computing (DASC), 2011, PDF hier.

6. Sun, W.-T.; Salcic, Z.; Malik, A., "LibGALS: a library for GALS systems design and modeling", Proceedings of the 15th Asia South Pacific Design Automation Conference (ASP-DAC)2010:107-112. PDF hier.

7. Alexander Fabritz: Andalam, S.; Roop, P. S.; Girault, A.; Traulsen, C., "A Predictable Framework for Safety-Critical Embedded Systems" (language: PRET-C), IEEE Transactions on Computers (PrePrint), 2013. PDF hier.

8. Volodymyr Borovkov: Malik, A.; Salcic, Z.; Roop, P.S., Girault, A., "SystemJ: A GALS language for system level design", Computer languages, Systems & Structures, vol. 36, pp. 317-344, 2010. PDF hier.

9. Bourke, T.; Pouzet, M., "Zélus: a synchronous language with ODEs", Proceedings of the 16th international conference on Hybrid systems: computation and control, pp. 113-118, 2013. PDF hier. Anm.: Dieses Paper ist etwas weniger umfangreich, dafür ist voraussichtlich deutlich mehr Arbeitsaufwand für das Hintergrundverständnis erforderlich, insbesondere für Studierende ohne Vorkenntnisse auf dem Gebiet Synchrone Sprachen.

10. Kim Christian Mannstedt: Gesell, M.; Schneider, K., "Translating synchronous guarded actions to interleaved guarded actions", Formal Methods and Models for Codesign (MEMOCODE), 2013 Eleventh IEEE/ACM International Conference on, pp. 167-176. PDF hier.

11. Magara, A.; Salvaneschi, G., "Ways to react: comparing reactive languages and complex event processing", 1st Workshop on Reactivity, Events and Modularity (REM'13). 2013. PDF hier.

12. Gueye, S. M.; De Palma, N.; Rutten, E.; Tchana, A., "Coordinating multiple administration loops using discrete control" (language: Heptagon/BZR), ACM SIGOPS Operating Systems Review, vol. 47, issue 3, December 2013, pp. 18-25. PDF hier.

Themen, die bevorzugt an Master-/Diplomstudierende vergeben werden (vorheriger Besuch der Vorlesung Synchrone Sprachen empfohlen):

1. Alexander Schulz-Rosengarten: Gemünde, M.; Brandt, Jens; Schneider, K., "Clock refinement in imperative synchronous languages", EURASIP Journal on Embedded Systems 2013, PDF hier.

2. Gesell, M.; Schneider, K., "Modular verification of synchronous programs", Application of Concurrency to System Design (ACSD), 2013 13th International Conference on, pp. 70, 79, 8-10 Juli 2013, PDF hier.

3. Caroline Butschek: Baudard, G.; Jacquemard, F.; Mandel, L.; Pouzet, M., "A synchronous embedding of Antescofo, a domain-specific language for interactive mixed music", Embedded Software (EMSOFT), 2013 Proceedings of the International Conference on, pp. 1-12, Sept/Oct 2013. PDF hier.

4. Karsten Rathlev: Bebelis, V.; Fradet, P.; Girault, A.; Lavigueur, B., "BPDF: A statically analyzable DataFlow model with integer and boolean parameters", EMSOFT'13, Proceedings of the Eleventh ACM International Conference on Embedded Software Article No. 3. PDF hier.

5. Shaver, C.; Lee, E.A., "The coroutine model of computation", Proceedings of the 15th international conference on Model Driven Engineering Languages and Systems 2012 (MODELS'12), pp. 319-334. PDF hier. Die Bearbeitung dieses Themas sollte sich auch mit ev. aktuellen Weiterentwicklungen beschäftigen, siehe z.B. den Vortrag von Chris Shaver beim Synchronworkshop 2013: Slides und die Homepage des Autors.

6. Attar, P.; Boussinot, F.; Mandel, L.; Susini, J.-F., "Proposal for a Dynamic Synchronous Language", INRIA, Research Proposal, 2011. PDF hier.

7. Gamatié, A.; Gonnord, L., "Static analysis of synchronous programs in signal for efficient design of multi-clocked embedded systems", Conference on Languages, Compilers and Tools for Embedded Systems (ACM SIGPLAN/SIGBED), LCTES 2011:71-80. PDF hier.

8. Talpin, J.-P; Brandt, J.; Gemünde, M.; Schneider, M.; Shukla, S., "Constructive Polychronous Systems", Logical Foundations of Computer Science. vol. 7734, 2013. PDF hier.

9. Brandt, J.; Schneider, K.; "Passive code in synchronous programs", ACM Transactions on Embedded Computing Systems (TECS), Special Section, vol. 13 issue 2s, Jan2014, article No. 67. PDF hier.

Termine (vorläufig):

Di. 15.4.

10:15 Uhr

Vorbesprechung/Kick-Off, LaTeX / Git Kurzeinführung
Mi. 16.4.
Frist für Themenauswahl (per Mail an Dozenten)
Mo. 5.5. 12:00 Uhr Abgabe Ausarbeitungsgerüst (Abstract, Einleitung, Gliederung, Stichworte, Bibliographie)
Di. 6.5.
Individualtermine, für Terminabsprache bitte Dozenten ansprechen
Mo. 26.5. 12:00 Uhr Abgabe Erstversion der vollständigen Ausarbeitung
Di. 27.5.
Individualtermine, für Terminabsprache bitte Dozenten ansprechen
Mo. 2.6. 12:00 Uhr

Abgabe der Review-Version der Ausarbeitung 

Mo. 2.6.
Zuordnung Ausarbeitungen/Reviewer (per E-mail)
Di. 10.6. 12:00 Uhr Abgabe der Reviews

Mo. 30.6.

12:00 Uhr Abgabe der Vortragsfolien und Handoutfolien (siehe unten)
Di. 1.7.
Individualtermine, für Terminabsprache bitte Dozenten ansprechen
Mi. 9.7. 9:00 Uhr Abgabe der Endversionen der Vortragsfolien, der Handoutfolien und der Ausarbeitung, anschließend Druck der Proceedings (incl. Ausarbeitungen und Vortragsfolien).
Do. 10.7. ganztägig Blockseminar mit Vorträgen (Ostseejugenddorf Falckenstein)

 

Agenda

Das Blockseminar findet im Ostseejugenddorf Falckenstein statt (Falkenhorst 6, 24159 Kiel-Friedrichsort, Tel.: 0431-7757038) im Raum "Fördeblick". Agenda:

 

Zeit Personen Thema/Ereignis
08:30 Alle Fahrer und Mitfahrer Treffen im Foyer Hochhaus
09:00 Alle Treffen im Jugenddorf Falckenstein
09:25 Dozenten Begrüßung
09:30 Mike Tallarek Engineering Functional Requirements of Reactive Systems
10:00 Alexander Fabritz PRET-C als Sprache in eingebetteten Systemen
10:30 Volodymyr Borovkov SystemJ
11:00 Kim Christian Mannstedt Die Transformation von SGAs zu IGAs
11:30 Alle Kaffeepause
12:00 Robin Mohr The clock constraint specification language for building timed causality models
12:30 Julian Gill Erweiterung der zeitlichen Analyse von synchronen Programmen
13:00 Alle Mittagspause und Strandspaziergang  (Kleidung und Schuhe bedenken!)
14:30 Karsten Rathlev Boolean Parametric Data Flow: A Data Flow Model for Streaming Applications
15:15 Alexander Schulz-Rosengarten Clock Refinement in Quartz
16:00 Alle Kaffeepause
16:15 Caroline Butschek Eine Implementierung von Antescofo mithilfe der synchronen Sprache ReactiveML
17:00 Dozenten Schlusswort
anschließend
Alle (freiwillig) (wetterabhängig) gemeinsames Grillen - Selbstversorgung, bitte bringt mit, was ihr braucht!

 

 

Ausarbeitung, Vortrag, Review

Das Seminar beinhaltet die Erstellung einer Ausarbeitung, eines Vortrags, und zweier Reviews.

Die Ausarbeitung soll eine Übersicht über das behandelte Themengebiet darstellen. Sie sollte so verfasst sein, dass sie von einen fortgeschrittenen Bachelor-Informatikstudenten gut verstanden werden kann. Die Ausarbeitung soll 6 (Master/Diplom) bzw. 4 (Bachelor) Seiten umfassen, nicht mehr und nicht weniger, und den ACM LaTeX-Style verwenden. Für mögliche Vorlagen zu den Ausarbeitungen siehe die Proceedings der früheren Seminare. Auch empfehlenswert ist ein Blick in die Hinweise für die Anfertigung einer Abschlussarbeit.

Der Vortrag soll 40 Minuten (Master/Diplom) bzw. 25 Minuten (Bachelor) lang sein. Das Vortragsprogramm wird etwas zusätzliche Zeit für Fragen (5 min) einplanen. Zu dem Vortrag sollen aussagekräftige Folien erstellt werden, zum Beispiel mit LaTeX Beamer (support nur bedingt für andere tools). Die Vortragsfolien sollten Seitennummern enthalten. Sollte das Thema auch eine konkrete Implementierung behandeln, ist eine entsprechende kurze Tool-Demo im Rahmen des Vortrages sinnvoll. Die Arbeitsgruppe bietet jedem/r Vortragenden an, eine Videoaufnahme des Vortrags zu erstellen und dem/r Vortragenden anschließend zur Verfügung zu stellen.

Ein Review einer Ausarbeitung besteht aus einer elektronisch annotierten PDF-Version der Review-Version der Ausarbeitung. Die Annotationen bestehen aus:

  1. Generellen Anmerkungen (mind. 1/2 Seite) - was gefällt Ihnen/gefällt Ihnen nicht, zu Inhalt, Gliederung und Lesbarkeit sowie generelle Verbesserungsvorschläge etc., z.B. als Textbox am Anfang des PDFs eingefügt, und
  2. Detaillierteren Korrekturen.

Ein eingescannter, handschriftlich annotierter Ausdruck der Ausarbeitung (generelle Anmerkungen sind auch hier erforderlich!) ist notfalls auch ok, wenn gut lesbar, sollte aber vermieden werden. Die Zuordnung Paper/Reviewer geschieht kurzfristig nach dem Abgabetermin für die Review-Versionen der Ausarbeitungen, basierend auf den dann abgegebenen Ausarbeitungen.

Beispiele zur Ausarbeitung und zu Vortragsfolien finden sich in den Proceedings früherer Seminare.

Jede(r) Seminarteilnehmer(in) erhält die Proceedings des laufenden Seminars.

Namenskonventionen

Auch wenn das Einchecken von generierten Binärdateien generell eher vermieden werden sollte, sind für dieses Seminar auch die folgenden pdfs einzuchecken, um unnötige Compilierungsschwierigkeiten bei Dozenten und Reviewern zu vermeiden. Grafiken sollten in einem Unterordner (z.B. "images") abgelegt werden. Grafiken sollten weiterhin möglichst skalierbare  Verktorgrafiken sein, die als PDF eingebunden werden können. Nicht einzuchecken sind temporäre Dateien (.aux etc.).

Die Namen für die Dateien, die im Git abzulegen sind, sollen wie folgt (gleichartig) aufgebaut sein. Bitte halten Sie sich von Anfang an an diese Namenskonventionen. Das vermeidet unnötige Sucherei, bewahrt uns vor späteren Schwierigkeiten mit automatischen Skripten und macht umständliches Umbenennen überflüssig.

  • Ausarbeitung: <login>/sem14ss-<login>.[tex/pdf]
  • Vortragsfolien: <login>/sem14ss-<login>-talk.[tex/pdf]
  • Handoutfolien - ohne Animationen, für Ausdrucke und die Proceedings: <login>/sem14ss-<login>-handout.[tex/pdf]
  • Review: <login review-Empfänger>/sem14ss-<login review-Empfänger>-review-<login Reviewer>.[pdf] (Beispiel also: cds reviewt ima und checkt das review-PDF mit dem Namen sem14ss-ima-review-cds.pdf im Ordner ima des Seminarrepositorys ein.

Anmerkung: Die Handoutfolien unterscheiden sich von den Vortragsfolien dadurch, dass die Handoutfolien keine Animationen für die Präsentation am Beamer enthalten. Beim Arbeiten mit der latex-beamer Klasse können Handoutfolien durch das Hinzufügen eines optionalen Argumentes bei der Deklaration der Dokumentenklasse generiert werden ("\documentclass[trans]{beamer}").

Benotung

Das Seminar ist benotet. Es werden jeweils Teilnoten für die einzelnen Meilensteine (Versionen der Ausarbeitung, Reviews, Folien, Vortrag) vergeben, aus denen sich die Endnote zusammensetzt. Es werden jeweils die Qualität sowie die Rechtzeitigkeit (siehe Terminplanung) bewertet. Das Nicht-Einhalten von Terminen kann zum Nicht-Bestehen des Seminars führen.

Technisches

  • Reichlich Dokumentation zum Git Source Code Management System findet man unter http://www.git-scm.com/.
  • Für den Zugriff auf das Repository ist eine Registrierung in Stash erforderlich. Danach muss einer der Seminarverantwortlichen benachrichtigt werden, damit die Zugriffsrechte eingerichtet werden können.
  • Git-Repository auschecken: git clone ssh://git@git.rtsys.informatik.uni-kiel.de:7999/sem/14ss-rt-emb.git
    • Um die Erstellung der Proceedings zu erleichtern, richten Sie sich bitte nach den oben beschriebenen Namenskonventionen.
  • Texlipse Latex Eclipse Plugin: http://texlipse.sourceforge.net/
    • URL kann direkt als Eclipse update site benutzt werden
    • Bei der Erstellung eines neuen Texlipse Projektes im New-Wizard auf pdf als Ausgabeformat umstellen und pdflatex benutzen (siehe unten)
  • ACM Style in deutscher oder englischer Version. Im Git Repository befinden sich im Unterverzeichnis init/ eine Reihe von Dateien, welche Sie als Vorlage nehmen können (siehe README.txt).
  • Wir benutzen pdflatex (erstellt PDF Dateien) und nicht direkt latex (erstellt DVI Dateien)
    • sind im Prinzip gleich zu benutzen
    • Hauptunterschied ist die Einbindung von Grafiken. In pdflatex siehe z.B. http://latex.mschroeder.net/#grafiken (Es sollte immer eine komplette figure Umgebung mit caption, label und Referenz im Text benutzt werden!)
    • Texlipse unterstützt ein sehr ausführliches "figure" template (irgendwo figure tippen und Strg-Leertaste drücken)
    • Von der Kommandozeile aus kann ein pdf mit "rubber -d sem14ss-<login>" erstellt werden (rubber ruft automatisch pdflatex und bibtex auf).
  • Bibliographie: Siehe ACM Beispiel (hier werden die Bibliographielemente in eine eigene *.bib Datei ausgelagert). Manuell wird dann einmal pdflatex dokument.tex aufgerufen. Dies erzeugt eine dokument.aux Datei. Darauf wird bibtex dokument.aux aufgerufen und dann nochmal zweimal pdflatex dokument.tex. Erst dann sind die Bibliographieelemente richtig im pdf-file.

    • Texlipse ruft pdflatex und bibtex in den richtigen Reihenfolgen automatisch auf.
    • Texlipse unterstützt sehr schöne Templates und Autovervollständigung für Bibliographie: Im *.bib file "@" tippen und Strg+Leertaste drücken, dann bekommt man eine Auswahl aller möglichen Bibliographielemente angezeigt. Entsprechend im .tex-File "\cite{}" Tippen, dort öffnet die Autovervollständigung eine Liste aller vorhandenen bib-Einträge


Weiterführende Hinweise / Links