1:
Analysis and Design
Concepts
Design concepts
Abstraction:
Refinement:
Modularity/Modularization.
Cohesion & Coupling:
Software architecture:
Control Hierarchy
Structural Partitioning
Data-structures:
Information Hiding:
Cohesion vs coupling
Cohesion
It is the indication of the
relationships within
module.
Coupling
Coupling Types
Cohesion types
Design principles
The design
Process should not suffer from tunnel vision.
Should be traceable to the analysis model
Should not reinvent the wheel,
Should minimize intellectual distance between software and the
problem as it exits in the real world
Should exhibit uniformly and integration
Should be structured to accommodate change.
Should be structured to degrade gently, even with bad data, events,
or operating conditions are encountered
Should be assessed for quality as it is being created
Should be reviewed to minimize conceptual (semantic) errors.
Design process
a)Data design: It transforms the information domain model created during analysis
into data structures
b)Architectural design: It defines the relationship between major structural
elements of the software.
c)Interface design: It describes how the software communicates within itself, with
systems that interoperate with it, and with humans who use it.
An interface implies the flow of information (e.g.: data and/or control) and a
specific type of behavior.
Thus, data and control flow diagrams provide much of the information required
for interface design.
d)Component-level design: It transforms structural elements of the software
architecture into a procedural description of software components.
Information obtained from the PSPEC, CSPEC, and STD serve as the basis for
component design.
Following are the three characteristics that serve as a guide for the
evaluation of a good design:
The design must employ all of the explicit requirements contained in the
analysis model, and it must hold all of the implicit requirements desired by
the customer.