Se Unit - 3
Se Unit - 3
Coupling means:
High (tight) coupling is bad → modules are too dependent and harder to
change/test.
2. Stamp Coupling Entire data structures passed; receiver may not use all data. ✅ Good
5. Common
Global variables shared by multiple modules. ❌ Bad
Coupling
🔤 Mnemonic:
1. Data Coupling:
✅ calculateSum(int a, int b) – only needed data is passed.
2. Stamp Coupling:
✅ process(Student s) – entire object passed, but only name is used.
3. Control Coupling:
⚠ doTask(int mode) – module behavior depends on passed flag.
4. External Coupling:
⚠ Two modules use the same file or communication protocol.
5. Common Coupling:
❌ Multiple modules change a global variable int x.
6. Content Coupling:
❌ Module A accesses Module B’s internal variable or code directly.
📌 Summary
✅ Very
2. Sequential Cohesion Output of one task is the input to the next.
Good
🔤 Mnemonic:
2. DFD-Based Modeling – Uses Data Flow Diagrams to model how data moves through
the system.
4. Global Data Access – Functions often share and access global data.
5. Structured Programming – Uses structure charts and pseudocode for system logic.
6. Low Reusability – Functions are tightly coupled with global data, making reuse
difficult.
7. Example Use Case – Suitable for systems like billing, compilers, or simple
management tools.
1. Focuses on Objects – The system is built using objects that encapsulate data and
behavior.
5. High Modularity – Classes are independent, making the system easy to manage and
extend.
7. Example Use Case – Best for apps like banking systems, games, e-commerce
platforms.
✅ 3. Top-Down Design
1. Starts from General View – Begins with the main system and breaks it down into
sub-modules.
3. High-Level Planning First – Emphasizes overall system structure and logic early on.
4. Promotes Clarity – Provides a clear system overview for management and design
teams.
5. Less Focus on Reuse – Primarily concerned with achieving the overall function.
6. Risk of Missing Details – May overlook low-level challenges until later stages.
7. Example Use Case – Useful for reporting tools, admin panels, flow-based systems.
✅ 4. Bottom-Up Design
5. No Initial Big Picture – System overview is not clear until later stages.
🔷 1. Modularity
🔷 2. Abstraction
🔷 3. Encapsulation
Divide the system into distinct sections, each addressing a separate concern.
🔷 5. High Cohesion
🔷 6. Low Coupling
🔷 8. Open/Closed Principle
Software entities (classes, modules) should be open for extension but closed for
modification.
Enhances maintainability.
🔹 1. Correctness
🔹 2. Understandability
🔹 3. Reusability
🔹 4. Efficiency
Optimizes the use of system resources like memory, processing time, and bandwidth.
🔹 5. Maintainability
Easy to update, fix bugs, or extend functionalities without affecting the entire system.
🔹 6. Scalability
🔹 7. Flexibility
🔹 8. Robustness
+----------------+-------------------+-----------------+
| | Design | Design |
+----------------+-------------------+-----------------+
+------------------------------------------------------+
The design model contains several elements that collectively define the system's structure
and behavior.
🔹 1. Data Design
🔹 2. Architectural Design
🔹 3. Interface Design
Describes how system components interact with each other and with users.
🔹 4. Component-Level Design
🔹 5. Deployment Design