Labor für Softwaretechnik

Ziel des Laborpraktikums im Modul Softwaretechnik im dritten Semester Medizintechnik ist die praktische Einübung zentraler Konzepte aus dem begleitenden seminaristischen Unterricht in Softwaretechnik (sog. „Programmieren im Großen“). Dazu zählen neben der objektorientierten Analyse (OOA), objektorientiertem Design (OOD), objektorientierter Programmierung (OOP) und objektorientiertem Test (OOT), die Fähigkeit zur Anwendung der gebräuchlichsten Entwurfsmuster (Design Patterns), die Erstellung von grafischen Benutzungsschnittstellen (GUI) sowie von Techniken des nebenläufigen und verteilten Programmierens (Concurrent and Distributed Systems). Ausgestattet mit diesen Fertigkeiten bearbeiten die Studierenden in Teams zusätzlich zu den Laborversuchen ein semesterübergreifendes Projekt, in welchem neben der Fach- und Methodenkompetenz die für die Teamarbeit erforderlichen persönlichen, kommunikativen und sozialen Kompetenzen trainiert werden.

Laborversuche

An fünf Terminen werden die folgenden betreuten Übungen durchgeführt:

  • Objektorientierte Analyse (OOA) und Entwurf (OOD) einer Fragestellung aus der Medizintechnik unter Verwendung eines UML-Werkzeuges
  • Objektorientierte Programmierung (OOP) eines ausgewählten Entwurfsmusters in einer objektorientierten Programmiersprache
  • GUI-Entwurf und Implementierung eines interaktiven objektorientierten Programmes
  • Realisierung einer verteilten Applikation mit CORBA
  • Objektorientierte Programmierung einer nebenläufigen Applikation (Multithreading, Synchronisation, Produzenten-Konsumenten-System)

Ausstattung

  • UML-Werkzeuge: ArgoUML, Enterprise Architect, Microsoft Visio, Dia
  • Programmiersprachen: C++, C#, Java, Python
  • Entwicklungswerkzeuge: Microsoft Visual Studio, eclipse,  idle, .NET Reflector, cygwin, qmake, gdb, valgrind, doxygen, javadoc
  • Nebenläufigkeits-Bibliotheken: Qt-Threads, Java-Threads, POSIX-Threads, Windows-Threads
  • Middleware-Bibliotheken: omniORB, gSOAP, ZeroMQ (0MQ)
  • GUI-Bibliotheken und -Werkzeuge: Qt4/Designer, .NET WinForm, Tkinter, AWT/Swing
  • Testwerkzeuge: CDash, {J/N/Cpp/Py}Unit
  • Qualitätssicherungswerkzeuge: Bugzilla, Trac, GNATS

  • Versionierungswerkzeuge: Git, Mercurial, svn, cvs