1 Introduction
As medical devices have evolved over the years, digital technology has generally replaced or supplemented analog technology, driving an increased reliance on embedded and high-level software for the implementation of critical device functionality. For example, early pacemakers with CPUs included around 10,000 lines of code. Today, a modern pacemaker can include over 100,000 lines of code. Despite the increasing reliance on software, much of the code is still developed by engineers whose primary training is geared toward low-level hardware and firmware development - few are trained in state of the art software development technologies or formal quality assurance techniques.