The importance of hardware and software collaboration in building embedded devices (by Martin Bakal)
In the past, embedded devices - devices with a processor inside them like automobiles, medical devices, etc., used to treat hardware and software as two parallel development efforts and then solve any incompatibilities during integration. This worked to a large extent because the software was fairly simple and could be modified to work around the defects as well as because development time frames were longer.
Those times are gone in part because software now is an integral part of the operation and usage of the device. Software and hardware integration is key to getting products out on time and satisfying customer needs. This is true for many different devices. Examples are from GPSs that update the graphics through software to algorithms in medical devices. This means hardware and software engineers have to rethink how they collaborate starting with their requirements going through a systems design that takes all the parts into consideration and going through configuration and defect management. An example issue is trying to figure if the customer reported defect is caused by the hardware or software. Many times when there are separate systems for defect monitoring, the person entering the defect has to guess where it occurs, then a manual change is needed thus risking a loss of defect and/or its tracking history. If multiple teams use one tool with a central repository, this can be avoided.
Quality management is another key aspect. Good quality metrics have to take into account tests from many different tools, some of which are designed to test the hardware and others to test the software. This means you need an open quality management platform that these tools can be integrated into in order to get a composite look at your overall quality metrics.
For companies aiming to launch innovative products, the increase of complexity in the products and the competitive nature of the globalized marketplace pose significant challenges. Innovation requires the ability of product teams to dynamically change software and hardware, iteratively evolving toward the desired end product. Effective co-development processes that support cross-discipline collaboration requires better integration among all of the tools used for hardware and software development, requirements, modeling, configuration management, and more. By adopting an integrated common infrastructure, teams can reduce risks and be confident that they are building to customer expectations. Adopting the shared processes between hardware and software can help teams develop innovative products faster—at a potentially lower cost.
The solution brief and the white paper give greater details on how the IBM Rational solution for hardware and software co-development can help synchronize the various stages of the hardware and software development life cycles with a set of integrated tools and capabilities for requirements mapping, system design and configuration and change management.