Theoretical computer science has the aim of formalizing previous empirical, innovative creations in computing, by developing formal methods and models for their description, analysis and design. Formal methods emerged in software engineering as the mathematical support needed for software systems description, design and verification, offering abstract formalisms and domains of models. Interactive software systems design, due to the principle of separation, has been split into two distinct design and implementation processes, one concerned with the computational subsystem, the other addressing the interactive one. However, formal methods have been applied, almost exclusively, in the design of the computational layer. The design of the interactive layer is mainly concerned with the design of the User Interface (UI) of the system or application. Despite its recognized importance and complexity, UI design is still being done on a technological basis and using ad hoc methods. Therefore, it is time to devolve upon user-interface software design the acknowledged benefits derived from the use of formal methods. In this paper, we start by formalizing mechanisms to be embedded in an UI model, appropriate to cope with some characteristics of user input-behaviour, namely, nondeterminism, unreliably and incompleteness. Archetypes are presented as mechanisms for the representation and treatment of incomplete user's input, an innovative step in UI design. We call assisted-user-interfaces (AUI) the class of UI based on such mechanisms. A user-interface development system for their automatic generation, ASSIST, is also described. Finally, we outline an important methodological link between the design of the two layers of an interactive system ( interactive and computational). A formal specification of the application contains information that may be systematically used in the design of the relevant parts of the interactive layer. Through ASSIST that information allows for the automatic generation of the AUI.