CS504 Software Engineering – I GDB Solution Spring 2014

Discussion Topic
Does the design pattern play any important role in the development of quality applications by using structured and object oriented paradigm? Justify your answer with logical reasons.


Design patterns have two major benefits. First, they provide you with a way to solve issues related to software development using a proven solution. The solution facilitates the development of highly cohesive modules with minimal coupling. They isolate the variability that may exist in the system requirements, making the overall system easier to understand and maintain. Second, design patterns make communication between designers more efficient. Software professionals can immediately picture the high-level design in their heads when they refer the name of the pattern used to solve a particular issue when discussing system design.

1. Enable large scale reuse of S/W
2. Helps in improve developer communication
3. Capture expert knowledge and design trade-offs and make  expertise widely available
1. Design patterns can speed up the development process by providing tested, proven development paradigms.
2. Reusing design patterns helps to prevent subtle issues that can cause major problems and improves code readability for coders and architects familiar with the patterns.
3. Design patterns provide general solutions, documented in a format that doesn’t require specifics tied to a particular problem.
4. patterns allow developers to communicate using well-known, well understood names for software interactions. Common design patterns can be improved over time, making them more robust than ad-hoc designs.
5. Design patterns are well-thought out solutions to programming problems. Many programmers have encountered these problems before, and have used these ‘solutions’ to remedy them. If you encounter these problems, why recreate a solution