SOFA 2.0 repository editor v. 1.3.0 released. Changes »
SOFA 2.0 repository editor v. 1.0.149 released.
Work on the plug-in is started. History »
“ User's manual ”
“ Usage scenarios ”
“ UML diagrams ”
“ Java docs ”
In this chapter we will discuss the work with entities which are taken directly from the repository server. This includes creation of a frame, architecture, interfaces, and subcomponents, switching between architecture and frame centric views, and refreshing the repository tree. Also this includes linking of interfaces ob borders of subcomponents and architectures.
There are 2 modes of possible views of the repository tree - frame centric and architecture centric. This is done for possibility of multiple points of views on the repository tree. The main difference between those two modes is that the frame centric shows frames firs and attaches implemented architectures as nodes to parent frames. On the other hand the architecture view gives possibility to view all architectures first and see all implemented frames attached to architectures as nodes. For example, if there are several architectures generated via the cushion extension they do not implement any frame until they are finally committed from the local cushion files. Thus those architectures are not visible on the frame centric mode because the frame centric mode assumes that all architectures implemented at least one frame. But the architecture centric mode shows all architectures independently if they implement a frame or not. But in the architecture centric mode there are no frames which are not implemented by any of architectures.
There are several ways to create a frame. This includes: create frame from the frame centric view - very simple way to create a frame, create frame from the architecture centric view and at the same time create new architecture which will implement new frame, and the last way is to create frame from the architecture centric view and select an existing architecture from the list of architectures, the selected architecture will implement new frame.
The first simple method of the frame creation should be done in this way: make sure the frame centric mode is the current repository view mode, then click the 'New frame' () button which is located a bit higher then the 'Frame centric' () switch button and then follow the steps in the frame creation wizard.
The Frame creation wizard includes two simple steps - the first is to type the name for the new frame and the 2nd is to click the 'Finish' button or press Enter key to finish the wizard. After frame is created, it is added to the list of frames at the Repository tree view and it can be accessed as well as all other frames from the tree.
The next way of the frame creation is to create a frame from the architecture centric mode and at once make it implemented by some architecture in order to be visible from the architecture centric view. To create frame it is required to follow these steps: make sure the architecture centric mode is on (), then click the 'New frame' button () and follow the steps of the frame creation wizard.
The last way of creating the new frame is shown below. Make sure the architecture centric mode is on (), then click the 'New frame' button () and follow the steps of the frame creation wizard.
This frame will be visible at the 2nd level of nesting in the repository tree view. It will be accessible after the appropriate architecture node is expanded.
Creating of architecture does not provide such many possibilities as for the frame creation. The wizard for the architecture creation is the same both for the frame and architecture centric modes. This is because according to the meta-model requirements any architecture which is created using direct repository access must implement a frame. That is why the wizard provides possibility to select or create a frame to implement for both views. To start creation procedure just click the 'New architecture' button (), it is located near the 'New frame' button.
Interfaces can be created on frames, architectures and subcomponents. But the frame in fact is the interface container, and interfaces on architectures and subcomponents are just references to the frame which originally contains interfaces. This means that architecture which implements a frame with interfaces shows the same interfaces on its borders. The same is valid for a subcomponent. But on the other hand two different subcomponents can use interface from the same frame to create links to different entities. One interface can link to the containing architecture and another can link to the next subcomponent.
Now let's start from the interface creation on the frame borders. Click on a desired frame do get it drawn on the draw area. Then on the toolbar over the draw area select and interface of the appropriate type. When the interface is selected, the cursor is changed to the cross. Point by this cross some where on the frame area. The interface will appear on the nearest border.
The next way to create an interface is to create it on architecture's border. Now it is required to select architecture from the list of architectures. Then perform about the same steps as for the interface creation on the frame's border.
The last way of adding interface is to add it on subcomponent's border. The creation of the subcomponent will be described in the next chapter. Now we will illustrate how to add an interface to a subcomponent.
We instantiated subcomponent by a frame without interfaces. So, the subcomponent is empty now.
The only possibility to create a subcomponent is to create it on architecture. Subcomponent's creation does not depend on architecture or frame centric view. It is just required to have an architecture drawn on the draw area. Then we should have the 'Subcomponent' button active. Click on this button and the cursor is changed to the cross sign. Then click over any place above the architecture. This will bring subcomponent creation wizard.
The link is created in this way. It is required to click on the link button (), which is located near the required interface button on the GUI editor toolbar. The click on an interface and drag mouse (do not release button after the click on the first interface is done) to another interface. When the mouse cursor is over other interface then release mouse's button. This should create a link with a square in the middle. Square means that link is multi-connectional. This means than many interfaces can be connected by one link. To add an interface to the connection you should click the link button, then click on the interface which should be added and do not release clicked mouse button. Then drag the mouse over link's square. When the cursor is over the square - release the button.
Each frame has properties. This includes name, which is read only. The name can not be changed after the frame is created. Then it includes version. The version is important property. When version is changed, the entity is updates as versioned in the repository. Each version of an entity is stored in the repository. So, it is possible to checkout repository using cushion tool and receive needed version. Also frame has top level property. This is Boolean flag . When it is raised, the frame is declared as a top level frame.