Sunday, June 28, 2009

Life Stories #6 Hardware Test System (HTS) Architecture

I began working for a medical equipment manufacturer in 1997 as a Software Engineer in operations. At that time, the company formed a new test engineering team to architect, design and develop an automated test system for testing patient monitors in the manufacturing environment. The goal was to design a software system that could test multiple patient monitors at the same time, and store all of the results to a central SQL database. Each patient monitor has multiple biological parameters that it monitored simultaneously. The test system needed to run multiple tests on a patient monitor simultaneously. Because the common behavior of all of the patient monitoring equipment, we could leverage economies of scale by using common test software, but varying test parameters, to test the patient monitoring hardware. The central SQL database would hold the test parameters; also, it would hold the relationships between the device under test (DUT) and the tests for that device and the test parameters for each test for that device.

This was a large system and we designed it using knowledge of past systems, but without using any components (hardware or software) of past systems. There were two major components: a custom hardware simulator for simulating all of the biomedical parameters (BP, Temp, ECG, SpO2, NBP, IBP, EtCO2), and a Windows NT/XP software application for running the tests on multiple units simultaneously. The largest obstacle was designing the architecture correctly, so it would be flexible enough to allow for the addition of new tests, simulators and test targets (DUTs).

We decided to use the Rational Unified Process, the Unified Modeling Language, and Rational Rose to do the Object-Oriented Analysis and Design. We analyzed stakeholder needs to develop Use Cases. We created use case diagrams to show relationships between the actors and the use cases. We developed several analysis models of the system using sequence diagrams, activity diagrams and analysis classes. We developed the overall architecture with other project members using UML and analysis modeling techniques.

We developed the overall architecture by printing a massive collaboration diagram from all of the use cases and then grouping the logical classes into groups. We drew a border around each of these groups; these became the packages of the system. Then, we designated the classes that would become the interface into each package, and the classes that would define the framework for each package. Each package became either a Dynamic Link Library or the application executable.

Next, from the use case analysis, I design the interfaces for all of the systems for the entire architecture and the test engine for the test system. Then, we divided the software development work among the various members of the team. I handled the GUI, the DLL that communicated with the patient simulators and the patient monitors, the DLL that held the test engine, and the DLL that held the concrete test for the DUT. The other team members in our group worked on the DLL that communicated with the Oracle SQL database and the web server software that read the SQL database and generated reports for use in production.

We wrote all of the software for HTS using Visual C++ and the MFC library. In addition, I developed multiple COM components for use with the Hardware Test System. All of these COM components were created using ATL.

This test system became the flagship test system for our corporation. It is now used in multiple facilities around the world. It proved to be flexible. We expanded it to test multiple types of patient monitoring equipment and telemetry equipment. We included the use of HP signal generator and spectrum analyzers. All of this was done without making major changes to the software architecture.

This test system now tests nearly the entire patient monitoring equipment portfolio that the company manufacturers. It is difficult to estimate the amount of cost savings by using the HTS, but it must be more than 1 million dollars to date. This project started in 1998 and the system is still in use today.

No comments:

Post a Comment