Software development - a lot more than codingThis "Product How-To" article focuses how to use a certain product in an embedded system and is written by a company representative.
As microprocessors get increasingly more powerful, so does appetite for additional software functionalities. Size of embedded systems software increase every year and new types of problems is caused as a result.
The software industry agree that the largest problems while developing software is no longer how to write the individual code lines; today's problems are more related to managing ever increasing code complexity, increasing development costs and delays, geographically separated project teams, and too low quality in many software products.
Still, it is surprising to see that almost all integrated development environments for development of embedded systems software focus on the same tasks as 20 years ago, mostly the traditional chain of editing, compiling and debugging only.
With better development tools, covering a wider field of problems facing software developers in their everyday work, development times can be reduced and software quality can be improved.
Admittedly, tools have been improved over the past 20 years, but it is still primarily the traditional steps of editing, compiling and debugging that are handled. Editors are of course better today; developers expect features like expand/collapse of code blocks, spell checking of text in C/C++ comments, functions for visualization and navigation of the code structure, etc.
Today, embedded compilers handle C++ as well as C, and code size is improved even if that is less important in the new powerful 32-bit devices. The difference in size between compilers from different vendors is marginal on most cases, and the free GNU compiler is in many cases even better than some commercial compilers. Debuggers are better too, but it is still functions for execution of code and inspection of variable values that are in focus.
By looking at tool support in a wider perspective, development teams can start to address the problems that really cost money, delay projects, and cause companies to deliver software products of low quality.
Modern C/C++ tools ought to extend the traditional features (editing, compiling and debugging) with new features covering support for design and documentation, team collaboration, traceability in code changes and better tools for improving software quality.