Rhapsody Leveraging Software For Reuse


Published on

Published in: Technology, Business
1 Like
  • Be the first to comment

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide
  • Rhapsody Leveraging Software For Reuse

    1. 1. Improve Productivity by Leveraging Existing Code for Embedded Software Development Paul Urban, IBM
    2. 2. Challenges facing developers <ul><li>Increasing productivity while design complexity increases </li></ul><ul><li>Managing changing requirements </li></ul><ul><li>Poor communication with customer on code level alone </li></ul><ul><ul><li>Some documentation is still required </li></ul></ul><ul><li>Target hardware may not be available for early prototyping </li></ul><ul><li>More documentation required for embedded systems </li></ul><ul><li>Collaboration with large teams, often located globally </li></ul><ul><li>Long learning curve for new team members </li></ul><ul><ul><li>Maintenance of long life products is difficult with staff changes </li></ul></ul>
    3. 3. Typical software development projects <ul><li>Typical software projects consist of new code, modifications to existing code, existing code not changing and third-party libraries </li></ul><ul><li>Documentation for code is often out of date, if it exists at all </li></ul>Third-party libraries Existing code New features Modified code
    4. 4. Development process is evolving… Model Driven Development MDD t 1960 1970 1980 1990 2000 2010 ASM C
    5. 5. Engineers report… MDD more effective then traditional hand coding Embedded Market Forecasters 2006 Survey Results Documented in “ What Do You Do When the Horse You’re Riding Drops Dead?: Why Model Driven Design is Emerging as a Preferred Best Practice”
    6. 6. Proven advantages of MDD Embedded Market Forecasters 2006 Survey Results Documented in “ What Do You Do When the Horse You’re Riding Drops Dead?: Why Model Driven Design is Emerging as a Preferred Best Practice”
    7. 7. Model-driven development <ul><li>Model-driven development (MDD) enables developers to capture the design using graphical models </li></ul><ul><ul><li>Visualizing design concepts increases understandability </li></ul></ul><ul><ul><li>Use Object Management Group (OMG) Unified Modeling Language (UML) or a domain-specific language (DSL) </li></ul></ul><ul><li>Achieving the full benefits of MDD requires model and code synchronization </li></ul>
    8. 8. Re-use software assets <ul><li>Rhapsody can incorporate external code to </li></ul><ul><ul><li>Reuse code from other projects as a library </li></ul></ul><ul><ul><li>Integrate code developed by a third party </li></ul></ul><ul><ul><li>Import code generated from another tool </li></ul></ul><ul><li>Such code can be: </li></ul><ul><ul><li>Viewed externally (code visualization) </li></ul></ul><ul><ul><ul><li>Provides easy referencing from the model </li></ul></ul></ul><ul><ul><ul><li>Automatically allows graphical visualization of your software </li></ul></ul></ul><ul><ul><ul><li>Seamless workflow between model and hand-written code </li></ul></ul></ul><ul><ul><li>Automatically reverse engineered to become part of the model </li></ul></ul>RTOS Legacy Code Rhapsody Real-Time Framework Rhapsody Generated Code
    9. 9. Visualize existing and third-party code <ul><li>Visualizing code clarifies the structure and architecture of the application. </li></ul><ul><li>Streamlined reverse engineering and visualization workflow </li></ul><ul><li>Automatic generation of diagrams from code for documentation </li></ul>
    10. 10. Integrating existing and third-party code <ul><li>More easily understand interfaces between existing code and new features </li></ul>New features External code
    11. 11. Modify existing code <ul><li>Dynamic model and code collaboration </li></ul><ul><ul><li>Code respect enables reuse while maintaining the structure, naming, location and order of existing code </li></ul></ul><ul><ul><li>Reverse-engineer existing code, changes at code level round-tripped into model </li></ul></ul>Respect
    12. 12. Rhapsody works the way you do <ul><li>Work at the code or model level </li></ul><ul><li>Reduce learning curve and increase effectiveness </li></ul><ul><li>Dynamic Model Code Associativity (DMCA) keeps design and code in sync </li></ul><ul><ul><li>Change one view, the others change automatically </li></ul></ul><ul><ul><li>Critical for realtime embedded software development </li></ul></ul>
    13. 13. Model-driven testing <ul><li>Bring the benefits of abstraction and automation to testing </li></ul><ul><li>Reduce defects early in the process when they are less costly to fix </li></ul><ul><li>Deliver products meeting customer expectations </li></ul>Simulation Finding & Correcting Errors Sequence Diagrams Requirements-based testing Automated unit testing Host based Target based
    14. 14. Simulation, execution and animation <ul><li>Simulate to verify that model is correct </li></ul><ul><ul><li>Best practice for avoiding errors and thereby helping to reduce development cost </li></ul></ul><ul><ul><li>Enhanced communication of intended behavior to customer </li></ul></ul><ul><li>Execute on the target and animate on the host to verify the application is correct </li></ul>
    15. 15. Demo Demo Time
    16. 16. Summary <ul><li>Rhapsody visualizes existing code to improve communication </li></ul><ul><ul><li>A picture is worth a thousand words </li></ul></ul><ul><ul><li>Documents undocumented code using customizable formats </li></ul></ul><ul><ul><li>View structure and architecture of the current design </li></ul></ul><ul><li>Develop complete applications while including existing libraries </li></ul><ul><li>Rhapsody enables you to work the way you want </li></ul><ul><ul><li>Work in the model or code with changes synchronized </li></ul></ul><ul><ul><li>Automates tedious coding tasks </li></ul></ul><ul><li>Development continues even when target hardware is not available </li></ul><ul><ul><li>Leverage external code into your application </li></ul></ul><ul><li>Design level debugging enables early validation of design functionality </li></ul>
    17. 17. For more information <ul><li>To learn more, please visit: www.telelogic.com </li></ul><ul><li>Learn about IBM Rational ® software at: </li></ul><ul><li>IBM Rational software </li></ul><ul><li>IBM Rational Software Delivery Platform </li></ul><ul><li>Process and portfolio management </li></ul><ul><li>Change and release management </li></ul><ul><li>Quality management </li></ul><ul><li>Architecture management </li></ul><ul><li>Rational trial downloads </li></ul><ul><li>Leading Innovation Web site </li></ul><ul><li>developerWorks ® Rational </li></ul><ul><li>IBM Rational TV </li></ul><ul><li>IBM Business Partners </li></ul><ul><li>IBM Rational case studies </li></ul>
    18. 18. Copyright information © Copyright IBM Corporation 2008 IBM Corporation Software Group Route 100 Somers, NY 10589 U.S.A. Produced in the United States of America October 2008 All Rights Reserved IBM, the IBM logo, ibm.com, Rational, and Telelogic are trademarks or registered trademarks of International Business Machines Corporation in the United States, other countries, or both. If these and other IBM trademarked terms are marked on their first occurrence in this information with a trademark symbol (® or ™), these symbols indicate U.S. registered or common law trademarks owned by IBM at the time this information was published. Such trademarks may also be registered or common law trademarks in other countries. A current list of IBM trademarks is available on the Web at “Copyright and trademark information” at ibm.com/legal/copytrade.shtml Other company, product, or service names may be trademarks or service marks of others. Java and all Java-based trademarks and logos are trademarks of Sun Microsystems, Inc. in the United States, other countries, or both. References in this publication to IBM products and services do not imply that IBM intends to make them available in all countries in which IBM operates. The information contained in this documentation is provided for informational purposes only. While efforts were made to verify the completeness and accuracy of the information contained in this documentation, it is provided “as is” without warranty of any kind, express or implied. In addition, this information is based on IBM’s current product plans and strategy, which are subject to change by IBM without notice. IBM shall not be responsible for any damages arising out of the use of, or otherwise related to, this documentation or any other documentation. Nothing contained in this documentation is intended to, nor shall have the effect of, creating any warranties or representations from IBM (or its suppliers or licensors), or altering the terms and conditions of the applicable license agreement governing the use of IBM software. RAP14028-USEN-00