Design and Software Quality
By the design procedure the quality of the evolving design is assessed with a series of formal technical reviews or deigns walkthroughs discussed in following chapters. McGlaughlin suggests 3 characteristics which serve as a guide for the evaluation of a good design:
- Design must implement all of the explicit needs contained in the analysis model and it must accommodate all of the implicit requirements desired through the customer.
- The design must be an understandable, readable guide for those who generate code and for those who subsequently and test maintain the software.
- Design should provide a complete picture of the software addressing the data, functional and behavioral domains from an implementation viewpoint.
Every of these characteristics is original a motive of the design procedure. But how is each of these motives achieved?
In order to evaluate the quality of a design representation, we must establish technical criteria for good design. Later in this lecture we discuss design quality criteria in some detail. For the time being, we present the following guidelines:
1. A design should exhibit a hierarchical organization which makes intelligent use of control between elements of software.
2. A design should be modular which is the software should be logically portioned into parts which perform sub functions and specific functions.
3. A design should contain both procedural and data abstractions.
4. A design should lead to modules example for subroutines or procedures which exhibit independent functional characteristics.
5. A design should lead to interfaces which reduce the complexity of connections among modules and with the external environment.
6. A design should be derived using a repeatable technique which is driven through information obtained during software needs analysis.
These criteria are not achieved through chance. The software design process encourages good design by the application of fundamental systematic methodology, design principles and by review.