I always struggle to figure out whether to use the word framework, architecture, or solution while trying describe what we developed/designed. Here's the difference among those terms based on several sources:
Framework
- Underlying set of ideas: a set of ideas, principles, agreements, or rules that provides the basis or outline for something intended to be more fully developed at a later stage - Encarta World English Dictionary
- Context: the general background to, or context for, a particular action or event, e.g., legal framework - Encarta World English Dictionary
- System of interconnecting bars: a structure of connected horizontal and vertical bars with spaces between them, especially one that forms the skeleton of another structure - Encarta World English Dictionary
- A set of theories widely accepted enough to serve as the guiding principles of research within a particular discipline - Wikipedia
Architecture
- Building design: the art and science of designing and constructing buildings - Encarta World English Dictionary
- building style: a style or fashion of building, especially one that is typical of a period of history or of a particular place - Encarta World English Dictionary
- Structure of computer system: the design, structure, and behavior of a computer system, microprocessor, or system program, including the characteristics of individual components and how they interact, e.g., network architecture - Encarta World English Dictionary
- Both the process and product of planning, designing and construction - Wikipedia
Solution (source Encarta World English Dictionary)
- Answer to puzzle: the answer to a puzzle or question
- Ending of something: the act of ending, breaking, or separating something
Thus, it seems framework is concerned with defining the underlying ideas and framing the work (defining boundaries). For example, a software framework defines a set of classes and how they are interrelated. They may also define methods/functions without specifying how to implement them. According to 3rd definition, framework is also used to refer to underlying solution that can be used to build other things on top of it, e.g., .NET framework or OMNet++ simulation framework. Therefore, a framework is generic enough or extensible to be applicable under different scenarios.
Whereas an architecture is concerned with both the design and how to execute them. For example, computer architecture is the practical art of selecting and interconnecting hardware components to create computers that meet functional, performance and cost goals and the formal modeling of those systems (source - Wikipedia).
Solution is the ultimate outcome when a framework is translated into an architecture, and when that architecture becomes a reality.
Therefore, if we are referring to something conceptual (e.g., block diagram) we can consider it to be a framework. If we further extend the block diagram and talk about specific details of each block (e.g., what algorithms to use) and how to integrate them, then it's an architecture. If we go further and develop it, it becomes a specific solution. Framework is generic while solution is specific.
Still confused - you are not the only one, e.g., see Define “Framework”
Comments