Software Interface
Jump to navigation
Jump to search
A Software Interface is a computational interface that defines interaction contracts between software components through programmatic protocols.
- AKA: Software Boundary, Software Contract, Program Interface, Software Interaction Point, Component Interface, Software API.
- Context:
- It can typically specify Interface Method Signatures through function declarations.
- It can typically enforce Interface Compatibility Rules via version management.
- It can typically enable Software Component Integration through standardized protocols.
- It can often provide Data Exchange Mechanisms via serialization formats.
- It can often implement Error Handling Protocols through exception specifications.
- It can often support Asynchronous Communication Patterns via callback mechanisms.
- It can range from being a Simple Software Interface to being a Complex Software Interface, depending on its method count.
- It can range from being a Synchronous Software Interface to being an Asynchronous Software Interface, depending on its execution model.
- It can range from being a Local Software Interface to being a Remote Software Interface, depending on its network boundary.
- It can range from being a Public Software Interface to being a Private Software Interface, depending on its access scope.
- It can range from being a Stable Software Interface to being an Evolving Software Interface, depending on its change frequency.
- It can range from being a Binary Software Interface to being a Source Software Interface, depending on its compilation level.
- It can integrate with Interface Documentation Systems for API documentation.
- It can integrate with Interface Testing Frameworks for contract validation.
- ...
- Examples:
- Application Programming Interfaces, such as:
- Library APIs, such as:
- Framework APIs, such as:
- Web Framework APIs, such as:
- Mobile Framework APIs, such as:
- Third-Party APIs, such as:
- Payment APIs, such as:
- Social Media APIs, such as:
- Operating System Interfaces, such as:
- System Call Interfaces, such as:
- Driver Interfaces, such as:
- Middleware Interfaces, such as:
- Message-Oriented Middleware Interfaces, such as:
- Object Request Broker Interfaces, such as:
- Database Interfaces, such as:
- SQL Interfaces, such as:
- ORM Interfaces, such as:
- Service Interfaces, such as:
- Web Service Interfaces, such as:
- Microservice Interfaces, such as:
- Component Interfaces, such as:
- Plugin Interfaces, such as:
- Module Interfaces, such as:
- Binary Interfaces, such as:
- Application Binary Interfaces, such as:
- Foreign Function Interfaces, such as:
- ...
- Application Programming Interfaces, such as:
- Counter-Examples:
- Hardware Interface, which provides physical connections.
- User Interface, which enables human interaction.
- Network Protocol, which defines communication standards without software boundary.
- See: Computational Interface, Application Programming Interface, System Interface, Software Architecture, Interface Design Pattern, Software Component, API Documentation, Interface Specification, Software Contract, Dependency Injection, Service-Oriented Architecture.
References
2017
- (Wikipedia, 2017) ⇒ https://en.wikipedia.org/wiki/Interface_(computing)#Software_interfaces Retrieved:2017-3-30.
- In computing, an interface is a shared boundary across which two separate components of a computer system exchange information. The exchange can be between software, computer hardware, peripheral devices, humans and combinations of these. Some computer hardware devices such as a touchscreen can both send and receive data through the interface, while others such as a mouse or microphone may only provide an interface to send data to a given system.