TXM: An Agile HW/SW Development Methodology for Building Medical Devices Lucas Cordeiro 1,3 , Raimundo Barreto 1 , Rafael Barcelos 1 , Meuse Oliveira 2 , Vicente Lucena 4 , and Paulo Maciel 2 1 Departamento de Ci ˆ encia da Computac ¸˜ ao - Universidade Federal do Amazonas (UFAM), Brazil {rbarreto, rbarcelos}@dcc.ufam.edu.br 2 Centro de Inform´ atica - Universidade Federal de Pernambuco (UFPE), Brazil {mnoj, prmm}@cin.ufpe.br 3 Centro de Ciˆ encias, Tecnologia e Inovac ¸˜ ao do P´ olo Industrial de Manaus (CTPIM), Brazil lucas@ctpim.org.br 4 Centro de P&D em Tecnologia Eletrˆ onica e da Informac ¸˜ ao (CETELI/UFAM), Brazil vicente@ufam.edu.br ABSTRACT Arterial oxygen saturation and heart rate measured by pulse oximetry is widely used to monitor critical care patients. This kind of system is classified as embedded hard real- time system and requires rigorous development methodolo- gies to guarantee the correctness and timeliness of the appli- cation. Therefore, the proposed development methodology combines agile principles with organizational patterns and adapts them to build medical devices focusing on the issues related to the system’s constraints and safety. Strong unit testing is the foundation of the proposed methodology for ensuring timeliness and correctness. Moreover, platform- based design approach is used to balance costs and time-to- market in view of performance and functionality constraints. We conclude that the proposed methodology reduces signif- icantly the design time and cost as well as leads to better software modularity and safety. Categories and Subject Descriptors J.3 [Life and Medical Sciences]: medical information sys- tems; D.2.5 [Software Engineering]: Testing and Debug- ging—debugging aids, diagnostics, testing tools. Keywords Agile methodologies, Health Care, Embedded Agile Devel- opment, Organizational Patterns, Platform-Based Design, Real-time Software. 1. INTRODUCTION Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. To copy otherwise, to republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Copyright 200X ACM X-XXXXX-XX-X/XX/XX ...$5.00. The micro-controllers becoming cheaper, smaller and more reliable make them economically attractive to be used as computer systems in several appliances. Approximately 3 billion of micro-controllers (µC) are sold each year and smaller µC (4-,8-, and 16-bit) are dominating the market and adding value to products [11]. Embedded computer systems are used in a wide range of system from machine condition mon- itoring to airbag control systems. As the system complexity increases, its development lifecycle is also affected. Because of that, system development methodologies must be applied in order to manage the team size, the product requirement (scope), and meet the project’s constraints (time-to-market and costs). Nevertheless, many development methodologies that are used to produce software that runs on the personal comput- ers (PC’s) are not appropriate for developing medical de- vices. These devices share common chacteristics with typical embedded real-time systems, i.e. they have a data acquisi- tion stage, the application of an algorithm, followed by out- put of a result. Therefore, this kind of system contains very different characteristics such as dedicated hardware and soft- ware, and constraints that are not common to PC’s based systems (e.g. energy consumption, execution time, memory footprint). Another important point is that some medical devices may put lives at risk (mission criticality) if some failure occurs. Therefore, these systems should be treated differently from the case where the only cost of failure is the project’s investment. Based on this context, we propose a development method- ology named as TXM (The neXt Methodology) based on the agile principles such as adaptive planning, flexibility, it- erative and incremental approach in order to make the de- velopment of medical devices easier. To achieve that, this methodology is composed by best practices from Software Engineering and Agile methods (Scrum and XP) which aim at minimizing the main problems present on the software development context (i.e. requirement volatility and risk management), and by others practices that are needed to achieve hardware and software development (i.e. platform- ACM SIGSOFT Software Engineering Notes Page 1 November 2007 Volume 32 Number 6