Examples - IMDB

The following example shows a simplified web application that allows users to view movie information, buy movie tickets online or rate movies. The following list gives a short informal description of the functionality.

Functionality

  • A distinction is made between users and registered users. Only registered users can buy tickets. A user becomes a registered user by logging in. Unregistered users can register with a username that has not been taken by another user, an email address and a freely chosen password.
  • Every user can search for movies, actors, directors and other persons and theatres.
  • For every movie and person there is a page showing their details. The movie details consists of a title, the year it was released in, a description, the genre of this movie and a photo. Also there are lists for the persons who were involved in this film, a soundtrack and some other information. The details to a person are restricted to its name, birthday, place of birth and a photo and the details of a theatre are composed of an address, show rooms and performances. Registered users can comment and rate movies, store their favourite movies and theatres in a personal list and buy tickets.

 

UWE models

This example was modelled with UWE Profile - v1.9 defined in the Magic Draw 16.8 CASE tool and is available as mdzip and emf.

Requirements Analysis

Increasing functionality of the web application suggests to make a detailed elicitation of requirements at the beginning of a project. In UWE the requirements are described using a use case diagram. Each use case provides thereby one scenario how the system should interact with the end-user or another system. In this example the use cases model all possible views all together with the above-described functionalities.

UWE solution modelled with MagicDraw

Content and User Model

Content elements are specified using a plain UML class diagram, which contains classes, attributes, associations, inheritance relationships, association classes, and further UML model elements. Here it contains the classes movie, person and theatre together with the classes representing their data.

UWE solution modelled with MagicDraw

Some web applications require the modelling of user or environment features. A user profile or user model can be used to represent these features. Like mostly, the centre of this example is build of classes representing the user along with classes used by them.

UWE solution modelled with MagicDraw

Navigation

The hypertext structure is described using a navigation diagram, which consists of a set of nodes and links. UWE distinguishes among different types of nodes, such as navigation class, menu, index and query. In this case the main navigation nodes are home, movie and person navigation classes and the different lists shown in their menus are represented with the index classes.

UWE solution modelled with MagicDraw

Processes

The process package provides model elements for integrating business processes into a UWE web application model. Most of the process classes in this example are already known from the navigation model. There are also some additional classes, which are used to process data.

UWE solution modelled with MagicDraw

The behaviour of a process is defined by an UML activity that is owned by the main process class. The activity diagram for buying tickets is shown below. There you can see the two different types of actions: User actions are used to model user input and system actions represent actions within the application.

UWE solution modelled with MagicDraw

Presentation

UWE uses a class diagram for the modelling of presentation models. The container form is selected in order to provide a more intuitive representation of pages. The most important class here is also the biggest one in the diagram. It models the presentation of the page showing the details of a movie and is composed of a movie menu and the alternative presentation groups needed to present the details known from the navigation menu.

UWE solution modelled with MagicDraw