An artifact represents a physical piece of information, such as a model, a file, or a table, that is used or produced by a software development process.
Figure 9-7 shows three example artifacts. One is represented using a userdefined icon, and the other two are shown as stereotyped classes.
An artifact can also contain other artifacts as part of a composition relationship (see the section "Aggregation" in Chapter 2).
A manifestation represents the concrete physical realization of one or more elements of a model by an artifact.
Figure 9-8 shows that the Order class is manifested by the Order.jar Java file from Figure 9-7.
Manifestation is a form of abstraction dependency; see the section "Abstraction Dependencies" in Chapter 2.
The following built-in stereotypes may prove useful in helping you define artifacts:
The ‚ «document ‚ » stereotype signifies that the artifact contains useful information about the system being modeled . This information isn't part of any of the models themselves , and it doesn't take the form of source code (see the description of ‚ «source ‚ » later in this list) or an executable file (see the description of ‚ «executable ‚ » later in this list).
The ‚ «executable ‚ » stereotype signifies that the artifact is a piece of executable software.
The ‚ «file ‚ » stereotype signifies that the artifact is a physical file.
The ‚ «library ‚ » stereotype signifies that the artifact contains a static or dynamic object library (for instance, a Windows Dynamic Link Library [DLL]).
The ‚ «script ‚ » stereotype signifies that the artifact is a script file that can be interpreted by a system.
The ‚ «source ‚ » stereotype signifies that the artifact contains source code.