Component Based Software Engineering
Component Based Software Engineering
Properties of components
Independent : Each component should be independent in its own and can do its job
without needing to know the inner workings of other components. Because
components are independent, they can be reused in different projects or systems
without doing any changes.
Example: Think of a "Login" component in an app. You can take this Login
component and use it in multiple apps because it works by itself, regardless of the
rest of the app.
Documented : Each component comes with clear documentation that explains what
it does, how to use it, and any requirements or limitations , which helps the
developers understand how to integrate the component, troubleshoot issues, and
use it correctly.
CBSE Framework Activities:
Component Qualification : This step is all about deciding which components can be reused.
The system’s architecture (or blueprint) specifies what the components need to do and how
they should work.
Reusable components need to have specific features in their interfaces, like what services
they provide and how users can access those services.
Component Adaptation : This step focuses on adjusting components to fit the design rules
of the system. Sometimes, a component you want to reuse doesn’t quite match the
system’s requirements, so it needs to be adjusted or “adapted.” If it can’t be adapted, it
may need to be replaced with something else.
Component Composition : This step involves putting all the components together to create
the complete system. The architecture decides how the components connect and
communicate with each other to form a fully functioning product.
Component Update: This step is about keeping components up to date. Over time, some
components may need updates to improve performance, fix bugs, or add new features. This
can be tricky if the component was made by an external organization (third-party) that you
don’t directly control.
Benefits of CBSD
1. Reusability:
o Saves time and effort by reusing existing components.
o Promotes consistency and reduces duplication of effort.
2. Reduced Development Time:
o Speeds up development by utilizing pre-built components.
3. Scalability:
o Components can be added or replaced to extend functionality.
4. Maintainability:
o Individual components can be updated or fixed independently.
5. Cost-Effectiveness:
o Reduces development and maintenance costs by reusing tested components.
6. Improved Quality:
o Pre-built components are often well-tested, reducing the likelihood of
defects.
Challenges of CBSD
1. Compatibility Issues:
o Components from different vendors may not integrate seamlessly.
2. Dependency Management:
o Managing dependencies between components can be complex.
3. Customization:
o Pre-built components may not fully meet specific requirements, requiring
customization.
4. Performance Overhead:
o Integrating multiple components might introduce inefficiencies.
5. Security Concerns:
o Using third-party components can introduce vulnerabilities if not properly
vetted.