| Just like an architect designs a model of a real world
building, similarly a software engineer designs a model of a real world
software system. Thus, it is crucial for the success of system that it is
designed in a realistic, standard, architectural manner.
Avoid tunnel vision: Tunnel vision denotes narrow point of view.
Lack of vision is not excusable on the part of a designer. It is imperative
that the problem is studied from all possible angles, all possible design
approaches are considered, judging each against the requirements from the
system, the resources available, and the constraints that the system would
be working under.
back to top
Design model should be traceable to the analysis
model: An exemplary design model should be traceable
to the analysis model, that is, it should provide a means for checking
whether the design elements have the ability to meet the requirements
identified in the analysis model. It may also be possible that a single
element translates to multiple requirements.
back to top
Do not reinvent the wheel: Time is an extremely precious
commodity. Software projects which overflow time constraints are bad for
business. If reusable design components are available, then time must
not be wasted reinventing/ redesigning such components.
back to top
Minimize the intellectual distance: As far as possible,
structure of the design should imitate the structure of the problem
domain. The solution to the problem should not be too difficult to
understand or comprehend.
back to top
Exhibit uniformity and integration: The design coding and
presentation standards must be closely followed by the entire team. It
should not appear to reflect the moods of different team members during
different stages of the design. The same rules and formats must be
followed by all the team members.
back to top
The design structure should be able to accommodate
change: With the passage of time, changes
or enhancements may be required to be made in the existing system. The
design should be dynamic enough to accommodate such changes, and adapt
to new requirements.
back to top
The design should not collapse suddenly: A well designed system should never
crash. It should be able to handle all sorts of exceptions and events.
it should be able to degrade gently even when aberrant data, events or
operating conditions are encountered.
back to top
Assess for quality as it is being created: The design metrics should be used
to assess the quality of design all along the way. One cannot and should
not wait till the end of the process to assess for quality.
back to top
Review to minimize conceptual errors:
It is imperative to check all
conceptual elements of design such as ambiguity, omissions,
inconsistencies before worrying about the syntax of the design model.
back to top
.
|