Unified Modeling Language (UML)

Let us first look at the full system. Use PlantUML to make the 6 models described below.

For each PlantUML model, hand in the following items:

  1. Textual PlantUML script;
  2. Graphical PlantUML output;
  3. Textual modeling decisions as a text cell (see the important remark in the Introduction).

Please combine all of the above into one Jupyter Notebook, with sections for each model.

To submit, create a 4-uml directory in your GitLab repository, and place the Jupyter Notebook file in the 4-uml directory of your GitLab repository.

Each diagram provides a different view of the same system. This means that if you include a component or method in one diagram, the other diagrams should support that.

For example, if you use a method in a sequence diagram, it should also appear in the class diagram with the same name.

Remember that these diagrams should provide an insightful overview of the system. If the diagram is messy or there are many overlapping elements, it fails to do this.

Component diagram

Use PlantUML to create 1 component diagram that shows the hardware and software/electronic components for a system with 1 plane. In addition, introduce associations with required and provided interfaces between the components.

Hint: It may be useful to introduce packages to group some components.

Requirements

  • Assembly notation was used (instead of dependency).
  • The diagram uses UML correctly.
    • Each interface is provided by exactly one component.
    • The correct relation types are used.
  • The diagram models the system (up to modeling decisions).

Sequence diagram

Use PlantUML to create 3 sequence diagrams for the following workflows in a system with 1 plane:

Configuration

Before a medical procedure:

  1. Show the supported medical procedures to the surgeon.
  2. Configure the system for a specific medical procedure that is selected by the surgeon.

Pedal scenario 1

During a medical procedure:

  1. Pressing the pedal for low-dose video.
  2. Releasing the pedal for low-dose video.

You must include the X-ray tube, X-ray detector, ImageProcessor, and Screen components in this particular scenario. Include pedal actions and the displaying images on the screen.

Pedal scenario 2

During a medical procedure:

  1. Pressing the pedal for low-dose video.
  2. Pressing the pedal for high-dose video.
  3. Releasing the pedal for high-dose video.
  4. Releasing the pedal for low-dose video.

You may (and are even advised to) omit the X-ray tube, X-ray detector, ImageProcessor and Screen components in this particular scenario. The diagram should still show that images are displayed on the screen.

Requirements

  • The interactions match your component diagram.
  • The use of synchronous and asynchronous events is correct.
  • The XrayController receives an alternation of activate and deactivate events.
  • The XrayController decouples the receiving of activate and deactivate events from the sending of timed pulses.
  • The diagrams model the correct scenarios (up to modeling decisions).

Class diagram

Use PlantUML to create the following 2 class diagrams for systems with 1 or 2 planes:

Database Data Model

Diagram for the data model of the procedure database, which describes the required settings of the XrayController and ImageProcessor components for each medical procedure. The settings for these system components contain different attributes. These classes do not have any methods.

High-level

Diagram containing the high-level components, including support for the sequence diagrams you have made before. Include all the components from your component diagram, except for the PedalBoard and Tablet.

Requirements

  • Use each relationship type at least once:
    • Association is used correctly.
    • Aggregation/Composition is used correctly.
    • Generalization is used correctly.
  • Multiplicities of all relationships are correct.
  • The classes should match the components in the component diagram.
  • The methods should match the interfaces in the component diagram and the events in the sequence diagrams.
  • The diagrams model the system (up to modeling decisions).