CBSE Processes
CBSE processes
CBSE processes are programming processes that help component-
based computer programming.
They consider the possibilities of reuse and the various process activities
involved in developing and using reusable components.
Development for Reuse
Typically involves generalizing existing components.
Development with Reuse
Developing new applications using existing components and services.
Supporting Processes
Component Acquisition: Acquiring components for reuse or development
into a reusable component.
May involve accessing locally developed components or finding these
components from an external source.
Component Management: Managing reusable components to ensure
proper cataloging, storage, and availability for reuse.
Component Verification: Verifying components to ensure they meet
their specifications.
1
CBSE for Reuse
Focus Areas
Focuses on component development.
Components developed for specific applications usually need to be
generalized to make them reusable.
Reusability Characteristics
Associated with stable domain abstractions.
o Example: In a hospital, stable domain abstractions relate to nurses,
patients, treatments, etc.
Component Development for Reuse
Reusability Principles
Reflect stable domain abstractions.
Hide state representation.
Be as independent as possible.
Publish exceptions through the interface.
Reusability vs. Usability Trade-offs
Broader interfaces increase reusability but add complexity, making
components less usable.
Modifications for Reusability
Remove application-specific methods.
Change names to generalize.
Add methods to broaden coverage.
Ensure consistent exception handling.
2
Add configuration interfaces for variation.
Integrate expected components to reduce dependencies.
Exception Handling
Components should not handle exceptions themselves to allow
application-specific handling.
Components should define and publish exceptions as part of the
interface.
Challenges
Inflated interfaces may make components harder to use.
Dependence on local exception handling may affect functionality.
Legacy System Components
Legacy systems fulfilling useful business functions can be repackaged as
reusable components.
A wrapper component implements required interfaces to access the
legacy system.
Cost Implications
Repackaging legacy systems is often less expensive than rewriting them.
Reusable Components
Cost Considerations
Developing reusable components is costlier than creating specific ones.
The cost of enhancing reusability should be treated as an organizational
expense.
Performance Trade-offs
3
Generic components may be less efficient and slower than specific ones.
Component Management
Key Activities
Define components for easy discovery.
Make components available in a repository or as a service.
Maintain usage information and track versions.
Component Certification
Certification involves a third party verifying component quality before
making it available for reuse.
CBSE with Reuse
Process Requirements
Identify and integrate reusable components.
Balance trade-offs between requirements and available services.
Process Steps
Develop preliminary requirements.
Search for components and modify requirements based on available
functionality.
Search again for better components if needed.
Create new components to complete the system.
Challenges in Component Identification
Trust
Components from untrusted sources may not function as expected or
may compromise security.
4
Requirements
Components may not fully satisfy requirements.
Validation
Specifications may lack detail, making comprehensive testing difficult.
Components may include unwanted functionalities.
Component Validation
Develop test cases for components and use test harnesses to run them.
Ensure the component meets expectations and does not include
unwanted or malicious functionality.