Component software, sometimes called componentware, refers to a separate module or programming object that works independently of the other components in a system while maintaining communication with the entire system. In simpler terms, a component is built to provide a specific task or service. While this type of software engineering is based on object-oriented programming, it is considered a separate and more advanced classification called service-oriented programming. The individual component modules make it possible for a system to continue to function in the event that a single program crashes.
The term component software aptly describes the way in which each of the individual program modules forms a component, or part, of the whole system. For example, consider the way a car is assembled from many different parts. Some parts are more essential to its function than others but, as a whole, if a particular non-critical system fails, such as the radio, the rest of the car will continue to function. Component software programming is a similar design scheme in which multiple parts create a whole system.
This type of software is commonly used in programming applications when complete system failure could create problems with security or be a nuisance. Such applications include order processing and payment software, record keeping software, and even Internet browsers. The individual tasks performed by software of this type are delegated to individual component software pieces. These pieces ensure the steady function of the whole system while also protecting the systems security, as each component is insulated from the others.
In the case of Internet browsers, the individual components may function to offer multiple process browsing sessions. To the average user, this means that when five tabs are open and a rogue java script causes the site being viewed in one tab to freeze, only that tab is compromised. By closing the tab, the rest of the session can be saved. This multiple process system also heightens security in the modern Internet browser because it keeps each process in its own separate space.
Many modern computer operating systems (OS) utilize component software to at least some degree. One example is Windows OS. In this system, users are may enable or disable OS components to customize it to their needs. In addition, if a program stalls, there are safeguards included to safely kill the associated process and end the program without rebooting the computer. This ability has made component software an important part of software engineering.