An architecture is a style that incorporates specific design elements. Obviously, a framework needs to have a design. Its architecture is separate from the collection of wrappers that it implements and from the enforcement of a specific implementation methodology. MFC's document-view classes are an architecture. Essentially, an architecture implements associations between objects--inheritance, container etc. Architectures have the interesting attribute that, if you don't like them, you can usually ignore them or replace them (at least at the beginning of a project). Architectures can and are useful because they create a re-usable structure (a collection of objects) that provide some enhanced functionality, but once you start using them, you're pretty much stuck with them unless you do some major refactoring.
While architectures deal with the associations between things, a methodology deals with the interaction between things. The first is a passive relationship and the second is an activity. Most of the methodology that I implement is in the activity of communicating between objects, managing data persistence, responding to user events, etc. Within those activities are architectures that associate interrelated objects.
Modularity -- Frameworks enhance modularity by encapsulating volatile implementation details behind stable interfaces. Framework modularity helps improve software quality by localizing the impact of design and implementation changes. This localization reduces the effort required to understand and maintain existing software.Reusability -- The stable interfaces provided by frameworks enhance reusability by defining generic components that can be reapplied to create new applications. Framework reusability leverages the domain knowledge and prior effort of experienced developers in order to avoid re-creating and re-validating common solutions to recurring application requirements and software design challenges. Reuse of framework components can yield substantial improvements in programmer productivity, as well as enhance the quality, performance, reliability and interoperability of software.Extensibility -- A framework enhances extensibility by providing explicit hook methods that allow applications to extend its stable interfaces. Hook methods systematically decouple the stable interfaces and behaviours of an application domain from the variations required by instantiations of an application in a particular context. Framework extensibility is essential to ensure timely customization of new application services and features.Inversion of control -- The run-time architecture of a framework is characterized by an ``inversion of control.'' This architecture enables canonical application processing steps to be customized by event handler objects that are invoked via the framework's reactive dispatching mechanism. When events occur, the framework's dispatcher reacts by invoking hook methods on pre-registered handler objects, which perform application-specific processing on the events. Inversion of control allows the framework (rather than each application) to determine which set of application-specific methods to invoke in response to external events (such as window messages arriving from end-users or packets arriving on communication ports).
Transcript of "Framework"
Presentation on Introduction to Framework Presented by: Aditya Trivedi M.Tech.(SE) Vishal Gupta M.Tech. (CS)Introduction to Framework 11/5/2011
Framework skeleton of interlinked items which supports a particular approach to a specific objective, and serves as a guide that can be modified as required by adding or deleting items. In general, a framework is a real or conceptual structure intended to serve as a support or guide for the building of something that expands the structure into something useful. Software Framework: a software framework is an abstraction in which software providing generic functionality can be selectively changed by user code, thus providing application specific software. It is a collection of software libraries providing a defined application programming interface (API).Introduction to Framework 11/5/2011
Some famous frameworks: Software frameworks typically contain considerable housekeeping and utility code in order to help bootstrap user applications, but generally focus on specific problem domains, it useful to classify frameworks by their scope, as follows: Artistic drawing, music composition, and mechanical CAD Compilers for different programming languages and target machines MiddlewareIntroduction to Framework 11/5/2011
What an Framework does? •it makes it easier to work with complex technologies •It ties together a bunch of discrete objects/components into something more useful •it forces the team (or just me) to implement code in a way that promotes consistent coding, fewer bugs, and more flexible applications •everyone can easily test and debug the code, even code that they didnt writeIntroduction to Framework 11/5/2011
Three things which makes an framework: A Wrapper An Architecture A MethodologyIntroduction to Framework 11/5/2011
A wrapper: A wrapper is way of repackaging a function or set of functions (related or not) to achieve one or more of the following goals: •Simplification of use •Consistency in interface •Enhancement of core functionality •Collecting discrete processes into a logical association (an object)Introduction to Framework 11/5/2011
An Architecture: manages a collection of discrete objects implements a set of specific design elementsIntroduction to Framework 11/5/2011
A Methodology: Lets look at this word: Method - a way of doing something -ology - in a "scientific" manner-- designed, consistent, repeatable, testable, proven A body of practices, procedures, and rules used by those who work in a discipline.Introduction to Framework 11/5/2011
try to Identify: Wrapper Architecture methodologyIntroduction to Framework 11/5/2011
Identify each one into strutsframework of javaWrappers Core functionality+.Architecture MVC architecture.MethodologyOop’s methodology. 11/5/2011 Introduction to Framework
Benefits of Framework: The primary benefits of frameworks stem from: •Modularity •Reusability, •Extensibility •Inversion of controlIntroduction to Framework 11/5/2011
Thank you for your patience..!Introduction to Framework 11/5/2011
A particular slide catching your eye?
Clipping is a handy way to collect important slides you want to go back to later.