Previous | UML Classes | Table of Contents | UML Packages | Next |
An artifact is the specification of a physical piece of information that is used or produced by a software development process,
or by deployment and operation of a system. Examples of artifacts include model files, source files, scripts, and binary executable
files, a table in a database system, a development deliverable, or a word-processing document, a mail message.
•
Classifier (from Kernel , Dependencies , PowerTypes ) on page 51
•
DeployedArtifact (from Nodes ) on page 207
Issue 8457 -had to add new superclass
9122 -already handled by 8457
•
NamedElement (from Kernel , Dependencies ) on page 99
Package Artifacts
In the metamodel, an Artifact is a Classifier that represents a physical entity. Artifacts may have Properties that represent
features of the Artifact, and Operations that can be performed on its instances. Artifacts can be involved in Associations
to other Artifacts (e.g., composition associations). Artifacts can be instantiated to represent detailed copy semantics, where
different instances of the same Artifact may be deployed to various Node instances (and each may have separate property values,
e.g., for a ‘time-stamp’ property).
Package Node
As part of the Nodes package, an Artifact is extended to become the source of a deployment to a Node. This is achieved by
specializing the abstract superclass DeployedArtifact defined in the Nodes package.
Package Artifacts
Issue 8132 - rename ‘filename’ to ‘fileName’
9189 - duplicate of 8132
• fileName : String [0..1] A concrete name that is used to refer to the Artifact in a physical context. Example: file system
name, universal resource locator.
Package Artifacts
• nestedArtifact: Artifact [*] The Artifacts that are defined (nested) within the Artifact. The association is a specialization
of the ownedMember association from Namespace to NamedElement .
Issue 8132 - rename ‘ownedProperty’ to ‘ownedAttribute’8137 - reformulated subsets constraints to conform to document conventions
• ownedAttribute : Property [*] The attributes or association ends defined for the Artifact. {Subsets Namespace ::ownedMember}.
• ownedOperation : Operation [*] The Operations defined for the Artifact. {Subsets Namespace ::ownedMember}
• manifestation : Manifestation [*] The set of model elements that are manifested in the Artifact. That is, these model elements
are utilized in the construction (or generation) of the artifact. {Subsets NamedElement ::clientDependency , Subsets Element::ownedElement}
No additional constraints
An Artifact defined by the user represents a concrete element in the physical world. A particular instance (or ‘copy’) of
an artifact is deployed to a node instance. Artifacts may have composition associations to other artifacts that are nested
within it. For instance, a deployment descriptor artifact for a component may be contained within the artifact that implements
that component. In that way, the component and its descriptor are deployed to a node instance as one artifact instance.
Specific profiles are expected to stereotype artifact to model sets of files (e.g., as characterized by a ‘file extension’
on a file system). The UML Standard Profile defines several standard stereotypes that apply to Artifacts , e.g., «source» or
«executable» (See Annex C - Standard Stereotype s). These stereotypes can be further specialized into implementation and platform
specific stereotypes in profiles. For example, an EJB profile might define «jar» as a subclass of «executable» for executable
Java archives.
An artifact is presented using an ordinary class rectangle with the key-word «artifact». Alternatively, it may be depicted
by an icon.
Optionally, the underlining of the name of an artifact instance may be omitted, as the context is assumed to be known to users.
«artifact»
Order.jar
Figure 10.6 -An Artifact instance
«component»
Order
«manifest»
«artifact»
Order.jar
Figure 10.7 - A visual representation of the manifestation relationship between artifacts and components
The following changes from UML 1.x have been made: Artifacts can now manifest any PackageableElement (not just Components,
as in UML 1.x).