Configuring C#-to-UML transformations

To specify the information that the transformation uses to generate the output that you expect, you use the New Transformation Configuration wizard and the transformation configuration editor, which guide you through the configuration.

About this task

A transformation configuration has .tc as a file name extension, and contains the information that the transformation uses to generate the output that you expect. A transformation configuration also contains information that is specific to a particular type of transformation. To edit an existing transformation configuration, in a view that shows the workspace resources, double-click a transformation configuration file, which opens the transformation configuration editor.

To simplify working with the transformation configuration file, save the configuration file in the project that contains the elements to transform.

To configure a C#-to-UML transformation:

Procedure

  1. Click File > New > Other > Transformations > Transformation Configuration.
  2. Specify the details of the configuration. In the New Transformation Configuration wizard, on the Specify a Configuration Name and Transformation page, complete the following steps:
    1. In the Name field, specify a name for the configuration.
    2. In the Configuration file destination field, specify the destination for the transformation configuration file. The destination is a relative path in your current workspace. You can specify a fully qualified project name or folder name. If you specify a folder in a project, you must prefix the folder name with a forward slash (/).
    3. From the Transformation list, select a transformation.
      Note: To display the transformations that are installed, but not enabled, click Show all transformations. A transformation must be bound to a capability to appear in this list.
  3. In the Protocol section, specify the modeling protocol, which is also called the design contract management protocol (DCMP). The value that you select determines whether to synchronize the source and target of the transformation.
    • If the source model is the primary engineering artifact, select Conceptual. Any changes to the source model are propagated to the target model.
    • If the architecture that the source artifacts represent evolves independently from the target, select Reconciled. Selecting this option enables the reverse transformation, which you can use to compare the source and target, and to reconcile changes. You might also select this option if different teams implement, develop, or maintain the architecture.
      Note: When you select this option, additional properties become available in the "Reverse transformation" section of the Main page. For some transformations, additional pages become available in the transformation configuration editor. For information about configuring the reverse transformation, see the related link below.
  4. Click Next.
  5. Specify the source and target elements for the transformation. For a list of valid source and target elements, see the related concept topic for this transformation. On the Source and Target page, complete the following steps:
    1. In the Selected source pane, select the source element for the transformation to transform.
    2. In the Selected target pane, select the destination of the transformation output. To create a new destination for the output, click Create Target Container.
  6. Click Finish. The transformation configuration editor opens, and the contents of the configuration are displayed.
  7. Optional: Specify documentation about the transformation configuration. This field is useful for communicating information about a configuration that multiple users share. On the Main page, in the Documentation field, specify additional information about the transformation configuration.
  8. Optional: To specify the C# collection type that the transformation generates for each UML collection type in the source project, click the Collections tab. A collection represents a group of model elements. The C# collection type that you select determines whether duplicate model elements can exist in the collection or whether the model elements are ordered. The UML collection type is determined by the isOrdered and isUnique properties of the model elements.
  9. To configure how the C# source code is transformed into a model, click the C#-to-UML Additional Options tab, and then select any of the following options:
    • To generate UML operations in the target model for each getter or setter method in the code, select Generate UML operations for each C# getter/setter method.
    • To automatically save the target model and mapping model (if specified through the UML-to-C# configuration) after you have run a C# to UML transformation, select Automatically save models after running C#-to-UML transformation.
    • To generate generalization relationships from all UML classes representing C# classes to assembly class System.Object, select Create generalizations to System.Object.
  10. Optional: If the transformation that you configure supports mapping, you can specify alternate names for the artifacts that the transformation generates by creating a mapping model. To use a new or existing mapping model, complete the following steps:
    1. In the transformation configuration editor, on the Mapping page, select the Enable the mapping functionality for this configuration check box.
    2. In the Mapping model file name field, specify the name of a new or existing mapping model.
  11. Optional: To generate debugging information, on the Main page, select the Generate a debug log check box. The next time that you run the transformation, the log file is generated as an XML file in the folder that you specify in the transformation preferences. If you do not specify a location for the log files, the transformation generates the log file in the .metadata folder in your workspace.
    Tip: To set preferences for transformations, click Window > Preferences; then expand Modeling and click Transformations.

    The log file provides information about the source elements, the target elements, and the rules that the transformation applies to transform the source elements. If the transformation transforms many elements, you might experience decreased performance while the transformation generates the log file; therefore, you should only generate a log file for debugging purposes.

  12. Optional: To prevent new dialog boxes from opening while a transformation runs, on the Main page, select the Run the forward transformation silently check box.

    Running a transformation in silent mode suppresses all dialog boxes that the transformation generates. The transformation applies default rules and behavior, which might generate unexpected or incorrect transformation output. You should only run a transformation in silent mode to validate that the transformation runs, instead of validating the transformation output. For example, you might run a transformation in silent mode as part of an automated task or automated test suite.

    Setting the transformation to run in silent mode overrides the file-overwrite options that you specify, and overwrites files if necessary.

    If the UML-to-C# transformation is available, you can select the Run the reverse transformation silently check box. Specifying that the UML-to-C#, or reverse transformation runs in silent mode suppresses the merge editor. If a conflict occurs during the merge, the transformation stops and you must rerun the transformation with the silent options cleared.

  13. Optional: To create a traceable relationship between the transformation source and target, on the Main page, select the Create trace relationships check box. This check box is enabled only if you select the Mixed Modeling or Reconciled Modeling protocols.

    You can use trace relationships and the visual development tools to understand the relationships between source model elements and transformation output. This function is useful in large projects that might contain multiple models and transformation configurations. The transformation does not alter the source model.

  14. Optional: To display the errors that occurred when the transformation ran, on the Main page, select the Open the Report dialog box when the transformation is complete check box. Selecting this check box displays only the generated errors. The same information is also written to the error log, which you can view by clicking Window > Show View > Error log.

    To display the warnings that occurred when the transformation ran, select the Show warnings in the Report dialog box check box.

  15. Optional: Create a file that defines the association between C# elements and target UML elements. This functionality is useful for defining relationships between C# and UML elements whose scope is outside the transformation that you configure, and that might be located in different projects. To create an association file, on the C#-to-UML Associations page, complete one of the following steps:
    • Click New, and specify a name and location for the file.
    • To use an existing association file, browse to it and select it.
    • Click Add Association and select Any from the left pane and the model element from the right pane. Both the entries are displayed in the Source to Model Associations table.
  16. Click File > Save.

Results

The options are applied the next time that you run the transformation.

Feedback