Beth, nice article, and very timely. The first thing that comes to mind is that many organizations doing embedded design have hardware engineers doing software. The reason for this is that most people think that anyone can write code. I have seen it. And yet, we have, as your story points out, more and more software content in products. I get involved in judging senior projects at some local universities from time to time. These are all in hardware disciplines. In each case, there is a microprocessor invovled. The main reason for this is the complexity of some of the projects. There is simply not enough time to develop a hardware solution, even if they could get it built. On the other hand, the students do not have a good background in software and point out that this was the most difficult part of their project. The schools are attempting to remedy this.
My background is in the spacecraft industry. The projects were large and complex and expensive. We had a strong systems engineering group. We also had functional teams with all the various disciplines. There were several mechanical (mechanisms, stress, thermal, materials, etc.), electrical (power, logic, controls) and software engineering. There were also manufacturing engineering functions and a large engineering support group (read drafting or CAD). A project would draw people from each of the functonal groups. So, by design, we had the multidisciplinary teams. This worked well. We often used system design languages and made the decision of whether to implement in hardware or software well down in the process.
In recent times, I have been more involved in the commercial embedded world (among other things). I notice things coming into vogue such as requirements traceability, higher level languages (C++ for C) and OOP techniques. These things are being supported by the CAD vendors and are being driven, I think, by the involvemen of the software engineers.
I think we will see a real shift in how these projects are done as these techniques are applied more widely.
Festo's BionicKangaroo combines pneumatic and electrical drive technology, plus very precise controls and condition monitoring. Like a real kangaroo, the BionicKangaroo robot harvests the kinetic energy of each takeoff and immediately uses it to power the next jump.
Design News and Digi-Key presents: Creating & Testing Your First RTOS Application Using MQX, a crash course that will look at defining a project, selecting a target processor, blocking code, defining tasks, completing code, and debugging.
Focus on Fundamentals consists of 45-minute on-line classes that cover a host of technologies. You learn without leaving the comfort of your desk. All classes are taught by subject-matter experts and all are archived. So if you can't attend live, attend at your convenience.