Software Design Paradigm embody the results of people’s ideas
on how to construct programs, combine them into large software systems and formal mechanisms for how those ideas should be expressed. Thus, we can say that a Software Design Paradigm is a model for a class of problems that share a set of common characteristics. Software design paradigms can be sub-divided as: Design Patterns Components Software Architecture Frameworks It should be especially noted that a particular Programming Paradigm essentially defines software design paradigms. For example, we can speak about Object-Oriented design patterns, procedural components (modules), functional software architecture, etc.