![]() |
The term software component has a broad meaning in the software community. A software package, a Web |
| service, or a module that encapsulates a set of related functions (or data) is known as individual component. |
![]() |
Components are modular and cohesive as all system processes are placed into separate components so that |
| all of the data and functions inside each component are semantically related (just as with the contents of classes). |
![]() |
Characteristics of Components share the same theme as: |
![]() |
"Encapsulates functionality," |
![]() |
"Communicates through well-defined interfaces," |
![]() |
"Provides a simple plug-and- play model," and |
![]() |
"Allows easy replacement of system behaviors." |
![]() |
Cheesman & Daniels presented a view of components from the complete software lifecycle and discussed |
| components in the following "forms:" |
![]() |
Component interface: Defines a set of features offered; analogous to a CORBA or Java interface. |
![]() |
Component specification: A software unit that describes behavior for a component as a set of Component | |
| Interfaces. |
![]() |
Component implementation: An assembly that implements a Component Specification |
![]() |
Installed component: A specific installation and configuration of a Component Implementation |
![]() |
Component object: A run-time instance of a component with unique state and identity. |

![]() |
Software components are an independently deployable and enactable portion of a software system. |
![]() |
Deploying and enacting a component (the run-time view of a component) can lead to issues. |
![]() |
The 4+1 software architecture model (Krutchen) espoused by the rational unified process (RUP) addresses, at |
| least through notation, the issues of deploying and enacting components. |
![]() |
Figure 7.2 shows the 4+1 model and its related views. |
