Layering
l Divide a task into pieces and then solve
each piece independently (or nearly so).
l Establishing a well defined interface
between layers  makes porting easier.
l Major Advantages:
¨ Code Reuse
¨ Extensibility
11