Rhapsody Software


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 Software

    1. 1. Improving software development with Telelogic Rhapsody
    2. 2. Systems and software lifecycle management Requirements definition and management Analysis and design Quality management Release management Construction Configuration and change mgmt Asset management and reuse Production Enterprise architecture/ architectural frameworks Measurement and reporting Product portfolio management System lifecycle process management
    3. 3. Combined portfolio in action For technical systems development Requirements definition and management Analysis and design Quality management Release management Construction Configuration and change mgmt Asset management and reuse Production Enterprise architecture/ architectural frameworks Measurement and reporting Product portfolio management System lifecycle process management IBM Rational ® Build Forge ® Telelogic DOORS® Telelogic Focal Point™ Eclipse Wind River Workbench, other integrated development environments (IDEs) Telelogic Rhapsody® IBM Rational Systems Developer Telelogic Tester™ IBM Rational Test RealTime IBM Rational PurifyPlus ™ IBM Rational ClearCase ® IBM Rational ClearQuest ® Telelogic Synergy™ Telelogic Change™ IBM Rational Asset Manager IBM Rational Method Composer, Telelogic Harmony™, IBM Rational Unified Process Systems Engineering plug-in IBM Rational ® ProjectConsole ™ Telelogic Dashboard™ Telelogic® System Architect™
    4. 4. 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
    5. 5. Typical software development issues <ul><li>Increasing design complexity </li></ul><ul><li>Reusing assets for product lines </li></ul><ul><ul><li>Nonmodular development of application makes makes product line reuse a key challenge. </li></ul></ul><ul><li>Constant time to market pressures </li></ul><ul><li>Difficult to understand designs with no documentation </li></ul><ul><ul><li>Often the best or only documentation is the code alone </li></ul></ul><ul><ul><li>Developer of code is often no longer at the company </li></ul></ul><ul><ul><li>New developers are faced with a steep learning curve to understand existing code </li></ul></ul><ul><ul><li>Reuse is difficult because of lack of understanding of existing code </li></ul></ul><ul><li>Testing performed late in the development cycle, resulting in finding defects when they are the most costly to fix </li></ul><ul><ul><li>Features dropped from product </li></ul></ul><ul><ul><li>Product recalls </li></ul></ul>
    6. 6. Key enablers for the software developer Dynamic model and code collaboration Rhapsody Reuse software assets Automated unit and integration testing Open development environment
    7. 7. 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>
    8. 8. Reuse software assets <ul><li>Rhapsody can incorporate external code to: </li></ul><ul><ul><li>Reuse code from other projects </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 IP </li></ul></ul></ul><ul><ul><ul><li>Virtually 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. Integrating existing and third-party code <ul><li>More easily understand interfaces between existing code and new features </li></ul>New features External code
    10. 10. 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
    11. 11. Working with code and models <ul><li>Increase developer productivity and ease model-driven development adoption </li></ul><ul><ul><li>Use tools familiar to coder </li></ul></ul><ul><li>Tight integration with IDE </li></ul><ul><ul><li>Changes in code need to be reflected in model </li></ul></ul><ul><li>Code respect helps ensure that the code and model have the same structure </li></ul><ul><li>Multilanguage development allows designers to use the C, C++ and Java ™ languages in the same model </li></ul>
    12. 12. Work the way you want <ul><li>Work at code or model level </li></ul><ul><ul><li>Reduce learning curve </li></ul></ul><ul><ul><li>Increase effectiveness </li></ul></ul><ul><li>Design and code are kept synchronized: dynamic model code associativity (DMCA) </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>DMCA
    13. 13. Rhapsody integration with Eclipse <ul><li>Integrated model-driven development within Eclipse environment </li></ul><ul><li>Work in either the code or Rhapsody; both stay in sync </li></ul><ul><li>Leverage Eclipse to tailor environment for your needs </li></ul>Eclipse code editor Rhapsody diagram editors
    14. 14. Integrated design and debug environment <ul><li>Natural workflow for code-centric developers </li></ul><ul><li>Perform design or code-level debugging in single environment </li></ul>Use Eclipse Intellisense View build errors View Rhapsody diagrams View model information
    15. 15. Test and validate early <ul><li>Simulate to verify that model is correct </li></ul><ul><ul><li>Best practice to help avoid errors and therefore reduce development cost </li></ul></ul><ul><ul><li>Rapid simulation at the design level or even target level debugging </li></ul></ul><ul><li>Virtual prototype/panel graphics support </li></ul><ul><ul><li>Ideal communications aid for design reviews and to share information </li></ul></ul>
    16. 16. Traditional code-centric testing process Coding test benches manually ... Error prone; no fun Coding test cases manually ... Difficult; poor coverage is the norm Code on host ... Puzzling; time consuming Code on target ... Frustrating; expensive
    17. 17. 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
    18. 18. Design and test process integration <ul><li>Virtually seamless integrated process, based on UML 2.0 testing profile </li></ul><ul><ul><li>Requirements linked to test cases </li></ul></ul><ul><ul><li>Easier navigation between design and test artifacts </li></ul></ul><ul><ul><li>Design and test — in sync </li></ul></ul><ul><ul><li>Automatically generated test execution reports </li></ul></ul>Design artifacts Test artifacts Test execution reports
    19. 19. Creating a Graphical Test Architecture <ul><li>A Test Architecture is a model of a code-based TestBench </li></ul><ul><ul><li>Automatically generated </li></ul></ul><ul><ul><li>Updates as model gets updated </li></ul></ul>
    20. 20. Test Cases Behaviors as Sequence Diagrams <ul><li>Use Sequence Diagrams as graphical test scripts to capture the required behavior </li></ul><ul><li>Record and ReUse Animated Sequence Diagrams as test cases for regression testing purposes </li></ul><ul><li>Use ATG to automatically generate test cases from the design </li></ul>
    21. 21. Test Cases Behaviors as Flowcharts and Code
    22. 22. Test Execution & Test Reporting <ul><li>Execute/Report on Test Execution </li></ul><ul><ul><li>Inputs to SUT and stubs behaviours are played out automatically </li></ul></ul><ul><ul><li>Unexpected behaviours are highlighted </li></ul></ul><ul><ul><li>Test Execution Reports can be customized to match company/project standards </li></ul></ul>
    23. 23. Structural Testing with Rational Test RealTime <ul><li>Static Analysis </li></ul><ul><ul><li>Metrics Reporting </li></ul></ul><ul><ul><li>MISRA-C:2004 compliance review </li></ul></ul><ul><li>Runtime Analysis </li></ul><ul><ul><li>Code Coverage </li></ul></ul><ul><ul><li>Memory Profiling </li></ul></ul><ul><ul><li>Performance Profiling </li></ul></ul><ul><li>Analyze user code blocks to ensure quality of the application. </li></ul>
    24. 24. Runtime Analysis: Code Coverage <ul><li>Get insights into program execution </li></ul><ul><li>Identify unused and/or untested code </li></ul><ul><li>MC/DC Coverage levels for C/C++ </li></ul><ul><li>Directly correlate all analysis results to test cases and code </li></ul>
    25. 25. Runtime Analysis: Memory Profiling <ul><li>Detect hard-to-find memory problems </li></ul><ul><ul><li>Error Messages </li></ul></ul><ul><ul><ul><li>Freeing Freed Memory (FFM) </li></ul></ul></ul><ul><ul><ul><li>Freeing Unallocated Memory (FUM) </li></ul></ul></ul><ul><ul><ul><li>Freeing Invalid Memory (FIM) </li></ul></ul></ul><ul><ul><ul><li>Late Detect Array Bounds Write (ABWL) </li></ul></ul></ul><ul><ul><ul><li>Late Detect Free Memory Write (FMWL) </li></ul></ul></ul><ul><ul><ul><li>Memory Allocation Failure (MAF) </li></ul></ul></ul><ul><ul><ul><li>Core Dump (COR) </li></ul></ul></ul><ul><ul><li>Warning Messages </li></ul></ul><ul><ul><ul><li>Memory in Use (MIU) </li></ul></ul></ul><ul><ul><ul><li>Memory Leak (MLK) </li></ul></ul></ul><ul><ul><ul><li>Potential Memory Leak (MPK) </li></ul></ul></ul><ul><ul><ul><li>File in Use (FIU) </li></ul></ul></ul><ul><ul><ul><li>Signal Handled (SIG) </li></ul></ul></ul><ul><li>Directly correlate all analysis results to test cases and code </li></ul>
    26. 26. Runtime Analysis: Performance Profiling <ul><li>Graphically see where your application is consuming the most time </li></ul><ul><ul><li>Top functions graph </li></ul></ul><ul><ul><li>Performance summary report </li></ul></ul>
    27. 27. Open development environment <ul><li>Requirements management </li></ul><ul><li>Configuration management </li></ul><ul><li>Documentation </li></ul><ul><li>Test </li></ul><ul><li>Continuous modeling </li></ul><ul><li>Tool interoperability </li></ul><ul><li>IDEs </li></ul><ul><li>Realtime operating systems and operating systems (sample) </li></ul>Configuration management OSs Compilers Rhapsody Requirements management Documentation Test HMI CORBA COM Pushbutton CORBA (Tao) and COM support
    28. 28. Open development environment <ul><li>Reuse existing IP </li></ul><ul><li>Work with existing development tools and processes </li></ul><ul><ul><li>Open configuration management Interface </li></ul></ul><ul><ul><li>Interface to any compiler or IDE </li></ul></ul><ul><ul><li>Work with any realtime operating system or target </li></ul></ul><ul><ul><li>Continue to use existing development tools </li></ul></ul><ul><ul><ul><li>Code coverage </li></ul></ul></ul><ul><ul><ul><li>Static analysis </li></ul></ul></ul><ul><ul><li>Simulink integration </li></ul></ul><ul><li>Application programming interface (API) to create custom scripts </li></ul>
    29. 29. Summary <ul><li>Rhapsody’s model-driven development environment lets you work the way you want to </li></ul><ul><ul><li>Model code associativity synchronizes the model and code </li></ul></ul><ul><li>Rhapsody supports reuse of software assets </li></ul><ul><ul><li>Visualize legacy code to provide clarity </li></ul></ul><ul><ul><li>View structure and architecture of the current design </li></ul></ul><ul><ul><li>Better understand code that is in “maintenance mode” </li></ul></ul><ul><ul><li>Leverage external code into your application </li></ul></ul><ul><li>Move forward with model-driven testing to help improve quality and productivity </li></ul><ul><ul><li>Integrated Verification and Validation with TestConductor & Test RT integration </li></ul></ul><ul><li>Rhapsody provides an open environment that allows you to continue to use existing tools </li></ul>
    30. 30. Appendix
    31. 31. Aerospace/defense applications Aerospace/defense applications Air traffic control Avionics Displays Navigation Autopilot Cabin systems Communications Wireless Secure Engine controls Flight controls Fuel systems Hydraulic systems Landing gear Flight controls Aerospace/defense applications Landing systems Lighting systems Maintenance systems Military vehicles Manned Unmanned Missiles Mission software Power management Radar Satellites Training systems Weapons systems Stores management Fire control
    32. 32. Automotive applications Automotive applications Body/cabin systems Air bag Communications - buses (Can and J1850) Communication gateways Displays (dashboard) Digital tachography systems GPS HVAC (climate control) Keyless entry Lighting (interior/exterior) Occupant position Power seat Power tilt Power seat belts Power mirrors Power roofs Automotive applications Body/cabin systems Power windows Power sliding doors Power locks Radios Security/anti-theft Telematics Tire deflation indicator Windshield wipers Chassis control systems ABS Power train systems Cruise control GlowPlug Transmission/gear box
    33. 33. Medical applications Medical applications Medical imaging IMRT Computed tomography (CT) scanners Implantable therapeutic devices Blood oxygenation Heart lung machines Pacemakers Defibrillators Medical applications Blood glucose monitors PAP test Blood analyzer Incubator Oncology care Infusion pumps and systems Dental treatment centers
    34. 34. Industrial automation applications Industrial automation applications Air-conditioning systems Elevator controls Home heating systems Pick and place systems Semiconductor manufacturing Industrial automation applications Wafer inspection systems Letter sorting systems Semiconductor component handlers Industrial process engineering
    35. 35. Telecommunications applications Telecom applications EVDO IMS (IP multimedia subsystem) Intelligent networks Radio access network for 3G Routers/switches Telecom applications Set-top boxes Terminal devices (handsets) Telephony modems Ultra mobile broadband Wi-MAX
    36. 36. Consumer electronics/office automation applications Consumer/office applications Copiers DECT with SMS/MMS Faxes Hard drives Image processing Multifunction copiers Printers Consumer/office applications Copiers Printer drivers Security systems Industrial printers TV applications Cashless point of sale Mobile data capturing terminals
    37. 37. IBM services <ul><li>Customer services </li></ul><ul><ul><li>Technical support </li></ul></ul><ul><ul><li>Client center </li></ul></ul><ul><ul><li>Administrative support </li></ul></ul><ul><li>Consulting </li></ul><ul><ul><li>Best practices assessment </li></ul></ul><ul><ul><li>Process and methodology </li></ul></ul><ul><ul><li>Consulting and mentoring </li></ul></ul><ul><li>Training </li></ul><ul><ul><li>Tool training: dedicated for systems engineers </li></ul></ul><ul><ul><ul><li>Dedicated for software engineers </li></ul></ul></ul><ul><ul><ul><li>Process training, including Harmony process training and modeling guidelines handbook </li></ul></ul></ul><ul><ul><ul><li>UML / SysML training </li></ul></ul></ul><ul><ul><ul><li>Department of Defense Architecture Framework (DoDAF) training </li></ul></ul></ul><ul><ul><li>Rapid deployment package </li></ul></ul><ul><ul><li>Custom courses </li></ul></ul>Tools Consulting Customer service Training
    38. 38. Rapid deployment package <ul><li>Provides a roadmap for a successful and on-time project </li></ul><ul><ul><li>Supports enhanced productivity </li></ul></ul><ul><ul><li>Helps reduce risks </li></ul></ul><ul><li>Specifically designed for new Telelogic Rhapsody users or existing users beginning a new project </li></ul><ul><li>IBM experts work directly with your team </li></ul><ul><li>Based on extensive experience in helping users develop systems and software with Rhapsody </li></ul><ul><li>Contents customized based on your project needs </li></ul><ul><li>Includes a customized methodology handbook with plus version </li></ul>
    39. 39. Rapid deployment package—how it works Info gathering <ul><li>Definition of goals, requirements, deliverables, milestones, etc. </li></ul>Kickoff workshop <ul><li>Develop methodology to optimally use Rhapsody within your process </li></ul>Essentials training <ul><li>Teaches the concepts and techniques used to apply Rhapsody for systems engineering </li></ul>Consulting/mentoring <ul><li>Collaboration with experts to get you started </li></ul>Best practice reviews <ul><li>Periodic reviews to help ensure that Rhapsody is being used to its fullest potential </li></ul>Exact content based on your needs
    40. 40. Rapid development package—the handbook <ul><li>Customized for your goals </li></ul><ul><li>Tailored to your process </li></ul><ul><li>Includes </li></ul><ul><ul><li>Process description </li></ul></ul><ul><ul><li>Modeling guidelines </li></ul></ul><ul><ul><li>Traceability guidelines </li></ul></ul><ul><ul><li>Content management guidelines </li></ul></ul><ul><ul><li>Illustrations </li></ul></ul><ul><li>Completed by the end of rapid development package </li></ul>Info gathering Kickoff workshop Essentials training Consulting/mentoring Best practice reviews Modeling guidelines handbook Exact content based on your needs
    41. 41. Open, extensible and configurable framework <ul><li>Goal: customizable framework so that users have greater control </li></ul><ul><li>The framework is delivered as a Rhapsody model </li></ul><ul><ul><li>Provides a clear understanding of its component structure and functionality, to support fine-tuning </li></ul></ul><ul><ul><li>Includes requirements and design rationale so it’s easily understood </li></ul></ul><ul><ul><li>Validation suite can be made available through professional services </li></ul></ul><ul><li>Facilitates scaling down for smaller footprint applications </li></ul><ul><ul><li>Pick and choose only the necessary components </li></ul></ul><ul><ul><li>Customize components </li></ul></ul><ul><li>Facilitates certification of the framework such as DO-178B </li></ul><ul><ul><li>Scalable—helps ensure that you include only the components you need; no dead code </li></ul></ul><ul><ul><li>Customizable—you can fine-tune the implementation to help meet the safety-critical standards </li></ul></ul>
    42. 42. Agile and model-driven development for development of realtime or embedded systems
    43. 43. Agile software principles <ul><li>Implementation versus exhaustive planning and documentation </li></ul><ul><li>Iterative, incremental development and testing of working parts of the design completed quickly </li></ul><ul><li>Team collaboration with customers and business stakeholders </li></ul><ul><li>Responsiveness to ever-changing requirements, virtually anytime in the development cycle </li></ul>
    44. 44. Challenges facing developers <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>Valuable diagrams are created during meetings that are discarded and later needed </li></ul><ul><li>Target hardware may not be available for early prototyping </li></ul><ul><li>Managing changing requirements </li></ul><ul><li>Increasing productivity while design complexity increases </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>
    45. 45. Rhapsody Model-Driven Development <ul><li>Rhapsody Model-Driven Development ™ helps developers to capture the design using graphical models </li></ul><ul><ul><li>Visualizing design concepts helps increase understandability </li></ul></ul><ul><ul><li>Use Object Management Group (OMG) UML or a domain-specific language (DSL) </li></ul></ul><ul><li>Achieving the benefits of both Model-Driven Development and Agile requires the model and code to be the same </li></ul>
    46. 46. Agile and model-driven development with Rhapsody <ul><li>Rhapsody supports graphical programming of the working application while documentation is automatically generated </li></ul><ul><li>Empowers individuals to work the way they want to get the job done the way they know how at either the code or model level </li></ul><ul><li>Work in an iterative, incremental development fashion producing working parts of the design in short time frames while executing and validating each part on target or host </li></ul><ul><li>Support team collaboration with customers and business stakeholders via graphical models and prototypes as opposed to code based designs </li></ul><ul><li>Ability to respond to ever-changing requirements, virtually anytime in the development cycle using dynamic links to requirements and automatic graphical differencing and merging </li></ul>
    47. 47. Iterative development <ul><li>Deliver prototypes often with increasing functionality </li></ul><ul><li>Customers and stakeholders provide feedback </li></ul><ul><li>Helps ensure that final product meets expectations </li></ul>Prototype 1 Prototype 2 Prototype 3 Name: Hello World Mission: • Subsystem architecture • Data acquisition • Basic user interface for monitoring Name: Revision 1 Mission: • Basic distribution architecture • Data waveform display • User setting of control values • Data logging Name: 'Customer Review Prototype' Mission: • Reliable Distribution Architecture • Reliable transport protocol • Sockets • Closed Loop Control Analysis Design Implementation Testing Increment review
    48. 48. For more information <ul><li>To learn more about Telelogic Rhapsody, please visit: http://modeling.telelogic.com/products/rhapsody/index.cfm </li></ul>
    49. 49. <ul><li>© Copyright IBM Corporation 2008 </li></ul><ul><li>IBM Corporation Route 100 Somers, NY 10589 U.S.A. </li></ul><ul><li>Produced in the United States of America October 2008 All Rights Reserved </li></ul><ul><li>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 &quot;Copyright and trademark information&quot; at ibm.com/legal/copytrade.shtml </li></ul><ul><li>Java and all Java-based trademarks and logos are trademarks of Sun Microsystems, Inc. in the United States, other countries, or both. </li></ul><ul><li>Linux is a registered trademark of Linus Torvalds in the United States, other countries, or both. </li></ul><ul><li>Other company, product, or service names may be trademarks or service marks of others. </li></ul><ul><li>References in this publication to IBM products or services do not imply that IBM intends to make them available in all countries in which IBM operates. </li></ul>Copyright information RAP14031-USEN-00