Embedded Systems Design - June 2008 - (Page 54) break points in machine code. The ’50s saw the It seems logical that we must introduction of the first compiled manage features aggressively, since language, Fortran, which boosted schedule and quality issues will alcoding efficiency almost overnight. ways be non-negotiable. Use requireFortran came at the cost of bigger, ments scrubbing to identify and reslower code, a tradeoff that was then move those features that really are deemed unacceptable by too many not needed. Build the system in a logengineers. But those who embraced ical manner so that even if you’re late, Fortran were proven to be the vanyou can still deliver a product that guard of the future. does the most important things well. Today we hear the same arguThere is, of course, one other inments about modeling, C++ and gredient that forms the backdrop of Java. Too slow, too big. Yet clearly the twisted triad, one that is more the continuing to crank out millions of fabric of the development environlines of C is not going to solve any ment: problems; hand coding is resources. Decent no longer giving the protools, an adequate Today we hear the same arguments about ductivity boosts absupply of smart modeling, C++ and Java. Too slow, too solutely required to keep people, an enup with increasing prodlightened manbig. Yet clearly continuing to crank out uct demands. agement team, all millions of lines of C is not going to solve Advanced languages form the infraany problems . . . offer us the power of abstructure of what straction, of working we need to get the with higher level views project done. of our project. Abstraction is fundatoo, shows that timelines grow much In the 20th century, we learned to mental to our future. We can no faster than firmware size. Double the build embedded systems, but it seems longer afford to be concerned with management never figured out the ap- number of lines of code, and the debits and bytes. Whether you love or propriate role of resources in develop- livery date goes out by much more than a factor of two. Sometimes much hate it, the Windows API gives deskment projects. Somehow engineering top developers an ineffably rich set projects are viewed much like building more. of resources only an masochist Yet “go hire some more people” widgets on a production line. Need would care to recreate. more widgets? Add more people, more seems the universal management Tools of various flavors are the mantra when a project plunges into machines. That just does not work in enabling ingredient in abstracting us trouble. It simply doesn’t work. software engineering. Is there no hope? Will projects al- from lower level details. The first Fred Brooks, in his wonderful Fortran compiler, by today’s stanways be doomed to failure? Is the book The Mythical Man-Month, dard laughably simple, gave engipressure so aptly illustrated in The shows how adding people to a late neers of the ’50s a formidable Soul of a New Machine our destiny? software project invariably makes it weapon. Today we have even more With project complexities exeven later. That two developers have ploding, it’s clear that unless we dedi- choices. only a single communications chanWe largely accept the extra overcate ourselves to a new paradigm of nel between them, but as we add enhead associate with compilers. Other development, using so much that has gineers, the number of memo/meettools, all of which abstract us further been learned about software engiing/e-mail links goes up with the from the code, cost more in overneering in the last half-century, we’ll number of people squared. stagnate, wither, and fail. Those com- head, yet promise faster and better IBM found that as a project’s delivery. Modeling tools like UML scope increases, software productivity panies that accept new modes – and have been successful in some doold proven modes—of thinking will goes down—dramatically—for the mains. Too few developers grok Labprosper. Two areas in particular are same reason. Their surveys showed VIEW and MATLAB, yet they are critical for new understanding, two code production (in number of lines both important parts of the embedareas that this volume deals with: per day) fell by an order of magnided landscape. reuse and tools. tude as projects grew. Tools that automatically search Barry Boehm’s Constructive Cost out bugs promise much for proTOOLS Model is probably the most famous grammer productivity. Coverity, In the 1940s all software was crafted predictor of software schedules. It, 54 JUNE 2008 | embedded systems design | www.embedded.com http://www.embedded.com
Table of Contents Feed for the Digital Edition of Embedded Systems Design - June 2008 Embedded Systems Design - June 2008 Contents #Include Party Bit Programmer's Toolbox Cover Feature: Virtual Hardware Platforms for Embedded Software Validation Allocating Memory in MATLAB-to-C Code MDD and IDEs: Making the Twain Meet in Embedded Systems Design Avoid a Thrashing Guest Editor Advertising Index Break Points Marketplace Embedded Systems Design - June 2008 Embedded Systems Design - June 2008 - Embedded Systems Design - June 2008 (Page Cover1) Embedded Systems Design - June 2008 - Embedded Systems Design - June 2008 (Page Cover2) Embedded Systems Design - June 2008 - Embedded Systems Design - June 2008 (Page 1) Embedded Systems Design - June 2008 - Embedded Systems Design - June 2008 (Page 2) Embedded Systems Design - June 2008 - Contents (Page 3) Embedded Systems Design - June 2008 - Contents (Page 4) Embedded Systems Design - June 2008 - Contents (Page 5) Embedded Systems Design - June 2008 - Contents (Page 6) Embedded Systems Design - June 2008 - #Include (Page 7) Embedded Systems Design - June 2008 - #Include (Page 8) Embedded Systems Design - June 2008 - #Include (Page 9) Embedded Systems Design - June 2008 - Party Bit (Page 10) Embedded Systems Design - June 2008 - Party Bit (Page 11) Embedded Systems Design - June 2008 - Party Bit (Page 12) Embedded Systems Design - June 2008 - Party Bit (Page 13) Embedded Systems Design - June 2008 - Programmer's Toolbox (Page 14) Embedded Systems Design - June 2008 - Programmer's Toolbox (Page 15) Embedded Systems Design - June 2008 - Programmer's Toolbox (Page 16) Embedded Systems Design - June 2008 - Programmer's Toolbox (Page 17) Embedded Systems Design - June 2008 - Programmer's Toolbox (Page 18) Embedded Systems Design - June 2008 - Programmer's Toolbox (Page 19) Embedded Systems Design - June 2008 - Programmer's Toolbox (Page 20) Embedded Systems Design - June 2008 - Programmer's Toolbox (Page 21) Embedded Systems Design - June 2008 - Cover Feature: Virtual Hardware Platforms for Embedded Software Validation (Page 22) Embedded Systems Design - June 2008 - Cover Feature: Virtual Hardware Platforms for Embedded Software Validation (Page 23) Embedded Systems Design - June 2008 - Cover Feature: Virtual Hardware Platforms for Embedded Software Validation (Page 24) Embedded Systems Design - June 2008 - Cover Feature: Virtual Hardware Platforms for Embedded Software Validation (Page 25) Embedded Systems Design - June 2008 - Cover Feature: Virtual Hardware Platforms for Embedded Software Validation (Page 26) Embedded Systems Design - June 2008 - Cover Feature: Virtual Hardware Platforms for Embedded Software Validation (Page 27) Embedded Systems Design - June 2008 - Cover Feature: Virtual Hardware Platforms for Embedded Software Validation (Page 28) Embedded Systems Design - June 2008 - Cover Feature: Virtual Hardware Platforms for Embedded Software Validation (Page 29) Embedded Systems Design - June 2008 - Allocating Memory in MATLAB-to-C Code (Page 30) Embedded Systems Design - June 2008 - Allocating Memory in MATLAB-to-C Code (Page 31) Embedded Systems Design - June 2008 - Allocating Memory in MATLAB-to-C Code (Page 32) Embedded Systems Design - June 2008 - Allocating Memory in MATLAB-to-C Code (Page 33) Embedded Systems Design - June 2008 - Allocating Memory in MATLAB-to-C Code (Page 34) Embedded Systems Design - June 2008 - Allocating Memory in MATLAB-to-C Code (Page 35) Embedded Systems Design - June 2008 - Allocating Memory in MATLAB-to-C Code (Page 36) Embedded Systems Design - June 2008 - MDD and IDEs: Making the Twain Meet in Embedded Systems Design (Page 37) Embedded Systems Design - June 2008 - MDD and IDEs: Making the Twain Meet in Embedded Systems Design (Page 38) Embedded Systems Design - June 2008 - MDD and IDEs: Making the Twain Meet in Embedded Systems Design (Page 39) Embedded Systems Design - June 2008 - MDD and IDEs: Making the Twain Meet in Embedded Systems Design (Page 40) Embedded Systems Design - June 2008 - MDD and IDEs: Making the Twain Meet in Embedded Systems Design (Page 41) Embedded Systems Design - June 2008 - MDD and IDEs: Making the Twain Meet in Embedded Systems Design (Page 42) Embedded Systems Design - June 2008 - MDD and IDEs: Making the Twain Meet in Embedded Systems Design (Page 43) Embedded Systems Design - June 2008 - MDD and IDEs: Making the Twain Meet in Embedded Systems Design (Page 44) Embedded Systems Design - June 2008 - Avoid a Thrashing (Page 45) Embedded Systems Design - June 2008 - Avoid a Thrashing (Page 46) Embedded Systems Design - June 2008 - Avoid a Thrashing (Page 47) Embedded Systems Design - June 2008 - Guest Editor (Page 48) Embedded Systems Design - June 2008 - Guest Editor (Page 49) Embedded Systems Design - June 2008 - Guest Editor (Page 50) Embedded Systems Design - June 2008 - Guest Editor (Page 51) Embedded Systems Design - June 2008 - Advertising Index (Page 52) Embedded Systems Design - June 2008 - Break Points (Page 53) Embedded Systems Design - June 2008 - Break Points (Page 54) Embedded Systems Design - June 2008 - Marketplace (Page 55) Embedded Systems Design - June 2008 - Marketplace (Page 56) Embedded Systems Design - June 2008 - Marketplace (Page Cover3) Embedded Systems Design - June 2008 - Marketplace (Page Cover4)
For optimal viewing of this digital publication, please enable JavaScript and then refresh the page. If you would like to try to load the digital publication without using Flash Player detection, please click here.