Answer the following questions:
1. What is cohesion in software design, and why is it important?
2. Give an example of a module with high cohesion and explain why it demonstrates high cohesion.
3. How does cohesion relate to the Single Responsibility Principle (SRP)?
4. What are the advantages of high cohesion in software modules?
5. Define coupling in software design and its significance.
6. Provide an example of tightly coupled modules and explain why they are considered tightly coupled.
7. How does low coupling among modules benefit software development and maintenance?
8. What challenges can arise from tightly coupled modules regarding testing and debugging?
9. How does loose coupling affect module reusability?
In software design, what is the overall goal when it comes to cohesion and coupling? Write your response with exactly 6 paragraphs, separated with the markdown divider: ***.
user