Frigg [3] is the interface builder of the Mjølner System, it aims at supporting rapid prototyping and is meant primarily for system designers and developers.
Frigg supplies a graphical editor which interacts with the structure editor to create a prototyping environment. The graphical editor lets its users construct the user interface via direct manipulation, while the necessary code is generated automatically and incrementally behind the scene.
The generated code can be extended and tailored using the structure editor, and this tailoring can take place at any time during the development of the user interface, because the graphical editor can keep track of the code even though the code has been altered in the structure editor (incremental reverse engineering). The developer can therefore alternate between working on the user interface and coding the underlying functionality. In addition GUI applications developed or modified outside the interface builder can be reverse engineered and modified in the graphical editor.
The integration of Frigg's editors is accomplished using the Mjølner System's uniform representation of programs: abstract syntax trees (ASTs). Manipulations of the ASTs are done through the Meta-Programming System (MPS). Furthermore, all editors working on the same AST are informed when the AST changes, thereby allowing the editors to ensure consistency.
Frigg utilises the Fragment System to: (1) Get access to Lidskjalv, the Mjølner Graphical User Interface environment (GUIenv), (2) Create user interface modules that are properly separated from the model modules of the program, (3) Separate the interface part and the implementation part of the user interface objects, to allow fine tuning of the users interface without recompiling the entire program.
The code generated by Frigg are specialisation's of the classes in GUIenv.
Frigg does not enforce one particular style of development on its users. In fact, Frigg supports at least the following approaches: (1) starting with design of user interface objects (UIOs) and building up a horizontal prototype having only minimal functionality; (2) starting from a model, and an implemented description of the functionality of a system, but with no UIOs implemented; (3) vertical prototyping, i.e. implementing the functionality behind a subset of a horizontal prototype or fully implementing a small subset of a system intended for incremental extension; (4) simulation of functionality, i.e. adding temporary short cut or dummy computations to a horizontal prototype to support sample data; and (5) full application development. In addition, these different ways of using Frigg can be combined.
[Tutorial] [Reference Manual]Mjolner Integrated Development Tool - Overview | © 1991-2002 Mjølner Informatics |
[Modified: Friday October 27th 2000 at 14:56]
|