The DataEntity type is the root type of all of the product models. A more accurate vision of the data type hierarchy is provided in (1.9).
Figure 1.9: Data type hierarchy.
A Part defines a general software component, being either a
Component or a Subsystem. The former denotes an atomic software
entity, e.g. a file, whereas the latter denotes a composite entity
(often mappable to a file directory).
It contains the definition of an instance-level attribute, status, holding the current status of a given instance. Such attribute may assume one of values created, designed, reviewed, coded, tested.
Component defines an instance-level attribute Contents of domain LongField, about the reference to the actual file location in the underlying file system for a given instance . In addition another attribute is used to access the time stamp of the file of an instance.
Family, a Subsystem subtype, is used to describe an aggregate of program modules or subsystems and their associated documentation.
The Text type is used to model any textual document. Its Document subtype is used for any informal textual document, whereas SourceCode is used to express program code in some language. This last type has two subtypes, Interface and Body, to support the normal splitting of a program module into a specification and implementation part. They are further subtyped into one type for each language supported.
Type Binary is mainly used to describe different kinds of derived objects. Its subtype ObjectCode models the derived result of a compiled SourceCode entity.
The Executable type is used to represent programs executable in the underlying operating system and architecture. Instances of such a type may refer both to tool objects and to compiled executable programs.