Epstein Files Full PDF

CLICK HERE
Technopedia Center
PMB University Brochure
Faculty of Engineering and Computer Science
S1 Informatics S1 Information Systems S1 Information Technology S1 Computer Engineering S1 Electrical Engineering S1 Civil Engineering

faculty of Economics and Business
S1 Management S1 Accountancy

Faculty of Letters and Educational Sciences
S1 English literature S1 English language education S1 Mathematics education S1 Sports Education
teknopedia

  • Registerasi
  • Brosur UTI
  • Kip Scholarship Information
  • Performance
Flag Counter
  1. World Encyclopedia
  2. Software framework - Wikipedia
Software framework - Wikipedia
From Wikipedia, the free encyclopedia
Software that supports solution development via inversion of control
"Framework (computer science)" redirects here. For other uses, see Framework (disambiguation).

A software framework is software that provides reusable, generic functionality which developers can extend or customize to create complete solutions. It offers an abstraction layer over lower-level code and infrastructure, allowing developers to focus on implementing business logic rather than building common functionality from scratch. Generally, a framework is intended to enhance productivity by allowing developers to focus on satisfying business requirements rather than reimplementing generic functionality.[1] Frameworks often include support programs, compilers, software development kits, code libraries, toolsets, and APIs that integrate various components within a larger software platform or environment.

Unlike a library, where user code controls the program's control flow, a framework implements inversion of control by dictating the overall structure and calling user code at predefined extension points (e.g., through template methods or hooks). Frameworks also provide default behaviours that work out-of-the-box, structured mechanisms for extensibility, and a fixed core that accepts extensions (e.g., plugins or subclasses) without direct modification.

A framework differs from an application that can be extended—such as a web browser via an extension or a video game via a mod—in that it is intentionally incomplete scaffolding designed to be completed through its extension points while following specific architectural patterns. For example, a team using a web framework to develop a banking website can focus on writing banking business logic rather than handling low-level details like web request processing or state management.

Comparison with libraries

[edit]

Software frameworks differ from standard libraries in key ways:

  • Inversion of control: In a library, user code controls the program's flow and calls library functions as needed. In a framework, the framework controls the flow and calls user code at specific points, often via the Template Method Pattern.
  • Default behaviour: Frameworks provide pre-implemented functionality (e.g., standard features or workflows) that can be used as-is or customized within a predefined structure. Libraries, by contrast, require user code to assemble and configure functionality.
  • Structured extensibility: Frameworks enable new features or altered behaviour through structured mechanisms such as hooks, callbacks, or APIs. Libraries allow extensibility but without predefined integration points, relying on user code for integration.
  • Open-closed principle: The framework's core logic is generally fixed, allowing extensions (e.g., plugins or subclasses) but not modification of the framework itself.

Pattern

[edit]

According to Pree,[2] 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 the parts where the programmers using the framework add their own code to add the functionality specific to their own project.

The necessary functionality can be implemented by using the Template Method Pattern in which the frozen spots are known as invariant methods and the hot spots are known as variant or hook methods. The invariant methods in the superclass provide default behaviour while the hook methods in each subclass provide custom behaviour.

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."[3][4] 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.

Tradeoffs

[edit]
icon
This section needs additional citations for verification. Please help improve this article by adding citations to reliable sources in this section. Unsourced material may be challenged and removed.
Find sources: "Software framework" – news · newspapers · books · scholar · JSTOR
(April 2011) (Learn how and when to remove this message)

One potential downside of using a framework is that it adds to the size of a program, a phenomenon termed code bloat. This can be exacerbated by using multiple, sometimes competing, frameworks in the same codebase.

Learning how to use a framework can be substantial. The intended efficiencies of using the framework may be outweighed by the cost to learn it, especially for a framework that is new to the development staff.[citation needed] However, once a framework is learned, development team speed may increase for future work.

Some claim that the most effective frameworks evolve from re-factoring an existing solution, such as a generic one-size-fits-all framework developed by third parties for general purposes, rather than from green-field development.

Examples

[edit]

A framework generally focuses on a specific problem domain, including:

  • Artistic drawing, music composition, and mechanical CAD[5][6]
  • Financial modeling applications[7]
  • Earth system modeling applications[8]
  • Decision support systems[9]
  • Media playback and authoring
  • Web framework
  • Middleware
  • Application framework – General GUI applications
  • Enterprise Architecture framework

Some notable frameworks:

  • Cactus Framework – High performance scientific computing
  • Oracle Application Development Framework
  • Laravel (PHP Framework)
  • Pipedream
  • Php4delphi
  • OpenSilver - enables legacy applications based on Microsoft Silverlight, WPF, and LightSwitch to be ported into WebAssembly applications

See also

[edit]
  • Class (computer programming) – Programming which all objects are created by classesPages displaying short descriptions of redirect targets
  • Don't repeat yourself – Principle of software development
  • Implicit invocation
  • Software design pattern – Reusable solution template to a commonly-needed software behavior
  • Software engine – Core component of a complex software system

References

[edit]
  1. ^ "Framework". DocForge. Archived from the original on 7 October 2018. Retrieved 15 December 2008.
  2. ^ Pree, W (1994), "Meta Patterns: A Means for Capturing the Essentials of Reusable Object-Oriented Design", Proceedings of the 8th European Conference on Object-Oriented Programming, Lecture Notes in Computer Science, 821, Springer-Verlag: 150–162, CiteSeerX 10.1.1.74.7935, doi:10.1007/BFb0052181, ISBN 978-3-540-58202-1{{citation}}: CS1 maint: work parameter with ISBN (link)
  3. ^ Larman, C (2001), Applying UML and Patterns: An Introduction to Object-Oriented Analysis and Design and the Unified Process (2nd ed.), Prentice Hall, ISBN 978-0-13-092569-5
  4. ^ Gamma, Erich; Helm, Richard; Johnson, Ralph; Vlissides, John (1994). Design Patterns. Addison-Wesley. ISBN 0-201-63361-2.
  5. ^ Vlissides, J M; Linton, M A (1990), "Unidraw: a framework for building domain-specific graphical editors", ACM Transactions on Information Systems, 8 (3): 237–268, doi:10.1145/98188.98197, S2CID 11248368
  6. ^ Johnson, R E (1992), "Documenting frameworks using patterns", Conference proceedings on Object-oriented programming systems, languages, and applications - OOPSLA '92, ACM Press, pp. 63–76, doi:10.1145/141936.141943, ISBN 0201533723, S2CID 604969
  7. ^ Birrer, A; Eggenschwiler, T (1993), "Proceedings of the European conference on object-oriented programming", Frameworks in the financial engineering domain: an experience report, Springer-Verlag, pp. 21–35
  8. ^ Hill, C; DeLuca, C; Balaji, V; Suarez, M; da Silva, A (2004), "Architecture of the Earth System Modeling Framework (ESMF)", Computing in Science and Engineering, 6: 18–28, doi:10.1109/MCISE.2004.1255817, S2CID 9311752
  9. ^ 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): 271–281, doi:10.3166/jds.12.271-280, S2CID 29690836

External links

[edit]
  • The dictionary definition of software framework at Wiktionary
  • Media related to Software frameworks at Wikimedia Commons
Authority control databases Edit this at Wikidata
International
  • GND
  • FAST
National
  • United States
  • France
  • BnF data
  • Czech Republic
  • Israel
Other
  • Yale LUX
  • v
  • t
  • e
Computer science
Note: This template roughly follows the 2012 ACM Computing Classification System.
Hardware
  • Printed circuit board
  • Peripheral
  • Integrated circuit
  • Very-large-scale integration
  • System on a chip (SoC)
  • Energy consumption (green computing)
  • Electronic design automation
  • Hardware acceleration
  • Processor
  • Size / Form
Computer systems organization
  • Computer architecture
  • Computational complexity
  • Dependability
  • Embedded system
  • Real-time computing
  • Cyber-physical system
  • Fault tolerance
  • Wireless sensor network
Networks
  • Network architecture
  • Network protocol
  • Network components
  • Network scheduler
  • Network performance evaluation
  • Network service
Software organization
  • Interpreter
  • Middleware
  • Virtual machine
  • Operating system
  • Software quality
Software notations and tools
  • Programming paradigm
  • Programming language
  • Compiler
  • Domain-specific language
  • Modeling language
  • Software framework
  • Integrated development environment
  • Software configuration management
  • Software library
  • Software repository
Software development
  • Control flow
  • Software development process
  • Requirements analysis
  • Software design
  • Software construction
  • Software deployment
  • Software engineering
  • Software maintenance
  • Programming team
  • Open-source model
Theory of computation
  • Model of computation
    • Stochastic
  • Formal language
  • Automata theory
  • Computability theory
  • Computational complexity theory
  • Logic
  • Semantics
Algorithms
  • Algorithm design
  • Analysis of algorithms
  • Algorithmic efficiency
  • Randomized algorithm
  • Computational geometry
Mathematics of computing
  • Discrete mathematics
  • Probability
  • Statistics
  • Mathematical software
  • Information theory
  • Mathematical analysis
  • Numerical analysis
  • Theoretical computer science
    • Computational problem
Information systems
  • Database management system
  • Information storage systems
  • Enterprise information system
  • Social information systems
  • Geographic information system
  • Decision support system
  • Process control system
  • Multimedia information system
  • Data mining
  • Digital library
  • Computing platform
  • Digital marketing
  • World Wide Web
  • Information retrieval
Security
  • Cryptography
  • Formal methods
  • Security hacker
  • Security services
  • Intrusion detection system
  • Hardware security
  • Network security
  • Information security
  • Application security
Human-centered computing
  • Interaction design
  • Augmented reality
  • Virtual reality
  • Social computing
  • Ubiquitous computing
  • Visualization
  • Accessibility
  • Human–computer interaction
  • Mobile computing
Concurrency
  • Concurrent computing
  • Parallel computing
  • Distributed computing
  • Multithreading
  • Multiprocessing
Artificial intelligence
  • Computational intelligence
  • Natural language processing
  • Knowledge representation and reasoning
  • Computer vision
  • Automated planning and scheduling
  • Search methodology
  • Control method
  • Philosophy of artificial intelligence
  • Distributed artificial intelligence
Machine learning
  • Supervised learning
  • Unsupervised learning
  • Reinforcement learning
  • Multi-task learning
  • Cross-validation
Graphics
  • Animation
  • Rendering
  • Photograph manipulation
  • Graphics processing unit
  • Image compression
  • Solid modeling
Applied computing
  • Quantum computing
  • E-commerce
  • Enterprise software
  • Computational mathematics
  • Computational physics
  • Computational chemistry
  • Computational biology
  • Computational social science
  • Computational engineering
  • Differentiable computing
  • Computational healthcare
  • Digital art
  • Electronic publishing
  • Cyberwarfare
  • Electronic voting
  • Video games
  • Word processing
  • Operations research
  • Educational technology
  • Document management
Specialized Platform Development
  • Thermodynamic computing
  • Category
  • Outline
  • Glossaries
Retrieved from "https://teknopedia.ac.id/w/index.php?title=Software_framework&oldid=1328125290"
Categories:
  • Software frameworks
  • Object-oriented programming
  • Software architecture
Hidden categories:
  • CS1 maint: work parameter with ISBN
  • Articles with short description
  • Short description matches Wikidata
  • Use dmy dates from December 2021
  • Articles needing additional references from April 2011
  • All articles needing additional references
  • All articles with unsourced statements
  • Articles with unsourced statements from April 2011
  • Pages displaying short descriptions of redirect targets via Module:Annotated link
  • Commons category link is on Wikidata

  • indonesia
  • Polski
  • العربية
  • Deutsch
  • English
  • Español
  • Français
  • Italiano
  • مصرى
  • Nederlands
  • 日本語
  • Português
  • Sinugboanong Binisaya
  • Svenska
  • Українська
  • Tiếng Việt
  • Winaray
  • 中文
  • Русский
Sunting pranala
url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url url
Pusat Layanan

UNIVERSITAS TEKNOKRAT INDONESIA | ASEAN's Best Private University
Jl. ZA. Pagar Alam No.9 -11, Labuhan Ratu, Kec. Kedaton, Kota Bandar Lampung, Lampung 35132
Phone: (0721) 702022
Email: pmb@teknokrat.ac.id