The classes of methods have no private specification document. The specifications are contained in the specification of the module or the interface that contains the method.
The information contained in the public part of a method suffices to generate a skeleton implementation of the method. The public part of a method contains its signature. The signature consists of:
· A unique method name
· The type of the method result
· An ordered set of parameters. Each parameter has
o A name that is unique within the realm of the method
o A type
o A placeholder for the value of the parameter
In addition, private methods feature the following assets
· A DiscosedAlias
· A Boolean asset HideFromPublication
The DisclosedAlias is a name that does not disclose the nature of the method. It is used in specifications of local client methods and in method disclosures. The default value for HideFromPublication is true. If the value of HideFromPublication is true, then the specification of the private method is not included in the specification of the containing element.
The public part may also include:
· An optional short description
· Optionally, the name of the method result
· A Boolean stating that this method is a class-wide method
· A Boolean stating that the body of the routine must be included in a critical section
· A Boolean indicating whether a result section must be inserted in the last part of the implementation of the skeleton of the method
· A Boolean indicating that this (internal) method must be used inline inside other methods that make use of this method
· A Boolean indicating that no name mingling must be applied to its name
The default values of these Booleans are false.
The hidden part consists of source code and after compilation it consists of the binary implementation of the method. This hidden part possesses a Boolean asset HideFromPublication. The default value of this Boolean is true. However, if the value of HideFromPublication is false, then the hidden part is published.
The hidden source code part consists of the code lines that must be inserted inside the skeleton of the method. These code lines may be read by the design tool and reinserted after the skeletons are recreated. In order to support reinsertion, the skeleton must contain comment lines that act as placeholders. In this way, the design tool can maintain inserted code while the architecture is changed.
The code lines consist of specifications of local assets, operations, block statements and navigation statements. The operations represent normal method calls, methods that are implemented by the program language or methods that are introduced programmatically via operator overloading. Block statements define lower lever encapsulation regions. If not indicated explicitly otherwise, the assets specified within a block are not accessible outside that block.
The hidden binary part is always part of a larger piece of binary code. This can be a function library, a class library, a load library that contains a package of modules or it is an executable.
The configuration tool may support several methods to preserve inserted code. First, the inserted code may be specified with the public part of the specification of the method. Second, the tool may retrieve the inserted code from the existing code files. During regeneration of the skeleton, the code is reinserted. Third, the tool may store the retrieved code and reinsert the code on request when the skeleton is generated. These actions are language specific. Thus, C++ source code is not inserted in a skeleton that is meant for C source code.