Date of Award


Degree Name

MS in Biomedical Engineering


Biomedical and General Engineering


Dr. Lily Laiho


Medical devices used for surgical or therapeutic purposes require a high degree of safety and effectiveness. Software is critical component of many such medical devices. The software architecture of a system defines organizational structure and the runtime characteristic of the application used to control the operation of the system and provides a set of frameworks that are used to develop that. As such, the design of software architecture is a critical element in achieving the intended functionality, performance, and safety requirements of a medical device. This architecture uses object-oriented design techniques, which model the underlying system as a set of objects that interact to achieve their goals. The architecture includes a number of frameworks comprised of a set of classes that can be extended to achieve different functionality required for a medical device. The Input/ Output (IO) framework includes a number of core classes that implement periodic and a periodic input output with varying priority requirements, provides a hardware neutral interface to the application logic, and a set of classes that can be extended to both meet the hardware IO specifics of a target platform and create new sensor and actuator types for client applications. The Devices framework provides a blueprint to develop the controller logic of the medical device in terms of abstractions that parallel the hardware components of the medical device. The Configuration framework allows creation and configuration of a medical device from an XML (Extensible Markup Specification) specification that specifies the configuration of the device based on abstract factories that can be extended to meet requirements of a specific medical device. The Controller is the component of the architecture that defines classes that implement reception of commands from and transmission of status and data to a local or remote client and dictate the structure of threads, thread priorities and policies for this purpose. The Diagnostics package of the architecture defines a framework for developing components that monitor the health of the system and detect emergency conditions. The architecture is implemented in C++ and runs on a real-time LINUX operating system. At this time, the architecture is used in development of two of the St. Jude Medical Atrial Fibrillation Division’s medical devices; one of these has FDA class III and the other class II classification.