rhapsody reverseengineering
DESCRIPTION
Charts from the 10/11 WebinarTRANSCRIPT
®
IBM Software Group
© 2009 IBM Corporation Innovation for a smarter planet
IBM Rational Rhapsody Model-Driven Development of Complex Systems and Products
Venkat Pula October 11, 2011
IBM Software Group | Rational software
Innovation for a smarter planet
Agenda
Rhapsody overview
Reverse Engineering background
Demo
Reverse Engineering scenarios
Additional Q&A
2
IBM Software Group | Rational software
Innovation for a smarter planet
Model-Driven Development for Systems & Software Rational Rhapsody®
"Using Rhapsody software improves the
quality of the application software that is
integral to the series hydraulic hybrid system
development process."
Steve Zielinski, Eaton chief engineer for
software
Capabilities
Specify, design and develop systems and software
for technical, embedded and real-time solutions,
including those based on multi-core architectures
Validate and verify designs with model based
simulation and test throughout the product lifecycle
Develop complete C, C++, Java and Ada
applications, working in either the code or model
while ensuring the two remain in sync
Benefits
Build the right product through optimized
communication and collaboration
Eliminate defects early and increase quality by
continually testing the design
Reduce development time by automatically
generating applications and documentation
IBM Software Group | Rational software
Innovation for a smarter planet
Rhapsody Key Enabling Technologies
Model Execution
Model-Driven Testing
Software- Centric
Workflow
Standards-Based MDD
Team Collaboration
Requirements Visualization
IBM Software Group | Rational software
Innovation for a smarter planet
Visualize Requirements in Context
Create the system design through imported requirements
Bi-directional integration with DOORS, RequisitePro and other requirements tools
Link requirements with the design for coverage and impact analysis
Visualize how implemented features relate to requirements
View requirements in design model and source code
Establish comprehensive traceability
Support regulatory compliance
Produce documented audit trails
Requirements Visualization
IBM Software Group | Rational software
Innovation for a smarter planet
Simulation & Animation
Validate requirements and design early with continual simulation and testing
Analyze system functionality for correctness and to determine next steps
Visually demonstrate and communicate intended behavior to customer and
stakeholders
Model Execution
IBM Software Group | Rational software
Innovation for a smarter planet
Experts Agree – Rational is the Leader
“Rhapsody is the leading UML 2.1 compliant MDD solution for embedded systems.”
Embedded Market Forecasters: Reducing OEM Development Costs and Enabling Embedded
Design Efficiencies using the Unified Modeling Language
“Rational is the market leader of standard language-based modeling tools in the
embedded market”
VDC Research: Embedded Software 2008 Market Intelligence Service
“MDD More Effective then Traditional Hand Coding”
Embedded Market Forecasters: A Model Driven Approach to Software Development
for Systems, Nov. 2008
IBM Software Group | Rational software
Innovation for a smarter planet
Typical software development projects
Third-party libraries Existing code
New features Modified code
● Typical software projects consist of new code, modifications to existing code, existing
code not changing and third-party libraries
● Documentation for code is often out of date, if it exists at all
IBM Software Group | Rational software
Innovation for a smarter planet
Typical software development issues
Increasing design complexity
Reusing assets for product lines
Nonmodular development of application makes makes product line reuse a key
challenge.
Constant time to market pressures
Difficult to understand designs with no documentation
Often the best or only documentation is the code alone
Developer of code is often no longer at the company
New developers are faced with a steep learning curve to understand existing code
Reuse is difficult because of lack of understanding of existing code
IBM Software Group | Rational software
Innovation for a smarter planet
CPU
RTOS Host : Windows / Linux Target : VxWorks / INTEGRITY / Linux / … Small Target : ThreadX / Nucleus / …
Reuse software assets Rhapsody can incorporate external code to:
Reuse code from other projects
Integrate code developed by a third party
Import code generated from another tool
Such code can be:
Viewed externally (code visualization)
Provides easy referencing from the model
Automatically allows graphical visualization of your IP
Virtually seamless workflow between model and hand-written code
Automatically reverse-engineered to become part of the model
Small Target : IDF/Synchronous/No OS CPU
Legacy
Code Lightweight Framework Real-Time Framework
Generated Code
IBM Software Group | Rational software
Innovation for a smarter planet
Visualize existing and third-party code
Visualizing code clarifies the structure and architecture of the
application.
Streamlined reverse engineering and visualization workflow
Automatic generation of diagrams from code for documentation
IBM Software Group | Rational software
Innovation for a smarter planet
Integrating existing and third-party code
More easily understand interfaces between existing code and new features
New features
External code
IBM Software Group | Rational software
Innovation for a smarter planet
Modify existing code
Dynamic model and code collaboration
Code respect enables reuse while maintaining the structure, naming,
location and order of existing code
Reverse-engineer existing code, changes at code level round-tripped
into model
Respect
IBM Software Group | Rational software
Innovation for a smarter planet
DEMO
IBM Software Group | Rational software
Innovation for a smarter planet
Scenario – Visualizing Legacy Code
Customer – “I just want to see my existing source code as a UML model”
Rhapsody – “Do you plan to re-architect your software and move to MDD?”
Customer – “No, I just want to create some diagrams and see what I’ve got. I am not updating the legacy code and don’t plan to migrate this code to MDD. I don’t need code generation right now.”
Suggested Starting Point
RE the code as external.
For RiC, into File elements.
For RiC++, into class elements.
Have Rhapsody auto populate OMDs.
IBM Software Group | Rational software
Innovation for a smarter planet
Scenario – Full Transition to MDD
Customer – “I want to move my existing source code into a UML model.”
Rhapsody– “Do you plan to re-architect your software and move to MDD?”
Customer – “Yes, this is a new development effort and we don’t’ want to manage the legacy code.”
Suggested Starting Point
Use one Rhapsody project,
RE the code as external into a temporary package.
For RiC, into File elements.
For RiC++, into class elements.
As you rework the legacy code, copy the imported model elements into packages that Rhapsody is generating.
Do not include the temporary package in the makefile.
IBM Software Group | Rational software
Innovation for a smarter planet
Scenario – Gradual Transition to MDD
Customer – “I want to move my existing source code into a UML model.
My existing code is working and will not be changing.”
Rhapsody– “Do you plan to re-architect your software and move to
MDD?”
Customer – “Yes, but not all at once. For now, I need to understand
what I have, create some diagrams, and then gradually redo some of my
source code in the model with Rhapsody code generation.”
Suggested Starting Point
Use one Rhapsody project,
RE the code as external into a permanent external code package.
For RiC and RiC++, into File elements. Rework the legacy code one file at a time, moving the file into
packages that Rhapsody is generating. Include the external code in the makefile.
IBM Software Group | Rational software
Innovation for a smarter planet
Scenario – No MDD, Ongoing Coding outside Rhapsody
Customer – “I will not use Rhapsody code generation and will write all of
my code outside Rhapsody. I want to use Rhapsody for documentation,
complete with diagrams.”
Rhapsody– “How often do you plan to update the model with your code
changes?”
Customer – “Every day or so. I need to show Use Case Diagrams, Class
Diagrams, and Sequence Diagrams.”
Suggested Starting Point
Use two Rhapsody projects.
RE code as external into a Code Project,
Add to Model as Reference the code packages from the Design Project.
For RiC and RiC++, into File elements.
IBM Software Group | Rational software
Innovation for a smarter planet
Scenario – Mostly MDD mixed with External Code
Customer – “I have some working external source code that I will be using
with my Rhapsody generated source code.”
Rhapsody– “Do you expect the external files to change?”
Customer – “No. They are working and stable.”
Suggested Starting Point
Use one Rhapsody project
RE the code as external into a permanent external code package.
For RiC and RiC++, RE into File elements.
Documentation – More information can be found in the External Elements
section of the Rhapsody User Guide.
IBM Software Group | Rational software
Innovation for a smarter planet
Scenario – Mostly MDD with External Library
Customer – “I need to make some calls to a library provided by a 3rd party. I have the header files and the library file.”
Rhapsody– “Do you want to show the use of the 3rd party library in your model?”
Customer – “Yes, I want to include the 3rd party classes in my diagrams and build with it.”
Suggested Starting Point
In the Rhapsody makefile, link in the 3rd party library, and specify the path of its header files.
In the model, as needed, create “UseAsExternal” class elements for needed library classes and files.
Documentation – More information can be found in the External Elements section of the Rhapsody User Guide.
IBM Software Group | Rational software
Innovation for a smarter planet
Ensure Success with Rational
Process and
methodology
• Process framework workshops
• Rational Harmony family of Best Practices and Processes
• Process training
Implementation
services
• Adoption quick starts
• Deployment support
• Project architecture workshops
• Project management
• Planning support
• Escalation/risk mitigation
Training and
mentoring
• Product familiarity
• Product expertise and specialization
• Technology transfer
• Adoption mentoring
• e-Learning
Technical services
• Measured Capability Improvement Framework (MCIF)
• Product optimization and customization
• Tool configuration
• Data transfer
IBM Software Group | Rational software
Innovation for a smarter planet 23
© Copyright IBM Corporation 2009. All rights reserved. The information contained in these materials is provided for informational purposes only, and is provided AS IS without warranty of any kind, express or implied. IBM shall not be responsible for any damages arising out of the use of, or otherwise related to, these materials. Nothing contained in these materials 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. References in these materials to IBM products, programs, or services do not imply that they will be available in all countries in which IBM operates. Product release dates and/or capabilities referenced in these materials may change at any time at IBM’s sole discretion based on market opportunities or other factors, and are not intended to be a commitment to future product or feature availability in any way. IBM, the IBM logo, Rational, the Rational logo, Telelogic, the Telelogic logo, and other IBM products and services are trademarks of the International Business Machines Corporation, in the United States, other countries or both. Other company, product, or service names may be trademarks or service marks of others.