The purpose of the app to be built is managing information about movies. The app deals with
just one object type: Movie
, as depicted in Figure 7.1 below. In the subsequent parts of the tutorial, you will extend this
simple app by adding enumeration-valued attributes, as well as actors and directors as further
model classes, and the associations between them.
In this model, the following constraints have been expressed:
Due to the fact that the movieId
attribute is declared to be the standard identifier of Movie
, it is mandatory and unique.
The title
attribute is mandatory, as indicated by its multiplicity expression [1], and has a
string length constraint
requiring its values to have at most 120 characters.
The releaseDate
attribute has an interval constraint: it must be greater than or equal to
1895-12-28.
Notice that the releaseDate
attribute is not mandatory, but optional, as indicated by its
multiplicity expression [0..1]. In addition to the constraints described in this list, there are
the implicit range constraints defined by assigning the datatype PositiveInteger
to
movieId
, NonEmptyString
to title
, and Date
to releaseDate
. In our plain JavaScript approach, all these property constraints are
encoded in the model class within property-specific check
functions.
Also in this assignment, and in all further assignment, you have to make sure that your pages comply with the XML syntax of HTML5 (by means of XHTML5 validation), and that your code complies with our Coding Guidelines.