I think this is the best place to clear my doubt about the difference between an architecture and design pattern. Could any one please make this clear to me as I havn't got much stuff to clear this doubt.
- Architecture : sets which functionality the system should perform, split the functionality between components, set how components should behave and communicate in the system context, set the physical location of components and finally choose the tools in order to create components.
- Design : while architecture deals more with the wide picture, design should drill down in to the details relating to implementing certain components. Designing of components end up with classes, interfaces, abstract classes and other OO feature in order to fulfill the given component tasks.
Hi, hier something about desing patterns (He is the father of the Pattern Language movement in computer science) Design patterns: Each pattern describes a problem which occurs over and over again in our environment, and then describes the core of the solution to that problem, in such a way that you can use this solution a million times over, without ever doing it the same way twice. -- ChristopherAlexander
A design pattern systematically names, motivates, and explains a general design that addresses a recurring design problem in object-oriented systems. It describes the problem, the solution, when to apply the solution, and its consequences. It also gives implementation hints and examples. The solution is a general arrangement of objects and classes that solve the problem. The solution is customized and implemented to solve the problem in a particular context. -- DesignPatternsBook. --- Architecture: upps! 4 books "the nature of order by christopher alexander"!!! wonderful stuff cheers
posted 13 years ago
Thank you Pawan and Sergio, It's a great help, now where does a framework fits in??
A framework is a structure that predefines the architecture for a specific class of applications. A framework specifies an architecture and the architectural components for a particular type of application.
MVC is often called architecture or compound design pattern because it contains a bunch of commonly known (classical GOF) design patterns.
Now a software architecture describe the overall structure of an application.
Application Architecture describes the structure and behavior of applications used in a business. It focuses on how these applications interact with each other and with users. It focuses on the inputs and outputs of applications rather then there internal structure. The applications architecture is specified on the basis of business requirements. It involves defining the interaction between application packages, databases, and middleware systems in terms of functional coverage. Application architecture is at a more abstract level and is independent of the implementation.
Design Patterns are the guidelines to avoid/solve common problems in application development. Design patterns tell us how we can achieve a solution in terms of implementation. Design patterns are independent of the programming language and technology platform i.e. we can implement a particular design pattern in any language.
As I understand, architecture is something that is more general, abstract. On the basis of an architecture a software is then realized. And design patterns are what can help to deal with bad code organization. A very old but really helpful book, devoted to design patterns is this.