Appendix B - Interactive User Interfaces

The user interface (UI) is the space where interactions between users and PAMoC occur. Its goal is to make easy, efficient, and enjoyable (user-friendly) to operate PAMoC in the way which produces the desired result. This means that the user needs to provide minimal input to achieve the desired output, and also that PAMoC minimizes undesired outputs to the user.

Since its first versions (including its precursors) the PAMoC code has been designed to operate in “batch mode”, as opposed to an interaction at a remote terminal by a user who issues commands often based on the computer's response to previous commands. Non-interactive use usually involves recourse to a high-level program, for example a shell script, which can execute multiple programs, with some additional “glue” logic. A running script is usually executed from an interactive “login session”, i.e. a Unix-like “command line interface” or “command language interpreter” (CLI), also known as “command-line user interface” or “character user interface” (CUI).

PAMoC has never been equipped with a command line interface because, for most people, learning and remembering typed commands is hard unless (even if) they use the commands all the time. Other disadventages of command line interfaces are: (a) a command has to be typed precisely, otherwise the command will not respond or fail; (b) if an instruction is mistyped and an error occurs, users often have to start back from the beginning of the process; (c) use can't just guess what the instruction might be and user can't just "have a go".

In general, PAMoC users must use an operating system command line interface (i.e. a distinct program supplied with the operating system, which is usually called a command-line interpreter, command processor or “shell”) in order to launch a PAMoC execution. The general pattern of such a command line is described in a different section of this manual entitled “Exchanging data with PAMoC: the I/O system”.

Although we decided to design PAMoC to be used in batch mode, it was immediately clear that it would be very useful to have an interactive user interface available as well. The main reason that pushed us to introduce an interactive user interface in PAMoC was the need to test parts of the code repeatedly, without having to restart the program from the beginning. Also the opportunity to use the PAMoC library for various types of applications (such as extracting data from PAMoC archives, comparing, verifying and processing data) and, above all, the need to carry out graphic analysis of the data were strong incentives to the development of an interactive interface. This interface should have been fast to use, fast to develop, and allow good control over the software. Thus the development of TUI-PAMoC began.

TUI-PAMoC is a separate version of PAMoC that uses an interactive text-based user interface (TUI)[§ Text-based user interface (TUI)] and shares the rest of the code with PAMoC. The TUI present the user with all PAMoC features through a sequence of menus, each of which is displayed individually on the screen.

  1. Text-based User Interface (TUI)
  2. Graphical User Interface (GUI)

§ − Definitions and comments on text-based user interfaces (TUIs) can be found at the following links:

  1. Wikipedia contributors, "Text-based user interface," Wikipedia, The Free Encyclopedia
    https://en.wikipedia.org/wiki/Text-based_user_interface (accessed September 13, 2018).
  2. Nathan Lineback, "Text Mode User Interface,"
    http://toastytech.com/guis/text.html (accessed September 13, 2018).
  3. Alex Bunardzic, "In Praise Of Textual User Interface (TUI)"
    https://medium.com/bots-for-business/in-praise-of-textual-user-interface-tui-c66ac958ee28" (accessed September 13, 2018).