- Project tools
-
-
- Using ArgoUML
-
- The ArgoUML Project
-
- Nightly builds of docs
-
- The Stats Project
-
- How do I...
-
| Category |
Featured projects |
| scm |
Subversion,
Subclipse,
TortoiseSVN,
RapidSVN
|
| issuetrack |
Scarab |
| requirements |
xmlbasedsrs |
| design |
ArgoUML |
| techcomm |
SubEtha,
eyebrowse,
midgard,
cowiki |
| construction |
antelope,
scons,
frameworx,
build-interceptor,
propel,
phing
|
| testing |
maxq,
aut
|
| deployment |
current |
| process |
ReadySET |
| libraries |
GEF,
Axion,
Style,
SSTree
|
| Over 500 more tools... |
|
Welcome to the new Tigris! There have been some changes to the administration of mail lists. Project and list owners should check out the Discussion Services release notes.
CollabNet will upgrade this site to the latest patch 1 release of CollabNet Enterprise Edition 5.2.0. This site will be unavailable for 30 minutes on Monday, 01/05/09 8:30 pm PST. Please Contact the Support Hot Line at 800-211-3047 (650-228-2562 International) with any questions.
An operation is a service that can be requested from an
object to effect behavior. In the UML metamodel it is a
sub-class of BehavioralFeature which is
itself a sub-class of Feature. In the diagram, an operation is represented on a single
line within the operation compartment of the class. Its syntax
is as follows: visibility name (parameter list) :
return-type-expression {property-string}
You can edit this line directly in the diagram, by
double-clicking on it. All elements are optional and, if left
unspecified, the old values will be preserved. A stereotype can be given between
any two elements in the line in the format:
<<stereotype>>. The following properties are recognized to have special
meaning: abstract, concurrency, concurrent, guarded, leaf,
query, root and sequential. The visibility is
+, #, - or
~
corresponding to public,
protected, private visibility,
or package visibility
respectively. static and final
optionally appear if the operation has those modifiers. Any
operation declared static will have its whole entry underlined
on the diagram.
There may be zero or more entries in the
parameter list separated by commas. Every
entry is a pair of the form: The return-type-expression is the
type (UML datatype, class or interface) of the result
returned. Finally the whole entry is shown in italics if the
operation is declared abstract. 18.8.1. Operation Details TabsThe details tabs that are active for operations are as
follows. ToDoItemStandard tab. PropertiesSee
Section 18.8.2, “Operation Property Toolbar” and
Section 18.8.3, “Property Fields For Operation”
below. DocumentationStandard tab. See
Section 13.4, “Documentation Tab”. PresentationStandard tab. The Bounds:
field does allow editing, but the changes have no
effect. SourceStandard tab. This contains a declaration for the
operation. ConstraintsStandard tab. There are no standard constraints
defined for Operation within the UML
metamodel. Tagged ValuesStandard tab. In the UML metamodel,
Operation has the following standard tagged
values defined. semantics. The value is a
specification of the semantics of the
operation.
derived (from the
superclass, ModelElement).
Values true, meaning the
operation is redundant—it can be formally derived
from other elements, or false
meaning it cannot.
![[Note]](images/note.png) | Note |
|---|
Derived operations still have their value
in analysis to introduce useful names or
concepts, and in design to avoid
re-computation. |
![[Note]](images/note.png) | Note |
|---|
The UML Element metaclass
from which all other model elements are derived includes
the tagged element documentation
which is handled by the documentation
tab under ArgoUML |
ChecklistStandard tab for an Operation.
18.8.2. Operation Property Toolbar
Go upNavigate up through the package structure.
New operationThis creates a new operation within the owning
class of the current operation, navigating immediately
to the properties tab for that operation. ![[Tip]](images/tip.png) | Tip |
|---|
This is a very convenient way to add a number
of operations, one after the other, to a class. |
New parameterThis creates a new parameter for the operation,
navigating immediately to the properties tab for that
parameter.
New raised signalThis creates a new raised signal for the
operation, navigating immediately to the properties tab
for that raised signal.
New DatatypeThis creates a new Datatype (see
Section 16.3, “Datatype”) in the namespace of
the owner of the operation, navigating immediately to
the properties tab for that datatype.
New StereotypeThis creates a new Stereotype (see
Section 16.6, “Stereotype”) for the selected
operation, navigating immediately to the properties tab
for that stereotype.
DeleteThis deletes the operation from the model ![[Warning]](images/warning.png) | Warning |
|---|
This is a deletion from the model
not just the diagram. If desired
the whole operation compartment can be hidden on the
diagram using the presentation
tab (see
Section 18.8.2, “Operation Property Toolbar”)
or the button 2 pop up menu for the class on the
diagram. |
18.8.3. Property Fields For OperationNameText box. The name of the operation. The name of
an operation has a leading lower case letter, with
words separated by “bumpy caps”. ![[Note]](images/note.png) | Note |
|---|
The ArgoUML critics will complain about
operation names that do not have an initial lower
case letter. |
![[Tip]](images/tip.png) | Tip |
|---|
If you wish to follow the Java convention of
constructors having the same name as the class, you
will violate this rule. Silence the critic by setting
the stereotype create for the
constructor operation. |
StereotypeDrop down selector. There are two UML standard
stereotypes for Operation (from the
parent metaclass,
BehavioralFeature), create
and destroy. ![[Tip]](images/tip.png) | Tip |
|---|
You should use create as the
stereotype for constructors, and
destroy for destructors (which are called
“finalize” methods under Java). |
Navigate Stereotype
icon. If a stereotype has been selected, clicking
button 1 will navigate to the stereotype property panel
(see Section 18.5, “Stereotype”).
OwnerText box. Records the class which contains this
operation. Button 1 double click on the entry will navigate
to the class. VisibilityRadio box, with entries
public, private,
protected and
package. public. The operation is
available to any model element that can see the owning
class.
private. The operation is
available only to the owning class (and any inner
classes).
protected. The operation
is available only to the owning class, or model elements
that are subclasses of the owning class.
package. The operation
is available only model elements contained in the
same package.
ModifiersCheck box, with entries
abstract, leaf,
root, query, and
static. abstract. This operation
has no implementation with this class. The
implementation must be provided by a
subclass.
![[Important]](images/important.png) | Important |
|---|
Any class with an abstract operation must
itself be declared abstract. |
leaf. The implementation
of this operation must not be overridden by any
subclass.
root. The declaration of
this operation must not override a declaration of
the operation from a superclass.
query. This indicates that
the operation must have no side effects (i.e. it
must not change the state of the system). It can
only return a value.
![[Caution]](images/caution.png) | Caution |
|---|
Operations for user defined datatypes must
always check this modifier. |
static. There is only one
instance of this operation associated with the
class (as opposed to one for each instance of the
class). This is the OwnerScope
attribute of a Feature metaclass
within UML. Any operation declared static is shown
underlined on the class diagram.
ConcurrencyRadio box, with entries
guarded, sequential, and
concurrent. guarded. Multiple calls
from concurrent threads may occur simultaneously to
one instance (on any guarded operation), but only
one is allowed to commence. The others are blocked
until the performance of the first operation is
complete.
![[Caution]](images/caution.png) | Caution |
|---|
It is up to the system designer to ensure
that deadlock cannot occur. It is the
responsibility of the operation to implement the
blocking behavior (as opposed to the
system). |
sequential. Only one call
to an instance (of the class with the operation)
may be outstanding at any one time. There is no
protection, and no guarantee of behavior if the
system violates this rule.
concurrent. Multiple calls
to one instance may execute at the same time. The
operation is responsible for ensuring correct
behavior. This must be managed even if there are
other sequential or synchronized (guarded)
operations executing at the time.
ParameterText area, with entries for all the parameters of
the operation (see Section 18.9, “Parameter”).
A new operation is always created with one new
parameter, return to define the
return type of the operation. Button 1 double click on any of the parameters
navigates to that parameter. Button 2 click brings up a
pop up menu with two entries. Move Up. Only available
where there are two or more parameters, and the
parameter selected is not at the top. It is moved
up one position.
Move Down. Only available
where there are two or more parameters listed, and
the parameter selected is not at the bottom. It is
moved down one position.
Raised SignalsText area, with entries for all the signals (see
Section 18.10, “Signal”) that can be raised by
the operation. ![[Caution]](images/caution.png) | Caution |
|---|
ArgoUML at present (V0.18) has limited support
for signals. In particular they are not linked to
signal events that could drive state machines. |
Button 1 double click on any of the signals
navigates to that parameter.
|