- SW design is an iterative process
- Requirements are translated “blueprint” for constructing the SW
Design Principles:Software design is both a process and a model. The design process is sequence of steps that enable the designer to describe all aspects of the software to be built. It is important that the design process is not simply sequential process but it is a sense of what makes quality software. The design model is the equivalent of an architectural plant for a house. It begins by representing the total things to be built. Davis has suggested following principles for software.
1. The design process should not suffer from “tunnel vision” means a good designer should consider alternative approaches, judging each based on the problem, the resources available to do the job and should consider all design concepts.
2. The design should be traceable to the analysis model means a single element of the design model often traces to multiple requirements so it is necessary to have a means for tracking how requirements have been satisfied by the design model.
3. The design should not reinvent the wheel means systems are constructed using a set of design patterns. These patterns should always been chosen as an alternative to reinvention because time is short and resources are limited so design time should be invested in representing truly new ideas and integrating those patterns that already exists.
4. The design should minimize the intellectual distance between the software and the problem as it exists in the real word.
5. The design should exhibit uniformly and integration. Design is uniform means it appears that one person develop the entire think. Rules of style and formats should be defined for a design till before design work begins. Design is integrated if care is taken in defining interface between design components.
6. The design should be structured to accommodate change means if we are using prototyping according to above concept.
7. The design is not a coding and coding is not a design means even when detail procedural design are created for program components the level of abstraction of the design model is higher than source code.
8. The design should be received and access for quality as it is being created. A variety of design concepts and design measures are available to access the designer is accessing quality.
When these design principles are properly applied the software engineer creates a design that exhibit both external and internal quality factors. External quality factors are those properties of the software that can be observed by users. E.g. speed, reliability, concentrate etc. an inter quality factors are of important to software engineer they lead to a high quality design from the technical point of view to achieve internal quality factors. The designer must understand basic design concepts.