The typical goals of
software component design are to:
Produce, document, and maintain the detailed tactical
structure and behavior of the application’s software
components.
Objectives
The typical objectives of software design are to:
Determine the logical structure of the software
components.
Maximize the quality of the software component design:
In terms of correctness, completeness, consistency, and
understandability.
To meet the requirements (operational, informational, and
quality).
To meet the design constraints, and
To conform to the database and information
architectures.
Maximize the productivity of the
software development team (e.g., reuse of existing designs,
reuse of design conventions, and existence of example
documents).
Software component design typically involves the following
producers performing the following design tasks in an iterative,
incremental, parallel and time-boxed manner: