Software is in many cases interacting with hardware, the peripheral devices, to interact with is physical environment. Those hardware-dependent software parts, in the context of an operating system better known as device driver, are crucial for system performance and stability.
In order to design hardware-dependent software, the principles and foundations of the interaction between hardware and software needs to be understood on lowest level as well as on abstract level. The reader can follow the ideas and principles from foundations in computer architecture over low-level communication up to software design and development methods. Describing the interaction with UML gives the software engineer direct hints on how to design the software based on model driven techniques and show the limits its expressiveness in this area.
The textbook avoids programming language or operating system dependencies to reveal the underlying, often hidden principles. Nevertheless, as software development is complex in this area, one focus point in the development cycle is on debugging techniques for hardware-dependent software.
O autorze
Thomas Lehmann received a Doktor in computer science form University Paderborn on the synthesis of software for device driver. After developing software for medical X-ray systems he became professor for embedded systems at the University of Applied Science in Hamburg. Later he changed to the computer science department and has become professor for programming of distributed technical applications. He is teaching Programming and Software Engineering in Computer Science and Mechatronics.