Embedded Systems Design - June 2008 - (Page 38) feature being developed makes design intent the files while also not changing the task of writing the code in an IDE and much clearer to all. internal flow, structure, and naming then maintaining both the models and of the code itself. the code since the MDD environment CODE VISUALIZATION AND and IDE are completely out of synch BIDIRECTIONALITY This combination of capabilities with each other. The link between model Conventional wisdom says that jumping made possible by the bidirectional linkand code inevitably would be broken; into a software development project alage is particularly effective when chalthe model information would lose its ready underway is not the time to lenges arise in meeting the project revalue as the code changed because most change workflow approaches. This wisquirements for the code. By working in likely the developer would not update dom holds true for most design environthe Eclipse IDE to write or modify the the model to reflect the code changes. ments, but the ability to function bidicode and having the changes automatiEarly MDD solutions that did genrectionally either in a code- or cally appear in the MDD environment, erate code produced black-box code, model-centric approach with a transusers can ensure that algorithms meet which is unreadable and offers very little parency to either process challenges this special characteristics including timing, code-level control. Getting the black-box thinking. safety, and security. This also is a benefit code to look right and operate as intendWhen developers are able to use in situations where the size of the code is ed was nearly a “black art,” and if the code-visualization tools to graphically of concern or direct interaction with the user could change the code, the model hardware is required. Additionally, a sce- show the structure and architecture of and the code would be out of synch, their code using reverse engineering and nario where the existing code must be leading to a major maintenance issue. This lack of control and synchronization included in the project, such as a wish to still continue to work in their existing environment, suddenly adopting a modof the model and code reduced the value reuse legacy code or a need to integrate el-centric workflow midstream is not third-party code, the combined Eclipse of modeling throughout the developnearly the disruptive ment lifecycle. force it used to be. In an By incorporating bidiBy automatically generating the code for the MDD environment usrectional linkage between an new capabilities and reverse engineering ing tight synchronization Eclipse IDE-based code-centric workflow and an MDD any existing code into the model, engineers between the code and the model, the developer can model-centric workflow, encan shorten the development time. continue developing gineers can work within the code or move to the familiar code-level IDE and model level, reusing legawithin the same framework cy code with better understanding of its use modeling. In addition to easing the IDE and MDD environment is a powerfunctionality through visualization. learning curve for embedded system deful tool. Applications that may have been developers now reluctant to incorporate Graphically modeling the project alveloped over many years may be rather model-driven tools into their work flow, lows engineers and developers to ablarge, sometimes reaching millions of the linkage also provides a number of stract away from the code, to clearly see powerful capabilities, including: how all the elements of the project oper- lines of code. The optimal approach to effectively reverse engineer a large code ate together. With the ability to simulate base is to reverse engineer smaller porthe model and the code on the host Reverse engineering of existing code tions of the code in an iterative fashion. computer during the development into a graphical model; A large application is generally strucprocess, rooting out problems is done Round tripping of changes made to tured in a modular fashion; reverse engiquickly at the beginning of the process, the code at the IDE level being deneering should be approached at one when the costs and time needed to fix veloped back into the model; module at a time. these issues is at a minimum. Automatic generation of new code For example, Figure 1 shows how Additionally, this enables developfrom the model; code for a mobile handset could be repment and testing to begin on the host Synchronizing of changes to either resented visually in a UML class diabefore the target hardware is available. the code or the model through the By automatically generating the code for gram. The diagram shows the dependDynamic Model Code Associativity encies between the files and from this a majority of the new capabilities and (DMCA); and the structure of the application can be reverse engineering any existing code Ensured code respect; that is, when visualized. The code to reverse engineer into the model, engineers can shorten code is reverse engineered or roundis mapped into corresponding conthe development time through automatripped and then regenerated, the structs defined in UML. In this example, tion. Perhaps the most valuable feature user has the option in a bidirectiona profile tailoring UML for the C develis the self-documenting workflow. The al environment of maintaining the oper is used to map the code to files, ability to generate designs of the code original file structure and naming of • • • • • 38 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.