You are on page 1of 13

Embedded Software Automated Development and Testing

by RAMP Technologies
Summary: RAMP Technologies is a Software Engineering company that has been associated with JSS and STEP for IBM Rational software tools and training. RAMP presents the implementation tools and demonstrates Automated Development and Testing of Embedded Software. The highlights are: Model Driven Development with Unified Modeling Language (UML) and targeted for realtime and embedded applications. Fully automated design to code translation for Java. C and C++ through the use of a tool called IBM Rose Technical Developer. Testing is automated for component testing and runtime analysis for host and target from a single testing tool IBM Rational Test RealTime RAMP team presents and demonstrates automated development and testing using these tools. The brochure includes three data sheets: a) Modeling Language Guide for RT Embedded Systems b) IBM Rational Rose Technical Developer c) IBM Rational Test RealTime

Aim: Accelerating Complex Embedded Software Systems Development The only software engineering platform covering the entire SDLC not involving any third party product to complete the life cycle offering a master process framework (RUP) that complements the automation tools also. RAMP also offers to conduct a Proof of Concept to establish a solution-merit at customer sites. Contact P C Gulati , RAMP Technologies Pvt. Ltd 230, 5th Main, 7th Cross,Indiranagar 1st Stage, Bangalore-560 038 India Tele: 91-80-25262710 Fax: 91-80-25262366 Email:


Guide Modeling Language for embedded software

Contents This chapter is organized as follows: Unified Modeling Language Real-Time Systems

Unified Modeling Language

The Unified Modeling Language (UML) is a graphical language for visualizing, specifying, constructing, documenting, and executing software systems. Although conventional programming languages are good for expressing different algorithms, they cannot directly show the high-level features of a system. The UML is therefore a language for expressing high-level system properties that are best modeled graphically. UML provides a base visual modeling language; however, it is not possible for the language to be sufficient for all domains. For this reason the UML has been designed open-ended to make it possible for the language to be extended. Without bloating the base language, new building blocks can be derived from the base to create ones that are specific to a domain. Figure 1 Layered UML architecture

Real-time Notations to UML

To address the category of systems that are characterized as complex, event-driven, and potentially distributed, a set of new modeling constructs has been added to a library of applied UML concepts. The notations that are based on the UML is primarily for the use of modeling the architectures of complex real-time systems.

This document does not attempt to present the UML in its entirety. Rather, the goal of this document is to present, in detail, the real-time notations to the UML accompanied by a brief overview of the key UML modeling concepts you will need to understand when using Rational Rose RealTime.

-3Building Blocks
Building blocks include Elements - are the basic object-oriented building blocks of the UML and real-time specializations. They are used to construct models. Relationships - are used to join elements together in models. Diagrams - help assemble related collections of elements together into a graphical depiction of all or part of a model.

Real-Time Systems
Models are important tools for developing complex systems. Models are used to represent the system at an abstract level, hiding unnecessary details. They enable communication about the composition and operation of a system. In Rational Rose RealTime, the model also serves as the basis for the implementation. All of the implementation details required to build an executable are either contained within the model, or generated from the model automatically. Software developers have always used informal modeling techniques in the past, for example, drawing whiteboard diagrams and writing documents. The evolution of the Unified Modeling Language (UML) has enabled developers to capture and communicate software designs with a common set of notations. The UML uses visual notations to describe various views of an object model. Classes are the fundamental building blocks of this object model. The abstract structure, behavior and configuration of the software are described through diagrams. The implementation details of each class can be specified through various class properties.

Support for Real-time Systems

In addition to supporting the regular UML constructs, we have used the extensibility features of UML to define some new constructs that are specialized for real-time system development.

Most real-time systems must be capable of performing many simultaneous activities. External events are unpredictable, and the software must be able to handle interrupts and other external events at any time without dropping current work in progress.

Capsules and Ports

UML for Real Time provides built-in light weight concurrent objects, known as Capsules. Capsules are simply a pattern for providing light-weight concurrency directly in the modeling notation. A capsule is implemented in Rational Rose RealTime as a special form of class. Capsules allow the design of systems that can handle many simultaneous activities without incurring the high overhead of multitasking at the operating system level. In fact, many real-time projects end up hand-coding some kind of mechanism to handle multiple simultaneous transactions. In addition to their concurrency properties, capsules are highly encapsulated and communicate through special message-based interfaces called Ports. A capsule sends and receives messages through its ports. The ports are in turn connected to other capsules, enabling the transmission of messages among capsules. The advantage of message-based interfaces is that a capsule has no knowledge of its environment outside of these interfaces, making it much more flexible and robust than regular objects.


Capsule Structure Diagrams

A new diagram has been introduced to specify the capsule's interface and its internal composition. The diagram is called a Capsule Structure Diagram, and is based on the UML 1.3 specification collaboration diagram. This is a specification type of diagram, and not an interaction diagram, as collaboration diagrams in other versions of Rational Rose are. The semantics around the capsule structure diagram allow Rational Rose RealTime to generate detailed code to implement the communication and aggregation relationships among capsules.

Real-Time Specializations Overview

Following is a list of the real-time specializations to the UML: Capsules Protocols Ports Connectors Capsule Structure Diagram In addition to the new modeling elements, which are used during analysis and design, it was necessary to introduce new concepts and adapt others (components, processors) to support building, running, and debugging of models built in Rational Rose RealTime. Although you might be familiar with UML, it is worth while to understand the added concepts and how Rational Rose RealTime uses common UML constructs to build and deploy executable models: Using components to build a model Observability options - Probes, Monitors, Message traces, Source breakpoints

Executable Models
The addition of the capsule and the formal semantics surrounding the capsule structure allows Rational Rose RealTime to generate, compile and run a complete C++ implementation based on a model containing capsules. The ability to execute models has a revolutionary impact on the software development process. The results are higher quality software, and shorter and more predictable delivery cycles. Executing models is the surest way to find problems and issues that whiteboarding and document reviews do not find. Even high-level architectural models can be executed. Use model execution to better understand the problem, to detect errors and problems in requirements and architecture specifications, to explore alternative designs quickly, and to test design models continuously during the development process. Process note: To make the best use of Rational Rose RealTime, you should aim to get your model running as often as possible. Making small, incremental changes and running your model each day will bring much better results than making widespread changes and working for weeks to get the model running again.


Services Library
To construct a Rational Rose RealTime model, two major parts are required: The structure and behavior of the model A Rational Rose RealTime Services Library (these are language-specific) Figure 2 The services library is a framework for real-time systems

The services library is essentially a framework for real-time systems. It includes functionality for controlling concurrency execution of finite state machines, for delivering messages, and for providing timing and logging services. A framework is a like a library of classes and operations used by an application, but with an inversion of control, meaning that the main control lies in the framework, and the framework invokes functions in the application to pass control to application objects as required. Application classes are subclassed from framework classes so that they inherit operations which are invoked by the framework. There is no main() function in a Rational Rose RealTime model. The main() function is contained in the services library and takes care of creating the capsules in your model and kicking off the execution of their state machines. All you need to do is describe the capsules and define state machines for them and they will be automatically created and executed by the services library. The capsule state machines can, in turn, invoke operations on other classes (data classes), and send messages to other capsules. The services library is responsible for managing the creation and destruction of capsules, and the delivery of messages between capsules (even across threads).

The addition of the real-time specializations to the UML concepts allows the toolset to generate complete code for the model which is tied in to the services library. When you generate code for and compile a model in Rational Rose RealTime, the tool will link it with a services library compiled for the particular platform you are running on.


IBM Rational Rose Technical Developer

Software development teams all face Generate fully executable applications from models Rational Rose Technical Developer defines the standard for the industrys most robust MDD support. A UML model compiler generates complete C, C++, and Java applications for UNIX, Windows NT/2000, and realtime operating system targets. This automated code generation eliminates the need for manual translation and avoids costly design interpretation errors. Model specifications are so complete that subsequent development takes place in the model elements themselves. Such robust support for MDD results in the highest levels of productivity and reliability.


the same software development paradox: how to develop applications faster without compromising quality.

Model-Driven Development with the Unified Modeling Language Developers of real-time, embedded, and other complex types of software (UML) systems face additional challenges. Targeted for commercial software products and systems, including real-time and embedded applications Industrys most robust modeldriven development solution. Such software is highly event driven, concurrent, and often distributed. Stringent requirements must be met for latency, throughput, and dependability. Capturing and effectively communicating designs for such systems is a daunting task. Keeping the implementation in sync with the design Fully-automated design-to-code is even harder. translation for Java, C and C++ IBM Rational Rose Technical Runtime model execution and visualization Automated test harness generation Optimized for event-driven, concurrent, and distributed applications. Ensures meeting stringent requirements for latency, throughput, and dependability. Supports the most advanced modeling constructs, including model execution and fully executable code generation. Developer is a robust Model-Driven Development (MDD) solution expressly created to meet these and other challenges of complex systems development. Based on the industry standard Unified Modeling Language (UML), Rational Rose Technical Developer provides a highly automated and reliable solution to the unique problems of concurrency and distribution. It unifies the project team by providing an extensive set of tool integrations to meet the needs of the entire team, from requirements capture through to high-performance code generation, testing, and debugging for real-time operating system targets.

Integrate modeling, implementation, & debugging Rational Rose Technical Developer integrates development activities to a new level. The code generators have an associated visual UML model debugger that enables observation and validation of host and target applications. Model execution encourages early design refinement. A complete UML-based testing facility lets the user graphically define system behavior, then automatically generate and execute test cases and test suites for complete or partial models. It supports continuous verification of quality right from the beginning of

Designed for the most technologically challenging applications. Includes IBM Rational Rose RealTime for full-scale modeldriven development with Java, C and C++ Includes IBM Rational Rose Developer for UNIX for designlevel integration with Java, C++, and Ada

system implementation. Such compact integration cycles results in unprecedented turn-around times for mission-critical changes.

model-based component testing by generating code automatically from within the UML model. You can automatically build stubs and drivers to use in testing components and classes. And when integrated with IBM Rational Test RealTime, these generated tests can be executed automatically as well. Rational Rose Technical Developer supports a wide range of testing activities from developer scenario-based debugging to full system regression testing. Make developing on a team easier Software development is a team sport. As a member of a software team, you have to deal with documentation, communication, requirements, version control, defect tracking, reporting, and overall process management. Rational Rose Technical Developer is included in IBM Rational Suite for Technical Developers where solutions for these types of team activities are found. Now you can not only develop with the best MDD solution, but you can manage large products in the most integrated fashion.

Leverage the latest UML constructs The UML is approaching revision 2.0. Many of the new elements found in the proposed standard trace to features included in Rational Rose Technical Developer. Most notable is the notion of capsules, which encapsulate active objects containing their own threads of control. Capsules in Rational Rose Technical Developer will directly translate to structured classes in UML 2.0. Practicing model- driven development with Rational Rose Technical Developer today ensures you of having a clean migration path to UML 2.0 when it becomes adopted as the new standard. Extend model-driven development to testing Rational QualityArchitect RealTime is an extension to the visual modeling capability of Rational Rose Technical Developer. It enables users to perform

Features and benefits Feature

Source of UML 2.0 structure Concepts

Applies to everything from structural code generation to stubbing in test automation

Define reusable, fully encapsulated architectures Gives scalability and reusability proven on multi-million line fielded applications

Generation of structural code

Generate code that manages relationships between

Makes structure visible and classes maintainable; increases quality and percentage of generated code Faster development, better quality of generated Code

Porting Wizard State machines on both simple classes

Lets customer develop for virtually any 8-bit or larger Use state machines to define behaviors of non-active classes

Supports customers chosen platform platform Requires no run-time library or use capsule and of operating system facilities Allows MDD on very small targets, with or without RTOS (Real-Time Operating System)

Rational QualityArchitectRealTime

Automatic generation, execution and reporting of test UML Sequence Diagrams. Stub any object.

Minimizes test effort, allows testing results from from very beginning No big bang integration phase, easy continuous developer testing


Middleware simplifies distribution of model-generated

Concentrate on application, not applications Middleware Faster time to market and easier evolution of distributed applications

Full threading control

Allows assignment of any set of active objects

Put scarce RTOS thread resources where theyre needed and optimize performance Build scalable, evolvable, efficient architectures

Activity Diagrams Rose cross-edition model data

Ability to create and edit Activity Diagrams Ability to read and write all diagrams of models created in Rose Enterprise and Rose RealTime; also, code reference usage for code managed by Rose and used RealTime Parameterized and Instantiated class code generation, API for integrating with non-Rose applications, additional targets, easier code generation of no-RTS executables Background synchronize with CM, merging and merge Controlled sequence diagram units, view ClearCase version tree from Rose RealTime Finer requirements traceability with ReqPro, host on simplified install (one CD, one install, disk)

Useful for analysis Ability to move forward from a Rose compatibility analysis, or export partial information back to Rose for documentation in Rose

Enhanced Code Generation Target Support

Ability to generate wider range and of code with less effort Ability to build minimal-footprint no-capsule, applications; (simplified) ability to run in no-RTOS environments

Configuration Management

Team development support avoidance,


Traceability between requirements Solaris 9, and virtually any model element no companion

Supported Hosts
Operating System
Windows NT

Windows NT 4.0, build 1381, with service pack 6a Minimum Pentium 150 MHz; we recommend 500 MHz or faster CPU Minimum 128 MB of RAM; we recommend 256 MB of RAM Minimum 552 MB of disk space for the Rose RealTime installation Minimum display 1024 X 768; we recommend 1280 X 1024 or better Postscript printer for printing Browser requirement - Internet Explorer 5.01 or later or Netscape Navigator 4.7 or 6.0. We recommend Internet Explorer 5.01 or later. Windows Windows 2000 Professional, RC2, Build number 2128. Disk, RAM and display requirements same as for Windows NT. Windows Windows XP Professional, Build number 2600. Disk, RAM and display requirements same as for Windows NT Sun Solaris Solaris 2.6, 7, 8, or 9 Minimum workstation is an UltraSparc 10 with 500 MB of RAM Recommend an UltraSparc 60 with 600 MB of RAM.

2000 XP

FOR REAL TIME EMBEDDED SOFTWARE Fix Your Code Before It Breaks using

IBM Rational Test RealTime

IBM Rational Test RealTime is a cross-platform solution for component testing and runtime analysis. Test Automates component testing and runtime analysis for host and target from a single testing environment Automates creation and deployment of component test harnesses, test stubs, and test drivers Profiles memory and performance, analyzes code coverage, and visually illustrates runtime tracing Host-based tests easily adapted to different targets without rewriting test procedures Test and analyze directly on the target. Supports all common platformsfrom an 8-bit microchip to a 64-bit RTOS Provides detailed code coverage information required for safetyand mission-critical certification Rational Test RealTime automates the creation and deployment of component test harnesses, test stubs, and test drivers. With a single click from your development environment, you can also profile memory and performance, Test, analyze and resolve during development The best time to find and fix bugs is during development. This is why IBM Rational Test RealTime is focused on developer testingthe kind only you as the author of the code can perform effectively. You need to easily test the components you write and to analyze the reliability and performance of your applications as they run on your host development system. Test and debug both host and target Host-based testing is important for embedded systems development since your target hardware is often not available in a timely manner. But developers cannot measure the quality of their work until they see it execute in the target environment. The situation grows even more complex when you have multiple types of targets that have to be tested. IBM Rational Test RealTime allows you to test and debug both host and target and to coordinate the two in a meaningful way. When your hardware is not available, you can simulate on the host and test for generic bugs. When the target is there, you can RealTime was designed specifically for those who write code for embedded, real-time, and other types of commercial software products. Test RealTime allows you to be more proactive in your debugging, enabling you to fix your code before it breaks. Only IBM Rational Test RealTime combines component testing and runtime analysis into a single, integrated developer-centric testing solution. analyze code coverage, and visualize the behavior of your program execution. Fully detailed test and runtime analysis reports are hyperlinked to the relevant source code.


execute the same tests directly on the operational platform. Test RealTimes versatile Target Deployment Technology allows you to easily adapt your test procedures to any target and build environment without having to rewrite your tests. Only IBM Rational Test RealTime lets you test and debug on the host and across multiple targets using the same test and analysis procedures. Harness the power of model-driven testing The Unified Modeling Language (UML) can be used to visually lay out your applications design and test scenarios. IBM Rational Rose Technical Developer automates modeling with the UML and provides robust code generation to support Model-Driven Development (MDD) paradigms. IBM Rational Test RealTime extends MDD to include developer testing activities. We provide a plug-in for Rose Technical Developer that allows developers to invoke runtime analysis features on code generated from UML Models. You can also visualize test case coverage via color-coded statemachines in Rose Technical Developer. Only IBM Rational Test RealTime integrates the UML across both design and developer testing activities, providing the industrys broadest support for modeldriven development. For more information, please go to to learn more, view online demonstrations, and download/order an Embedded Developers Solution CD that includes an evaluation version of Test RealTime.

Rational Test RealTimes graphical user interface hyperlinks your runtime analysis results (top right runtime trace; bottom left code coverage) directly to your source code, enabling code repairs without ever having to leave the tool.

Features and benefits Feature Component testing Description Automates creation and of host and target-based component harnesses, test stubs, and test drivers Memory profiling Illustrates how a program's memory is being consumed and leaked Identifies the source of eminent Java, C/C++ or potential memory leaks before possibly they occur, preempting performance issues and program crashes Performance profiling Thread profiling Identifies application-level performance bottlenecks Detects and analyzes multithreading problems, such as and race conditions as they occur in programs Code coverage analysis Identifies which portions of a program have not been tested Avoids delivering code that is Java, C/C++, Ada executed for the first time by the user or the target system running the application Runtime tracing Illustrates thread execution, function calls, and variable values as a function of time sequence diagrams System testing Provides message-based unit and integration testing of C processes and core-business activities Target Deployment Technology Provides a versatile, lowYour tests won't need to change Java, C/C++, Ada overhead technology for enabling when your environment does; test targetindependent tests and analysis script deployment, execution and runtime reporting remain easy to use Saves time and money by C avoiding the construction of threads, tasks, dedicated test beds and related nodes nonDeveloper can go back in time to Java, C/C++ review how a program behaved in programs after execution has completed via UML Pinpoints areas in the code that Java, C/C++ can be optimized for their performance Improves the reliability of multithreaded applications deadlocks Java, C/C++ Benefits Directly testing on the target increases confidence that actual system will perform as test expected Language Support Java, C/C++, Ada deployment


We offer software development tools and out of the box solutions along with local support for Business and RealTime Embedded applications for Telecom, Finance, Defence, Aerospace and others




Software on Demand - Software tools integrated over software development lifecycle and training

Design & Construction

Tools for model-driven architecture, components, component testing, runtime analysis activities
Rational Application Developer for WebSphere Software, Rational Professional Bundle, Rational Rose: XDE Developer for Java, XDE Developer Plus, Technical Developer Rational Software Architect, Rational Software Modeler, Rational Suites for Technical Developers for Real Time Embedded, Rational Web Developer for WebSphere Software.

Process and Portfolio Management

Integrated tools to manage requirements, model and test, implement a development process and assess and report progress.
Rational ProjectConsole, Rational SoDA, Rational Suite, Rational SUMMIT Ascendant, Rational Team Unifying Platform, Rational Unified Process.

Requirements & Analysis

Integrated tools for requirements management, use case development, business modeling, and data modeling. Rational RequisitePro, Rational Rose: Data Modeler, XDE Modeler.

Software Configuration Management

Solutions for simplifying and managing change including version control, software asset management, and defect tracking. Rational Clear Case, Rational ClearCase and ClearCase Multisite, Rational ClearCase Change Management Solution Enterprise Edition, Rational ClearCase LT, Rational ClearCase MultiSite, Rational ClearQuest, Rational ClearQuest and ClearQuest MultiSite, Rational ClearQuest MultiSite

Software Quality
Tools that address all dimensions of software quality: functionality, reliability and performance.
Rational Functional Tester, Rational Manual Tester, Rational Performance Tester, Rational Functional Tester Extension for Terminal-based Applications, Rational Robot, Rational PurifyPlus, Rational TestManager, Rational Test RealTime

Traditional Languages & Debug Tools

3GL and 4GL/RAD language-based tools, unified development environments, modeling, and other development tools. Rational Ada Developer IBM Rational Ada Developer family - Team-based development for embedded Ada applications for popular targets with third party RTOS. Well proven Apex family. 2. ENGENIO INFORMATION TECHNOLOGIES Inc.

TAS (TotalNet Advanced Server) - PC to UNIX Connectivity solutionsCertified for use with ClearCase. Server centric Scalable Enterprise wide networking solution. 3. (


High performance ICC Embedded Ada 95/83 IDE for - Intel i960 series - Lynx OS for PowerPC and X86 targets - Texas Instruments DSP - Analog Devices - ADSP 210X0 SHARC DSP - PowerPC series - Pentium / 386ex - SPECIAL PROCESSORS AS PER CUSTOMER REQUIREMENT
4. DDC-I, Denmark - Ada 83/95/C++/Java ,Tartan Ada Tools (

Consultation / Tools for Certification as per Def. / MIL/ FAA/ other standards Certifiable Cross Compilers Intel 80x86, Pentium (DACS), Intel 80960(Tartan Product), Power PC MIL STD 1750A (Tartan Product), Motorola 68K (Tartan Product) Multi Language cross compiler for REAL TIME Embedded Applications SCORE-Ada, C, Java, C++; for multiple targets / platforms / target on demand
RAMP Technologies Pvt. Ltd., (P C Gulati) Bangalore Office: #230, 5th Main Road, 7th Cross, Indiranagar 1st Stage, Bangalore 560 038 India. Dir : 91-80-2526 2710,25934100, Telefax : 91-80-2526 2366. Mob: 98450-02880. Tech Support : 080 25934101 / 51267182 Tech Sales : 080 - 25934102 / 25211946 Enquiry : 080 -25934103/4 Email : ; Hyderabad Office: #401, Mythri Nivas, D.No. 6-31121/1/1/A&B, B.S. Maqta, Green Lands, Hyderabad 500 016, Tele 040-23417273 / 23417274 E-mail: