[M.Sc. Teamproject] Case Study: Verified USB Driver
Course type | M.Sc. Teamproject |
---|---|
Instructors | Bernd Westphal, Andreas Podelski, Daniel Dietsch, Sergio Alejandro Feo-Arenis |
Credits | 16 |
Course Catalog | Masterprojekt am Lehrstuhl für Softwaretechnik |
Today, configuration and control of small embedded systems via PCs
makes use of the classical serial RS232 interface. On the one hand,
modern PCs don't provide such an interface any more. On the other hand,
even small contemporary controllers employed in embedded systems often
comprise an on-board USB port. Therefore, users rightly expect
tomorrow's embedded systems to interact seamlessly with the PC via USB
ports.
The problem with embedded devices considered in this
project is, that there are typically no standard drivers for the
controller side. The reason is simply, that these devices often don't
even run an operating system which could provide a framework for a
driver. The controller manufacturer only provides exemplary
implementations. On the PC side, the problem is that the driver is
supposed to be of high quality because the controlled embedded system
may be critical.
In this project, the candidate is supposed to
develop USB drivers for both sides. The research task is to assess, on
the one hand, the quality that can be ensured with static driver
verification tools provided by Co. Microsoft and on the other hand to
assess in how far state-of-the-art software engineering methods can
ensure quality of the USB driver on the controller side.
The
candidate should have a fair background in software-engineering,
interest in software development for embedded systems (in C), and at
best some background in formal methods.
Note: This is a joint project with company SeCa GmbH.
The project is supposed to be conducted as part of a 9 month internship
(``Werkstudent'') where the candidate is employed as a student worker
at SeCa.