Please enable JavaScript.
Coggle requires JavaScript to display documents.
Component Based Architecture (Component Level Design (Business concept…
Component Based Architecture
Components Vs. OO Design
Component-oriented represents a higher level of abstraction than an equivalent OO design
In component-oriented design First identify all components and their interfaces
Advantages over CO design
Reduced time in market
Lower development costs by reuse of the existing components
increased reliability with reuse of the existing components
Components
Used to
Devide a problem into sub-problems
Each sub-problems is associated with a component
Interface plays an important role
Motivation
Components are highly reusable
A component encapsulates the functionality and behaviors of a software element into a reusable and self-deployable binary
Use of COTS or developed in-house components
Increases overall reliability
Important points
A component is a deployable software package that can provide services to its client
It may require services from other components
It remain self-contained and substitutable as long as it interface is unchanged
A component is a modular (cohesive), deployable (portable), replaceable (plug-and-play), and reusable set of well-defined functionalities that encapsulates its implementation and exports it as a higher-level interface
Component Implementation
Usually consists of a set of class files
Abstract Interface
Concrete Implementation Classes
Component Level Design
Use Case Modeling
Business concept modeling
Use Case Diagrams
A Collaboration Diagrams
Use case component implementation
Business concept Diagram
Applicable Domain
Suitable for where the interface contracts between sub-systems are clear
Suitable for loose coupling between the components and many reusable component are available
Suitable for the class library system organization .NET class library and Java API themselves
Benefits
Reusability of components:
System maintenance and evolution:
Independency and flexible connectivity of components
Productivity
Many OO design tools available
Sometime it is difficult to find suitable components to reuse
Adaptation of components is always an issue
Limitations
Sometime it is difficult to find suitable components to reuse
Adaptation of components is always an issue
Mapping
Use case interface provider
Conceptual classes modules of components
If necessary, big components can be further decomposed