Software components are parts of a system or application. Components are a means of breaking the complexity of software into manageable parts. Each component hides the complexity of its implementation behind an interface. Components can be swapped in and out like the interchangeable parts of a machine. This reduces the complexity of software development, maintenance, operations and support and allows the same code to be reused in many places. The following are illustrative examples of a component.
ViewsUser interface components for different requests, views and scenarios. For example, difficult components can be used to display the same information in a web page and mobile app.
ModelsComponents that handle requests or events including business rules and data processing. For example, a model might handle a bill payment request for an internet banking website.
ControllersA controller is a component that decides what components to call for a particular request or event. For example, a controller might dynamically load different views for a bill payment based on factors such as language, transaction status or channel.
Data Access ObjectsA data access object provides an abstract interface for databases. In theory, this allows you to switch to a different database without the application needing to know. This shows the power of a component based approach as dramatic changes can be confined to a relatively small section of a code base.
ServicesA service is a component that is deployed independently. For example, a bank might deploy a market data service to cloud infrastructure. This service would provide stock market data to a variety of stock trading systems and applications. Services allow for extremely resilient applications. For example, if an application doesn't get a response from a service, it can try again and be directed to a completely different instance.
PluginsComponents designed to extend the functionality of an application or system. For example, a plugin for a media player to visualize music.A component that can be reused across multiple systems and applications can be packaged and distributed as an API. For example, an open source API to connect to a particular database.
This is the complete list of articles we have written about software design.
If you enjoyed this page, please consider bookmarking Simplicable.
© 2010-2023 Simplicable. All Rights Reserved. Reproduction of materials found on this site, in any form, without explicit permission is prohibited.
View credits & copyrights or citation information for this page.