This paper presents a holistic
methodology for the design of medical device software, which encompasses of a
new way of eliciting requirements, system design process, security design
guideline, cloud architecture design, combinatorial testing process and agile
project management. The paper uses point of care diagnostics as a case study
where the software and hardware must be robust, reliable to provide accurate
diagnosis of diseases. As software and software intensive
systems are becoming increasingly complex, the impact of failures can lead to
significant property damage, or damage to the environment. Within the medical
diagnostic device software domain such failures can result in misdiagnosis
leading to clinical complications and in some cases death. Software faults can
arise due to the interaction among the software, the hardware, third party software and the operating
environment. Unanticipated environmental changes and latent coding errors lead
to operation faults despite of the fact that usually a significant effort has been expended in the
design, verification and validation of the software system. It is becoming
increasingly more apparent that one needs to adopt different approaches, which
will guarantee that a complex software system meets all safety, security, and
reliability requirements, in addition to complying with standards such as IEC
62304. There are many initiatives taken to develop safety and security critical
systems, at different development phases and in different contexts, ranging
from infrastructure design to device design. Different approaches are
implemented to design error free software for safety critical systems. By
adopting the strategies and processes presented in this paper one can overcome
the challenges in developing error free software for medical devices (or safety
critical systems).