CEN4020: Software Engineering I | up ↑ |
Fall Term 2009 |
This is a proposed requirements-level class model for the International Etruscan Siglan Project (IESP) system ("the System" for short). The purpose is to name and define the characteristics of the classes of conceptual entities (objects) upon which the system operates. It is not complete, nor is it normative.
The class Item includes every kind of thing (object, entity) in the System to which there may be a reference, either from within the System or from without. An example of the latter would be a citation in a journal article.
This class includes a number of subclasses, such as Artifact, Concrete Siglum, Siglum Abstraction, Symbol, Comment, Collection. Other examples of subclasses may include People, Locations/digs, and Museums.
Each Item has a Primary Class, which the most specifi class to which it belongs.There must be a way to uniquely identify (refer to) each version of each Item, within the System. The system must prevent "dangling" references (references to Items that do not existin the system).
Items to which there are references must never be deleted. The simplest way to enforce this rule is to distinguished published Items from unpublished ones, and never delete an Item once it is published. Allowing for updates to Items then requires maintaining a versioned history of each Item. This means there must not only be a way of storing all versions (or a trail of crumbs that allows reconstruction of all versions), but there must be a scheme for citing objects that includes the version number. It must be possible also to omit the version number, for a citation that is intended to apply to all versions of an Item.
In every Item version has a creation date, which is maintained by the system. In other words, editing (modifying) an Item creates a new version of the Item, with a new version creation date.
Every item has an Originator (author, creator) and an Owner. The Originator is the Owner, until the Item is published. After publication, the Owner is the System. The Originator is maintained, for historical purposes.
The class Comment includes a paragraph of text. The Originator of a Comment is also known as the Author. No one but the Author may modify a comment.
A comment is associated with a unique Item (all versions), called the Subject of the Comment. It is attached to the specific version of the Item that was current at the time the Comment was created, but may be accessed from every version of the Item. It may contain within it embedded references (citations, perhaps like URls) to other Items, so that one can compare and relate the Item to other Items. In order to be able to limit the amount of text that must be stored immediately with a Comment, there should have a provision for a Comment to refer to one or more Documents (another class of Item).
The class Image corresponds to a file containing an image. The other attributes remain to be determined.
The class Document corresponds to a file containing text. The other attributes remain to be determined.
The class Collection is an Item that is a set of other Items. The members should be restricted to be all of a single class.
There will be a need for a way to organize the items in a collection. It is not yet clear how this can best be done. One way that does not require any additional mechanism is to construct hierarchical Collections of Collections. For this to work, the attributes of each Collection should include at least:
The class Concrete Siglum is an instance of a specific marking or set of markings on a specific Artifact object. A Concrete Siglum's attributes should include at least:
If the Siglum seems to be a sequence of standard symbols (letters, numerals, or other known standard graphemes), the representation in terms of this sequence of symbols may be an additional attribute. To enable this, the system may need to include (as Items) each of these basic standard symbols and (as Collections) each of the alphabets.
A given artifact may have multiple Concrete Sigla. Due to differences in interpretation, the there may be multiple Concrete Sigla, overlappinig, in the region of the Artifact.
It may turn out to be convenient to treat a Concrete Siglum and a Comment as two subclasses of one abstraction -- say, both being classes of a class Artifact Annotation.
The class Siglum Abstraction corresponds to a conceptual Collection of Concrete Sigla. However, a Siglum Abstraction will probably need some additional information that may not be present for other Collections. In particular, it will probaly require:
T. P. Baker. ($Id$) |