Warning: mkdir() [
function.mkdir]: Permission denied in
/home/webs/affiliatelib2/CacheManager.php on line
12
Warning: mkdir() [
function.mkdir]: No such file or directory in
/home/webs/affiliatelib2/CacheManager.php on line
12
Warning: fopen(/home/templatecore2cache//*cluesnet.com/0b/0b0db69e7b381ecfd9074386ecc6977dae8ea71f.tc2cache) [
function.fopen]: failed to open stream: No such file or directory in
/home/webs/affiliatelib2/CacheManager.php on line
130
Warning: fwrite(): supplied argument is not a valid stream resource in
/home/webs/affiliatelib2/CacheManager.php on line
131
Warning: fclose(): supplied argument is not a valid stream resource in
/home/webs/affiliatelib2/CacheManager.php on line
132
A
software framework is a reusable design for a software system (or subsystem). This is expressed as a set of
abstract classes and the way their instances collaborate for a specific type of software.Johnson, R. E. and B. Foote (1988). “Designing reusable classes.” Journal of object-oriented programming 1(2): 22-35.Deutsch, P. L. (1989). Design reuse and frameworks in the Smalltalk-80 system. Software reusability, volume II: applications and experience. T. J. Biggerstaff and A. J. Perlis. Reading, MA, Addison-Wesley: 57-71. Software frameworks can be Object-oriented programming. Although designs don't have to be implemented in an Object-oriented programming language, they usually are. A software framework may include support programs, code
Library (computer science), a scripting language, or other
software to help develop and
glue together the different components of a software project. Various parts of the framework may be exposed through an application programming interface (
Application programming interface).
Motivations
Frameworks are designed with the intent of facilitating software development, by allowing designers and programmers to spend more time on meeting software requirements rather than dealing with the more tedious low level details of providing a working system. For example, a team using
Apache Struts to develop a banking web site can focus on how account withdrawals are going to work rather than how to control navigation between pages in a bug-free manner. However, there are common complaints that using frameworks adds to "code bloat", and that a result of competing and complementary frameworks is that one trades time spent on rote programming and design for time spent on learning frameworks.
Having a good framework in place allows the developers to spend more time concentrating on the business-specific problem at hand rather than on the plumbing code behind it. Also a framework will limit the choices during development, so it increases productivity, specifically in big and complex systems.
Types of software frameworks
A software framework can be geared toward building graphical editors for different domains like artistic drawing, music composition, and mechanical CAD. Vlissides, J. M. and M. A. Linton (1990). “Unidraw: a framework for building domain-specific graphical editors.” ACM Transactions of Information Systems 8(3): 237-268.Johnson, R. E. (1992). Documenting frameworks using patterns. in (eds), ACM Press, proceedings of the Object-oriented programming systems, languages, and applications, Vancouver, British Columbia, Canada: 63-76.. Another software framework can help build
compilers for different
programming languages and target machines. Johnson, R. E., C. McConnell and M. J. Lake (1992). The RTL system: a framework for code optimization. in R. Giegerich and S. L. Graham (eds), Springer-Verlag, proceedings of the International workshop on code generation, Dagstuhl, Germany: 255-274. Yet another might help build financial modeling applicationsBirrer, A. and T. Eggenschwiler (1993). Frameworks in the financial engineering domain: an experience report. in (eds), Springer-Verlag, proceedings of the European conference on object-oriented programming, Kaiserslautern, Germany: 21-35. or decision support systemsGachet, A. (2003) "Software Frameworks for Developing Decision Support Systems - A New Component in the Classification of DSS Development Tools", Journal of Decision Systems 12(3/4): 271-281.. There are frameworks for
Multimedia framework,
Web application framework, and even
Middleware.
Architecture
According to PreePree, W. (1994). Meta patterns - a means for capturing the essentials of reusable object-oriented design. in M. Tokoro and R. Pareschi (eds), Springer-Verlag, proceedings of the ECOOP, Bologna, Italy: 150-162., software frameworks consist of
frozen spots and
hot spots. On the one hand,
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. On the other hand,
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
software architecture where adaptations for specific functionality should be made - the hot spots. In an object-oriented environment, a framework consists of
Abstract class and Concrete class Class (computer science). Instantiation of such a framework consists of Object composition and
subclass (computer science) the existing classes .Buschmann, F. (1996). Pattern-oriented software architecture : a system of patterns. Chichester ; New York, Wiley.
When developing a concrete software system with a software framework, the hot spots are specialized 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."Larman, C. (2002). Applying UML and patterns : an introduction to object-oriented analysis and design and the unified process. Upper Saddle River, NJ, Prentice Hall PTR. This means that the user-defined classes (for example, new subclasses), receive messages from the predefined framework classes. These are usually handled by implementing
superclass (computer science) abstract methods.
List of general purpose frameworks
- GCJ (Compiled Native Interface) is a software framework for the GNU GCJ compiler which allows Java (programming language) code to call and be called by native applications (programs specific to a hardware and operating system platform) and libraries written in C++.
- Java Native Interface (JNI) allows Java (programming language) code running in the Java virtual machine (VM) to call and be called by native applications (programs specific to a hardware and operating system platform) and libraries written in other languages, such as C (programming language), C++ and assembly language.
- Eclipse (software) is a free software / open source software platform-independent software framework for delivering what the project calls "rich-client applications", as opposed to "thin client" browser-based applications.
- Component-based Scalable Logical Architecture (CSLA) is a standard way to create robust object oriented programs using Business object (computer science)s, implemented using .NET Framework.
- Spring Framework is an open source application framework for the Java platform.
See also
External links
- Annual frameworks conference
- Frameworks vs. Libraries
- RAS metadata repository for creating software assets and software reuse
References
Software framework - Wikipedia, the free encyclopedia
In computing, a software framework provides "the skeleton of an application that can be customized by an application developer" [1] Like software libraries, software frameworks aid ...
Framework - Wikipedia, the free encyclopedia
A framework is a basic conceptual structure used to solve or address complex issues. This very broad definition has allowed the term to be used as a buzzword, especially in a ...
Contract Software - Framework: a Contract & Supplier Management ...
Framework, is a contract and supplier management solution. Ensuring Procurement and Contract Managers are able to control and report on all their contracts
Framework: Central contract and supplier repository. Contracts ...
Framework maintains a central contract repository storing all supplier and contract information. Tracking invoices, finding contracts and contract information is straightforward ...
Amazon.co.uk: FIT for Developing Software: Framework for Integrated ...
Amazon.co.uk: FIT for Developing Software: Framework for Integrated Tests (Robert C. Martin): Rick Mugridge, Ward Cunningham: Books ...
Software framework aids digital rights management: News from ARM
Beep Science and ARM used the 3GSM World Congress to release an Open Mobile Alliance v2-compliant digital rights management solution based on the ARM TrustZone software ... ...
A Software Framework for Automated Negotiation - ECS EPrints ...
If agents are to negotiate automatically with one another they must share a negotiation mechanism, specifying what possible actions each party can take at any given time, when ...
OGCbuying.solutions News - Suppliers Sought for New Educational ...
19/05/2008. Suppliers Sought for New Educational Software Licensing Framework. OGCbuying.solutions is collaborating with Becta, the Government's lead agency for Informat ion and ...
Design of Software Framework - Modigliani stochastic simulator
The aim of the following description is to provide the end-user with the necessary conceptual understanding to expand the Modigliani software.
Kable - OGCbs starts £80m education software framework - 6 May 2008
International e-government and information age public service news from Kable, the publisher of Government Computing. Information, research and conferences on the business and ...