| advertise add site services publishers database health videos | ![]() | about toolbar stats live show health store more stuff JOIN/LOGIN |
Software - Health Club Management Software, Software for Fitness Clubs fastfunfitness.com | Scheduling Software, Radiology Clinic Scheduling Software, Radiology... scheduleyourclinic.com |
A software framework, in computer programming, is an abstraction in which common code providing generic functionality can be selectively overridden or specialized by user code providing specific functionality. Frameworks are a special case of software libraries in that they are reusable abstractions of code wrapped in a well-defined API, yet they contain some key distinguishing features that separate them from normal libraries. Software frameworks have these distinguishing features that separate them from libraries or normal user applications:
[edit] RationaleThe designers of software frameworks aim to facilitate software development by allowing designers and programmers to devote their time to meeting software requirements rather than dealing with the more standard low-level details of providing a working system, thereby reducing overall development time.[2] For example, a team using a web application framework to develop a banking web site can focus on the operations of account withdrawals rather than the mechanics of request handling and state management. [edit] CriticismIt can be argued that frameworks add to "code bloat", and that due to competing and complementary frameworks and the complexity of their APIs, the intended reduction in overall development time may not be achieved due to the need to spend additional time learning to use the framework. However, it could be argued that once the framework is learned, future projects might be quicker and easier to complete. The most effective frameworks turn out to be those that evolve from re-factoring the common code of the enterprise, as opposed to using a generic "one-size-fits-all" framework developed by third-parties for general purposes. [edit] ExamplesSoftware frameworks typically contain considerable housekeeping and utility code in order to help bootstrap user applications, but generally focus on specific problem domains, such as:
[edit] ArchitectureAccording to Pree,[9]software frameworks consist of frozen spots and hot spots. Frozen spots define the overall architecture of a software system, that is to say its basic components and the relationships between them. These remain unchanged (frozen) in any instantiation of the application framework. Hot spots represent those parts where the programmers using the framework add their own code to add the functionality specific to their own project. Software frameworks define the places in the architecture where application programmers may make adaptations for specific functionality—the hot spots. In an object-oriented environment, a framework consists of abstract and concrete classes. Instantiation of such a framework consists of composing and subclassing the existing classes.[10] When developing a concrete software system with a software framework, developers utilize the hot spots according to the specific needs and requirements of the system. Software frameworks rely on the Hollywood Principle: "Don't call us, we'll call you."[11] This means that the user-defined classes (for example, new subclasses), receive messages from the predefined framework classes. Developers usually handle this by implementing superclass abstract methods. [edit] List of general-purpose frameworks
[edit] See also
[edit] External links
[edit] References
|
| ↑ top of page ↑ | about thumbshots |