The bottom-up approach to integration is to use 'driver' modules to represent higher-level modules. As modules are completed and tested, they replace the drivers. Drivers can be used to implement test cases.
44 ESA PSS-05-05 Issue 1 (May 1992) METHODS FOR DETAILED DESIGN AND PRODUCTION
This page is intentionally left blank.
ESA PSS-05-05 Issue 1 (May 1992) 45 TOOLS FOR DETAILED DESIGN AND PRODUCTION
CHAPTER 4 TOOLS FOR DETAILED DESIGN AND PRODUCTION
INTRODUCTION
This chapter discusses the tools for detailing the design and producing the software. Toots can be combined to suit the needs of a particular project.
DETAILED DESIGN
CASE tools
In all but the smallest projects, CASE tools should be used during the DD phase. Like many general purpose toots (e.g. such as word processors and drawing packages), CASE tools should provide:
• windows, icons, menu and pointer (WIMP) style interface for the easy creation and editing of diagrams;
• what you see is what you get (WYSIWYG) style interface that ensures that what is created on the display screen closely resembles what will appear in the document.
Method-specific CASE tools offer the following features not offered by general purpose tools:
• enforcement of the rules of the methods;
• consistency checking;
• easy modification;
• automatic traceability of components to software requirements;
• configuration management of the design information:
• support for abstraction and information hiding:
• support for simulation.
CASE Tools should have an integrated data dictionary or another kind or 'repository'. This is necessary for consistency checking. Developers should check that a tool supports the parts of the method that they intend to use. ESA PSS-05-04, 'Guide to the Software Architectural Design Phase' contains a more detailed list of desirable toot capabilities. The starts guide provides a good survey of tools for requirements analysis and configuration management [Ref. 3].
46 ESA PSS-05-05 Issue 1 (May 1992) TOOLS FOR DETAILED DESIGN AND PRODUCTION
Configuration managers
Configuration management of the physical model is essential. The model should evolve from baseline to baseline as it develops in the DD phase, and enforcement of procedures for the identification, change control and status accounting of the model are necessary. In large projects, configuration management tools should be used for the management of the model database.
Precompilers
A precompiler generates code from PDL specifications. This is useful in design, but less so in later stages of development unless software faults can be easily traced back to PDL statements.
PRODUCTION
A range of production tools are available to help programmers develop, debug, build and test software. Table 4.3 lists the tools in order of their appearance in the production process.
Tool
Purpose
CASE tools
generate module shells
code generators
translate formal relationships into source code
editors
create and modify source code and document-
ation
language-sensitive editors
create syntactically correct source code
static analysers
examine source code
compilers
translate source code to object code
linkers
join object modules into executable programs
debuggers
locate errors during execution
dynamic analysers
examine running programs
test tools
test modules and programs
word processors
document production
documentation generators
derive user documentation from the source code
configuration managers
store and track versions of modules and files,
and record the constituents of each build.
Table 4.3 Production tools
ESA PSS-05-05 Issue 1 (May 1992) 47 TOOLS FOR DETAILED DESIGN AND PRODUCTION
CASE tools
Many CASE tools automatically generate constant, type, and variable declarations for inclusion in the source code of every module. Some CASE tools can translate diagrams showing the calling tree of modules into fully commented function or procedure calls, though these may lack values for actual parameters.
If such tools are used, coding begins by completing the skeleton of the module. All the calls are completed: then iteration constructs (WHILE, REPEAT, LOOP, etc) are entered; then alternation constructs (IF, CASE, etc) are inserted. Finally, low-level details such as arithmetic, input/output, and other system calls are filled in.
Code generators
Numerous code generator packages are now available, claiming to take the work out of design and coding. They can help reduce the workload in some areas, such as database management and human-computer interaction. These areas are characterised by repetitive code, and the need to perform numerous trivial but essential operations in set sequences. Such tasks are best automated for accuracy and efficiency.
As code generators become more closely integrated with design methods, it will be possible to code a larger proportion of the components of any given system automatically. Current design methods generally provide limited code generation, for example creating the data declarations and module skeletons; module bodies must then be coded by hand.
Even if parts of the system are to be coded manually, there are still advantages in using a code generator. Changes in software requirements can result in automatic changes to data and module declarations, preserving and checking consistency across the phases of the life-cycle.
Editors
Largely replaced by the word processor for documentation, basic text editors are still widely used for source code creation and modification. Although language-sensitive editors (see Section 4.3.4) offer greater functionality, basic text editors provide all the facilities that many programmers require.
48 ESA PSS-05-05 Issue 1 (May 1992) TOOLS FOR DETAILED DESIGN AND PRODUCTION