Components

Definitions

A component is a cohesive, opaque, replaceable, functional module of a larger system.

The larger system can be a hardware, software, or business system, thus a component can be a hardware component, such as a device, microchip, or circuit; a software component such as a user interface, database, or message passing subsystem; or a component can be a business unit such as payroll, provider, or shipping. (See the Wikipedia article on Systems Theory for a good overview of the full scope of the system/component concept.)

A component's functionality is specified by a set of provided interfaces.

A component provides its services to other components. In turn, a component may require the services of other components. These requirements are specified by a set of required interfaces.

UML Component Diagrams

Common Component Stereotypes

<<process>> Components

A process component provides some sort of functionality to other components.

A process component is usually transaction based.

A process component is usually stateful. A service component is a like a process component except that it is stateless.

Examples:

Message Passing System

Event Handling System

 

<<service>> Components

Components in a service oriented architecture (SOA).

Examples:

Web serivces

<<subsystem>> Components

A component can have subcomponents. We call these subsystem components.

Examples:

user interface

database system

business logic

Other Links

Component-Container Architecture

Java Beans