5.5 Appendix: Frequently Asked Questions (FAQ)

5.6 Contents

5.7 PART I: Frequently Asked Questions

5.7.1 Q01) What is Freja?

Freja is an object-oriented CASE tool supporting system development with BETA as the implementation language. Together with Sif, the Source Browser and Editor part of the Mjølner Tool ([MIA 99-39], [MIA 99-40], [MIA 99-34]), Freja supports a smooth transition from design diagrams to implementation code and vice versa. The design notation is a graphical syntax for part of the BETA programming language. The basic idea is to use the same abstract language for design as well as implementation. A graphical syntax is used for design descriptions and the usual textual syntax is used for program code.
Freja is part of the Mjølner tool and can initially be reached using the Diagrams menu.

5.7.2 Q02) What does the name Freja mean?

Many have wondered about the origins of the strange product names used for parts of the Mjølner BETA System. Due to the origin of the Mjølner BETA System, many of the components of the system bear Nordic names. These Nordic names originate from the Nordic Mythology, and are thus names within the common cultural background of people in the entire Nordic region. Freja is the name of the goddess of love. She lives in Folkvang and is the most beautiful of all women in Asgaard. She owns the golden piece of jewelry Brisingemen. 

5.7.3 Q03) What are the important files?

There are two important file types when working with Freja: .bet and .diag  files.

The  .bet file is well-known to BETA programmers. The .diag file contains a representation of the diagrams including layout information and references to the corresponding beta code.

When running Freja there will also exist versions of the  files with extensions "#" and "~". The "#" files are autosave versions that are used when recovery is called for. Autosave is performed each time the an operation altering the code is performed. The "~" files are versions corresponding to how the diagram looked when an explicit save was performed the last time.

Notice:

5.7.4 Q04) How do I perform recovery?

Freja performs an autosave each time an operation that alters the code is invoked. To recover after the program has crashed you can do one of the following:


Explanation of the different file types used in Freja, see Q03) What are the important files?

5.7.5 Q05) How do I revert changes to the diagram?

Revert is currently not implemented in Freja, so if you wish to revert to the situation at the time of the last save it neccesary to manipulte the files yourself. To do this simply move .ast~ file(s) into the corresponding .ast file(s), move the .diag~ file into the corresponding .diag file and move the .bet~ file into the corresponding .bet file.
Notice:
If the diagram you wish to revert uses more than one .bet file, you must move all the involved .bet~ and ast~ files as explained above.
Explanation of the different file types used in Freja, see Q03) What are the important files?

5.7.6 Q06) How do I (re-)create a diagram through reverse engineering?

If no diagram is available for a piece of BETA code you can create a diagram using Freja's reverse engineering facilities. To do this open Mj'lner on the .bet file containing the code. Then choose Show Diagram from the Diagrams menu. Having opened a diagram on the code, one of two will appear:
  1. If the opened file only contains one fragmentform, the Work Sheet will appear, showing a diagram containing the attributes visible in the outermost descriptor of the code.
  2. If the opened file contains more than one fragmentform, the Group Page will appear, showing a diagram with entries for each fragmentform in the file.
In the first case the detailable attributes can be detailed to the wished level. If relations like e.g. inheritance connectors and references do not appear automatically during detail, it means that the program (the .ast) has not been checked. To do this, select the Check entry in Mjølner's  Compile/Run menu (No nonterminals must be present in the code for the checker to be able to semantically check it). If no semantic errors are detected during checking, all relations will then automatically appear when checking is finished.

In the second of the above cases, you simply detail one or more of the fragmentform entries on the Group Page (e.g. by doubleclicking them) and then proceed as described for the first case. 

5.7.7 Q7) Can I close a diagram?

No, in the current version of Freja closing of diagrams is not implemented. Several .bet files can be loaded into the same diagram though. If you wish to load another diagram however, you are forced to quit the application and start it up again on this other diagram.

5.8 PART II: Known bugs and errors

5.8.1 E01) Lists of names in declarations

Declarations containing lists names, like e.g:

a,b,c: @Integer

(as opposed to: a: @Integer; b: @Integer; c: @Integer)
will currently not be handled well by Freja and may cause serious instability of the program.

Workaround:
Avoid declarations of the above mentioned type in your problem domain code and use declarations of the type a: @Integer; b: @Integer; c: @Integer instead.

5.8.2 E02) Embedded associations and static descriptor SLOTs

If the fragment contains embedded associations and static descriptor SLOTs (as f.ex. private:@<<SLOT privateSlot:Descriptor>>) Freja may crash when trying to display association relations.

Workaround:
Avoid static descriptor SLOTs in your problem domain model code.
 


Mjolner Integrated Development Tool - Reference Manual
© 1991-2002 Mjølner Informatics
[Modified: Tuesday October 24th 2000 at 18:16]