Page 169 - DCAP305_PRINCIPLES_OF_SOFTWARE_ENGINEERING
P. 169
Unit 8: Detailed Design
personnel may observe system tests. The software may be independently verified by engineers Notes
not responsible for detailed design and coding. Important considerations before starting code
production are the adequacy and availability of computer resources for software development.
There is no point in starting coding and testing if the computer, operating system and system
software are not available or sufficiently reliable and stable. Productivity can drop dramatically
if these resources are not adequate. The principal output of this phase is the code, the Detailed
Design Document (DDD) and Software User Manual (SUM). The DD phase terminates with
formal approval of the code, DDD and SUM by the Detailed Design Review (DD/R).
8.1.1 Definition of Design Standards
Anywhere probable, standards and conventions used in the AD phase should be carried over into
the DD phase. They should be documented in part one of the DDD. Standards and conventions
should be defined for:
• Design Methods
• Documentation
• Naming Components
• Computer Aided Software Engineering (CASE) tools;
• Error handling.
8.1.2 Decomposition of the Software into Modules
As in architectural design, the first stage of detailed design is to define the functions, Inputs and
Outputs of each software component. Whereas architectural design only considered the major,
top-level components, this stage of detailed design must specify all the software components.
The developer starts with the major components defined in the ADD and continues to decompose
them until the components can be expressed as modules in the selected programming languages.
Decomposition should be carried out using the same methods and tools employed in the AD
phase. CASE tools and graphical methods employed in architectural design can still be used.
Component processing is only specified to the level of detail necessary to answer the question:
‘is further decomposition necessary?’
Decomposition criteria are:
• Will the module have too many statements?
• Will the module be too complex?
• Does the module have low cohesion?
• Does the module have high coupling?
• Does the module contain similar processing to other modules?
8.1.3 Reuse of the Software
Software reuse questions can arise at all stages of design. In the AD phase decisions may have
been taken to reuse software for all or some major components, such as:
• Application generators;
• Database management systems;
• Human-computer interaction utilities;
• Mathematical utilities;
• Graphical utilities.
In the DD phase developers may have to:
• Decide which library modules to use;
LOVELY PROFESSIONAL UNIVERSITY 163