Methods, Resources, and Input and Output specification¶
The following is a description of methods and the information concerning methods
Note
A method is represented by a clip board, which symbolises the instruction sheet describing what to do.
Method¶
Introduction¶
A Method is a way to define how to generate the data for a model. It is versionable, and can have formal and informal documentation associated with it in the form of Documents. These documents could be e.g. step-by-step instruction sheets, or a more informal best practise guide.
The intended usage type of the Method is declared with the MethodUsageType enumeration. The values of the enumeration are stored externally to the Business Object Model, but suggestions are: Generation, Checking and Visualization.
A Method can define the resources it needs, such as software, skills or Templates (for more information see SysML - Method and Resources).
It can also define the Inputs it needs to generate particular Outputs (for more information see SysML - Method IO Definition).
Once a Method has been defined, it can then be used in particular instances. Here the the Inputs and Outputs are declared with data flow objects. (for more information see Methods DataFlow)
Surrogate Methods¶
Some methods can be used instead of other methods in particular circumstances. These are usually statistically based methods to approximate the original Method for a certain range of input data, and are therefore much faster to execute. To identify a method as a surrogate of another method, the relationship “isSurrogateOf” is used. To define the limitations on the use of such a Method, the see “Input restrictions or limitations” below.
Resources for Methods¶
Resources can be defined for a Method using the “MethodResourceAssignment” class. This point to the Method and to the element which is the resource for the Method. Because this is a definition, and needs version management the Inputs must also be version managed and so cannot be instances. The resources can be:
- Tool (or Software which is a specialisation of Tool)
- ModelType (i.e. a template to use with the Method)
- TypeOfPerson (i.e. what sort of person can execute the Method)
The resources can be named for the Method by adding a name to the MethodResourceAssignment.
SysML Documentation¶
For more information see SysML - Method and Resources
Tools and Software¶
Note
A Tool is represented by a spanner.
Software is represented by a Compact Disc
Tools can be assigned as resources to a Method. Tools, like methods, are versionable, and can have formal and informal documentation associated with it in the form of Documents. Tools could be physical tools such as spanners, electrical multi-meters, or strain gauges. However for the BDA, they are most likely to be software tools. Therefore a class called Software has been included as a specialisation of Tool. The software class has some additional pieces of information to define how to call the software if it is to be automatically executable. These include:
- Invocation path
- Invocation Method
- Hosting environments with IP Addresses, CPU, Operating System etc.
For more details on these, see the SysML Documentation: SysML - Method and Resources
Templates¶
Some methods include template resources. A typical example would be a Method to compute values using an Microsoft Excel spreadsheet which contains formulae. Here the spreadsheet is the template that is identified as a resource for the method. In this example it is likely that the resultant data (resultDocuments) for the ModelInstance is a copy of that spreadsheet with the input cell values populated.
Another example could be a Method that uses CATIA User Defined Features (UDF) to build up a geometrical model. Here the CATPart(s) which contain the UDF(s) is the template.
These template resources are defined as ModelTypes, where the actual template is associated to the ModelType as formal documentation Documents. The Documents are versionable and identifiable so they can be given names to identify them as the template data files.
Required skills¶
It may also be necessary to identify the skills needed by the person who is to execute the Method. For example someone with FE skills is needed to run a method using FE software, but a person with CAD skills is needed to run a method using CAD software.
TypeOfPerson is used as the resource, and a TypeOfPerson can have a name, a description, and zero to many skills.
A skill itself can also have a name and a description. As well as in SysML - Method and Resources, more information can be found at SysML - Organizations Actors Skills Diagram
Input and Output specification¶
Inputs¶
The Inputs to a Method are identified using the “MethodInputAssignment” class. This points to the Method and to the element which is the input for the Method. Because this is a definition, and needs version management the Inputs must be “types” not instances.
The types of element can be:
- KeyValueType
- ModelType
- AccessibleModelTypeConstituent
- QualityGateType
These types define what the Method is expecting as the Inputs. The actual inputs can be types that “inheritFrom” these types. For example a simple Mass computation Method has a Solid as one of its Inputs. When it is used the actual input could be a WingSolid, a PylonSolid etc.
Normally the Inputs would be distinguishable from their type, but some methods may input two of the same base type, but handle them differently. Therefore the inputs to a Method need to be named so that the Method can distinguish between the them when it is not apparent which is which from their type.
This is achieved by making the MethodInputAssignment “identifiable” (i.e. specialisation of IdentifableObjec), so that it can have a “name” property. Because it is identifiable it can also have descriptions.
Input assignments can have property values. A Boolean property can be used to indicate if the input is optional
Optional Inputs¶
Input assignments can have property values. A Boolean property can be used to indicate if the input is optional
Alternative Inputs for different usage¶
Sometimes a single Method can be used in different ways. In one way it may need specific Inputs to generate a specific output, but in another way use alternative inputs to generate different Outputs. If this is the case, then instead of assigning the Inputs to the Method, they are assigned to ApplicableMethod. see Outputs below for more details on ApplicableMethod.
Outputs¶
The Outputs from a Method are identified using the “ApplicableMethod” class. This points to the method and to the element which the method can generate.
Note
It is called ApplicableMethod because originally it was a simple relationship called “applicableMethod”, that went FROM an element TO the method. I.e. the element “owned” the relationship.
However subsequently it was found that other information needed to be associated with the relationship, so it needed to be converted to a class. However it is still the intention that the element “owns” the relationship so the name was retained. The types of element can be:
- ModelType
- QualityGateType
The ModelType can have Properties, and AccessibleModelTypeConstituents, and as these are part of the ModelType definition, it is expected that the Method will be able to generate these at the same time.
Note
KeyValueTypes are not outputs to a method, because they are associated with the ModelType (extractedFrom). They are not properties of the model, but a conscious decision of which model they are extracted from in a specific scenario.
Input restrictions or limitations¶
A Method may have restrictions, or limitations on the Inputs. These can be defined by adding PropertyValues to the MethodInputAssignment objects. The properties can be numerical values, for example defining the acceptable range of input values. They can also be strings to describe the limitations. This information can be used to determine the “Domain of Validity” of a Method, or an ApplicableMethod.
Sensitivities for e.g. “change propagation” and “rework duration impact”¶
If it is known how a Method is sensitive to changes in the Inputs, this can be captured by attaching a sensitivity to the different MethodInputAssignments, and optionally also indicating which output is impacted.
The Sensitivity class can be classified to declare the type of the sensitivity, e.g. a sensitivity to duration of the Method, or a sensitivity to propagation of change. Each sensitivity can have PropertyValues to define the sensitivity value. These properties can be e.g. numerical for known values, or string enumerations if it is more an indication of sensitivity (e.g. None, Low, Normal, High, Extreme). Because the properties have a definition, the string enumerations can be agreed up front.
SysML Documentation¶
For more information see SysML - Method IO Definition
Section author: Judith Crockford