3SL: Requirements management and model driven systems engineering from concept to creation.
Cradle®
Login:
Username:
Password:
 
Search:  
Visitor not logged in, You are: Home > Products > Modules > Cradle SWE

 

[PDM][REQ][MET][SYS][PERF][SWE][DOC][WEBA][WEBP][WRK]

 

Cradle SWE

The Cradle-SWE module provides reverse engineering and code generation tools that seek to maintain the consistency between the detailed system design and the software implementation.

Software designs are created with diagrams and database items that can contain pseudo code, descriptions and actual source code. This software design is fully cross referenced to the design and analysis models, to the requirements and tests, and all other data.

The initial design can be code generated to C, Ada and Pascal type definition header files, and prototype source files that contain the call hierarchy from the design, all call arguments and local variable declarations, and the content of the design model’s pseudo code or detailed design material.

Once built into complete algorithmic code, the resulting source files can be reverse engineered into the design database, to update its design diagrams, and the data definitions and module specifications of these diagrams’ symbols.

Reverse engineering merges actual source code into the design definitions and specifications, subdividing each routine and storing its component parts in separate frames in the database items. Every line in each source file is stored in exactly one frame in one item in the database.

The code generator can be run on the results of reverse engineering to reconstruct the source files, either exactly as they were, or including any changes made in the design model.

The process can start by reverse engineering legacy source code into an initial design model, recovering designs where only the implementation currently exists.

Since reverse engineering loads all of source files into the database, the source files could be deleted, and instead configuration managed through the Cradle configuration management system as part of the design.

The format of all generated code can be tailored to comply with local coding conventions.

Reverse engineering employs user defined rules to automatically distinguish between application code, application libraries and operating system routines, rendering the design diagrams accordingly.

Cradle SWE

SWE Applications

The Cradle-SWE module primarily is applied in two contexts, new systems or legacy systems.

With new system designs, the detailed design for the software components is represented in Structure Charts (STCs). Cradle allows these to be hierarchical, to represent modules within source files within subsystems, or to represent inter-task rendezvous and the contents of task bodies. The detailed software design can be code generated into initial, skeletal code, to be passed into the code development environment. The Cradle-SWE code generator can produce header files containing data types code generated from the Data Dictionary (DD) definitions, and skeleton source files containing the detailed design specifications from within module specifications and the call hierarchy as represented in the STCs.

Once the software team has generated the algorithmic content for the source code, it is usual to then reverse engineer this source code back into the Cradle database and regenerate the STCs, the module specifications and the data definitions in the DD. This ensures that the detailed design and the code are consistent.

With legacy applications, there is a body of source code and typically little or no design documentation. This source code would first be analysed to identify any coding conventions and standards that have been used, particularly naming conventions for routines and data. These rules and conventions would be configured into the setup of the reverse engineering tool.

The source code would be reverse engineered to produce a detailed design consisting of STCs that graphically depict the structure of the source code, and supporting definitions for the symbols on these diagrams in the form of module specifications for each module (routine) in the STC that contains the relevant pieces of source code, and data definitions in the DD for each of the arguments to each of the reverse engineered routines.

The result of the reverse engineering is that every line from every source file has been stored in the Cradle database, associated with a symbol in one of the STCs that may have been generated. This means that the source files can be discarded, as they can be reconstructed from the design database (the STCs and associated definitions) whenever needed.

Any subsequent updates to the system can either be performed within the Cradle design database, and the resulting changes converted to new, updated, source files by code generating, or any further updates to the source files can be captured into the design by reverse engineering.

Cradle-SWE provides facilities to convert STCs into DFDs, and vice versa, so that detailed designs recovered from source code can be pushed further up the design process, to reconstruct higher and higher levels of the design model.

Features: Benefits:
Integrated with design model Provides the link between the design database and the system implementation
Code generation, reconstruction, and reverse engineering tools Bidirectional exchange of source code with the code development system and synchronization of the detailed design with the software implementation
Support for C, Ada, and Pascal Applicability to a wide range of new and legacy projects
Customisable code generation Conform to local coding standards
Choice of reverse engineering operations Create design diagrams and/or load definitions and/or analyse code characteristics, or all of these
Customisable reverse engineering Optionally suppress system or library routines, control the layout of generated diagrams and options for populating the database with module and data definitions
Customisable code reconstruction Reorganize source files from original layouts and optionally include design database changes in the generated source code
Absorbs all source code into design database Cradle design database can manage approved software releases in formal baselines, while the code development system is used for interim work
Batch processing High productivity by code generating or reconstructing any number of design diagrams as one operation, and by reverse engineering entire directory trees as one operation
Cross referenced software implementation Complete traceability from stakeholder needs to source code, via analysis and/or design models, and full linkage to all test specifications, test results, and all other project data

 

 
 
[Copyright © 3SL 2008 | Last Updated: Sat Jul 19th, 2008 ]
Registered office: 2 Highfield Road, Barrow in Furness, Cumbria, LA14 5PA, Registered in England No. 2153654