FuGE | Building extensions to FuGE.Protocol (M2 version)
Extending FuGE Protocol, Software, Equipment and Parameters
The two main Protocol diagrams are displayed below:
Figure 1. The FuGE Protocol diagram.
Figure 2. The Parameterizable classes in the FuGE Protocol package.
In Figure 1, the classes Protocol, Action, Software and Equipment can all be extended by building subclasses. There are several associations flagged as an Abstract Association. Both the classes and associations between classes should be extended using the UML inheritence association. The following example shows how Protocol and Action can be extended in a protocol for two-dimensional gel electrophoresis which has defined steps.
In this example, Gel2DProtocol represents a set of procedures performed in gel electrophoresis and Gel2D is modelled a subclass of Protocol. The developer wants to have defined steps (Actions) within the Gel2DProtocol. These are defined by modelling subclasses of Action (for SampleLoading, the FirstDimension and SecondDimension procedures). Each of these classes references other subclasses of Protocol to define the procedures that occur during each of these steps with the Gel2DProtocol. An Action can either be used for describing a step within a simple protocol or for referencing a sub-protocol, as shown in Figure 3. The Action can also specify some additional information about how the referenced Protocol is to be performed. The SampleLoadingAction has an attribute for LaneNumber, describing the gel lane this Protocol should be performed over (if applicable).
It is also worth noting that the associations from Gel2DProtocol to the subclasses of Action, extend from the association from Protocol to Action but this is not shown on the diagram for clarity. This feature is important for describing the semantics of the association, as descibed in the Introduction
Figure 3. A hypothetical example of a protocol for 2D gel electrophoresis, extending from FuGE Protocol and Action.
Extending Equipment and Parameters
Figure 4 displays an extension of FuGE for column separations. The ColumnProtocol classes references the Column class, which is a subclass of FuGE Equipment (note that the +column association inherits from the +protocolEquipment association, not shown on the Figure). Column and ColumnProtocol have sets of defined parameters that must be captured, each extending from the FuGE Parameter class. The Parameter class allows a default value to be supplied for the parameter (Figure 2). When the protocol is used, an instance of ProtocolApplication is created. In this case, ColumnProtocolApplication references the ColumnProtocol, and can be used to supply parameter values if the values differ from the defaults supplied in the ColumnProtocol. The same mechanism exists for EquipmentApplication (not shown on Figure 4). Follow this link for a guide to extending ProtocolApplication.
Figure 4. A hypothetical example of model for column separations, extending from FuGE Protocol, ProtocolApplication, Equipment and Parameter.