Artifact:
Component

Component
|
A component represents a piece of software code
(source, binary or executable), or a file containing information (for example, a startup
file or a ReadMe file). A component can also be an aggregate of other components, for
example, an application consisting of several executables. |
UML representation: |
Components, possibly stereotyped as, for example,
«application», «document», «executable», «file», «library», «page», «table»
or «test component» |
Worker: |
Implementer |
Optionality: |
Use
of any of the stereotypes is optional |
More information: |
Guidelines: Component |
|
Purpose 
The following people will use the components
- Implementers who implements design classes in source code files.
- Implementers who implements test components.
- Implementers who reuse existing components when implementing
classes.
- Code reviewers who review the source code to ensure quality.
- The testers who test executables/applications.
- The release manager who extracts deliverable components to
release to customers.
Properties 
Property Name |
Brief Description |
UML Representation |
Name |
Component
name |
The
attribute "Name" on model element |
Timing 
During the Inception phase prototypes are developed. During the Elaboration phase,
classes that are considered architecturally significant are implemented as new components,
and by reusing, or customizing existing components. Most classes are implemented during
the Construction phase. During the Transition phase, the focus shifts from implementing
new classes, to fixing defects in existing components.
Responsibility 
An implementer is responsible for the component, and ensures that:
- The component implements the corresponding design correctly, and fulfills the design
specifications.
- The component is readable.
- Source code files are unit tested.
Tailoring 
Which types to use depends on the programming language and the implementation
environment in general. For examples of different types of components, see Guidelines: Component.
| |

|