Explain in detail the design concepts.
Abstraction
-  Functional abstraction 
 
-  Data abstraction 
 
-  Control abstraction 
 
Information hiding
-  Every module in the system hides the internal details of its processing activities and modules communicate only by over defined interfaces. 
 
Structure
-  It permits the decomposition of a large system into smaller, more manageable units with well explained relationships to the other units in a system. 
 
-  Network is the most general form of structure. 
 
Hierarchical Structures/Structure Charts
-  It depicts the structure of subroutines in a system, the data passed among routines, can be indicated on the arcs connecting routines. 
 
Modularity
-  Modular system consists of well-defined, manageable units with well defined interfaces between units. 
 
Concurrency
-  Independent processes that can be activated concurrently if multiple processors are available.