Software Component Design
Definition
Software design is the
design subactivity involving the design
of the
software components of an
application.
Goals
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).
Typical examples of software component design include the
design of:
- Application-specific software components.
- Reusable software components.
Software component design typically may begin when the
following preconditions hold:
- The
initiation phase has started.
- The
software development team is initially staffed and
adequately trained in design.
- The following documents are largely complete and are
relatively stable:
- Requirements Documents:
- Architecture Documents:
Tasks
Software component design typically involves the following
producers performing the following design tasks in an iterative,
incremental, parallel and time-boxed manner:
Work Products
Software component design typically results in the production
of all or part of the following
design
work products:
- Diagrams:
- Documentation:
- Prototypes:
Guidelines