organizing code into modules so that each module has high cohesian and low coupling between them
What is modular design?
Measure of how focused or strongly-related the responsibilities of a single module are
What is cohesion?
Low coupling means there is not that many interconnections
What does it mean for a module to have low coupling?
System will be maintainable and reliable, and the project will keep within budget
What are the three main reasons that modular design is important?
You can identify each module and test each module independently
How will you know if your design is modular?
Modules in upper layers are allowed to use the modules in lower layers
What do you understand by layered design?
Operating System and Networking
Give two examples of layered design in real-life complex software
Manages complexity; blueprint for constructing the system; portability, maintainability, and reusability
What are a few outstanding benefits of using layered design?