- it must implement all the explicit requirements, and accommodate
all the implicit requirements described by the customer
- it must be a guide that is easily understood by those who write
code, and for those who test and subsequently maintain the software
- it should provide a complete picture of the software, addressing
the data, functional and behavioral domains from an implementation
perspective.
back to top
Technical Criteria to establish a
good design are:
- it should exhibit a hierarchical organization that makes
intelligent use of control among elements of software
- it should be modular i.e. logically partitioned into elements that
perform functions and sub-functions
- it should contain both data and procedural abstractions
- it should lead to interfaces that reduce the complexity of
connections between modules, and the external environment
- it should be derived using a repetitive method that is driven by
information obtained during software requirement analysis
back to top
The following are crucial
for the effectiveness of a design process:
- the problem defined must be examined from a number of view points
and angles
- a number of solutions must be identified to solve the problem
- the designer must make an appropriate choice after careful
consideration of the pros and cons of each solution
- each abstraction, each and every element, used in the solution
must be described in detail __ from the services it
provides to the constraints it works under
The general tasks in the design process
are:
- designing the overall system processes
- segmenting the system into smaller, compact workable modules
- designing the database structure
- specifying the details of the program to be created to achieve the
desired functionality
- designing the input and output documents
- designing the controls for the system
- documenting the system design
- system reviews
back to top
Data Design:
The information domain model created during analysis is transformed
into data structures necessary to implement the software.
Architectural Design:
This will define the relationship among the major structural elements.
It is derived from the interaction of subsystems within the analysis
model.
Interface Design: This
describes how the system interacts with the users, and with systems that
interoperate with it.
Component-level Design:
Here, structural elements of the programs architecture are converted
into a procedural description of the software's components. Process
Specification (PSPEC), Control Specification (CSPEC) and State
Transition Diagrams (STD) provide the basis for procedural design.
back to top
|