1. Input -- events triggered by users by means of input devices.
    2. Action by users must trigger an output provided by the system.
    3. Input and output are interleaved.
    1. Seeheim model
    2. Arch/Slinky model