According to various studies in the field of Software engineering, the first successful component system was the operating system .Operating systems can be used as a basis to understand the concept of component based models and their implementations. Today, everyone has a basic idea about the operating system. The operating system provides an interface between the user and the hardware of the system. In addition, it provides an environment to execute any application. It also allows resource access and allocation. Other basic services provided by operating system include memory management, resource management, file management, process synchronization, etc. There are various services, which simplifies the development of an application. These services are used by different applications through a defined interface. Such interfaces are called application programming interfaces (APIs). Relating it to the component model, such operating systems are implemented using the component model. Applications are developed by various developers after the component model implementation is developed and documented. Such applications can be purchased from the developers or the vendors. These applications are designed to be supported across different operating system platforms and hence can be used together on a single computer. The standards used in the applications match the operating system standards. However, there are few standards which match some specific operating system standards. Hence, they are often part of a particular operating system implementation.

Limitations of Early Component Systems

In spite of the fact that the components can be used at the application level they lack the re-usability factor. This is because of the lack of domain-specific standards for the operating system and the lack of proper support. In addition, many application developers use the same prototype already being used by the other developers implementing common functionalities. However, component based software engineering (CBSE) tries to make the best out of it. The CBSE approach separates the common factor into either the component based services or the components that can be integrated into a single component infrastructure. It also plans attain a certain degree of re-usability at the application level. However, the two major limitations are mentioned below.

  • No composition support – There has been no support for composition at any level. In an operating system the application is executed independently with no interaction with other application. Data Exchange among the application is possible by the mechanism of inter-process communication. However, the applications are not properly specified in spite of the application using the services of the operating system.
  • No domain-specific standards – In general the operating system services do not support any specific application domains. For example, a simulation system has a different set of requirements as compared to a telecommunication application. Having reusable components in a software system is the main goal of component based software engineering. Such reusable components exist at a finer granularity level. In addition, they require various standards for services, infrastructure, interaction and composition. By building such a model; the component based software engineering can design, implement, and deploy the component infrastructures.