Component-Based Architecture

  • Component-Based Architecture is a branch of software engineering which provides a higher level of abstraction than object-oriented design principles.
  • Component-Based architecture does not focus on issues such as communication protocol and shared state.
  • This architecture focuses on the decomposition of the design into logical components which contain events, methods and properties.
  • Component-Based architecture divides the problem into sub-problems and each problem associated with component partitions.
  • It provides a higher level of abstraction than object-oriented design principles.
  • It does not focus on issues such as communication protocols and shared state.
Principles of Component-Based Architecture

principles of component based architecture

1. Extensible

A component can be extended from existing components to provide new behavior.

2. Replaceable

Components may be readily substituted with other similar components.

3. Encapsulated

Components exposes interfaces which allow the caller to use its functionality and hides the details of the internal processes or any internal variables or state.

4. Independent

Components are independent. It can be designed to have minimal dependencies on other components.

5. Reusable

Components are designed to be reused in different scenarios in different applications.

6. Not Context Specific

Components are designed to operate in different environments and contexts. Specific information such as state data, should be passed to the component instead of being included in or accessed by the component.

Advantages of Component-Based Architecture
  • Component-Based architecture reduces the cost of development and maintenance.
  • It is reusable which means can be used to reusable components to spread the development and maintenance cost across several applications.
  • It increases the reliability of the whole system via reuse.
  • It is easy to maintain and update the implementation without affecting the rest of the system.
  • It modifies the complexity with the use of a component container and its services.
  • If the new compatible versions are available then it is easy to replace the existing versions without any impact on the other components.