| Modulname |
Inhalt |
Software Engineering
for Distributed Systems |
Vorlesungs-Wochenende 1:
Systems Analysis and Design
Object-Oriented Analysis and Design
Implementation Issues
Project Management and the Usage of Tools
Testing, Maintenance & Reliability
Formal Specification and Verification
|
| Vorlesungs-Wochenende 2:
The Nature of Real-Time & Distributed Systems
A Framework for Dependable Systems
Concurrent Systems-Analysis
Concurrent Processes: Interaction with Semaphores
Processes: Scheduling
Interaction - Higher level methods (monitors, message passing)
|
| Prüfung: 5 Aufgaben
zu den Themen aus Vorlesungs-Wochenden 1 und 2, wobei nur drei Aufgaben zu lösen sind, um
die maximale Punktzahl zu erreichen. (Es werden allerdings auch nur 3 Aufgaben bewertet!) |
| Computer Architecture |
Vorlesungs-Wochenende 3:
computer system performance issues
performance evaluation
memory system organisation
instruction set architecture
RISC versus CISC
introduction to pipelining
instruction and vector pipelining
|
| Vorlesungs-Wochenende 4:
instruction level parallelism
pipelines and data hazards
pipelines and control hazards
cache memory
virtual memory
memory management
I/O systems
interconnection
|
| Prüfung: 5 Aufgaben
zu den Themen aus Vorlesungs-Wochenden 3 und 4, wobei nur drei Aufgaben zu lösen sind, um
die maximale Punktzahl zu erreichen. |
| Computer Networks |
Vorlesungs-Wochenende 5:
Netzwerk Grundlagen
Kabel (Koax, RJ45 etc.)
CSMA/CD
IEEE 802 Standards (Token Ring, Ethernet)
OSI Schichtenmodell
Modem
ISDN
ATM
|
| Vorlesungs-Wochenende 6:
TCP/IP
Routing
ARP
ICMP etc.
|
| Prüfung:
Wahrscheinlich 5 Aufgaben zu den Themen aus Vorlesungs-Wochende 5 und Vorlesungs-Wochende
6. Es sind nur 3 Aufgaben zu lösen, um die maximale Punktzahl zu erreichen. |
| Workshop-Modul
Semester 1 |
Workshop-Wochenende 1:
(Object-Oriented Programming with Java) Java Tutorial and implementation of an event-driven GUI-based calculator.
This workshop weekend isnt assessed. Very easy to do for those which have already
Java programming experience. |
| Workshop-Wochenende 2: (Threads,
Design Pattern) Abhandlung der
Threads in Java sowie Themen "Mutual Exclusion", "Monitors",
"Deadlock" etc. Abhandlung wichtiger Design Patterns und Einführung in eXtreme
Programming mittels JUnit. |
| Assignment 1: (Einführung in
Java, Umsetzung Requirements in Design und Implementierung) Entwicklung eines RadioSimulators mit
erweiterbarem Design. Sinnvoll um sich in OO
und Java einzuarbeiten. |
| Assignment 2: (Threads)
Umschreiben des Simulators in
eine Anwendung
mit mehreren Threads. Threads, Threadkommunikation, Locks und Monitore in
Java. |
| Assignment 3: (Design Patterns)
Umschreiben des Simulators in eine Anwendung
mit einem simuliertem Datenbankzugriff. Anwenden
von verschiedenen OO Designpatterns. Programmierung
nach dem eXtreme Programming Modell unter Zuhilfenahme von
JUnit. |
| Workshop-Wochenende 3: (Computer Networks)
Sockets und RMI in Java. |
| Assignment 4: (Sockets) Abhandlung
über Sockets, Multicast, Unicast, TCP und UDP. |
| Assignment 5: (RMI) Anwendung
von Remote Objekt Aufrufen, entwickeln einer
verteilten Anwendung in Client/Server Technik
mit Java RMI. |
| Team-Assignment & Management
Assignment |
Vorlesungs-Wochenende 7: Management-Kurs. Die einzelnen Schritte für ein erfolgreiches
Projekt-Management. |
| Team-Assignment: In einer Gruppe von 4 bis 5 Leuten soll eine verteilte Software entwickelt
werden. Das Team ist zufällig zusammen gestellt, um bewusst die Schwierigkeiten in einem
Team zu erhöhen. Der Schwerpunkt liegt auf der Demonstration der Fähigkeit, ein Projekt
in einem Team abzuwickeln. |
| Management Assignment: Schreiben eines Management Reports entweder über ein vorgegebenes Projekt,
oder ein beliebiges anderes Projekt. Herausfinden der
Schwerpunkte und Problembereiche, Ausarbeiten von Lösungen,
Aufstellen eines Projekt-Plans etc. |
| Data Compression and Data
Security |
Vorlesungs-Wochenende 8: (Data Compression)
Source Coding Theory
Source Coding Implementations
Predictive Data Compression
Dictionary Methods: the Lempel-Ziv Family
Im Wesentlichen die Inhalte aus der Vorlesung Informations-
und Codierungstheorie. |
| Vorlesungs-Wochenende 9: (Data Security)
Data Security and Information Theory
Simple Ciphers and their Classification
A Complexity Measure for Security
Modern Cryptography
Ebenso der größte Teil Inhalt der Vorlesung Informations-
und Codierungstheorie. |
| Prüfung: 5 Aufgaben zu den
Themen aus Vorlesungs-Wochenden 8 und 9, wobei nur drei Aufgaben zu lösen sind, um die
maximale Punktzahl zu erreichen. |
| Distributed Systems Architecture |
Vorlesungs-Wochenende 10:
Networks, networking and internet working
Interprocess communication, co-ordination and scheduling
Distributed File System
Distributed and Replicated Data management
|
| Vorlesungs-Wochenende 11:
Operating System support and concept
Transactions and Concurrency Control
Recovery and Security
Software bus architectures
|
| Prüfung: 5 Aufgaben zu den
Themen aus Vorlesungs-Wochende 10 und 11, wobei nur drei Aufgaben zu lösen sind, um die
maximale Punktzahl zu erreichen. |
| Workshop-Modul Semester 2 |
Workshop-Wochenende 4: (Distributed Objects
Sockets, RMI, IDL, DCOM) Durcharbeiten
von Tutorials über Forte for Java. Weitere Tutorials über RMI und Sockets. Umschreiben
des Simulators für eine Kraftfahrzeugaufhängung in eine verteilte Anwendung mit RMI. |
| Assignment 1: (RMI and Sockets)
Abhandlung über RMI, Sockets and TCP/IP.
Lauffähige Version des Simulators mit RMI. |
| Assignment 2: (Java Beans: Nature and
Application) Abhandlung über
Softwarekomponenten. Erläuterung, was Beans sind, wie sie aufgebaut sind und wie sie
eingesetzt werden können. |
| Workshop-Wochenende 5: (Data Compression and
Data Security) Durcharbeiten eines
gut vorbereiteten Tutorials. Erstellung von Statistiken, die in den Assignments zur
Auswertung benötigt werden. |
| Assignment 3: (Coding for data
compression) Bearbeitung und
Aufbereitung von konkreten Fragen und Aufgaben, die im Tutorial gestellt wurden. |
| Assignment 4: (Coding for security)
Bearbeitung und Aufbereitung von konkreten
Fragen und Aufgaben, die im Tutorial gestellt wurden. |
Workshop-Wochenende 6:
(Distributed Systems Architecture)
Implementierung eines Time-Servers zur zeitlichen
Synchronisation der Rechner in einem Rechnernetz. Die Realisierung erfolgt mit CORBA und
Java. Als erstes erfolgt eine Einarbeitung in CORBA anhand von gut nachvollziehbaren
Beispielen. Danach muss ein Time-Server und ein korrespondierendes Stuck Software, das
clientseitig lauffähig ist, implementiert werden. Zum Zeitabgleich wird die Methode nach
Christian verwendet. |
| Assignment 5 & 6: Im Gegensatz zu anderen Workshop-Modulen muss nur ein Assignment angefertigt
werden, das die erarbeiten Ergebnisse des Workshop-Wochenendes zusammenfasst. Hierbei soll
auf Corba, auf die Probleme bei der Synchronisation und die Notwendigkeit einer
Synchronisation von Uhren innerhalb eines verteilten Systems eingegangen werden. |
| Master Diplomarbeit |
- Abgabe einer Seite Kurzbeschreibung zu Beginn des 2ten
Semesters.
- Abgabe von 10 Seiten Beschreibung kurz vor den Prüfungen zum
2ten Semester.
- Abgabe der Diplomarbeit ca. 3 Monate nach den Prüfungen des
2ten Semesters.
|