FACTOID # 97: Got a parking ticket in Finland? Better just pay up - it is the least corrupt nation in the world.
 
 Home   Encyclopedia   Statistics   Countries A-Z   Flags   Maps   Education   Forum   FAQ   About 
 
WHAT'S NEW
RECENT ARTICLES
More Recent Articles »
 

FACTS & STATISTICS    Simple view

  1. Select countries to view: (hold down Control key and click to select several)

     

     

    Compare:

     

     

  1. Select fact or statistic: (* = graphable)

     

     

     

  2. (OPTIONAL) Compare to statistic: (both need to be graphable)

     

     

     

  3. View result as:

     

       
(OR) SEARCH ALL encyclopedia, stats & forums:   

Encyclopedia > Software framework

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 and Foote 1988; Deutsch 1989). Software frameworks can be object-oriented designs. Although designs don't have to be implemented in an object-oriented language, they usually are. A software framework may include support programs, code libraries, 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 (API). Computer software (or simply software) refers to one or more computer programs and data held in the storage of a computer for some purpose. ... Look up Framework in Wiktionary, the free dictionary. ... Computer software (or simply software) refers to one or more computer programs and data held in the storage of a computer for some purpose. ... In object-oriented programming, a class consists of encapsulated instance variables and subprograms, the methods mentioned below. ... Object-oriented programming (OOP) is a programming paradigm that uses objects to design applications and computer programs. ... An object-oriented programming language (also called an OO language) is one that allows or encourages, to some degree, object-oriented programming techniques such as encapsulation, inheritance, interfaces, and polymorphism. ... Illustration of an application which may use libvorbisfile. ... Scripting languages (commonly called scripting programming languages or script languages) are computer programming languages that are typically interpreted and can be typed directly from a keyboard. ... Computer software (or simply software) refers to one or more computer programs and data held in the storage of a computer for some purpose. ... An application programming interface (API) is a source code interface that a computer system or program library provides to support requests for services to be made of it by a Length. ...

Contents

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. Apache Struts is an open-source framework for developing Java EE web applications. ... It has been suggested that this article or section be merged into Software bloat. ...


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 and Linton 1990; Johnson 1992). Another software framework can help build compilers for different programming languages and target machines (Johnson, McConnell et al. 1992). Yet another might help build financial modeling applications (Birrer and Eggenschwiler 1993) or decision support systems (Gachet 2003). There are frameworks for multimedia, web applications, and even communicating between different systems. CAD is a TLA that may stand for: Cadiz Railroad (AAR reporting mark CAD) Canadian dollar – ISO 4217-code Capital Adequacy Directive Card Acceptance Device Children of the Anachronistic Dynasty Computer-aided design Computer-aided detection (medical) Computer-aided diagnosis (medical) Computer-assisted dispatch Computer-assisted drafting Coronary artery disease... A diagram of the operation of a typical multi-language, multi-target compiler. ... A programming language is an artificial language that can be used to control the behavior of a machine, particularly a computer. ... Decision support systems are a class of computerized information systems that support decision making activities. ... A multimedia framework is a software structure (usually a set of software libraries) that handles media on a computer and through a network. ... A web application framework is a software framework that is designed to support the development of dynamic websites, Web applications and Web services. ... To meet Wikipedias quality standards, this article or section may require cleanup. ...


Architecture

According to Pree (1994), software frameworks consists 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 architecture where adaptations for specific functionality should be made - 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 (Buschmann 1996). The software architecture of a program or computing system is the structure or structures of the system, which comprise software elements, the externally visible properties of those elements, and the relationships between them. ... Object-oriented programming (OOP) is a computer programming paradigm in which a software system is modeled as a set of objects that interact with each other. ... In object-oriented programming, a class consists of encapsulated instance variables and subprograms, the methods mentioned below. ... In object-oriented programming, a class consists of encapsulated instance variables and subprograms, the methods mentioned below. ... In object-oriented programming, a class is a programming language construct that is used to group related instance variables and methods. ... Instantiation may be Philosophy: A concept in Platonism, see idea Instantiation principle - the idea that if properties exist, the essence that has the properties must necessarily exist Universal instantiation and existential instantiation, two rules of inference in logic Instantiation (computer science), A concept in object-oriented programming; see Object (computer... In computer science, object composition (not to be confused with function composition) is a way and practice to combine simple objects or data types into more complex ones. ... In object-oriented programming, a subclass is a class that inherits some properties from its superclass. ...


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 2002). 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 abstract methods. The Hollywood Principle is stated as dont call us, well call you. ... In computer science, a superclass is a class from which other classes are derived. ... Used mainly in object-oriented programming, the term method refers to a piece of code that is exclusively associated either with a class (called class methods or static methods) or with an object (called instance methods). ...


List of general purpose frameworks

Hibernate is an object-relational mapping (ORM) solution for the Java language: it provides an easy to use framework for mapping an object-oriented domain model to a traditional relational database. ... Object-Relational mapping (aka O/RM, ORM, and O/R mapping), is a programming technique that links databases to object-oriented language concepts, creating (in effect) a virtual object database. ... Java is a programming language originally developed by Sun Microsystems and released in 1995. ... The GNU Compiler for Java (GCJ) is a compiler for the Java programming language that is part of the GNU Compiler Collection (GCC). ... GNU (pronounced ) is a computer operating system composed entirely of free software. ... The GNU Compiler for Java (GCJ) is a compiler for the Java programming language that is part of the GNU Compiler Collection (GCC). ... A diagram of the operation of a typical multi-language, multi-target compiler. ... Java is a programming language originally developed by Sun Microsystems and released in 1995. ... C++ (pronounced see plus plus, IPA: ) is a general-purpose, high-level programming language with low-level facilities. ... The Java Native Interface (JNI) is a programming framework that allows Java 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, C++ and assembly. ... Java is a programming language originally developed by Sun Microsystems and released in 1995. ... A Java Virtual Machine (JVM), originally developed by Sun Microsystems, is a virtual machine that executes Java bytecode. ... For other uses, see Hardware (disambiguation). ... // An operating system (OS) is a set of computer programs that manage the hardware and software resources of a computer. ... C is a general-purpose, block structured, procedural, imperative computer programming language developed in 1972 by Dennis Ritchie at the Bell Telephone Laboratories for use with the Unix operating system. ... C++ (pronounced see plus plus, IPA: ) is a general-purpose, high-level programming language with low-level facilities. ... See the terminology section, below, regarding inconsistent use of the terms assembly and assembler. ... Eclipse is an open-source, platform-independent software framework, written primarily in Java, for delivering what the project calls rich-client applications, as opposed to thin client browser-based applications. ... Clockwise from top: The logo of the GNU Project (the GNU head), the Linux kernel mascot Tux the Penguin, and the FreeBSD daemon Free software is a term coined by Richard Stallman and the Free Software Foundation[1] to refer to software that can be used, studied, and modified without... ... Component-based Scalable Logical Architecture (CSLA) is a software framework created by Rockford Lhotka that provides a standard way to create robust object oriented programs using business objects. ... In computer science, object-oriented programming, OOP for short, is a computer programming paradigm. ... Business objects are objects in a computer program that abstract the entities in the domain that the program is written to represent. ... The Microsoft . ...

See also

In computer programming, an application framework is a term usually used to refer to a set of libraries or classes that are used to implement the standard structure of an application for a specific operating system. ... In object-oriented programming, a class is a programming language construct that is used to group related instance variables and methods. ... Dont Repeat Yourself (DRY, also known as Once and Only Once or Single Point of Truth (SPOT)) is a process philosophy aimed at reducing duplication, particularly in computing. ... Enterprise Architecture is the practice of applying a comprehensive and rigorous method for describing a current and/or future structure and behavior for an organizations processes, information systems, personnel and organizational sub-units, so that they align with the organizations core goals and strategic direction. ... Implicit invocation is used by some authors for a style of software architecture in which a system is structured around event handling, using a form of callback. ... Jiniâ„¢ (pronounced like genie) is a network architecture for the construction of distributed systems where scale, rate of change and complexity of interactions within and between networks are extremely important and cannot be satisfactorily addressed by existing technologies. ... Universal Plug and Play (UPnP) is a set of computer network protocols promulgated by the UPnP Forum. ... Salutation in computing is a technique for service discovery and service management. ... Object-oriented programming (OOP) is a programming paradigm that uses objects to design applications and computer programs. ...

External links

References

  • Birrer, 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.
  • Buschmann, F. (1996). Pattern-oriented software architecture : a system of patterns. Chichester ; New York, Wiley.
  • 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.
  • Gachet, 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.
  • 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.
  • Johnson, R. E. and B. Foote (1988). “Designing reusable classes.” Journal of object-oriented programming 1(2): 22-35.
  • 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.
  • 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.
  • Pree, 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.
  • 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.

  Results from FactBites:
 
Software framework - Wikipedia, the free encyclopedia (741 words)
For example, a software framework can be geared toward building graphical editors for different domains like artistic drawing, music composition, and mechanical CAD (Vlissides and Linton 1990; Johnson 1992).
Software frameworks define the places in the architecture where adaptations for specific functionality should be made - the hot spots.
CNI (Compiled Native Interface) a software framework for the GNU GCJ compiler which allows Java code to call and be called by native applications (programs specific to a hardware and operating system platform) and libraries written in C++.
Object-Oriented Framework Development (3864 words)
Frameworks are application generators that are directly related to a specific domain, i.e., a family of related problems.
A framework that maintains the object oriented concept of encapsulation and has a well defined public interface is likely to remain forward compatible at the interface level across upgrades and revisions.
The evaluation of a framework's design and/or implementation is not always straightforward; one must consider the experience of the designer, the complexity of the instantiation process, the requirements met and unmet, and the update road map.
  More results at FactBites »


 

COMMENTARY     


Share your thoughts, questions and commentary here
Your name
Your comments
Please enter the 5-letter protection code

Want to know more?
Search encyclopedia, statistics and forums:

 


Lesson Plans | Student Area | Student FAQ | Reviews | Press Releases |  Feeds | Contact
The Wikipedia article included on this page is licensed under the GFDL.
Images may be subject to relevant owners' copyright.
All other elements are (c) copyright NationMaster.com 2003-5. All Rights Reserved.
Usage implies agreement with terms.