Want to create interactive content? It’s easy in Genially!
The Story of Modular Design
Connor Tynan
Created on October 21, 2024
3_swarna_6
Start designing with a free template
Discover more than 1500 professional designs like these:
Transcript
Modular Design
3_swarna_6
*** Quick Review of Modular Design
01
WHAT IS MODULAR DESIGN?
Modular design means organizing code into modules, so that each module has high cohesion and that modules have low coupling between them.
If an element has low cohesion:
- Increased difficulty in understanding modules.
- Increased difficulty in maintaining a system, because logical changes in the domain affect multiple modules, and because changes in one module require changes in related modules.
- Increased difficulty in reusing a module because most applications won’t need the random set of operations provided by a module.
What is Cohesion?
Cohesion is a measure of how focused or strongly-related the responsibilities of a single module are.An element with low cohesion does many unrelated things
What is Low Coupling?
To have low coupling, modules interact with each other through a simple interface and don't need to know the other module's internal implementation
Why is Modular Design Important?
Allows for greater flexibility Cost-efficiency Ease of maintenance
identify
How to know if design is modular?
Modules
test
Modules independently of the rest of the code
Layered Design
02
Q1. What do you understand by layered design
Layering is a special case of modular design.Where modules are organized into layers.Modules in an upper layer are allowed to use the modules in the lower layer below it. It provides levels of abstraction to do complex tasks easier
Q2. Give two examples of Layered design in real-life complex software.
1. Networking Systems2. Operating Systems Design
portability. maintainability. reusability.
It is important tool for managing complexity. One can undertake understanding the functionality of one layer at a time. change in a layer can be hidden behind its interfacea layer can be substituted by another implementation of the layer.a layer can be reused in some other system.a blueprint for constructing the systemdevelopment can proceed a layer at a time.specialized teams can be assigned to layers (skilled GUI developers to GUI layer)
Q3. What are a few outstanding benifits of using layered designs?
The End
:)