mirror of
https://github.com/EiffelSoftware/eiffel-org.git
synced 2025-12-07 15:22:31 +01:00
Created 18.01 branch of the documentation.
git-svn-id: https://svn.eiffel.com/eiffel-org/trunk@1942 abb3cda0-5349-4a8f-a601-0c33ac3a8c38
This commit is contained in:
@@ -0,0 +1,19 @@
|
||||
[[Property:title|Contexts]]
|
||||
[[Property:weight|4]]
|
||||
[[Property:uuid|6adec8c0-0eb4-d616-c7be-ef7480673b1c]]
|
||||
A diagram in the diagram tool is always the context of a certain class or cluster. Context means the direct relations up to a certain depth.
|
||||
|
||||
For clusters, the relations are:
|
||||
* subclusters
|
||||
* superclusters
|
||||
|
||||
The relations for classes are:
|
||||
* ancestors
|
||||
* descendants
|
||||
* clients
|
||||
* suppliers
|
||||
This is an example of the class <eiffel>LIST</eiffel>, with ancestor depth 2, descendant depth 2 and both client and supplier depth zero. <div> [[Image:bon-list-relations]] </div><br/>
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,98 @@
|
||||
[[Property:title|Diagram tool: Code generation]]
|
||||
[[Property:weight|5]]
|
||||
[[Property:uuid|f0ed7470-cc28-a0e3-df16-36a47d34f852]]
|
||||
All actions taken in the diagram tool that modify a part of the system are immediately reflected in the Eiffel system. Following is a summary of these actions.
|
||||
* When you create a new class, this is the generated empty class: <br/>
|
||||
<code>
|
||||
note
|
||||
description: "Objects that ..."
|
||||
author: ""
|
||||
date: "$Date: 2008-09-02 13:54:45 +0200 (Tue, 02 Sep 2008) $"
|
||||
revision: "$Revision: 74646 $"
|
||||
|
||||
class
|
||||
CLASS_NAME
|
||||
|
||||
end -- class CLASS_NAME
|
||||
</code>
|
||||
|
||||
* When you delete a class, the class file is removed from the disk.
|
||||
* When you add a parent to a class, the parent is inserted in the existing inheritance clause, ''without'' any additional ( <code>undefine</code>/ <code>select</code>/etc.) clauses to solve possible conflicts. <br/>
|
||||
<code>
|
||||
note
|
||||
description: "Objects that ..."
|
||||
author: ""
|
||||
date: "$Date: 2008-09-02 13:54:45 +0200 (Tue, 02 Sep 2008) $"
|
||||
revision: "$Revision: 74646 $"
|
||||
|
||||
class
|
||||
CLASS_NAME
|
||||
|
||||
inherit
|
||||
NEW_PARENT
|
||||
|
||||
end -- class CLASS_NAME
|
||||
</code>
|
||||
|
||||
* When removing an inheritance link, the entire parent clause is removed, i.e. including any <code>redefine</code>/<code>undefine</code>/etc. until the matching <code>end</code>.
|
||||
* When creating a client link, a function or attribute is generated by the feature wizard. When creating a function, this code is generated: <br/>
|
||||
<code>
|
||||
note
|
||||
description: "Objects that ..."
|
||||
author: ""
|
||||
date: "$Date: 2008-09-02 13:54:45 +0200 (Tue, 02 Sep 2008) $"
|
||||
revision: "$Revision: 74646 $"
|
||||
|
||||
class
|
||||
CLASS_NAME
|
||||
|
||||
feature -- Access
|
||||
|
||||
f: TYPE
|
||||
-- Client from CLASS_NAME to TYPE.
|
||||
do
|
||||
end
|
||||
|
||||
end -- class CLASS_NAME
|
||||
</code>
|
||||
|
||||
* If you choose to create an attribute for the client link, and optionally specify to generate a set-procedure and an invariant, the following code will be pasted into the class text: <br/>
|
||||
<code>
|
||||
note
|
||||
description: "Objects that ..."
|
||||
author: ""
|
||||
date: "$Date: 2008-09-02 13:54:45 +0200 (Tue, 02 Sep 2008) $"
|
||||
revision: "$Revision: 74646 $"
|
||||
|
||||
class
|
||||
CLASS_NAME
|
||||
|
||||
feature -- Access
|
||||
|
||||
f: TYPE
|
||||
-- Client from CLASS_NAME to TYPE.
|
||||
|
||||
feature -- Element change
|
||||
|
||||
set_f (a_f: TYPE)
|
||||
-- Client from CLASS_NAME to TYPE.
|
||||
require
|
||||
a_f_not_void: af /= Void
|
||||
do
|
||||
f := a_f
|
||||
ensure
|
||||
f_assigned: f = a_f
|
||||
end
|
||||
|
||||
invariant
|
||||
f_not_void: f /= Void
|
||||
|
||||
end -- class CLASS_NAME
|
||||
</code>
|
||||
|
||||
* When removing a client link, only the matching function or attribute is removed. Any additionally generated set-feature or invariant is not removed.
|
||||
* When removing a cluster, the associated directory is not erased, but the reference to the cluster is removed from the configuration file. At this time, it is not possible to create a cluster using the diagram tool, only to remove one.
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,77 @@
|
||||
[[Property:title|Diagram toolbar]]
|
||||
[[Property:weight|2]]
|
||||
[[Property:uuid|c0ea47ac-e616-0762-b1bf-53d87df8ce9f]]
|
||||
The toolbar of the diagram contains these buttons:
|
||||
* [[Image:diagram-target-cluster-or-class-icon]] Target to cluster or class <br/>
|
||||
**Drop a class or a cluster on this icon to build the corresponding diagram.
|
||||
|
||||
* [[Image:new-inheritance-link-icon]] [[Creating inheritance links|Create new inheritance links]] <br/>
|
||||
**Selecting this button allows you to create inheritance, client-supplier or aggregate links by picking from one class and dropping on the other.
|
||||
|
||||
* [[Image:16x16--new-class-icon]] [[Creating a new class|Create a new class]] <br/>
|
||||
**Pick from this button and drop on the diagram to add a new class.
|
||||
|
||||
* [[Image:general-undo-icon]] [[Undoing and redoing|Undo last action]] <br/>
|
||||
**Click to undo the last action.
|
||||
|
||||
* [[Image:general-undo-history-icon]] [[Undoing and redoing|History tool]] <br/>
|
||||
**Click to open the '''History tool'''.
|
||||
|
||||
* [[Image:general-redo-icon]] [[Undoing and redoing|Redo last action]] <br/>
|
||||
**Click to redo the last undone action.
|
||||
|
||||
* [[Image:general-reset-icon]] [[Removing items from a view|Remove figure]] <br/>
|
||||
**Drop figures in this hole that you want to remove from the view only.
|
||||
|
||||
* [[Image:diagram-choose-color-icon]] [[Changing colors of classes|Change color]] <br/>
|
||||
**Drop class bubbles in this hole to change their color, or click this button and change the color of all class bubbles at once.
|
||||
|
||||
* [[Image:diagram-fill-cluster-icon]] [[Retrieving all classes into a cluster|Include all classes of cluster]] <br/>
|
||||
**Drop a cluster in this hole to show all classes of the cluster in this view.
|
||||
|
||||
* [[Image:diagram-depth-of-relations-icon]] [[Changing system exploration depth|Select depth of relations]] <br/>
|
||||
**Click to bring up the '''Select depth''' dialog.
|
||||
|
||||
* [[Image:diagram-zoom-out-icon]] [[Zooming a diagram|Zoom out]] <br/>
|
||||
**Shrink the diagram.
|
||||
|
||||
* [[Image:diagram-fit-to-screen-icon]] [[Zooming a diagram|Fit Diagram to Screen]] <br/>
|
||||
**Fit the diagram to the screen dimensions so it is all visible.
|
||||
|
||||
* [[Image:diagram-zoom-in-icon]] [[Zooming a diagram|Zoom in]] <br/>
|
||||
**Enlarge the diagram.
|
||||
|
||||
* [[Image:diagram-inheritance-link-icon]] [[Showing or hiding links and labels|Show/hide inheritance links]] <br/>
|
||||
**Toggle visibility of all inheritance links in the view.
|
||||
|
||||
* [[Image:diagram-supplier-link-icon]] [[Showing or hiding links and labels|Show/hide client-supplier links]] <br/>
|
||||
**Toggle visibility of all client-supplier links in the view.
|
||||
|
||||
* [[Image:diagram-show-labels-icon]] [[Showing or hiding links and labels|Show/hide labels]] <br/>
|
||||
**Toggle visibility of all client link labels in the view.
|
||||
|
||||
* [[Image:diagram-export-to-png-icon]] [[Exporting a diagram to PNG image file|Export diagram to.png]] <br/>
|
||||
**Click to generate a .png file from current view.
|
||||
|
||||
* [[Image:diagram-toggle-quality-icon]] Toggles the drawing quality.
|
||||
|
||||
* [[Image:diagram-toogle-physics-icon]] Toggles the physics mode on and off.
|
||||
|
||||
* [[Image:diagram-view-uml-icon]] Toggles view between BON notation and UML.
|
||||
|
||||
* [[Image:diagram-anchor-icon]] Allows to anchor or unanchor a class/cluster figure.
|
||||
|
||||
* [[Image:diagram-physics-settings-icon]] Displays physics settings dialog to control physics behavour.
|
||||
|
||||
* [[Image:16x16--general-delete-icon]] [[Deleting items|Delete]] <br/>
|
||||
**Drop items in this hole to remove them from the system.
|
||||
|
||||
* [[Image:diagram-show-legend-icon]] Toggle cluster color legend.
|
||||
|
||||
* [[Image:diagram-force-right-angles-icon]] [[Using the link tool|Put handles on a link]] <br/>
|
||||
**Click on this button to toggle right angles on all links in the view. Drop a link on it to bring up the link tool for that link.
|
||||
|
||||
In addition to these toolbar buttons there is also a drop down list for selecting various zoom percentages on the current view, and a view list for switching between previously saved views/layouts of various parts of the system.
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,12 @@
|
||||
[[Property:title|Diagram tool]]
|
||||
[[Property:weight|-6]]
|
||||
[[Property:uuid|a3ca34e5-10e9-fac3-4795-9222074273a6]]
|
||||
The Diagram Tool of EiffelStudio is your graphical interface to system structures. You can use it both to ''examine'' systems already built or under development, and to ''build'' these systems graphically. EiffelStudio supports complete seamlessness and reversibility between the Diagram Tool's graphical view and the text view of other EiffelStudio tools: whenever you make a change or addition with the graphical tool, EiffelStudio will update the text; and when you change the text, EiffelStudio will update the Diagram Tool's representation on the next compilation.
|
||||
|
||||
Use the diagram tool to design new Eiffel systems, or create [http://bon-method.com BON] (Business Object Notation) diagrams of existing ones. BON is a simple, clear, self-explanatory notation that you will learn in a few minutes just by looking at some examples. The Diagram Tool provides you with lots of features to manage different views of an Eiffel system, or parts of it.
|
||||
|
||||
|
||||
<div> [[Image:devel-diagram]] </div>
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,99 @@
|
||||
[[Property:title|Notation]]
|
||||
[[Property:weight|1]]
|
||||
[[Property:uuid|615baff7-4dbe-2f2f-9a02-c05b20143478]]
|
||||
The diagram tool uses the [http://bon-method.com BON] (Business Object Notation) to represent Eiffel systems. This article will give a summary of all components of an EiffelStudio diagram. For detailed information on BON, please read [http://bon-method.com/book.htm Seamless Object-Oriented Software Architecture] by Kim Walden and Jean-MarcNerson, Prentice Hall 1994.
|
||||
|
||||
==Class==
|
||||
|
||||
[[Image:bon-class]]
|
||||
|
||||
A class is represented by an ellipse(sometimes referred to as ''bubble''). It contains the class name and formal generics of the Eiffel class it represents. Second, it displays information about properties of a class. These properties are:
|
||||
* Deferred: class is declared as <code>deferred</code>.
|
||||
|
||||
|
||||
[[Image:bon-class-deferred]]
|
||||
|
||||
|
||||
* Effective: class is not <code>deferred</code> and has at least one <code>deferred</code> parent, or redefines one ore more features.
|
||||
|
||||
|
||||
[[Image:bon-class-effective]]
|
||||
|
||||
|
||||
* Persistent: class inherits <eiffel>STORABLE</eiffel> or has indexing tag <code>persistent</code>.
|
||||
|
||||
|
||||
[[Image:bon-class-persistent]]
|
||||
|
||||
|
||||
* Interfaced: class has one ore more <code>external</code> features.
|
||||
|
||||
|
||||
[[Image:bon-class-interfaced]]
|
||||
|
||||
|
||||
* Reused: class resides in a precompiled library or in a <code>library</code> cluster.
|
||||
|
||||
|
||||
[[Image:bon-class-reused]]
|
||||
|
||||
|
||||
* Root class: class has the program's entry point.
|
||||
|
||||
|
||||
[[Image:bon-class-root]]
|
||||
|
||||
|
||||
{{seealso|<br/>
|
||||
[[Rename Class|Changing class names]] }}
|
||||
|
||||
|
||||
==Cluster==
|
||||
|
||||
A cluster is a collection of classes and sub-clusters. It is represented by a stippled, rounded rectangle. The cluster name is in a similar rectangle, by default located at the top of the cluster just outside of it.
|
||||
|
||||
|
||||
[[Image:bon-cluster]]
|
||||
|
||||
|
||||
A cluster can be iconified, which means it is minimized to take up as less space as possible.
|
||||
|
||||
|
||||
[[Image:bon-cluster-iconified]]
|
||||
|
||||
|
||||
|
||||
{{seealso|<br/>
|
||||
[[Iconifying and restoring a cluster|Iconifying a cluster]] }}
|
||||
|
||||
|
||||
==Inheritance links==
|
||||
|
||||
Inheritance between classes is represented by an arrow from a class to its parent. Typically, inheritance links point upwards.
|
||||
<div> [[Image:bon-inheritance]] </div><br/>
|
||||
<br/>
|
||||
|
||||
{{seealso|<br/>
|
||||
[[Creating inheritance links|Creating inheritance links]] }}
|
||||
|
||||
|
||||
==Client/supplier links==
|
||||
|
||||
Client relationships between classes are represented by an arrow with a double line from the client to the supplier. Typically, these links point to the right.
|
||||
|
||||
|
||||
[[Image:bon-client]]
|
||||
|
||||
|
||||
A special kind of relationship is the aggregate client/supplier link. Aggregate means that the supplier is an integral part of the client. In the class text, it corresponds to <code>expanded</code> features. In the diagram, an aggregate link has a little line along the back side of the arrow.
|
||||
|
||||
|
||||
[[Image:bon-agg-client]]
|
||||
|
||||
|
||||
{{seealso|<br/>
|
||||
[[Creating client-supplier links|Creating client/supplier links]] }}
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,23 @@
|
||||
[[Property:title|Views]]
|
||||
[[Property:weight|3]]
|
||||
[[Property:uuid|e31f55f4-907c-0df3-2144-3820765800a8]]
|
||||
Every class or cluster has one or more views. Every view shows the [[Contexts|context]] of a class or cluster, a subset of the Eiffel system. For example, for a certain cluster, you can show only the hierarchy of the classes in it, but you could have a second view that shows only a couple of classes in it, but with all relations between them.
|
||||
<div> [[Image:diagram-view-combo]] </div>
|
||||
The view combo box, as seen in the image above, can be used to add a view or switch to a previously added one. Every class and cluster has a view "DEFAULT" that is generated automatically. If you create a new view and move for example a class around in it, the "DEFAULT" view is unaffected.
|
||||
|
||||
The Diagram tool provides you with the following possibilities to manipulate views:
|
||||
* [[Adding a view|Adding a view]]
|
||||
* [[Deleting a view|Deleting a view]]
|
||||
* [[Showing or hiding links and labels|Showing or hiding links and labels]]
|
||||
* [[Removing items from a view|Removing items from a view]]
|
||||
* [[Changing colors of classes|Changing colors of objects]]
|
||||
* [[Using the link tool|Using the link tool]]
|
||||
* [[Changing system exploration depth|Changing system exploration depth of objects]]
|
||||
* [[Retrieving all classes into a cluster|Retrieving all classes into a cluster]]
|
||||
* [[Iconifying and restoring a cluster|Minimizing a cluster and restoring it to its normal state]]
|
||||
<br/>
|
||||
<br/>
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user