New York City Museum Of Modern Art -MOMA- UML case study


Two distinct lanes are for, respectively, drop-off and pick-up.

After a waiting period in the drop-off lane, visitors reach a numbered desk. They lay down all their belongings on the desktop for a photography. Staff may optionally remind people that bags are totally unauthorized in the MOMA to effectively get all visitors' belongings. The photography is recorded along with a requested phone number. Staff stores belongings while a MMS is sent with the taken photography as “deposit proof”. A light panel (assigned to each numbered desk) then turns leave/green when the MMS succeeds (checked through the desktop's computer). In case of “erroneous” phone number, light panel keeps displaying wait/red. To that event, visitors are invited to re-propose something valid until success.

Pick-up leads visitors to reach any numbered desk from the pick-up lane after a waiting period. Visitors provide their phone number. People get their belongings and leave the place when leave/green turns on. This results from staff enactment on their desktop's computer.

Note that a numbered desk's light panel turns wait/red as soon as a sensor detects presence in front of the desk.

Use cases

Exercise ⤳ Drop-off behavior

Drop-off behavior


Pick-up behavior
Interaction ⤳ UML Sequence Diagram
Interaction ⤳ UML Interaction Overview Diagram
Relationship Matrix here… & Feature Matrix there


Analysis of related stuff based on a “source-target” view.

Key action(s)

Feature Matrix


User stories


Requirements perspective supports user story-based requirements engineering. User stories may be modeled as stereotyped notes and/or stereotyped requirements.

Enterprise Architect perspective

User story-based requirements diagram

How user stories are typed?

Specification Manager (User stories package)

User stories ⤳ requirement traceability

Relationship Matrix ⤳ user story “notes” to to user story “requirements”

Relationship Matrix ⤳ user story “requirements” to use cases


SysML Requirement Diagram


SysML Requirement Diagram offers dedicated requirement-based relationships like «allocate», «refine», «satisfy»… to focus on traceability: how requirements relate to each other and, later on, to derived elements (use cases…) within models through solution(s).

Manual simulation ⤳ guide

-right click- (diagram content) Execute Simulation Manual simulationInterpreted simulation is when guards are set to values

“Staff may optionally remind people (…)”

“A light panel (assigned to each numbered desk) then turns leave/green when the MMS succeeds (…)”

Script-based simulation (a.k.a. “dynamic simulation”) ⤳ here… and there

*F2 to rename a script.

“Phone number success”

“Phone number failure”



  1. Create variable, which counts phone number responses (Tell phone number UML Action) in order to stop the process after max, say, 3, attempts
  2. Implement behavior
sim.success == true || sim.phone_number_responses >= sim.max; // In place of 'sim.success == true;'
sim.success == false && ++sim.phone_number_responses < sim.max; // In place of 'sim.success == false;'


UML AcceptEventAction here