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 |
|