Networking Software
Uses structured programming
Structuring is achieved by using layers
Each layer should be:
- essentially self-contained, with minimum data passing to next higher and lower layers
- a logical entity performing 1 major function
- created for each major level of abstraction, but not so many that simplification is lost