Improving software development with Telelogic Rhapsody
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
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™
Typical software development projects
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
Third-party libraries Existing code New features Modified code
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
Testing performed late in the development cycle, resulting in finding defects when they are the most costly to fix
Features dropped from product
Product recalls
Key enablers for the software developer Dynamic model and code collaboration Rhapsody Reuse software assets Automated unit and integration testing Open development environment
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
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
More easily understand interfaces between existing code and new features
New features External code
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
Working with code and models
Increase developer productivity and ease model-driven development adoption
Use tools familiar to coder
Tight integration with IDE
Changes in code need to be reflected in model
Code respect helps ensure that the code and model have the same structure
Multilanguage development allows designers to use the C, C++ and Java ™ languages in the same model
Work the way you want
Work at code or model level
Reduce learning curve
Increase effectiveness
Design and code are kept synchronized: dynamic model code associativity (DMCA)
Change one view, the others change automatically
Critical for realtime embedded software development
DMCA
Rhapsody integration with Eclipse
Integrated model-driven development within Eclipse environment
Work in either the code or Rhapsody; both stay in sync
Leverage Eclipse to tailor environment for your needs
Eclipse code editor Rhapsody diagram editors
Integrated design and debug environment
Natural workflow for code-centric developers
Perform design or code-level debugging in single environment
Use Eclipse Intellisense View build errors View Rhapsody diagrams View model information
Test and validate early
Simulate to verify that model is correct
Best practice to help avoid errors and therefore reduce development cost
Rapid simulation at the design level or even target level debugging
Virtual prototype/panel graphics support
Ideal communications aid for design reviews and to share information
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
Model-driven testing
Bring the benefits of abstraction and automation to testing
Reduce defects early in the process when they are less costly to fix
Deliver products meeting customer expectations
Simulation Finding & Correcting Errors Sequence Diagrams Requirements-based testing Automated unit testing Host based Target based
Design and test process integration
Virtually seamless integrated process, based on UML 2.0 testing profile
Requirements linked to test cases
Easier navigation between design and test artifacts
Design and test — in sync
Automatically generated test execution reports
Design artifacts Test artifacts Test execution reports
Creating a Graphical Test Architecture
A Test Architecture is a model of a code-based TestBench
Automatically generated
Updates as model gets updated
Test Cases Behaviors as Sequence Diagrams
Use Sequence Diagrams as graphical test scripts to capture the required behavior
Record and ReUse Animated Sequence Diagrams as test cases for regression testing purposes
Use ATG to automatically generate test cases from the design
Test Cases Behaviors as Flowcharts and Code
Test Execution & Test Reporting
Execute/Report on Test Execution
Inputs to SUT and stubs behaviours are played out automatically
Unexpected behaviours are highlighted
Test Execution Reports can be customized to match company/project standards
Structural Testing with Rational Test RealTime
Static Analysis
Metrics Reporting
MISRA-C:2004 compliance review
Runtime Analysis
Code Coverage
Memory Profiling
Performance Profiling
Analyze user code blocks to ensure quality of the application.
Runtime Analysis: Code Coverage
Get insights into program execution
Identify unused and/or untested code
MC/DC Coverage levels for C/C++
Directly correlate all analysis results to test cases and code
Runtime Analysis: Memory Profiling
Detect hard-to-find memory problems
Error Messages
Freeing Freed Memory (FFM)
Freeing Unallocated Memory (FUM)
Freeing Invalid Memory (FIM)
Late Detect Array Bounds Write (ABWL)
Late Detect Free Memory Write (FMWL)
Memory Allocation Failure (MAF)
Core Dump (COR)
Warning Messages
Memory in Use (MIU)
Memory Leak (MLK)
Potential Memory Leak (MPK)
File in Use (FIU)
Signal Handled (SIG)
Directly correlate all analysis results to test cases and code
Runtime Analysis: Performance Profiling
Graphically see where your application is consuming the most time
Top functions graph
Performance summary report
Open development environment
Requirements management
Configuration management
Documentation
Test
Continuous modeling
Tool interoperability
IDEs
Realtime operating systems and operating systems (sample)
Configuration management OSs Compilers Rhapsody Requirements management Documentation Test HMI CORBA COM Pushbutton CORBA (Tao) and COM support
Open development environment
Reuse existing IP
Work with existing development tools and processes
Open configuration management Interface
Interface to any compiler or IDE
Work with any realtime operating system or target
Continue to use existing development tools
Code coverage
Static analysis
Simulink integration
Application programming interface (API) to create custom scripts
Summary
Rhapsody’s model-driven development environment lets you work the way you want to
Model code associativity synchronizes the model and code
Rhapsody supports reuse of software assets
Visualize legacy code to provide clarity
View structure and architecture of the current design
Better understand code that is in “maintenance mode”
Leverage external code into your application
Move forward with model-driven testing to help improve quality and productivity
Integrated Verification and Validation with TestConductor & Test RT integration
Rhapsody provides an open environment that allows you to continue to use existing tools
Appendix
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
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
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
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
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
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
IBM services
Customer services
Technical support
Client center
Administrative support
Consulting
Best practices assessment
Process and methodology
Consulting and mentoring
Training
Tool training: dedicated for systems engineers
Dedicated for software engineers
Process training, including Harmony process training and modeling guidelines handbook
UML / SysML training
Department of Defense Architecture Framework (DoDAF) training
Rapid deployment package
Custom courses
Tools Consulting Customer service Training
Rapid deployment package
Provides a roadmap for a successful and on-time project
Supports enhanced productivity
Helps reduce risks
Specifically designed for new Telelogic Rhapsody users or existing users beginning a new project
IBM experts work directly with your team
Based on extensive experience in helping users develop systems and software with Rhapsody
Contents customized based on your project needs
Includes a customized methodology handbook with plus version
Rapid deployment package—how it works Info gathering
Definition of goals, requirements, deliverables, milestones, etc.
Kickoff workshop
Develop methodology to optimally use Rhapsody within your process
Essentials training
Teaches the concepts and techniques used to apply Rhapsody for systems engineering
Consulting/mentoring
Collaboration with experts to get you started
Best practice reviews
Periodic reviews to help ensure that Rhapsody is being used to its fullest potential
Exact content based on your needs
Rapid development package—the handbook
Customized for your goals
Tailored to your process
Includes
Process description
Modeling guidelines
Traceability guidelines
Content management guidelines
Illustrations
Completed by the end of rapid development package
Info gathering Kickoff workshop Essentials training Consulting/mentoring Best practice reviews Modeling guidelines handbook Exact content based on your needs
Open, extensible and configurable framework
Goal: customizable framework so that users have greater control
The framework is delivered as a Rhapsody model
Provides a clear understanding of its component structure and functionality, to support fine-tuning
Includes requirements and design rationale so it’s easily understood
Validation suite can be made available through professional services
Facilitates scaling down for smaller footprint applications
Pick and choose only the necessary components
Customize components
Facilitates certification of the framework such as DO-178B
Scalable—helps ensure that you include only the components you need; no dead code
Customizable—you can fine-tune the implementation to help meet the safety-critical standards
Agile and model-driven development for development of realtime or embedded systems
Agile software principles
Implementation versus exhaustive planning and documentation
Iterative, incremental development and testing of working parts of the design completed quickly
Team collaboration with customers and business stakeholders
Responsiveness to ever-changing requirements, virtually anytime in the development cycle
Challenges facing developers
Poor communication with customer on code level alone
Some documentation is still required
Valuable diagrams are created during meetings that are discarded and later needed
Target hardware may not be available for early prototyping
Managing changing requirements
Increasing productivity while design complexity increases
More documentation required for embedded systems
Collaboration with large teams, often located globally
Long learning curve for new team members
Maintenance of long life products is difficult with staff changes
Rhapsody Model-Driven Development
Rhapsody Model-Driven Development ™ helps developers to capture the design using graphical models
Use Object Management Group (OMG) UML or a domain-specific language (DSL)
Achieving the benefits of both Model-Driven Development and Agile requires the model and code to be the same
Agile and model-driven development with Rhapsody
Rhapsody supports graphical programming of the working application while documentation is automatically generated
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
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
Support team collaboration with customers and business stakeholders via graphical models and prototypes as opposed to code based designs
Ability to respond to ever-changing requirements, virtually anytime in the development cycle using dynamic links to requirements and automatic graphical differencing and merging
Iterative development
Deliver prototypes often with increasing functionality
Customers and stakeholders provide feedback
Helps ensure that final product meets expectations
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
For more information
To learn more about Telelogic Rhapsody, please visit: http://modeling.telelogic.com/products/rhapsody/index.cfm
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
Java and all Java-based trademarks and logos are trademarks of Sun Microsystems, Inc. in the United States, other countries, or both.
Linux is a registered trademark of Linus Torvalds in the United States, other countries, or both.
Other company, product, or service names may be trademarks or service marks of others.
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.
0 comments
Post a comment